export const ipcChannels = {
  appInfo: 'app:get-info',
  appShow: 'app:show',
  appHide: 'app:hide',
  windowMinimize: 'window:minimize',
  windowToggleMaximize: 'window:toggle-maximize',
  windowClose: 'window:close',
  windowIsMaximized: 'window:is-maximized',
  windowMaximizedChanged: 'window:maximized-changed',
  appClearLocalData: 'app:clear-local-data',
  conversationNew: 'conversation:new',
  settingsOpen: 'settings:open',
  agentStatus: 'agent:get-status',
  agentRun: 'agent:run',
  agentCancel: 'agent:cancel',
  agentApprovalRespond: 'agent:approval:respond',
  agentQuestionRespond: 'agent:question:respond',
  agentEvent: 'agent:event',
  browserInteract: 'browser:interact',
  browserStop: 'browser:stop',
  browserState: 'browser:state',
  runtimeSettingsGet: 'settings:runtime:get',
  runtimeSettingsUpdate: 'settings:runtime:update',
  runtimeSettingsSelectWorkspace: 'settings:runtime:select-workspace',
  runtimeSettingsDetect: 'settings:runtime:detect',
  runtimeSettingsSelectFile: 'settings:runtime:select-file',
  runtimeSettingsOpenConfig: 'settings:runtime:open-config',
  runtimeSettingsTestModel: 'settings:runtime:test-model',
  runtimeSettingsTest: 'settings:runtime:test',
  channelSettingsGet: 'settings:channels:get',
  channelSettingsApply: 'settings:channels:apply',
  channelSettingsTest: 'settings:channels:test',
  weixinBindingGet: 'settings:channels:weixin:binding:get',
  weixinBindingStart: 'settings:channels:weixin:binding:start',
  weixinBindingVerify: 'settings:channels:weixin:binding:verify',
  weixinBindingDisconnect:
    'settings:channels:weixin:binding:disconnect',
  weixinBindingChanged:
    'settings:channels:weixin:binding:changed',
  remoteChannelActivity: 'channels:remote-activity',
  applicationSettingsGet: 'settings:application:get',
  applicationSettingsUpdate: 'settings:application:update',
  versionCheck: 'application:update:check',
  versionOpenReleasePage: 'application:update:open-release-page',
  versionCheckResult: 'application:update:result',
  speechModelsGet: 'settings:speech-models:get',
  speechModelsInstall: 'settings:speech-models:install',
  speechModelsCancel: 'settings:speech-models:cancel',
  speechModelsRemove: 'settings:speech-models:remove',
  speechModelsSelect: 'settings:speech-models:select',
  speechModelsImportLocal: 'settings:speech-models:import-local',
  speechModelsOpenRepository: 'settings:speech-models:open-repository',
  speechModelsOpenDirectory: 'settings:speech-models:open-directory',
  speechTranscribe: 'speech:transcribe',
  speechTranscriptionCancel: 'speech:transcription:cancel',
  embeddingSettingsGet: 'settings:embedding:get',
  embeddingDiagnose: 'settings:embedding:diagnose',
  embeddingIndexRebuild: 'settings:embedding:index:rebuild',
  embeddingIndexCancel: 'settings:embedding:index:cancel',
  embeddingIndexStatusChanged: 'settings:embedding:index:status-changed',
  projectsList: 'projects:list',
  projectsCreate: 'projects:create',
  projectsUpdate: 'projects:update',
  projectsSetArchived: 'projects:set-archived',
  projectsDelete: 'projects:delete',
  conversationsList: 'conversations:list',
  conversationsReplace: 'conversations:replace',
  conversationsChanged: 'conversations:changed',
  workspaceChangesGet: 'workspace:changes:get',
  workspaceDirectoryList: 'workspace:directory:list',
  workspaceFileRead: 'workspace:file:read',
  workspacePathOpen: 'workspace:path:open',
  tasksList: 'tasks:list',
  tasksSetStatus: 'tasks:set-status',
  tokenUsageSummary: 'usage:token-summary',
  artifactsList: 'artifacts:list',
  artifactsGet: 'artifacts:get',
  artifactsImportFiles: 'artifacts:import-files',
  memoryList: 'memory:list',
  memoryCreate: 'memory:create',
  memorySetStatus: 'memory:set-status',
  memoryRemove: 'memory:remove',
  schedulesList: 'schedules:list',
  schedulesCreate: 'schedules:create',
  schedulesSetEnabled: 'schedules:set-enabled',
  schedulesRemove: 'schedules:remove',
  schedulesRunNow: 'schedules:run-now',
  heartbeatsList: 'heartbeats:list',
  heartbeatsCreate: 'heartbeats:create',
  heartbeatsUpdate: 'heartbeats:update',
  heartbeatsSetPaused: 'heartbeats:set-paused',
  heartbeatsRemove: 'heartbeats:remove',
  heartbeatsRunNow: 'heartbeats:run-now',
  heartbeatsHistory: 'heartbeats:history',
  expertsList: 'experts:list',
  expertsCreate: 'experts:create',
  expertsUpdate: 'experts:update',
  expertsRemove: 'experts:remove',
  capabilitiesSnapshot: 'capabilities:snapshot',
  capabilitiesImportSkill: 'capabilities:skill:import',
  capabilitiesRemoveSkill: 'capabilities:skill:remove',
  capabilitiesToggleSkill: 'capabilities:skill:toggle',
  capabilitiesAssignSkill: 'capabilities:skill:assign',
  capabilitiesSaveMcp: 'capabilities:mcp:save',
  capabilitiesRemoveMcp: 'capabilities:mcp:remove',
  capabilitiesTestMcp: 'capabilities:mcp:test',
  capabilitiesToggleComputer: 'capabilities:computer:toggle',
  capabilitiesConfigureComputer: 'capabilities:computer:configure',
  capabilitiesDiagnoseComputer: 'capabilities:computer:diagnose',
  capabilitiesCreateBrowserProfile: 'capabilities:browser-profile:create',
  capabilitiesRenameBrowserProfile: 'capabilities:browser-profile:rename',
  capabilitiesDefaultBrowserProfile: 'capabilities:browser-profile:default',
  capabilitiesRemoveBrowserProfile: 'capabilities:browser-profile:remove',
  contextSelectFiles: 'context:select-files',
  contextCaptureScreen: 'context:capture-screen',
  contextListWindows: 'context:list-windows',
  contextCaptureWindow: 'context:capture-window',
  contextReadClipboard: 'context:read-clipboard',
  contextRemove: 'context:remove',
  magicNotesList: 'magic-notes:list',
  magicNotesGet: 'magic-notes:get',
  magicNotesCreate: 'magic-notes:create',
  magicNotesUpdate: 'magic-notes:update',
  magicNotesDelete: 'magic-notes:delete',
  magicNotesCreateEntry: 'magic-notes:create-entry',
  magicNotesUpdateEntry: 'magic-notes:update-entry',
  magicNotesDeleteEntry: 'magic-notes:delete-entry',
  magicNotesAnalyze: 'magic-notes:analyze',
  magicNotesAnalyzeDraft: 'magic-notes:analyze-draft',
  magicTodosList: 'magic-todos:list',
  magicTodosAnalyze: 'magic-todos:analyze',
  knowledgeSnapshot: 'knowledge:snapshot',
  knowledgeCreateLibrary: 'knowledge:library:create',
  knowledgeUpdateLibrary: 'knowledge:library:update',
  knowledgeDeleteLibrary: 'knowledge:library:delete',
  knowledgeSelectFiles: 'knowledge:source:select-files',
  knowledgeSelectDirectory: 'knowledge:source:select-directory',
  knowledgeImportPaths: 'knowledge:source:import-paths',
  knowledgeImportUrl: 'knowledge:source:import-url',
  knowledgeSyncSource: 'knowledge:source:sync',
  knowledgePauseSource: 'knowledge:source:pause',
  knowledgeRetrySource: 'knowledge:source:retry',
  knowledgeRemoveSource: 'knowledge:source:remove',
  knowledgeSearch: 'knowledge:search',
  knowledgeCreateEntity: 'knowledge:entity:create',
  knowledgeUpdateEntity: 'knowledge:entity:update',
  knowledgeMoveEntity: 'knowledge:entity:move',
  knowledgeDeleteEntity: 'knowledge:entity:delete',
  knowledgeMergeEntities: 'knowledge:entity:merge',
  knowledgeCreateRelation: 'knowledge:relation:create',
  knowledgeUpdateRelation: 'knowledge:relation:update',
  knowledgeDeleteRelation: 'knowledge:relation:delete'
} as const
