aiwg
Version:
Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo
86 lines • 2.33 kB
JavaScript
/**
* Unified Extension Type System
*
* Provides a single schema for all AIWG extensions: agents, commands, skills,
* hooks, tools, and MCP servers. Enables dynamic discovery, semantic search,
* and unified help generation.
*
* @architecture @.aiwg/architecture/unified-extension-schema.md
* @version 1.0.0
*/
// ============================================
// Type Guards
// ============================================
/**
* Type guard for agent extensions
*/
export function isAgentExtension(ext) {
return ext.type === 'agent' && ext.metadata.type === 'agent';
}
/**
* Type guard for command extensions
*/
export function isCommandExtension(ext) {
return ext.type === 'command' && ext.metadata.type === 'command';
}
/**
* Type guard for skill extensions
*/
export function isSkillExtension(ext) {
return ext.type === 'skill' && ext.metadata.type === 'skill';
}
/**
* Type guard for hook extensions
*/
export function isHookExtension(ext) {
return ext.type === 'hook' && ext.metadata.type === 'hook';
}
/**
* Type guard for tool extensions
*/
export function isToolExtension(ext) {
return ext.type === 'tool' && ext.metadata.type === 'tool';
}
/**
* Type guard for MCP server extensions
*/
export function isMCPServerExtension(ext) {
return ext.type === 'mcp-server' && ext.metadata.type === 'mcp-server';
}
/**
* Type guard for framework extensions
*/
export function isFrameworkExtension(ext) {
return ext.type === 'framework' && ext.metadata.type === 'framework';
}
/**
* Type guard for addon extensions
*/
export function isAddonExtension(ext) {
return ext.type === 'addon' && ext.metadata.type === 'addon';
}
/**
* Type guard for template extensions
*/
export function isTemplateExtension(ext) {
return ext.type === 'template' && ext.metadata.type === 'template';
}
/**
* Type guard for prompt extensions
*/
export function isPromptExtension(ext) {
return ext.type === 'prompt' && ext.metadata.type === 'prompt';
}
/**
* Type guard for soul extensions
*/
export function isSoulExtension(ext) {
return ext.type === 'soul' && ext.metadata.type === 'soul';
}
/**
* Type guard for behavior extensions
*/
export function isBehaviorExtension(ext) {
return ext.type === 'behavior' && ext.metadata.type === 'behavior';
}
//# sourceMappingURL=types.js.map