agent-default-tools.test.ts
1 import assert from 'node:assert/strict' 2 import { describe, it } from 'node:test' 3 4 import { ALL_TOOLS } from '@/lib/tool-definitions' 5 import { getDefaultAgentToolIds, resolveAgentToolSelection } from './agent-default-tools' 6 7 describe('agent default tools', () => { 8 it('enables every known tool by default', () => { 9 const allToolIds = Array.from(new Set(ALL_TOOLS.map((tool) => tool.id))) 10 const defaults = getDefaultAgentToolIds() 11 12 assert.ok(defaults.length > 0) 13 assert.deepEqual(defaults, Array.from(new Set(defaults))) 14 assert.deepEqual(defaults, allToolIds) 15 }) 16 17 it('uses the shared defaults when a request never chose tools', () => { 18 const result = resolveAgentToolSelection({ 19 hasExplicitExtensions: false, 20 hasExplicitTools: false, 21 extensions: [], 22 tools: undefined, 23 }) 24 assert.deepEqual(result.tools, getDefaultAgentToolIds()) 25 }) 26 27 it('preserves an explicit empty extensions selection', () => { 28 const result = resolveAgentToolSelection({ 29 hasExplicitExtensions: true, 30 hasExplicitTools: false, 31 extensions: [], 32 tools: ['web'], 33 }) 34 assert.deepEqual(result.extensions, []) 35 }) 36 37 it('accepts explicit legacy tools selections', () => { 38 const result = resolveAgentToolSelection({ 39 hasExplicitExtensions: false, 40 hasExplicitTools: true, 41 extensions: [], 42 tools: ['web', 'browser'], 43 }) 44 assert.deepEqual(result.tools, ['web', 'browser']) 45 }) 46 })