// Code generated by tools/scripts/generate-event-protocol.mjs. DO NOT EDIT. package generated import "encoding/json" const ( BusinessEventProtocolVersion = 1 BusinessEventCatalogRevision = "sha256:62c8f436b88b9e02" ) type Topic string const ( TopicAccountUserpresenceUpdated Topic = "account.userpresence.updated" TopicAgentActivityUpdated Topic = "agent.activity.updated" TopicAgentAutomationRulesChanged Topic = "agent.automation.rules.changed" TopicAgentCollaborationUpdated Topic = "agent.collaboration.updated" TopicAgentModelCatalogInvalidated Topic = "agent.model.catalog.invalidated" TopicAgentModelConfigurationChanged Topic = "agent.model.configuration.changed" TopicAgentQuickpromptUpdated Topic = "agent.quickprompt.updated" TopicAgentSideUpdated Topic = "agent.side.updated" TopicAnalyticsDebugReported Topic = "analytics.debug.reported" TopicConnectorMarketChanged Topic = "connector.market.changed" TopicPreferencesAgentComposerDefaultsChanged Topic = "preferences.agent.composer.defaults.changed" TopicPreferencesAgentComposerDefaultsPatchRequested Topic = "preferences.agent.composer.defaults.patch.requested" TopicPreferencesAgentSessionLaunchModePatchRequested Topic = "preferences.agent.session.launch.mode.patch.requested" TopicPreferencesDesktopUpdateRequested Topic = "preferences.desktop.update.requested" TopicPreferencesDesktopUpdated Topic = "preferences.desktop.updated" TopicUserProjectUpdated Topic = "user.project.updated" TopicWorkspaceAppUpdated Topic = "workspace.app.updated" TopicWorkspaceAppfactoryJobUpdated Topic = "workspace.appfactory.job.updated" TopicWorkspaceIssueUpdated Topic = "workspace.issue.updated" TopicWorkspaceTuttimodeUpdated Topic = "workspace.tuttimode.updated" TopicWorkspaceWorkbenchNodeLaunchRequested Topic = "workspace.workbench.node.launch.requested" TopicWorkspaceWorkflowUpdated Topic = "workspace.workflow.updated" ) type Direction string const ( DirectionClientToServer Direction = "client->server" DirectionServerToClient Direction = "server->client" ) type ScopeName string const ( ScopeNameGlobal ScopeName = "global" ScopeNameDesktop ScopeName = "desktop" ScopeNameWorkspace ScopeName = "workspace" ) type EventDefinition struct { Topic Topic Version int Direction Direction Owner string Scope ScopeName } type EventScope struct { WorkspaceID *string `json:"workspaceId,omitempty"` } type EventEnvelope struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload json.RawMessage `json:"payload"` } type PreferencesDesktopPreferences struct { AgentCliUpdateCheckEnabled bool `json:"agentCliUpdateCheckEnabled"` AgentComposerDefaultsByProvider struct { ClaudeCode *struct { Model *string `json:"model,omitempty"` PermissionModeId *string `json:"permissionModeId,omitempty"` ReasoningEffort *string `json:"reasoningEffort,omitempty"` Speed *string `json:"speed,omitempty"` } `json:"claude-code,omitempty"` Codex *struct { Model *string `json:"model,omitempty"` PermissionModeId *string `json:"permissionModeId,omitempty"` ReasoningEffort *string `json:"reasoningEffort,omitempty"` Speed *string `json:"speed,omitempty"` } `json:"codex,omitempty"` TuttiAgent *struct { Model *string `json:"model,omitempty"` PermissionModeId *string `json:"permissionModeId,omitempty"` ReasoningEffort *string `json:"reasoningEffort,omitempty"` Speed *string `json:"speed,omitempty"` } `json:"tutti-agent,omitempty"` Cursor *struct { Model *string `json:"model,omitempty"` PermissionModeId *string `json:"permissionModeId,omitempty"` ReasoningEffort *string `json:"reasoningEffort,omitempty"` Speed *string `json:"speed,omitempty"` } `json:"cursor,omitempty"` Nexight *struct { Model *string `json:"model,omitempty"` PermissionModeId *string `json:"permissionModeId,omitempty"` ReasoningEffort *string `json:"reasoningEffort,omitempty"` Speed *string `json:"speed,omitempty"` } `json:"nexight,omitempty"` Openclaw *struct { Model *string `json:"model,omitempty"` PermissionModeId *string `json:"permissionModeId,omitempty"` ReasoningEffort *string `json:"reasoningEffort,omitempty"` Speed *string `json:"speed,omitempty"` } `json:"openclaw,omitempty"` Opencode *struct { Model *string `json:"model,omitempty"` PermissionModeId *string `json:"permissionModeId,omitempty"` ReasoningEffort *string `json:"reasoningEffort,omitempty"` Speed *string `json:"speed,omitempty"` } `json:"opencode,omitempty"` } `json:"agentComposerDefaultsByProvider"` AgentComposerDefaultsByAgentTarget *map[string]struct { Model *string `json:"model,omitempty"` PermissionModeId *string `json:"permissionModeId,omitempty"` ReasoningEffort *string `json:"reasoningEffort,omitempty"` Speed *string `json:"speed,omitempty"` } `json:"agentComposerDefaultsByAgentTarget,omitempty"` AgentGuiConversationRailCollapsedByProvider struct { ClaudeCode *bool `json:"claude-code,omitempty"` Codex *bool `json:"codex,omitempty"` TuttiAgent *bool `json:"tutti-agent,omitempty"` Cursor *bool `json:"cursor,omitempty"` Nexight *bool `json:"nexight,omitempty"` Openclaw *bool `json:"openclaw,omitempty"` Opencode *bool `json:"opencode,omitempty"` } `json:"agentGuiConversationRailCollapsedByProvider"` AgentSessionLaunchModesByWorkspace *map[string]map[string]string `json:"agentSessionLaunchModesByWorkspace,omitempty"` AgentConversationDetailMode string `json:"agentConversationDetailMode"` AgentDockLayout string `json:"agentDockLayout"` AppCatalogChannel string `json:"appCatalogChannel"` BrowserUseConnectionMode *string `json:"browserUseConnectionMode,omitempty"` DefaultAgentProvider string `json:"defaultAgentProvider"` DockIconStyle string `json:"dockIconStyle"` DockPlacement string `json:"dockPlacement"` DeletedAgentConversationRetentionDays int `json:"deletedAgentConversationRetentionDays"` FileDefaultOpenersByExtension map[string]string `json:"fileDefaultOpenersByExtension"` FeatureFlags map[string]bool `json:"featureFlags"` WorkbenchShortcuts struct { NewAgentConversation *string `json:"newAgentConversation"` NewSameTypeWindow *string `json:"newSameTypeWindow"` CaptureScreenshot *string `json:"captureScreenshot,omitempty"` } `json:"workbenchShortcuts"` Locale string `json:"locale"` MinimizeAnimation string `json:"minimizeAnimation"` SleepPreventionMode string `json:"sleepPreventionMode"` ShowAppDeveloperSources bool `json:"showAppDeveloperSources"` ThemeSource string `json:"themeSource"` UpdateChannel string `json:"updateChannel"` UpdatePolicy string `json:"updatePolicy"` WorkbenchWindowSnapping *struct { Enabled bool `json:"enabled"` ShortcutPreset string `json:"shortcutPreset"` } `json:"workbenchWindowSnapping,omitempty"` } type UserUserProject struct { Id string `json:"id"` Path string `json:"path"` Label string `json:"label"` SectionKey string `json:"sectionKey"` CreatedAtUnixMs int64 `json:"createdAtUnixMs"` UpdatedAtUnixMs int64 `json:"updatedAtUnixMs"` LastUsedAtUnixMs int64 `json:"lastUsedAtUnixMs"` PinnedAtUnixMs int64 `json:"pinnedAtUnixMs"` } type WorkspaceWorkspaceAppFactoryJob struct { JobId string `json:"jobId"` WorkspaceId string `json:"workspaceId"` Status string `json:"status"` Prompt string `json:"prompt"` AppId *string `json:"appId"` DisplayName string `json:"displayName"` Description *string `json:"description"` AgentTargetId *string `json:"agentTargetId"` Provider *string `json:"provider"` Model *string `json:"model"` ReasoningEffort *string `json:"reasoningEffort"` AgentSessionId *string `json:"agentSessionId"` ValidationResult *map[string]any `json:"validationResult"` FailureReason *string `json:"failureReason"` PublishedVersion *string `json:"publishedVersion"` CreatedAtUnixMs int64 `json:"createdAtUnixMs"` UpdatedAtUnixMs int64 `json:"updatedAtUnixMs"` } type WorkspaceWorkspaceApp struct { AppId string `json:"appId"` DisplayName string `json:"displayName"` Version string `json:"version"` Description string `json:"description"` Authors []struct { Name string `json:"name"` Url *string `json:"url,omitempty"` AvatarUrl *string `json:"avatarUrl,omitempty"` } `json:"authors"` Repository *struct { Type string `json:"type"` Url string `json:"url"` } `json:"repository"` IconUrl *string `json:"iconUrl"` Installed bool `json:"installed"` Enabled bool `json:"enabled"` Status string `json:"status"` StateRevision int64 `json:"stateRevision"` LaunchUrl *string `json:"launchUrl"` Port *int `json:"port"` FailureReason *string `json:"failureReason"` FailurePhase *string `json:"failurePhase,omitempty"` LastError *string `json:"lastError"` StartedAtUnixMs *int64 `json:"startedAtUnixMs"` UpdatedAtUnixMs *int64 `json:"updatedAtUnixMs"` Source string `json:"source"` Exportable bool `json:"exportable"` Tags []string `json:"tags"` Localizations []struct { Locale string `json:"locale"` DisplayName *string `json:"displayName"` Description *string `json:"description"` Tags []string `json:"tags"` } `json:"localizations"` MinimizeBehavior string `json:"minimizeBehavior"` WindowMinWidth *int `json:"windowMinWidth"` WindowMinHeight *int `json:"windowMinHeight"` References struct { ListSupported bool `json:"listSupported"` SearchSupported bool `json:"searchSupported"` } `json:"references"` InstallProgress *struct { UserPhase string `json:"userPhase"` OverallPercent float64 `json:"overallPercent"` DownloadedBytes *int64 `json:"downloadedBytes"` TotalBytes *int64 `json:"totalBytes"` Indeterminate bool `json:"indeterminate"` } `json:"installProgress,omitempty"` } type AccountUserpresenceUpdatedPayload struct { UserId string `json:"userId"` Status string `json:"status"` Availability string `json:"availability"` Authoritative bool `json:"authoritative"` AuthorityGeneration string `json:"authorityGeneration"` PresenceRevision string `json:"presenceRevision"` ObservedAt *string `json:"observedAt,omitempty"` } type AgentActivityUpdatedPayload struct { WorkspaceId string `json:"workspaceId"` AgentSessionId string `json:"agentSessionId"` AgentTargetId *string `json:"agentTargetId,omitempty"` EventType string `json:"eventType"` Data any `json:"data"` } type AgentAutomationRulesChangedPayload struct { WorkspaceId string `json:"workspaceId"` OccurredAtUnixMs int `json:"occurredAtUnixMs"` } type AgentCollaborationUpdatedPayload struct { WorkspaceId string `json:"workspaceId"` RunId string `json:"runId"` Mode string `json:"mode"` Status string `json:"status"` SourceSessionId *string `json:"sourceSessionId,omitempty"` TargetSessionId *string `json:"targetSessionId,omitempty"` ModelPlanId *string `json:"modelPlanId,omitempty"` Model *string `json:"model,omitempty"` TriggerSource string `json:"triggerSource"` Adoption *string `json:"adoption,omitempty"` OccurredAtUnixMs int `json:"occurredAtUnixMs"` } type AgentModelCatalogInvalidatedPayload struct { Providers []string `json:"providers"` OccurredAtUnixMs int `json:"occurredAtUnixMs"` } type AgentModelConfigurationChangedPayload struct { WorkspaceId string `json:"workspaceId"` AgentTargetIds []string `json:"agentTargetIds"` DefaultModels map[string]string `json:"defaultModels"` ResetComposerModel bool `json:"resetComposerModel"` OccurredAtUnixMs int `json:"occurredAtUnixMs"` } type AgentQuickpromptUpdatedPayload struct { PromptId string `json:"promptId"` ChangeKind string `json:"changeKind"` Version int `json:"version"` OccurredAtUnixMs int `json:"occurredAtUnixMs"` } type AgentSideUpdatedPayload struct { WorkspaceId string `json:"workspaceId"` SideAgentSessionId string `json:"sideAgentSessionId"` SourceAgentSessionId string `json:"sourceAgentSessionId"` Sequence int `json:"sequence"` EventType any `json:"eventType"` Data map[string]any `json:"data"` } type AnalyticsDebugReportedPayload struct { Events []struct { Name string `json:"name"` ClientTs int `json:"clientTs"` Params map[string]any `json:"params"` } `json:"events"` } type ConnectorMarketChangedPayload struct { ConnectorKey *string `json:"connectorKey,omitempty"` OperationId *string `json:"operationId,omitempty"` Revision int `json:"revision"` Cursor *int `json:"cursor,omitempty"` } type PreferencesAgentComposerDefaultsChangedPayload struct { AgentTargetId string `json:"agentTargetId"` } type PreferencesAgentComposerDefaultsPatchRequestedPayload struct { AgentTargetId string `json:"agentTargetId"` Patch struct { CodexSaverMode *bool `json:"codexSaverMode,omitempty"` RtkSaverMode *bool `json:"rtkSaverMode,omitempty"` Model *string `json:"model,omitempty"` PermissionModeId *string `json:"permissionModeId,omitempty"` ReasoningEffort *string `json:"reasoningEffort,omitempty"` Speed *string `json:"speed,omitempty"` } `json:"patch"` ClientMutationId *string `json:"clientMutationId,omitempty"` } type PreferencesAgentSessionLaunchModePatchRequestedPayload struct { WorkspaceId string `json:"workspaceId"` ProjectSectionKey string `json:"projectSectionKey"` Mode string `json:"mode"` } type PreferencesDesktopUpdateRequestedPayload struct { Preferences PreferencesDesktopPreferences `json:"preferences"` } type PreferencesDesktopUpdatedPayload struct { Initialized bool `json:"initialized"` Preferences PreferencesDesktopPreferences `json:"preferences"` } type UserProjectUpdatedPayload struct { Projects []UserUserProject `json:"projects"` } type WorkspaceAppUpdatedPayload struct { App WorkspaceWorkspaceApp `json:"app"` } type WorkspaceAppfactoryJobUpdatedPayload struct { Job WorkspaceWorkspaceAppFactoryJob `json:"job"` } type WorkspaceIssueUpdatedPayload struct { WorkspaceId string `json:"workspaceId"` IssueId string `json:"issueId"` TaskId *string `json:"taskId,omitempty"` RunId *string `json:"runId,omitempty"` ChangeKind string `json:"changeKind"` } type WorkspaceTuttimodeUpdatedPayload struct { AgentSessionId string `json:"agentSessionId"` ActivationId string `json:"activationId"` Revision int `json:"revision"` Status string `json:"status"` ChangeKind string `json:"changeKind"` } type WorkspaceWorkbenchNodeLaunchRequestedPayload struct { WorkspaceId string `json:"workspaceId"` TypeId string `json:"typeId"` Source string `json:"source"` LaunchSource *string `json:"launchSource,omitempty"` DockEntryId *string `json:"dockEntryId,omitempty"` RequestId *string `json:"requestId,omitempty"` Payload any `json:"payload,omitempty"` } type WorkspaceWorkflowUpdatedPayload struct { WorkflowId string `json:"workflowId"` SourceSessionId string `json:"sourceSessionId"` CheckpointId string `json:"checkpointId"` ChangeKind string `json:"changeKind"` } type AccountUserpresenceUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload AccountUserpresenceUpdatedPayload `json:"payload"` } type AgentActivityUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload AgentActivityUpdatedPayload `json:"payload"` } type AgentAutomationRulesChangedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload AgentAutomationRulesChangedPayload `json:"payload"` } type AgentCollaborationUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload AgentCollaborationUpdatedPayload `json:"payload"` } type AgentModelCatalogInvalidatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload AgentModelCatalogInvalidatedPayload `json:"payload"` } type AgentModelConfigurationChangedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload AgentModelConfigurationChangedPayload `json:"payload"` } type AgentQuickpromptUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload AgentQuickpromptUpdatedPayload `json:"payload"` } type AgentSideUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload AgentSideUpdatedPayload `json:"payload"` } type AnalyticsDebugReportedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload AnalyticsDebugReportedPayload `json:"payload"` } type ConnectorMarketChangedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload ConnectorMarketChangedPayload `json:"payload"` } type PreferencesAgentComposerDefaultsChangedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload PreferencesAgentComposerDefaultsChangedPayload `json:"payload"` } type PreferencesAgentComposerDefaultsPatchRequestedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload PreferencesAgentComposerDefaultsPatchRequestedPayload `json:"payload"` } type PreferencesAgentSessionLaunchModePatchRequestedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload PreferencesAgentSessionLaunchModePatchRequestedPayload `json:"payload"` } type PreferencesDesktopUpdateRequestedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload PreferencesDesktopUpdateRequestedPayload `json:"payload"` } type PreferencesDesktopUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload PreferencesDesktopUpdatedPayload `json:"payload"` } type UserProjectUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload UserProjectUpdatedPayload `json:"payload"` } type WorkspaceAppUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload WorkspaceAppUpdatedPayload `json:"payload"` } type WorkspaceAppfactoryJobUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload WorkspaceAppfactoryJobUpdatedPayload `json:"payload"` } type WorkspaceIssueUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload WorkspaceIssueUpdatedPayload `json:"payload"` } type WorkspaceTuttimodeUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload WorkspaceTuttimodeUpdatedPayload `json:"payload"` } type WorkspaceWorkbenchNodeLaunchRequestedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload WorkspaceWorkbenchNodeLaunchRequestedPayload `json:"payload"` } type WorkspaceWorkflowUpdatedEvent struct { ID string `json:"id"` Topic Topic `json:"topic"` Version int `json:"version"` EmittedAt string `json:"emittedAt"` Scope *EventScope `json:"scope,omitempty"` Payload WorkspaceWorkflowUpdatedPayload `json:"payload"` } type ClientSubscribeFrame struct { Kind string `json:"kind"` RequestID string `json:"requestId"` Topics []Topic `json:"topics"` Scope *EventScope `json:"scope,omitempty"` } type ClientUnsubscribeFrame struct { Kind string `json:"kind"` RequestID string `json:"requestId"` Topics []Topic `json:"topics"` Scope *EventScope `json:"scope,omitempty"` } type ClientPublishFrame struct { Kind string `json:"kind"` RequestID string `json:"requestId"` Event EventEnvelope `json:"event"` } type ClientPingFrame struct { Kind string `json:"kind"` RequestID string `json:"requestId"` SentAt string `json:"sentAt"` } type ServerReadyFrame struct { Kind string `json:"kind"` ProtocolVersion int `json:"protocolVersion"` CatalogRevision string `json:"catalogRevision"` ServerTime string `json:"serverTime"` } type ServerAckFrame struct { Kind string `json:"kind"` RequestID string `json:"requestId"` AcceptedAt string `json:"acceptedAt"` } type ServerEventFrame struct { Kind string `json:"kind"` Event EventEnvelope `json:"event"` } type ServerErrorFrame struct { Kind string `json:"kind"` RequestID *string `json:"requestId,omitempty"` Code string `json:"code"` Message string `json:"message"` Retryable *bool `json:"retryable,omitempty"` } type ServerPongFrame struct { Kind string `json:"kind"` RequestID string `json:"requestId"` SentAt string `json:"sentAt"` } var BusinessEventDefinitions = []EventDefinition{ { Topic: TopicAccountUserpresenceUpdated, Version: 1, Direction: DirectionServerToClient, Owner: "core", Scope: ScopeNameGlobal, }, { Topic: TopicAgentActivityUpdated, Version: 2, Direction: DirectionServerToClient, Owner: "agent", Scope: ScopeNameWorkspace, }, { Topic: TopicAgentAutomationRulesChanged, Version: 1, Direction: DirectionServerToClient, Owner: "agent", Scope: ScopeNameWorkspace, }, { Topic: TopicAgentCollaborationUpdated, Version: 1, Direction: DirectionServerToClient, Owner: "agent", Scope: ScopeNameWorkspace, }, { Topic: TopicAgentModelCatalogInvalidated, Version: 1, Direction: DirectionServerToClient, Owner: "agent", Scope: ScopeNameGlobal, }, { Topic: TopicAgentModelConfigurationChanged, Version: 1, Direction: DirectionServerToClient, Owner: "agent", Scope: ScopeNameWorkspace, }, { Topic: TopicAgentQuickpromptUpdated, Version: 1, Direction: DirectionServerToClient, Owner: "core", Scope: ScopeNameGlobal, }, { Topic: TopicAgentSideUpdated, Version: 1, Direction: DirectionServerToClient, Owner: "agent", Scope: ScopeNameWorkspace, }, { Topic: TopicAnalyticsDebugReported, Version: 1, Direction: DirectionServerToClient, Owner: "desktop", Scope: ScopeNameDesktop, }, { Topic: TopicConnectorMarketChanged, Version: 1, Direction: DirectionServerToClient, Owner: "core", Scope: ScopeNameGlobal, }, { Topic: TopicPreferencesAgentComposerDefaultsChanged, Version: 1, Direction: DirectionServerToClient, Owner: "core", Scope: ScopeNameDesktop, }, { Topic: TopicPreferencesAgentComposerDefaultsPatchRequested, Version: 1, Direction: DirectionClientToServer, Owner: "core", Scope: ScopeNameDesktop, }, { Topic: TopicPreferencesAgentSessionLaunchModePatchRequested, Version: 1, Direction: DirectionClientToServer, Owner: "core", Scope: ScopeNameDesktop, }, { Topic: TopicPreferencesDesktopUpdateRequested, Version: 1, Direction: DirectionClientToServer, Owner: "core", Scope: ScopeNameDesktop, }, { Topic: TopicPreferencesDesktopUpdated, Version: 1, Direction: DirectionServerToClient, Owner: "core", Scope: ScopeNameDesktop, }, { Topic: TopicUserProjectUpdated, Version: 2, Direction: DirectionServerToClient, Owner: "core", Scope: ScopeNameGlobal, }, { Topic: TopicWorkspaceAppUpdated, Version: 1, Direction: DirectionServerToClient, Owner: "core", Scope: ScopeNameWorkspace, }, { Topic: TopicWorkspaceAppfactoryJobUpdated, Version: 1, Direction: DirectionServerToClient, Owner: "core", Scope: ScopeNameWorkspace, }, { Topic: TopicWorkspaceIssueUpdated, Version: 1, Direction: DirectionServerToClient, Owner: "workspace", Scope: ScopeNameWorkspace, }, { Topic: TopicWorkspaceTuttimodeUpdated, Version: 1, Direction: DirectionServerToClient, Owner: "workspace", Scope: ScopeNameWorkspace, }, { Topic: TopicWorkspaceWorkbenchNodeLaunchRequested, Version: 1, Direction: DirectionServerToClient, Owner: "core", Scope: ScopeNameWorkspace, }, { Topic: TopicWorkspaceWorkflowUpdated, Version: 1, Direction: DirectionServerToClient, Owner: "workspace", Scope: ScopeNameWorkspace, }, } var businessEventDefinitionByTopic = map[Topic]EventDefinition{ TopicAccountUserpresenceUpdated: BusinessEventDefinitions[0], TopicAgentActivityUpdated: BusinessEventDefinitions[1], TopicAgentAutomationRulesChanged: BusinessEventDefinitions[2], TopicAgentCollaborationUpdated: BusinessEventDefinitions[3], TopicAgentModelCatalogInvalidated: BusinessEventDefinitions[4], TopicAgentModelConfigurationChanged: BusinessEventDefinitions[5], TopicAgentQuickpromptUpdated: BusinessEventDefinitions[6], TopicAgentSideUpdated: BusinessEventDefinitions[7], TopicAnalyticsDebugReported: BusinessEventDefinitions[8], TopicConnectorMarketChanged: BusinessEventDefinitions[9], TopicPreferencesAgentComposerDefaultsChanged: BusinessEventDefinitions[10], TopicPreferencesAgentComposerDefaultsPatchRequested: BusinessEventDefinitions[11], TopicPreferencesAgentSessionLaunchModePatchRequested: BusinessEventDefinitions[12], TopicPreferencesDesktopUpdateRequested: BusinessEventDefinitions[13], TopicPreferencesDesktopUpdated: BusinessEventDefinitions[14], TopicUserProjectUpdated: BusinessEventDefinitions[15], TopicWorkspaceAppUpdated: BusinessEventDefinitions[16], TopicWorkspaceAppfactoryJobUpdated: BusinessEventDefinitions[17], TopicWorkspaceIssueUpdated: BusinessEventDefinitions[18], TopicWorkspaceTuttimodeUpdated: BusinessEventDefinitions[19], TopicWorkspaceWorkbenchNodeLaunchRequested: BusinessEventDefinitions[20], TopicWorkspaceWorkflowUpdated: BusinessEventDefinitions[21], } var ClientToServerTopics = []Topic{ TopicPreferencesAgentComposerDefaultsPatchRequested, TopicPreferencesAgentSessionLaunchModePatchRequested, TopicPreferencesDesktopUpdateRequested, } var ServerToClientTopics = []Topic{ TopicAccountUserpresenceUpdated, TopicAgentActivityUpdated, TopicAgentAutomationRulesChanged, TopicAgentCollaborationUpdated, TopicAgentModelCatalogInvalidated, TopicAgentModelConfigurationChanged, TopicAgentQuickpromptUpdated, TopicAgentSideUpdated, TopicAnalyticsDebugReported, TopicConnectorMarketChanged, TopicPreferencesAgentComposerDefaultsChanged, TopicPreferencesDesktopUpdated, TopicUserProjectUpdated, TopicWorkspaceAppUpdated, TopicWorkspaceAppfactoryJobUpdated, TopicWorkspaceIssueUpdated, TopicWorkspaceTuttimodeUpdated, TopicWorkspaceWorkbenchNodeLaunchRequested, TopicWorkspaceWorkflowUpdated, } func LookupEventDefinition(topic Topic) (EventDefinition, bool) { definition, ok := businessEventDefinitionByTopic[topic] return definition, ok } func IsKnownTopic(topic Topic) bool { _, ok := businessEventDefinitionByTopic[topic] return ok } func IsClientToServerTopic(topic Topic) bool { switch topic { case TopicPreferencesAgentComposerDefaultsPatchRequested: return true case TopicPreferencesAgentSessionLaunchModePatchRequested: return true case TopicPreferencesDesktopUpdateRequested: return true default: return false } } func IsServerToClientTopic(topic Topic) bool { switch topic { case TopicAccountUserpresenceUpdated: return true case TopicAgentActivityUpdated: return true case TopicAgentAutomationRulesChanged: return true case TopicAgentCollaborationUpdated: return true case TopicAgentModelCatalogInvalidated: return true case TopicAgentModelConfigurationChanged: return true case TopicAgentQuickpromptUpdated: return true case TopicAgentSideUpdated: return true case TopicAnalyticsDebugReported: return true case TopicConnectorMarketChanged: return true case TopicPreferencesAgentComposerDefaultsChanged: return true case TopicPreferencesDesktopUpdated: return true case TopicUserProjectUpdated: return true case TopicWorkspaceAppUpdated: return true case TopicWorkspaceAppfactoryJobUpdated: return true case TopicWorkspaceIssueUpdated: return true case TopicWorkspaceTuttimodeUpdated: return true case TopicWorkspaceWorkbenchNodeLaunchRequested: return true case TopicWorkspaceWorkflowUpdated: return true default: return false } } func PayloadPrototypeForTopic(topic Topic) (any, bool) { switch topic { case TopicAccountUserpresenceUpdated: return &AccountUserpresenceUpdatedPayload{}, true case TopicAgentActivityUpdated: return &AgentActivityUpdatedPayload{}, true case TopicAgentAutomationRulesChanged: return &AgentAutomationRulesChangedPayload{}, true case TopicAgentCollaborationUpdated: return &AgentCollaborationUpdatedPayload{}, true case TopicAgentModelCatalogInvalidated: return &AgentModelCatalogInvalidatedPayload{}, true case TopicAgentModelConfigurationChanged: return &AgentModelConfigurationChangedPayload{}, true case TopicAgentQuickpromptUpdated: return &AgentQuickpromptUpdatedPayload{}, true case TopicAgentSideUpdated: return &AgentSideUpdatedPayload{}, true case TopicAnalyticsDebugReported: return &AnalyticsDebugReportedPayload{}, true case TopicConnectorMarketChanged: return &ConnectorMarketChangedPayload{}, true case TopicPreferencesAgentComposerDefaultsChanged: return &PreferencesAgentComposerDefaultsChangedPayload{}, true case TopicPreferencesAgentComposerDefaultsPatchRequested: return &PreferencesAgentComposerDefaultsPatchRequestedPayload{}, true case TopicPreferencesAgentSessionLaunchModePatchRequested: return &PreferencesAgentSessionLaunchModePatchRequestedPayload{}, true case TopicPreferencesDesktopUpdateRequested: return &PreferencesDesktopUpdateRequestedPayload{}, true case TopicPreferencesDesktopUpdated: return &PreferencesDesktopUpdatedPayload{}, true case TopicUserProjectUpdated: return &UserProjectUpdatedPayload{}, true case TopicWorkspaceAppUpdated: return &WorkspaceAppUpdatedPayload{}, true case TopicWorkspaceAppfactoryJobUpdated: return &WorkspaceAppfactoryJobUpdatedPayload{}, true case TopicWorkspaceIssueUpdated: return &WorkspaceIssueUpdatedPayload{}, true case TopicWorkspaceTuttimodeUpdated: return &WorkspaceTuttimodeUpdatedPayload{}, true case TopicWorkspaceWorkbenchNodeLaunchRequested: return &WorkspaceWorkbenchNodeLaunchRequestedPayload{}, true case TopicWorkspaceWorkflowUpdated: return &WorkspaceWorkflowUpdatedPayload{}, true default: return nil, false } } func EventPrototypeForTopic(topic Topic) (any, bool) { switch topic { case TopicAccountUserpresenceUpdated: return &AccountUserpresenceUpdatedEvent{}, true case TopicAgentActivityUpdated: return &AgentActivityUpdatedEvent{}, true case TopicAgentAutomationRulesChanged: return &AgentAutomationRulesChangedEvent{}, true case TopicAgentCollaborationUpdated: return &AgentCollaborationUpdatedEvent{}, true case TopicAgentModelCatalogInvalidated: return &AgentModelCatalogInvalidatedEvent{}, true case TopicAgentModelConfigurationChanged: return &AgentModelConfigurationChangedEvent{}, true case TopicAgentQuickpromptUpdated: return &AgentQuickpromptUpdatedEvent{}, true case TopicAgentSideUpdated: return &AgentSideUpdatedEvent{}, true case TopicAnalyticsDebugReported: return &AnalyticsDebugReportedEvent{}, true case TopicConnectorMarketChanged: return &ConnectorMarketChangedEvent{}, true case TopicPreferencesAgentComposerDefaultsChanged: return &PreferencesAgentComposerDefaultsChangedEvent{}, true case TopicPreferencesAgentComposerDefaultsPatchRequested: return &PreferencesAgentComposerDefaultsPatchRequestedEvent{}, true case TopicPreferencesAgentSessionLaunchModePatchRequested: return &PreferencesAgentSessionLaunchModePatchRequestedEvent{}, true case TopicPreferencesDesktopUpdateRequested: return &PreferencesDesktopUpdateRequestedEvent{}, true case TopicPreferencesDesktopUpdated: return &PreferencesDesktopUpdatedEvent{}, true case TopicUserProjectUpdated: return &UserProjectUpdatedEvent{}, true case TopicWorkspaceAppUpdated: return &WorkspaceAppUpdatedEvent{}, true case TopicWorkspaceAppfactoryJobUpdated: return &WorkspaceAppfactoryJobUpdatedEvent{}, true case TopicWorkspaceIssueUpdated: return &WorkspaceIssueUpdatedEvent{}, true case TopicWorkspaceTuttimodeUpdated: return &WorkspaceTuttimodeUpdatedEvent{}, true case TopicWorkspaceWorkbenchNodeLaunchRequested: return &WorkspaceWorkbenchNodeLaunchRequestedEvent{}, true case TopicWorkspaceWorkflowUpdated: return &WorkspaceWorkflowUpdatedEvent{}, true default: return nil, false } }