Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions agents/__tests__/base2.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,26 @@ describe('base2 provider routing', () => {
})

describe('base2 optional tools', () => {
test('free mode omits follow-up cards by default without disabling questions', () => {
const free = createBase2('free')

expect(free.toolNames).not.toContain('suggest_followups')
expect(free.toolNames).toContain('ask_user')
})

test('other modes keep follow-up cards, and free mode can opt back in', () => {
for (const mode of ['default', 'lite', 'max'] as const) {
expect(createBase2(mode).toolNames).toContain('suggest_followups')
}

expect(
createBase2('free', { noFollowups: false }).toolNames,
).toContain('suggest_followups')
expect(
createBase2('free', { noFollowups: true }).toolNames,
).not.toContain('suggest_followups')
})

test('omits gravity_index and its instruction together', () => {
const base2 = createBase2('free', { noGravityIndex: true })

Expand Down
5 changes: 4 additions & 1 deletion agents/base2/base2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,10 @@ export function createBase2(
const {
planOnly = false,
noAskUser = false,
noFollowups = false,
// Follow-up cards can end a time-limited Freebuff turn while there is
// still work to do. Keep them off by default for free-mode roots; a
// variant that wants them can explicitly pass noFollowups: false.
noFollowups = mode === 'free',
noReview = false,
noGravityIndex = false,
model: modelOverride,
Expand Down
Loading