Skip to content

Commit 45bbb72

Browse files
Sync public snapshot from freebuff-private
Source: CodebuffAI/freebuff-private@e0c13a6ee88aa822b790567ddddb23b7520689a0
1 parent e4bab2e commit 45bbb72

14 files changed

Lines changed: 49 additions & 66 deletions

agents/base2/base2.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,7 @@ export function createBase2(
5656
? deepseekModels.deepseekV4Flash
5757
: mode === 'free'
5858
? FREEBUFF_MINIMAX_MODEL_ID
59-
: isMax
60-
? 'anthropic/claude-fable-5'
61-
: 'anthropic/claude-opus-4.8')
59+
: 'anthropic/claude-opus-4.8')
6260
// Smart freebuff model variants (Kimi, DeepSeek) can offload deeper
6361
// reasoning. Fast MiniMax omits the extra round trip by construction.
6462
const hasFreeGeminiThinker =
@@ -128,7 +126,7 @@ export function createBase2(
128126
'basher',
129127
isDefault && 'thinker',
130128
(isDefault || isMax) && ['opus-agent', 'gpt-5-agent'],
131-
isMax && 'thinker-best-of-n-fable',
129+
isMax && 'thinker-best-of-n-opus',
132130
isDefault && 'editor',
133131
isMax && 'editor-multi-prompt',
134132
'tmux-cli',
@@ -206,7 +204,7 @@ Use the spawn_agents tool to spawn specialized agents to help you complete the u
206204
isDefault &&
207205
'- Spawn the editor agent to implement the changes after you have gathered all the context you need.',
208206
(isDefault || isMax) &&
209-
`- Spawn the ${isDefault ? 'thinker' : 'thinker-best-of-n-fable'} after gathering context to solve complex problems or when the user asks you to think about a problem. (gpt-5-agent is a last resort for complex problems)`,
207+
`- Spawn the ${isDefault ? 'thinker' : 'thinker-best-of-n-opus'} after gathering context to solve complex problems or when the user asks you to think about a problem. (gpt-5-agent is a last resort for complex problems)`,
210208
isMax &&
211209
`- IMPORTANT: You must spawn the editor-multi-prompt agent to implement the changes after you have gathered all the context you need. You must spawn this agent for non-trivial changes, since it writes much better code than you would with the str_replace or write_file tools. Don't spawn the editor in parallel with context-gathering agents.`,
212210
isFree &&

agents/context-pruner.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ const definition: AgentDefinition = {
5454
'researcher-docs',
5555
'basher',
5656
'code-reviewer',
57-
'code-reviewer-fable',
57+
'code-reviewer-opus',
5858
'code-reviewer-multi-prompt',
5959
'librarian',
6060
'tmux-cli',

agents/editor/best-of-n/best-of-n-selector2.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,25 @@ import {
55
} from '../../types/secret-agent-definition'
66

77
export const createBestOfNSelector2 = (options: {
8-
model: 'sonnet' | 'opus' | 'fable' | 'gpt-5'
8+
model: 'sonnet' | 'opus' | 'gpt-5'
99
}): Omit<SecretAgentDefinition, 'id'> => {
1010
const { model } = options
1111
const isSonnet = model === 'sonnet'
1212
const isOpus = model === 'opus'
13-
const isFable = model === 'fable'
1413
const isGpt5 = model === 'gpt-5'
1514
return {
1615
publisher,
1716
model: isSonnet
1817
? 'anthropic/claude-sonnet-4.5'
1918
: isOpus
2019
? 'anthropic/claude-opus-4.8'
21-
: isFable
22-
? 'anthropic/claude-fable-5'
23-
: 'openai/gpt-5.4',
20+
: 'openai/gpt-5.4',
2421
...(isGpt5 && {
2522
reasoningOptions: {
2623
effort: 'high',
2724
},
2825
}),
29-
...((isOpus || isFable) && {
26+
...(isOpus && {
3027
providerOptions: {
3128
only: ['amazon-bedrock'],
3229
},
@@ -35,9 +32,7 @@ export const createBestOfNSelector2 = (options: {
3532
? 'Best-of-N GPT-5 Diff Selector'
3633
: isOpus
3734
? 'Best-of-N Opus Diff Selector'
38-
: isFable
39-
? 'Best-of-N Fable Diff Selector'
40-
: 'Best-of-N Sonnet Diff Selector',
35+
: 'Best-of-N Sonnet Diff Selector',
4136
spawnerPrompt:
4237
'Analyzes multiple implementation proposals (as unified diffs) and selects the best one',
4338

@@ -136,7 +131,7 @@ Try to select an implementation that fulfills all the requirements in the user's
136131
137132
## Response Format
138133
139-
${isSonnet || isOpus || isFable
134+
${isSonnet || isOpus
140135
? `Use <think> tags to write out your thoughts about the implementations as needed to pick the best implementation. IMPORTANT: You should think really really hard to make sure you pick the absolute best implementation! Also analyze the non-chosen implementations for any valuable techniques or approaches that could improve the selected one.
141136
142137
Then, do not write any other explanations AT ALL. You should directly output a single tool call to set_output with the selected implementationId, short reason, and suggestedImprovements array.`
@@ -146,7 +141,7 @@ Then, do not write any other explanations AT ALL. You should directly output a s
146141
}
147142

148143
const definition: SecretAgentDefinition = {
149-
...createBestOfNSelector2({ model: 'fable' }),
144+
...createBestOfNSelector2({ model: 'opus' }),
150145
id: 'best-of-n-selector2',
151146
}
152147

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { createBestOfNImplementor } from './editor-implementor'
22

33
const definition = {
4-
...createBestOfNImplementor({ model: 'fable' }),
5-
id: 'editor-implementor-fable',
4+
...createBestOfNImplementor({ model: 'opus' }),
5+
id: 'editor-implementor-opus',
66
}
77
export default definition

agents/editor/best-of-n/editor-implementor.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@ import { publisher } from '../../constants'
33
import type { SecretAgentDefinition } from '../../types/secret-agent-definition'
44

55
export const createBestOfNImplementor = (options: {
6-
model: 'sonnet' | 'opus' | 'fable' | 'gpt-5' | 'gemini'
6+
model: 'sonnet' | 'opus' | 'gpt-5' | 'gemini'
77
}): Omit<SecretAgentDefinition, 'id'> => {
88
const { model } = options
99
const isSonnet = model === 'sonnet'
1010
const isOpus = model === 'opus'
11-
const isFable = model === 'fable'
1211
const isGpt5 = model === 'gpt-5'
1312
const isGemini = model === 'gemini'
1413

@@ -18,12 +17,10 @@ export const createBestOfNImplementor = (options: {
1817
? 'anthropic/claude-sonnet-4.5'
1918
: isOpus
2019
? 'anthropic/claude-opus-4.8'
21-
: isFable
22-
? 'anthropic/claude-fable-5'
23-
: isGemini
24-
? 'google/gemini-3-pro-preview'
25-
: 'openai/gpt-5.1',
26-
...((isOpus || isFable) && {
20+
: isGemini
21+
? 'google/gemini-3-pro-preview'
22+
: 'openai/gpt-5.1',
23+
...(isOpus && {
2724
providerOptions: {
2825
only: ['amazon-bedrock'],
2926
},

agents/editor/best-of-n/editor-multi-prompt.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import type { SecretAgentDefinition } from '../../types/secret-agent-definition'
1111
export function createMultiPromptEditor(): Omit<SecretAgentDefinition, 'id'> {
1212
return {
1313
publisher,
14-
model: 'anthropic/claude-fable-5',
14+
model: 'anthropic/claude-opus-4.8',
1515
providerOptions: {
1616
only: ['amazon-bedrock'],
1717
},
@@ -31,7 +31,7 @@ export function createMultiPromptEditor(): Omit<SecretAgentDefinition, 'id'> {
3131
],
3232
spawnableAgents: [
3333
'best-of-n-selector2',
34-
'editor-implementor-fable',
34+
'editor-implementor-opus',
3535
'editor-implementor-gpt-5',
3636
],
3737

@@ -94,10 +94,10 @@ function* handleStepsMultiPrompt({
9494
includeToolCall: false,
9595
} satisfies ToolCall<'set_messages'>
9696

97-
// Spawn one fable implementor per prompt
97+
// Spawn one opus implementor per prompt
9898
const implementorAgents: { agent_type: string; prompt?: string }[] =
9999
prompts.map((prompt) => ({
100-
agent_type: 'editor-implementor-fable',
100+
agent_type: 'editor-implementor-opus',
101101
prompt: `Strategy: ${prompt}`,
102102
}))
103103

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import { publisher } from '../constants'
44
import type { SecretAgentDefinition } from '../types/secret-agent-definition'
55

66
const definition: SecretAgentDefinition = {
7-
id: 'code-reviewer-fable',
7+
id: 'code-reviewer-opus',
88
publisher,
9-
...createReviewer('anthropic/claude-fable-5'),
9+
...createReviewer('anthropic/claude-opus-4.8'),
1010
providerOptions: {
1111
only: ['amazon-bedrock'],
1212
},

agents/reviewer/multi-prompt/code-reviewer-multi-prompt.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export function createCodeReviewerMultiPrompt(): Omit<
1414
> {
1515
return {
1616
publisher,
17-
model: 'anthropic/claude-fable-5',
17+
model: 'anthropic/claude-opus-4.8',
1818
providerOptions: {
1919
only: ['amazon-bedrock'],
2020
},
@@ -26,7 +26,7 @@ export function createCodeReviewerMultiPrompt(): Omit<
2626
inheritParentSystemPrompt: true,
2727

2828
toolNames: ['spawn_agents', 'set_output'],
29-
spawnableAgents: ['code-reviewer-fable'],
29+
spawnableAgents: ['code-reviewer-opus'],
3030

3131
inputSchema: {
3232
params: {
@@ -88,7 +88,7 @@ function* handleStepsMultiPrompt({
8888
// Spawn one code-reviewer per prompt
8989
const reviewerAgents: { agent_type: string; prompt: string }[] = prompts.map(
9090
(prompt) => ({
91-
agent_type: 'code-reviewer-fable',
91+
agent_type: 'code-reviewer-opus',
9292
prompt: `Review the above code changes with the following focus: ${prompt}`,
9393
}),
9494
)
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { createThinkerBestOfN } from './thinker-best-of-n'
22

33
const definition = {
4-
...createThinkerBestOfN('fable'),
5-
id: 'thinker-best-of-n-fable',
4+
...createThinkerBestOfN('opus'),
5+
id: 'thinker-best-of-n-opus',
66
}
77
export default definition

agents/thinker/best-of-n/thinker-best-of-n.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,27 @@ import type {
88
import type { SecretAgentDefinition } from '../../types/secret-agent-definition'
99

1010
export function createThinkerBestOfN(
11-
model: 'sonnet' | 'gpt-5' | 'fable',
11+
model: 'sonnet' | 'gpt-5' | 'opus',
1212
): Omit<SecretAgentDefinition, 'id'> {
1313
const isGpt5 = model === 'gpt-5'
14-
const isFable = model === 'fable'
14+
const isOpus = model === 'opus'
1515

1616
return {
1717
publisher,
1818
model: isGpt5
1919
? 'openai/gpt-5.1'
20-
: isFable
21-
? 'anthropic/claude-fable-5'
20+
: isOpus
21+
? 'anthropic/claude-opus-4.8'
2222
: 'anthropic/claude-sonnet-4.5',
23-
...(isFable && {
23+
...(isOpus && {
2424
providerOptions: {
2525
only: ['amazon-bedrock'],
2626
},
2727
}),
2828
displayName: isGpt5
2929
? 'Best-of-N GPT-5 Thinker'
30-
: isFable
31-
? 'Best-of-N Fable Thinker'
30+
: isOpus
31+
? 'Best-of-N Opus Thinker'
3232
: 'Best-of-N Thinker',
3333
spawnerPrompt:
3434
'Generates deep thinking by orchestrating multiple thinker agents, selects the best thinking output. Use this to help solve a hard problem. You must first gather all the relevant context *BEFORE* spawning this agent, as it can only think.',
@@ -37,7 +37,7 @@ export function createThinkerBestOfN(
3737
inheritParentSystemPrompt: true,
3838

3939
toolNames: ['spawn_agents'],
40-
spawnableAgents: [isFable ? 'thinker-selector-fable' : 'thinker-selector'],
40+
spawnableAgents: [isOpus ? 'thinker-selector-opus' : 'thinker-selector'],
4141

4242
inputSchema: {
4343
prompt: {
@@ -64,7 +64,7 @@ Use the <think> tag to think deeply about the user request.
6464
6565
When satisfied, write out a brief response to the user's request. The parent agent will see your response -- no need to call any tools. In particular, do not use the spawn_agents tool or the set_output tool or any tools at all! `,
6666

67-
handleSteps: isFable ? handleStepsFable : handleStepsDefault,
67+
handleSteps: isOpus ? handleStepsOpus : handleStepsDefault,
6868
}
6969
}
7070
function* handleStepsDefault({
@@ -152,14 +152,14 @@ function* handleStepsDefault({
152152
}
153153
}
154154

155-
function* handleStepsFable({
155+
function* handleStepsOpus({
156156
agentState,
157157
prompt,
158158
params,
159159
}: AgentStepContext): ReturnType<
160160
NonNullable<SecretAgentDefinition['handleSteps']>
161161
> {
162-
const selectorAgentType = 'thinker-selector-fable'
162+
const selectorAgentType = 'thinker-selector-opus'
163163
const n = Math.min(10, Math.max(1, (params?.n as number | undefined) ?? 3))
164164

165165
// Use GENERATE_N to generate n thinking outputs

0 commit comments

Comments
 (0)