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 })