feat(provider): align provider and model workflows (#324)
* feat(provider): align provider and model workflows * fix(provider): clear gemini/github flags and use local ollama default * fix(provider): preserve explicit startup provider selection * fix(provider): clear env when deleting last profile * chore(provider): apply review nits in ProviderManager * fix(provider): preserve explicit env on last-profile delete * fix(provider): preserve explicit env when profile marker is stale --------- Co-authored-by: Gitlawb <gitlawb@users.noreply.github.com>
This commit is contained in:
@@ -1,12 +1,10 @@
|
||||
import type { Command } from '../../commands.js'
|
||||
import { shouldInferenceConfigCommandBeImmediate } from '../../utils/immediateCommand.js'
|
||||
|
||||
export default {
|
||||
const provider = {
|
||||
type: 'local-jsx',
|
||||
name: 'provider',
|
||||
description: 'Set up and save a third-party provider profile for OpenClaude',
|
||||
get immediate() {
|
||||
return shouldInferenceConfigCommandBeImmediate()
|
||||
},
|
||||
description: 'Manage API provider profiles',
|
||||
load: () => import('./provider.js'),
|
||||
} satisfies Command
|
||||
|
||||
export default provider
|
||||
|
||||
@@ -2,6 +2,7 @@ import * as React from 'react'
|
||||
|
||||
import type { LocalJSXCommandCall, LocalJSXCommandOnDone } from '../../types/command.js'
|
||||
import { COMMON_HELP_ARGS, COMMON_INFO_ARGS } from '../../constants/xml.js'
|
||||
import { ProviderManager } from '../../components/ProviderManager.js'
|
||||
import TextInput from '../../components/TextInput.js'
|
||||
import {
|
||||
Select,
|
||||
@@ -1289,22 +1290,34 @@ export function ProviderWizard({
|
||||
}
|
||||
|
||||
export const call: LocalJSXCommandCall = async (onDone, _context, args) => {
|
||||
const normalizedArgs = args?.trim().toLowerCase() || ''
|
||||
const trimmedArgs = args?.trim().toLowerCase() ?? ''
|
||||
|
||||
if (COMMON_INFO_ARGS.includes(normalizedArgs)) {
|
||||
onDone(buildUsageText(), { display: 'system' })
|
||||
return null
|
||||
if (
|
||||
COMMON_HELP_ARGS.includes(trimmedArgs) ||
|
||||
COMMON_INFO_ARGS.includes(trimmedArgs) ||
|
||||
trimmedArgs === 'help' ||
|
||||
trimmedArgs === '--help' ||
|
||||
trimmedArgs === '-h'
|
||||
) {
|
||||
onDone(
|
||||
'Run /provider to add, edit, delete, or activate provider profiles. The active provider controls base URL, model, and API key.',
|
||||
{ display: 'system' },
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
if (COMMON_HELP_ARGS.includes(normalizedArgs)) {
|
||||
onDone(buildUsageText(), { display: 'system' })
|
||||
return null
|
||||
}
|
||||
return (
|
||||
<ProviderManager
|
||||
mode="manage"
|
||||
onDone={result => {
|
||||
const message =
|
||||
result?.message ??
|
||||
(result?.action === 'saved'
|
||||
? 'Provider profile updated'
|
||||
: 'Provider manager closed')
|
||||
|
||||
if (normalizedArgs) {
|
||||
onDone('Usage: /provider', { display: 'system' })
|
||||
return null
|
||||
}
|
||||
|
||||
return <ProviderWizard onDone={onDone} />
|
||||
onDone(message, { display: 'system' })
|
||||
}}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user