/ src / lib / server / native-capabilities.test.ts
native-capabilities.test.ts
 1  import assert from 'node:assert/strict'
 2  import { describe, it } from 'node:test'
 3  
 4  import '@/lib/server/builtin-extensions'
 5  import { collectCapabilityDescriptions, listNativeCapabilities } from '@/lib/server/native-capabilities'
 6  import { getExtensionManager } from '@/lib/server/extensions'
 7  
 8  describe('native capabilities', () => {
 9    it('keeps platform-owned built-ins out of ExtensionManager listings', () => {
10      const extensions = getExtensionManager().listExtensions()
11      const nativeIds = new Set(listNativeCapabilities().map((entry) => entry.filename))
12  
13      assert.equal(nativeIds.has('memory'), true)
14      assert.equal(nativeIds.has('connectors'), true)
15      assert.equal(extensions.some((entry) => entry.filename === 'memory'), false)
16      assert.equal(extensions.some((entry) => entry.filename === 'connectors'), false)
17      assert.equal(extensions.some((entry) => entry.filename === 'email'), true)
18    })
19  
20    it('still contributes native capability descriptions to prompt assembly', () => {
21      const lines = collectCapabilityDescriptions(['memory', 'connectors'])
22      assert.equal(lines.some((line) => line.includes('long-term memory')), true)
23      assert.equal(lines.some((line) => line.includes('manage messaging channels')), true)
24    })
25  })