Origem: D:/Documents/Github/PiAgentUI/PiAgentUi Arquivos omitidos (segredos, bancos de dados, logs, >50 MB): 4
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import { describeExtensionCompatibility } from './piagentui-extension-compat.js'
|
|
|
|
describe('extension compatibility adapter', () => {
|
|
it('marks Pi packages with pi.extensions as supported', () => {
|
|
expect(
|
|
describeExtensionCompatibility({
|
|
name: 'pi-hud',
|
|
pi: { extensions: ['./extensions/hud.ts'] },
|
|
}),
|
|
).toEqual({
|
|
kind: 'pi',
|
|
status: 'supported',
|
|
reason: 'Package declares Pi extension entrypoints.',
|
|
capabilities: ['extensions'],
|
|
})
|
|
})
|
|
|
|
it('marks OpenCode-style manifests as partial without executing them', () => {
|
|
expect(
|
|
describeExtensionCompatibility({
|
|
name: 'opencode-toolkit',
|
|
opencode: { extensions: ['./plugin.ts'], commands: ['./commands.ts'] },
|
|
}),
|
|
).toEqual({
|
|
kind: 'opencode',
|
|
status: 'partial',
|
|
reason: 'OpenCode manifest detected; execution is disabled until sandbox permissions are implemented.',
|
|
capabilities: ['extensions', 'commands'],
|
|
})
|
|
})
|
|
|
|
it('marks packages without recognized manifests as unsupported', () => {
|
|
expect(describeExtensionCompatibility({ name: 'plain-package' })).toEqual({
|
|
kind: 'unknown',
|
|
status: 'unsupported',
|
|
reason: 'No Pi or OpenCode extension manifest was detected.',
|
|
capabilities: [],
|
|
})
|
|
})
|
|
})
|