import { defineFeature } from '@contractspec/lib.contracts-spec/features'; export const VersionedKnowledgeBaseFeature = defineFeature({ meta: { key: 'versioned-knowledge-base', version: '1.0.0', title: 'Versioned Knowledge Base', description: 'Curated KB with immutable sources, rule versions, and published snapshots.', domain: 'knowledge', owners: ['@examples'], tags: ['knowledge', 'versioning', 'snapshots'], stability: 'experimental', }, operations: [ { key: 'kb.ingestSource', version: '1.0.0' }, { key: 'kb.upsertRuleVersion', version: '1.0.0' }, { key: 'kb.approveRuleVersion', version: '1.0.0' }, { key: 'kb.publishSnapshot', version: '1.0.0' }, { key: 'kb.search', version: '1.0.0' }, ], events: [ { key: 'kb.source.ingested', version: '1.0.0' }, { key: 'kb.ruleVersion.created', version: '1.0.0' }, { key: 'kb.ruleVersion.approved', version: '1.0.0' }, { key: 'kb.snapshot.published', version: '1.0.0' }, ], presentations: [], opToPresentation: [], presentationsTargets: [], capabilities: { requires: [{ key: 'knowledge', version: '1.0.0' }], }, knowledge: [{ key: 'kb.knowledge.rules', version: '1.0.0' }], docs: [ 'docs.examples.versioned-knowledge-base.goal', 'docs.examples.versioned-knowledge-base.reference', ], });