/ src / lib / agent-default-tools.test.ts
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  })