UNPKG

@ansvar/singapore-law-mcp

Version:

Complete Singapore law database — 523 Acts, 28K+ provisions from Singapore Statutes Online (sso.agc.gov.sg) with full-text search, definitions, and citation support

43 lines 1.41 kB
/** * Runtime capability detection for Singapore Law MCP. * Detects which database tables are available to enable/disable features. */ const TABLE_MAP = { core_legislation: ['legal_documents', 'legal_provisions', 'provisions_fts'], eu_references: ['eu_documents', 'eu_references'], case_law: ['case_law'], preparatory_works: ['preparatory_works'], }; export function detectCapabilities(db) { const caps = new Set(); const tables = new Set(db.prepare("SELECT name FROM sqlite_master WHERE type='table'").all() .map(r => r.name)); for (const [cap, required] of Object.entries(TABLE_MAP)) { if (required.every(t => tables.has(t))) { caps.add(cap); } } return caps; } export function readDbMetadata(db) { const meta = {}; try { const rows = db.prepare('SELECT key, value FROM db_metadata').all(); for (const row of rows) { meta[row.key] = row.value; } } catch { // db_metadata table may not exist } return { tier: meta.tier ?? 'free', schema_version: meta.schema_version ?? '1.0', built_at: meta.built_at, builder: meta.builder, }; } export function upgradeMessage(feature) { return `The "${feature}" feature requires a professional-tier database. Contact hello@ansvar.ai for access.`; } //# sourceMappingURL=capabilities.js.map