API Clients Documentation
Executive Overview — all summaries for decision-makers.
Overview
The MQA Governance Portal provides pre-built API clients for all AI services. These clients handle SSE streaming, error handling, and type safety.
Available Clients
1. Donor & Grant Management Client
typescript
import { aiDonorClient } from '@/lib/api/ai-donor-client';
// Generate donor proposal
const proposal = await aiDonorClient.generateProposal(
donorId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Generate grant application
const application = await aiDonorClient.generateGrantApplication(
donorId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Generate donor report
const report = await aiDonorClient.generateReport(
donorId,
reportType,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Check donor compliance
const compliance = await aiDonorClient.checkCompliance(
donorId,
prompt,
(chunk) => console.log('Progress:', chunk)
);2. Audit & Compliance Client
typescript
import { aiAuditClient } from '@/lib/api/ai-audit-client';
// Generate audit plan
const plan = await aiAuditClient.generatePlan(
projectId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Analyze finding
const analysis = await aiAuditClient.analyzeFinding(
findingId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Plan remediation
const remediation = await aiAuditClient.planRemediation(
findingId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Analyze compliance gaps
const gaps = await aiAuditClient.analyzeGaps(
projectId,
prompt,
(chunk) => console.log('Progress:', chunk)
);3. Vendor & Procurement Client
typescript
import { aiVendorClient } from '@/lib/api/ai-vendor-client';
// Evaluate vendor
const evaluation = await aiVendorClient.evaluateVendor(
vendorId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Compare bids
const comparison = await aiVendorClient.compareBids(
tenderIds,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Generate material requirements
const requirements = await aiVendorClient.generateMaterialRequirements(
projectId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Generate procurement plan
const plan = await aiVendorClient.generateProcurementPlan(
projectId,
prompt,
(chunk) => console.log('Progress:', chunk)
);4. Subcontractor & Quality Client
typescript
import { aiSubcontractorClient } from '@/lib/api/ai-subcontractor-client';
// Evaluate subcontractor
const evaluation = await aiSubcontractorClient.evaluateSubcontractor(
subcontractorId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Generate quality plan
const plan = await aiSubcontractorClient.generateQualityPlan(
projectId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Generate inspection report
const report = await aiSubcontractorClient.generateInspectionReport(
inspectionId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Analyze non-conformance
const analysis = await aiSubcontractorClient.analyzeNonConformance(
nonConformanceId,
prompt,
(chunk) => console.log('Progress:', chunk)
);5. ISO Certification Client
typescript
import { aiCertificationClient } from '@/lib/api/ai-certification-client';
// Analyze certification gaps
const gaps = await aiCertificationClient.analyzeGaps(
certificationId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Generate certification roadmap
const roadmap = await aiCertificationClient.generateRoadmap(
certificationId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Prepare for audit
const preparation = await aiCertificationClient.prepareAudit(
certificationId,
prompt,
(chunk) => console.log('Progress:', chunk)
);6. Legal Entity Client
typescript
import { aiLegalEntityClient } from '@/lib/api/ai-legal-entity-client';
// Check entity compliance
const compliance = await aiLegalEntityClient.checkCompliance(
entityId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Generate registration document
const document = await aiLegalEntityClient.generateRegistrationDocument(
entityId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Optimize entity structure
const optimization = await aiLegalEntityClient.optimizeStructure(
entityId,
prompt,
(chunk) => console.log('Progress:', chunk)
);7. Insurance Client
typescript
import { aiInsuranceClient } from '@/lib/api/ai-insurance-client';
// Analyze coverage
const analysis = await aiInsuranceClient.analyzeCoverage(
policyId,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Assess claim
const assessment = await aiInsuranceClient.assessClaim(
policyId,
claimDetails,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Evaluate risk transfer
const evaluation = await aiInsuranceClient.evaluateRiskTransfer(
policyId,
riskDescription,
prompt,
(chunk) => console.log('Progress:', chunk)
);
// Optimize premium
const optimization = await aiInsuranceClient.optimizePremium(
policyId,
prompt,
(chunk) => console.log('Progress:', chunk)
);Error Handling
All clients throw errors that can be caught:
typescript
try {
const result = await aiDonorClient.generateProposal(
donorId,
prompt,
(chunk) => console.log(chunk)
);
} catch (error) {
console.error('Failed to generate proposal:', error);
}Progress Callbacks
All methods accept an optional progress callback:
typescript
const result = await aiDonorClient.generateProposal(
donorId,
prompt,
(chunk) => {
// Update UI with streaming content
setStreamingContent((prev) => prev + chunk);
}
);Type Safety
All clients are fully typed with TypeScript:
typescript
import type { DonorProposal } from '@/types/ai-donor';
const proposal: DonorProposal = await aiDonorClient.generateProposal(
donorId,
prompt
);