/**
 * JSON Schema (Draft-07) describing the .well-known/planu.json manifest format v1.
 * Published as part of Planu docs for third-party tooling compatibility.
 * RFC 8615 .well-known URI pattern — follows OpenID Connect / OAuth conventions.
 */
export const MANIFEST_SCHEMA_V1 = {
    $schema: 'http://json-schema.org/draft-07/schema#',
    $id: 'https://planu.dev/schemas/well-known-manifest-v1.json',
    title: 'Planu .well-known Manifest v1',
    description: 'Spec registry discovery manifest published at .well-known/planu.json',
    type: 'object',
    required: ['version', 'name', 'specCount', 'specs', 'capabilities', 'generatedAt'],
    additionalProperties: false,
    properties: {
        version: {
            type: 'number',
            const: 1,
            description: 'Manifest schema version. Always 1 for this format.',
        },
        name: {
            type: 'string',
            minLength: 1,
            maxLength: 200,
            description: 'Project display name.',
        },
        specCount: {
            type: 'integer',
            minimum: 0,
            description: 'Total number of specs included in this manifest.',
        },
        specs: {
            type: 'array',
            description: 'Array of spec summaries.',
            items: {
                type: 'object',
                required: ['id', 'title', 'status', 'type', 'description', 'tags', 'created'],
                additionalProperties: false,
                properties: {
                    id: { type: 'string', pattern: '^SPEC-\\d+$' },
                    title: { type: 'string', maxLength: 300 },
                    status: { type: 'string', maxLength: 50 },
                    type: { type: 'string', maxLength: 50 },
                    description: { type: 'string', maxLength: 200 },
                    tags: { type: 'array', items: { type: 'string', maxLength: 100 } },
                    created: { type: 'string', format: 'date' },
                },
            },
        },
        capabilities: {
            type: 'array',
            description: 'Planu capabilities exported by this project.',
            items: { type: 'string', maxLength: 100 },
        },
        generatedAt: {
            type: 'string',
            format: 'date-time',
            description: 'ISO 8601 timestamp when this manifest was generated.',
        },
    },
};
/** Known capabilities that a project can declare in its manifest. */
export const KNOWN_CAPABILITIES = [
    'spec-registry',
    'federation',
    'living-spec',
    'ai-analysis',
    'estimation',
    'changelog',
];
//# sourceMappingURL=manifest-schema.js.map