refactor: group repository source-control AI settings (#34278)

This commit is contained in:
Neil
2026-10-26 23:05:39 -07:00
committed by GitHub
parent 0fcc74ea2a
commit ec8f4dd8bd
16 changed files with 135 additions and 135 deletions
+2 -2
View File
@@ -8744,7 +8744,7 @@
"src/renderer/src/components/settings/RepositoryGitHubAccountSection.inventory-lifetime.test.tsx": 587,
"src/renderer/src/components/settings/RepositoryGitHubAccountSection.test.tsx": 662,
"src/renderer/src/components/settings/RepositoryPane.test.ts": 2778,
"src/renderer/src/components/settings/RepositorySourceControlAiSection.test.ts": 365,
"src/renderer/src/components/settings/repository/source-control/RepositorySourceControlAiSection.test.ts": 365,
"src/renderer/src/components/settings/RuntimeEnvironmentsPane.test.ts": 201,
"src/renderer/src/components/settings/RuntimeHostAccessForm.test.tsx": 307,
"src/renderer/src/components/settings/RuntimePairingGeneratorForm.test.tsx": 306,
@@ -8824,7 +8824,7 @@
"src/renderer/src/components/settings/notification-host-pending-save.test.tsx": 1663,
"src/renderer/src/components/settings/plugin-install-source.test.ts": 110,
"src/renderer/src/components/settings/provider-account-visibility.test.ts": 49,
"src/renderer/src/components/settings/repository-source-control-ai-global-ux.test.ts": 585,
"src/renderer/src/components/settings/repository/source-control/repository-source-control-ai-global-ux.test.ts": 585,
"src/renderer/src/components/settings/repository/RepositoryJiraProjectSection.test.tsx": 292,
"src/renderer/src/components/settings/repository/RepositoryPaneDraftInput.test.tsx": 428,
"src/renderer/src/components/settings/repository/execution/RepositoryHooksSection.test.ts": 715,
@@ -12,7 +12,7 @@ import { RepositoryHooksSection } from './repository/execution/RepositoryHooksSe
import { McpConfigSection } from './McpConfigSection'
import { WorktreeSymlinksSection } from './WorktreeSymlinksSection'
import { SparsePresetSettingsSection } from './SparsePresetSettingsSection'
import { RepositorySourceControlAiSection } from './RepositorySourceControlAiSection'
import { RepositorySourceControlAiSection } from './repository/source-control/RepositorySourceControlAiSection'
import { SearchableSetting } from './SearchableSetting'
import { RepositoryRemoveProjectButton } from './RepositoryRemoveProjectButton'
import { matchesSettingsSearch } from './settings-search'
@@ -9,7 +9,7 @@ import {
normalizeRepoAiDraft,
readCompleteRecipeForDraft,
setActionOverride
} from './repository-source-control-ai-draft'
} from './repository/source-control/repository-source-control-ai-draft'
type RepoActionRecipe = NonNullable<
NonNullable<RepoSourceControlAiOverrides['actionOverrides']>[SourceControlActionId]
@@ -12,9 +12,9 @@ import { liftActionPermissionArgs } from '../../../../shared/source-control-acti
import {
readActionRecipeTextDraft,
type ActionRecipeTextDraft
} from './repository-source-control-ai-draft'
} from './repository/source-control/repository-source-control-ai-draft'
import { retireActionLaunchPreferences } from './source-control-ai-action-recipe-draft'
import { readInheritedCommandTemplate } from './repository-source-control-ai-labels'
import { readInheritedCommandTemplate } from './repository/source-control/repository-source-control-ai-labels'
export function resetActionDraftLaunchPreferences(
current: Partial<Record<SourceControlActionId, ActionRecipeTextDraft>>,
@@ -1,33 +1,31 @@
import { useAppStore } from '@/store'
import type { RepositorySourceControlAiActionRowsProps } from './repository-source-control-ai-action-rows-props'
import { useAppStore } from '@/store/index'
import { useAgentMenuObservation } from '@/components/tab-bar/use-new-tab-agent-menu-rows'
import { sourceControlRepoAgentRows } from '@/lib/source-control-agent-picker'
import {
SourceControlActionAgentPickerView,
sourceControlActionAgentPreview,
canSaveSourceControlActionSurface
} from './SourceControlActionAgentPicker'
import { SourceControlActionArguments } from './SourceControlActionArguments'
} from '../../SourceControlActionAgentPicker'
import { SourceControlActionArguments } from '../../SourceControlActionArguments'
import type React from 'react'
import { Terminal } from 'lucide-react'
import type { TuiAgent } from '../../../../shared/tui-agent'
import { CUSTOM_AGENT_ID, isCustomAgentId } from '../../../../shared/commit-message-agent-spec'
import type {
RepoSourceControlAiOverrides,
SourceControlAiSettings
} from '../../../../shared/source-control-ai-types'
import {
CUSTOM_AGENT_ID,
isCustomAgentId
} from '../../../../../../shared/commit-message-agent-spec'
import {
SOURCE_CONTROL_ACTION_IDS,
SOURCE_CONTROL_ACTION_LABELS,
type SourceControlActionRecipe,
type SourceControlActionId,
type SourceControlActionLaunchPreferences
} from '../../../../shared/source-control-ai-actions'
import { Input } from '../ui/input'
import { Label } from '../ui/label'
import { Button } from '../ui/button'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select'
SOURCE_CONTROL_ACTION_LABELS
} from '../../../../../../shared/source-control-ai-actions'
import { Input } from '../../../ui/input'
import { Label } from '../../../ui/label'
import { Button } from '../../../ui/button'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../../ui/select'
import { AgentIcon } from '@/lib/agent-catalog'
import { SourceControlActionVariableChips } from '../source-control/SourceControlActionVariableChips'
import { SourceControlActionVariableChips } from '../../../source-control/SourceControlActionVariableChips'
import {
getActionDescriptions,
SOURCE_CONTROL_TEXT_ACTION_ID_SET,
@@ -35,7 +33,7 @@ import {
getSourceControlActionAgentSupportText,
getSourceControlActionAgentWarningText,
getSourceControlAgentArgsPlaceholder
} from './source-control-action-recipe-options'
} from '../../source-control-action-recipe-options'
import {
ACTION_MODE_INHERIT,
ACTION_MODE_OVERRIDE,
@@ -49,46 +47,17 @@ import {
resolveAgentArgsPlaceholderAgent
} from './repository-source-control-ai-labels'
import { hasOwnActionOverride } from './repository-source-control-ai-draft'
import { getRepositorySourceControlAiActionRecipeSectionId } from './repository-settings-targets'
import { getRepositorySourceControlAiActionRecipeSectionId } from '../../repository-settings-targets'
import { translate } from '@/i18n/i18n'
import { SourceControlActionOptionField } from './SourceControlActionOptionField'
import { SourceControlActionOptionField } from '../../SourceControlActionOptionField'
import {
useSourceControlActionAgentInventory,
useSourceControlActionAgent
} from './use-source-control-action-agent'
import { resolveSourceControlActionRecipe } from '../../../../shared/source-control-ai-operation-policy'
import { shouldShowSourceControlActionArguments } from './source-control-action-arguments-visibility'
} from '../../use-source-control-action-agent'
import { resolveSourceControlActionRecipe } from '../../../../../../shared/source-control-ai-operation-policy'
import { shouldShowSourceControlActionArguments } from '../../source-control-action-arguments-visibility'
import { chatProviderAgents, useHostStructuredAgentsVersion } from '@/lib/chat-provider-agents'
import { LOCAL_EXECUTION_HOST_ID } from '../../../../shared/execution-host'
type RepositorySourceControlAiActionRowsProps = {
repoId: string
repoAi: RepoSourceControlAiOverrides
source: SourceControlAiSettings
defaultTuiAgent: TuiAgent | 'blank' | null | undefined
onActionModeChange: (actionId: SourceControlActionId, mode: string) => void
onActionAgentChange: (
actionId: SourceControlActionId,
value: string,
choice?: Pick<SourceControlActionRecipe, 'surface'>
) => void
onActionLaunchPreferencesChange: (
actionId: SourceControlActionId,
value: SourceControlActionLaunchPreferences | undefined
) => void
onActionTemplateChange: (actionId: SourceControlActionId, value: string) => void
onActionAgentArgsChange: (
actionId: SourceControlActionId,
value: string,
commit?: boolean
) => void
onAppendVariable: (actionId: SourceControlActionId, variable: string) => void
/** Per-action saving state for CLI args + command template (matches global recipes). */
savingActionIds: Partial<Record<SourceControlActionId, boolean>>
actionDirtyById: Record<SourceControlActionId, boolean>
onActionDiscard: (actionId: SourceControlActionId) => void
onActionSave: (actionId: SourceControlActionId) => void
}
import { LOCAL_EXECUTION_HOST_ID } from '../../../../../../shared/execution-host'
export function RepositorySourceControlAiActionRows({
repoId,
@@ -1,9 +1,9 @@
import type React from 'react'
import { useState } from 'react'
import type { SourceControlAiSettings } from '../../../../shared/source-control-ai-types'
import { Input } from '../ui/input'
import { Label } from '../ui/label'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select'
import type { SourceControlAiSettings } from '../../../../../../shared/source-control-ai-types'
import { Input } from '../../../ui/input'
import { Label } from '../../../ui/label'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../../ui/select'
import {
CUSTOM_COMMAND_MODE_INHERIT,
CUSTOM_COMMAND_MODE_REPO
@@ -1,7 +1,7 @@
import type React from 'react'
import type { SourceControlAiSettings } from '../../../../shared/source-control-ai-types'
import { Label } from '../ui/label'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select'
import type { SourceControlAiSettings } from '../../../../../../shared/source-control-ai-types'
import { Label } from '../../../ui/label'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../../ui/select'
import { translate } from '@/i18n/i18n'
type RepositorySourceControlAiEnablementProps = {
@@ -2,9 +2,9 @@ import type React from 'react'
import type {
RepoSourceControlAiOverrides,
SourceControlAiSettings
} from '../../../../shared/source-control-ai-types'
import { Label } from '../ui/label'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../ui/select'
} from '../../../../../../shared/source-control-ai-types'
import { Label } from '../../../ui/label'
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '../../../ui/select'
import { triStateValue } from './repository-source-control-ai-draft'
import { translate } from '@/i18n/i18n'
@@ -1,43 +1,43 @@
// @vitest-environment happy-dom
import { afterEach, describe, expect, it, vi } from 'vitest'
import { act, render, cleanup, fireEvent } from '@testing-library/react'
import './__fixtures__/settings-persistence-test-fixture'
import '../../__fixtures__/settings-persistence-test-fixture'
import React from 'react'
import type { TuiAgent } from '../../../../shared/tui-agent'
import type { TuiAgent } from '../../../../../../shared/tui-agent'
import { renderToStaticMarkup } from 'react-dom/server'
import { normalizeRepoSourceControlAiOverrides } from '../../../../shared/source-control-ai'
import { normalizeRepoSourceControlAiOverrides } from '../../../../../../shared/source-control-ai-repo-settings'
import type {
RepoSourceControlAiOverrides,
SourceControlAiSettings
} from '../../../../shared/source-control-ai-types'
} from '../../../../../../shared/source-control-ai-types'
import {
SOURCE_CONTROL_ACTION_IDS,
setSourceControlActionAgentDefault,
type SourceControlActionId
} from '../../../../shared/source-control-ai-actions'
} from '../../../../../../shared/source-control-ai-actions'
import {
computeActionDirtyById,
dropRepoLegacyInstructionForAction,
withRepoAiActionMode
} from './repository-source-control-ai-draft'
import { withRepoAiActionAgent } from './repository-source-control-ai-action-agent-draft'
import { resolveSourceControlActionRecipe } from '../../../../shared/source-control-ai-operation-policy'
import { withRepoAiActionAgent } from '../../repository-source-control-ai-action-agent-draft'
import { resolveSourceControlActionRecipe } from '../../../../../../shared/source-control-ai-operation-policy'
import {
saveSourceControlActionRecipe,
toSourceControlAiRepoUpdate
} from '../../../../shared/source-control-ai-recipe-save'
import { sourceControlActionRecipeMatchesTarget } from '../right-sidebar/source-control-action-recipe-match'
import { SourceControlActionAgentPicker } from './SourceControlActionAgentPicker'
} from '../../../../../../shared/source-control-ai-recipe-save'
import { sourceControlActionRecipeMatchesTarget } from '../../../right-sidebar/source-control-action-recipe-match'
import { SourceControlActionAgentPicker } from '../../SourceControlActionAgentPicker'
import { RepositorySourceControlAiActionRows } from './RepositorySourceControlAiActionRows'
import { RepositorySourceControlAiEnablement } from './RepositorySourceControlAiEnablement'
import { SourceControlAiActionRecipeDefaults } from './SourceControlAiActionRecipeDefaults'
import { useAppStore } from '../../store'
import { TooltipProvider } from '../ui/tooltip'
import { SourceControlAiActionRecipeDefaults } from '../../SourceControlAiActionRecipeDefaults'
import { useAppStore } from '../../../../store/index'
import { TooltipProvider } from '../../../ui/tooltip'
import { setLocalRuntimeCapabilitiesForTests } from '@/runtime/local-runtime-capabilities'
import { projectAgentLaunchSettings } from '../../../../shared/agent-launch-settings'
import { projectAgentLaunchSettings } from '../../../../../../shared/agent-launch-settings'
import { TEST_REPO } from '@/store/slices/worktrees-slice-test-fixtures'
import { clearHostAgentMenuSettingsForTests } from './use-host-agent-launch-preferences'
import { mutateHostAgentLaunchSettings } from './agent-launch-settings-transport'
import { clearHostAgentMenuSettingsForTests } from '../../use-host-agent-launch-preferences'
import { mutateHostAgentLaunchSettings } from '../../agent-launch-settings-transport'
import { getRuntimeAgentInventoryKey } from '@/store/slices/runtime-agent-inventory-key'
import { resetHostStructuredAgentsForTests } from '@/runtime/host-structured-agents'
const rpc = vi.hoisted(() => vi.fn())
@@ -1,19 +1,17 @@
import { useMemo } from 'react'
import type React from 'react'
import type { Repo } from '../../../../shared/repo-types'
import { normalizeSourceControlAiSettings } from '../../../../shared/source-control-ai'
import type { SourceControlAiRepoUpdate } from '../../../../shared/source-control-ai-recipe-save'
import { useAppStore } from '../../store'
import { getRepositorySourceControlAiSectionId } from './repository-settings-targets'
import type { Repo } from '../../../../../../shared/repo-types'
import { normalizeSourceControlAiSettings } from '../../../../../../shared/source-control-ai-settings'
import type { SourceControlAiRepoUpdate } from '../../../../../../shared/source-control-ai-recipe-save'
import { useAppStore } from '../../../../store/index'
import { getRepositorySourceControlAiSectionId } from '../../repository-settings-targets'
import { RepositorySourceControlAiActionRows } from './RepositorySourceControlAiActionRows'
import { RepositorySourceControlAiCustomCommand } from './RepositorySourceControlAiCustomCommand'
import { RepositorySourceControlAiEnablement } from './RepositorySourceControlAiEnablement'
import { RepositorySourceControlAiHostedReviewDefaults } from './RepositorySourceControlAiHostedReviewDefaults'
import {
normalizePersistedRepoAi,
useRepositorySourceControlAiGlobalUx
} from './repository-source-control-ai-global-ux'
import { getSettingOwnershipSummary } from './setting-ownership'
import { normalizeRepoAiDraft } from './repository-source-control-ai-draft'
import { useRepositorySourceControlAiGlobalUx } from './repository-source-control-ai-global-ux'
import { getSettingOwnershipSummary } from '../../setting-ownership'
import { translate } from '@/i18n/i18n'
type RepositorySourceControlAiSectionProps = {
@@ -33,7 +31,7 @@ export function RepositorySourceControlAiSection({
settings?.commitMessageAi
)
const persistedRepoAi = useMemo(
() => normalizePersistedRepoAi(repo.sourceControlAi),
() => normalizeRepoAiDraft(repo.sourceControlAi),
[repo.sourceControlAi]
)
const {
@@ -0,0 +1,39 @@
import type { TuiAgent } from '../../../../../../shared/tui-agent'
import type {
RepoSourceControlAiOverrides,
SourceControlAiSettings
} from '../../../../../../shared/source-control-ai-types'
import type {
SourceControlActionRecipe,
SourceControlActionId,
SourceControlActionLaunchPreferences
} from '../../../../../../shared/source-control-ai-actions'
export type RepositorySourceControlAiActionRowsProps = {
repoId: string
repoAi: RepoSourceControlAiOverrides
source: SourceControlAiSettings
defaultTuiAgent: TuiAgent | 'blank' | null | undefined
onActionModeChange: (actionId: SourceControlActionId, mode: string) => void
onActionAgentChange: (
actionId: SourceControlActionId,
value: string,
choice?: Pick<SourceControlActionRecipe, 'surface'>
) => void
onActionLaunchPreferencesChange: (
actionId: SourceControlActionId,
value: SourceControlActionLaunchPreferences | undefined
) => void
onActionTemplateChange: (actionId: SourceControlActionId, value: string) => void
onActionAgentArgsChange: (
actionId: SourceControlActionId,
value: string,
commit?: boolean
) => void
onAppendVariable: (actionId: SourceControlActionId, variable: string) => void
/** Per-action saving state for CLI args + command template (matches global recipes). */
savingActionIds: Partial<Record<SourceControlActionId, boolean>>
actionDirtyById: Record<SourceControlActionId, boolean>
onActionDiscard: (actionId: SourceControlActionId) => void
onActionSave: (actionId: SourceControlActionId) => void
}
@@ -1,15 +1,13 @@
import {
normalizeRepoSourceControlAiOverrides,
resolveSourceControlActionRecipe
} from '../../../../shared/source-control-ai'
import { normalizeRepoSourceControlAiOverrides } from '../../../../../../shared/source-control-ai-repo-settings'
import { resolveSourceControlActionRecipe } from '../../../../../../shared/source-control-ai-operation-policy'
import {
SOURCE_CONTROL_ACTION_IDS,
type SourceControlActionId
} from '../../../../shared/source-control-ai-actions'
import type { RepoSourceControlAiOverrides } from '../../../../shared/source-control-ai-types'
import type { GlobalSettings } from '../../../../shared/global-settings-types'
} from '../../../../../../shared/source-control-ai-actions'
import type { RepoSourceControlAiOverrides } from '../../../../../../shared/source-control-ai-types'
import type { GlobalSettings } from '../../../../../../shared/global-settings-types'
import { completeRepoActionRecipe } from './repository-source-control-ai-labels'
import { SOURCE_CONTROL_TEXT_ACTION_ID_SET } from './source-control-action-recipe-options'
import { SOURCE_CONTROL_TEXT_ACTION_ID_SET } from '../../source-control-action-recipe-options'
type RepoActionRecipe = NonNullable<
NonNullable<RepoSourceControlAiOverrides['actionOverrides']>[SourceControlActionId]
@@ -1,22 +1,20 @@
// @vitest-environment happy-dom
import { act, renderHook } from '@testing-library/react'
import { describe, expect, it, vi } from 'vitest'
import {
normalizeRepoSourceControlAiOverrides,
normalizeSourceControlAiSettings
} from '../../../../shared/source-control-ai'
import type { RepoSourceControlAiOverrides } from '../../../../shared/source-control-ai-types'
import type { SourceControlAiRepoUpdate } from '../../../../shared/source-control-ai-recipe-save'
import { normalizeRepoSourceControlAiOverrides } from '../../../../../../shared/source-control-ai-repo-settings'
import { normalizeSourceControlAiSettings } from '../../../../../../shared/source-control-ai-settings'
import type { RepoSourceControlAiOverrides } from '../../../../../../shared/source-control-ai-types'
import type { SourceControlAiRepoUpdate } from '../../../../../../shared/source-control-ai-recipe-save'
import { useRepositorySourceControlAiGlobalUx } from './repository-source-control-ai-global-ux'
import { withRepoAiActionLaunchPreferences } from './repository-source-control-ai-action-agent-draft'
import { withRepoAiActionLaunchPreferences } from '../../repository-source-control-ai-action-agent-draft'
import {
readActionRecipeTextDraft,
withRepoAiActionRecipeText
} from './repository-source-control-ai-draft'
import { toSourceControlAiRepoUpdate } from '../../../../shared/source-control-ai-recipe-save'
import type { SourceControlActionId } from '../../../../shared/source-control-ai-actions'
import { getDefaultSettings } from '../../../../shared/constants'
import { resolveSourceControlActionRecipe } from '../../../../shared/source-control-ai-operation-policy'
import { toSourceControlAiRepoUpdate } from '../../../../../../shared/source-control-ai-recipe-save'
import type { SourceControlActionId } from '../../../../../../shared/source-control-ai-actions'
import { getDefaultSettings } from '../../../../../../shared/constants'
import { resolveSourceControlActionRecipe } from '../../../../../../shared/source-control-ai-operation-policy'
const source = normalizeSourceControlAiSettings(undefined, undefined)
@@ -1,17 +1,17 @@
import { liftActionPermissionArgs } from '../../../../shared/source-control-action-permission-lift'
import { liftActionPermissionArgs } from '../../../../../../shared/source-control-action-permission-lift'
import { useEffect, useMemo, useRef, useState } from 'react'
import type { GlobalSettings } from '../../../../shared/global-settings-types'
import type { TuiAgent } from '../../../../shared/tui-agent'
import { CUSTOM_AGENT_ID } from '../../../../shared/commit-message-agent-spec'
import type { GlobalSettings } from '../../../../../../shared/global-settings-types'
import type { TuiAgent } from '../../../../../../shared/tui-agent'
import { CUSTOM_AGENT_ID } from '../../../../../../shared/commit-message-agent-spec'
import type {
RepoSourceControlAiOverrides,
SourceControlAiSettings
} from '../../../../shared/source-control-ai-types'
import type { SourceControlAiRepoUpdate } from '../../../../shared/source-control-ai-recipe-save'
} from '../../../../../../shared/source-control-ai-types'
import type { SourceControlAiRepoUpdate } from '../../../../../../shared/source-control-ai-recipe-save'
import type {
SourceControlActionRecipe,
SourceControlActionId
} from '../../../../shared/source-control-ai-actions'
} from '../../../../../../shared/source-control-ai-actions'
import { useMountedRef } from '@/hooks/useMountedRef'
import {
clearActionTextDraftIfUnchanged,
@@ -30,14 +30,12 @@ import {
withRepoAiHostedReviewDefault
} from './repository-source-control-ai-draft'
import { ACTION_MODE_INHERIT, DEFAULT_AGENT_VALUE } from './repository-source-control-ai-labels'
import { createRepoAiPersistQueue } from './repository/source-control/repository-source-control-ai-persist-queue'
import { withRepoAiActionAgent } from './repository-source-control-ai-action-agent-draft'
import { createRepoAiPersistQueue } from './repository-source-control-ai-persist-queue'
import { withRepoAiActionAgent } from '../../repository-source-control-ai-action-agent-draft'
import {
createRepoActionTextDraftEditors,
resetActionDraftLaunchPreferences
} from './repository-source-control-ai-text-draft'
export { normalizeRepoAiDraft as normalizePersistedRepoAi } from './repository-source-control-ai-draft'
} from '../../repository-source-control-ai-text-draft'
type HostedReviewDefaultKey = keyof NonNullable<RepoSourceControlAiOverrides['prCreationDefaults']>
@@ -1,16 +1,16 @@
import type { TuiAgent } from '../../../../shared/tui-agent'
import type { TuiAgent } from '../../../../../../shared/tui-agent'
import {
DEFAULT_SOURCE_CONTROL_ACTION_COMMAND_TEMPLATES,
resolveSourceControlActionCommandTemplate,
type SourceControlActionId,
type SourceControlActionRecipe
} from '../../../../shared/source-control-ai-actions'
} from '../../../../../../shared/source-control-ai-actions'
import type {
RepoSourceControlAiOverrides,
SourceControlAiSettings
} from '../../../../shared/source-control-ai-types'
import type { CustomAgentId } from '../../../../shared/commit-message-agent-spec'
import { isCustomAgentId } from '../../../../shared/commit-message-agent-spec'
} from '../../../../../../shared/source-control-ai-types'
import type { CustomAgentId } from '../../../../../../shared/commit-message-agent-spec'
import { isCustomAgentId } from '../../../../../../shared/commit-message-agent-spec'
export const ACTION_MODE_INHERIT = 'inherit'
export const ACTION_MODE_OVERRIDE = 'override'
@@ -15,7 +15,7 @@ import { liftActionPermissionArgs } from '../../../../shared/source-control-acti
import { sourceControlActionAgentArgs } from '../../../../shared/source-control-action-launch-preferences'
import { agentPermissionArgsForLaunch } from '../../../../shared/tui-agent-launch-defaults'
import { SourceControlActionArguments } from './SourceControlActionArguments'
import { useRepositorySourceControlAiGlobalUx } from './repository-source-control-ai-global-ux'
import { useRepositorySourceControlAiGlobalUx } from './repository/source-control/repository-source-control-ai-global-ux'
import { TooltipProvider } from '../ui/tooltip'
const model = { agentId: 'claude', model: 'sonnet', options: { effort: 'high' } } as const