mirror of
https://github.com/lobehub/lobe-chat.git
synced 2026-06-13 19:20:04 +00:00
✨ feat(model-bank): add claude-fable-5 to Anthropic models (#15639)
* ✨ feat(model-bank): add claude-fable-5 to Anthropic models Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * 🐛 fix(agent): allow adding directory topics on web when agent targets a bound device Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,37 @@
|
||||
import { type AIChatModelCard } from '../types/aiModel';
|
||||
|
||||
const anthropicChatModels: AIChatModelCard[] = [
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
reasoning: true,
|
||||
search: true,
|
||||
structuredOutput: true,
|
||||
vision: true,
|
||||
},
|
||||
contextWindowTokens: 1_000_000,
|
||||
description:
|
||||
"Claude Fable 5 is Anthropic's most capable model — a new tier above Opus for the most demanding reasoning and long-horizon agentic work.",
|
||||
displayName: 'Claude Fable 5',
|
||||
enabled: true,
|
||||
id: 'claude-fable-5',
|
||||
maxOutput: 128_000,
|
||||
pricing: {
|
||||
units: [
|
||||
{ name: 'textInput_cacheRead', rate: 1, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput', rate: 10, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textOutput', rate: 50, strategy: 'fixed', unit: 'millionTokens' },
|
||||
{ name: 'textInput_cacheWrite', rate: 12.5, strategy: 'fixed', unit: 'millionTokens' },
|
||||
],
|
||||
},
|
||||
releasedAt: '2026-06-09',
|
||||
settings: {
|
||||
disabledParams: ['temperature', 'top_p'],
|
||||
extendParams: ['disableContextCaching', 'enableAdaptiveThinking', 'opus47Effort'],
|
||||
searchImpl: 'params',
|
||||
},
|
||||
type: 'chat',
|
||||
},
|
||||
{
|
||||
abilities: {
|
||||
functionCall: true,
|
||||
|
||||
+6
-1
@@ -7,6 +7,7 @@ import { useTranslation } from 'react-i18next';
|
||||
import { isDesktop } from '@/const/version';
|
||||
import { useCommitWorkingDirectory } from '@/features/ChatInput/ControlBar/useCommitWorkingDirectory';
|
||||
import { useAgentStore } from '@/store/agent';
|
||||
import { agentByIdSelectors } from '@/store/agent/selectors';
|
||||
import { useChatStore } from '@/store/chat';
|
||||
|
||||
import TopicItem from '../../List/Item';
|
||||
@@ -24,6 +25,7 @@ const GroupItem = memo<GroupItemComponentProps>(({ group, activeTopicId, activeT
|
||||
);
|
||||
|
||||
const agentId = useAgentStore((s) => s.activeAgentId);
|
||||
const agencyConfig = useAgentStore(agentByIdSelectors.getAgencyConfigById(agentId ?? ''));
|
||||
const { commitAgentDefault } = useCommitWorkingDirectory(agentId ?? '');
|
||||
|
||||
const handleAddTopic = useCallback(async () => {
|
||||
@@ -35,7 +37,10 @@ const GroupItem = memo<GroupItemComponentProps>(({ group, activeTopicId, activeT
|
||||
useChatStore.getState().switchTopic(null, { skipRefreshMessage: true });
|
||||
}, [workingDirectory, agentId, commitAgentDefault]);
|
||||
|
||||
const canAddTopic = isDesktop && !!workingDirectory;
|
||||
// Web can add a topic in a directory too when the agent targets a bound
|
||||
// device — the write goes to `workingDirByDevice`, no Electron dependency.
|
||||
const isDeviceMode = agencyConfig?.executionTarget === 'device' && !!agencyConfig?.boundDeviceId;
|
||||
const canAddTopic = (isDesktop || isDeviceMode) && !!workingDirectory;
|
||||
|
||||
return (
|
||||
<AccordionItem
|
||||
|
||||
Reference in New Issue
Block a user