// native/lightweight-command-catalog.ts — SPEC-1069 native/plugin-lite command surface.
import { PLANU_VERSION } from '../config/version.js';
export const LIGHTWEIGHT_COMMANDS = [
    {
        id: 'planu.status',
        title: 'Project status',
        description: 'Show the compact Planu project snapshot without loading the MCP tool graph.',
        invocation: 'planu status',
        hosts: ['codex', 'claude-code'],
        requiresMcp: false,
        requiresDaemon: false,
        mapsTo: 'handlePlanStatus',
    },
    {
        id: 'planu.spec.create',
        title: 'Create spec',
        description: 'Create a new spec through the CLI-backed SDD contract.',
        invocation: 'planu spec create "<title>"',
        hosts: ['codex', 'claude-code'],
        requiresMcp: false,
        requiresDaemon: false,
        mapsTo: 'handleCreateSpec',
    },
    {
        id: 'planu.spec.list',
        title: 'List specs',
        description: 'List specs in the current project with optional status/type filters.',
        invocation: 'planu spec list',
        hosts: ['codex', 'claude-code'],
        requiresMcp: false,
        requiresDaemon: false,
        mapsTo: 'handleListSpecs',
    },
    {
        id: 'planu.spec.validate',
        title: 'Validate spec',
        description: 'Validate a spec against the current codebase from the native CLI surface.',
        invocation: 'planu spec validate SPEC-001',
        hosts: ['codex', 'claude-code'],
        requiresMcp: false,
        requiresDaemon: false,
        mapsTo: 'handleValidate',
    },
    {
        id: 'planu.audit.debt',
        title: 'Audit technical debt',
        description: 'Run the read-only project audit path for lightweight debt checks.',
        invocation: 'planu audit debt',
        hosts: ['codex', 'claude-code'],
        requiresMcp: false,
        requiresDaemon: false,
        mapsTo: 'handleAudit',
    },
    {
        id: 'planu.release.check',
        title: 'Check release readiness',
        description: 'Check local branch cleanliness and main/develop/release sync readiness.',
        invocation: 'planu release check',
        hosts: ['codex', 'claude-code'],
        requiresMcp: false,
        requiresDaemon: false,
        mapsTo: 'releaseCommand',
    },
];
export function getLightweightCommands(host) {
    if (host === undefined) {
        return LIGHTWEIGHT_COMMANDS;
    }
    return LIGHTWEIGHT_COMMANDS.filter((command) => command.hosts.includes(host));
}
export function buildNativeSurfaceManifest(version = PLANU_VERSION) {
    return {
        name: 'dev.planu.native',
        displayName: 'Planu Native Lightweight Surface',
        version,
        packageName: '@planu/cli',
        modes: {
            lightweight: {
                requiresMcp: false,
                requiresDaemon: false,
                hosts: ['codex', 'claude-code'],
                commands: LIGHTWEIGHT_COMMANDS,
                fullMcpFallback: 'Use full MCP mode for advanced lifecycle mutations, generators, governance, and automation beyond the curated lightweight commands.',
            },
            fullMcp: {
                requiresMcp: true,
                requiresDaemon: false,
                manifest: 'planu-plugin.json',
                useWhen: 'Use full MCP mode when the task needs the complete Planu tool graph, MCP resources, prompts, or multi-step automation.',
            },
        },
    };
}
//# sourceMappingURL=lightweight-command-catalog.js.map