Drop both retired providers from BooCoder's provider layer: acp-spawn argv cases, provider-manifest mode blocks + manifest keys, provider-commands maps, the provider-snapshot cursor model-CLI branch (+ orphaned exec/promisify imports), the agent-probe copilot ACP-detect branch, and the now-dead cursor-models module + its test. The PROVIDERS registry array already lacked both. Built-ins unchanged: claude, opencode, goose, qwen, native boocode. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
27 lines
901 B
TypeScript
27 lines
901 B
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { getManifestCommands, mergeCommands, PROVIDER_COMMANDS } from '../provider-commands.js';
|
|
|
|
describe('provider-commands', () => {
|
|
it('defines commands for every external harness', () => {
|
|
for (const name of ['claude', 'opencode', 'goose', 'qwen']) {
|
|
expect(getManifestCommands(name).length, name).toBeGreaterThan(0);
|
|
}
|
|
});
|
|
|
|
it('boocode uses frontend skills — empty manifest', () => {
|
|
expect(getManifestCommands('boocode')).toEqual([]);
|
|
expect(PROVIDER_COMMANDS.boocode).toEqual([]);
|
|
});
|
|
|
|
it('mergeCommands dedupes by name with later override', () => {
|
|
const merged = mergeCommands(
|
|
[{ name: 'help', description: 'a' }],
|
|
[{ name: 'help', description: 'b' }, { name: 'clear' }],
|
|
);
|
|
expect(merged).toEqual([
|
|
{ name: 'clear' },
|
|
{ name: 'help', description: 'b' },
|
|
]);
|
|
});
|
|
});
|