export const ipcChannels = {
  describeSidecarCapabilities: 'sidecar:describe-capabilities',
  refreshSidecarCapabilities: 'sidecar:refresh-capabilities',
  loadWorkspace: 'workspace:load',
  addProject: 'workspace:add-project',
  removeProject: 'workspace:remove-project',
  resolveWorkspaceDiscoveredTooling: 'workspace:resolve-discovered-tooling',
  refreshProjectGitContext: 'projects:refresh-git-context',
  getProjectGitDetails: 'projects:get-git-details',
  getProjectGitFilePreview: 'projects:get-git-file-preview',
  rescanProjectConfigs: 'project:rescan-configs',
  rescanProjectCustomization: 'project:rescan-customization',
  resolveProjectDiscoveredTooling: 'project:resolve-discovered-tooling',
  setProjectAgentProfileEnabled: 'project:set-agent-profile-enabled',
  savePattern: 'patterns:save',
  deletePattern: 'patterns:delete',
  setPatternFavorite: 'patterns:set-favorite',
  saveWorkflow: 'workflows:save',
  deleteWorkflow: 'workflows:delete',
  listWorkflowReferences: 'workflows:list-references',
  createWorkflowSession: 'workflows:create-session',
  setTheme: 'settings:set-theme',
  setTerminalHeight: 'settings:set-terminal-height',
  setNotificationsEnabled: 'settings:set-notifications-enabled',
  setMinimizeToTray: 'settings:set-minimize-to-tray',
  setGitAutoRefreshEnabled: 'settings:set-git-auto-refresh-enabled',
  checkForUpdates: 'app:check-for-updates',
  installUpdate: 'app:install-update',
  saveMcpServer: 'tooling:mcp:save',
  deleteMcpServer: 'tooling:mcp:delete',
  saveLspProfile: 'tooling:lsp:save',
  deleteLspProfile: 'tooling:lsp:delete',
  saveWorkspaceAgent: 'workspace-agents:save',
  deleteWorkspaceAgent: 'workspace-agents:delete',
  describeTerminal: 'terminal:describe',
  createTerminal: 'terminal:create',
  restartTerminal: 'terminal:restart',
  writeTerminal: 'terminal:write',
  resizeTerminal: 'terminal:resize',
  killTerminal: 'terminal:kill',
  updateSessionTooling: 'sessions:update-tooling',
  updateSessionApprovalSettings: 'sessions:update-approval-settings',
  createSession: 'sessions:create',
  duplicateSession: 'sessions:duplicate',
  branchSession: 'sessions:branch',
  setSessionMessagePinned: 'sessions:set-message-pinned',
  renameSession: 'sessions:rename',
  setSessionPinned: 'sessions:set-pinned',
  setSessionArchived: 'sessions:set-archived',
  deleteSession: 'sessions:delete',
  regenerateSessionMessage: 'sessions:regenerate-message',
  editAndResendSessionMessage: 'sessions:edit-and-resend-message',
  sendSessionMessage: 'sessions:send-message',
  cancelSessionTurn: 'sessions:cancel-turn',
  resolveSessionApproval: 'sessions:resolve-approval',
  resolveSessionUserInput: 'sessions:resolve-user-input',
  setSessionInteractionMode: 'sessions:set-interaction-mode',
  dismissSessionPlanReview: 'sessions:dismiss-plan-review',
  dismissSessionMcpAuth: 'sessions:dismiss-mcp-auth',
  startSessionMcpAuth: 'sessions:start-mcp-auth',
  discardSessionRunGitChanges: 'sessions:discard-run-git-changes',
  suggestProjectGitCommitMessage: 'sessions:suggest-git-commit-message',
  querySessions: 'sessions:query',
  updateSessionModelConfig: 'sessions:update-model-config',
  stageProjectGitFiles: 'git:stage-files',
  unstageProjectGitFiles: 'git:unstage-files',
  commitProjectGitChanges: 'git:commit',
  pushProjectGit: 'git:push',
  fetchProjectGit: 'git:fetch',
  pullProjectGit: 'git:pull',
  createProjectGitBranch: 'git:create-branch',
  switchProjectGitBranch: 'git:switch-branch',
  deleteProjectGitBranch: 'git:delete-branch',
  selectProject: 'selection:project',
  selectPattern: 'selection:pattern',
  selectSession: 'selection:session',
  openAppDataFolder: 'troubleshooting:open-app-data-folder',
  resetLocalWorkspace: 'troubleshooting:reset-local-workspace',
  terminalData: 'terminal:data',
  terminalExit: 'terminal:exit',
  workspaceUpdated: 'workspace:updated',
  sessionEvent: 'sessions:event',
  updateStatus: 'app:update-status',
  getQuota: 'sidecar:get-quota',
  trayCreateScratchpad: 'tray:create-scratchpad',
} as const;
