Skip to content

Commit 8f35d0c

Browse files
feat(sdk): add MAS FEAT compliance module (#58)
* feat(masfeat): add MAS FEAT compliance types Add MAS FEAT (Singapore MAS) compliance types: Enums: - MaterialityClassification (high/medium/low) - SystemStatus (draft/active/suspended/retired) - FEATAssessmentStatus (pending/in_progress/completed/approved/rejected) - KillSwitchStatus (enabled/disabled/triggered) - AISystemUseCase (credit_scoring, robo_advisory, etc.) Request/Response Types (all with Builder pattern): - RegisterSystemRequest, AISystemRegistry, RegistrySummary - CreateAssessmentRequest, UpdateAssessmentRequest, FEATAssessment - ConfigureKillSwitchRequest, CheckKillSwitchRequest, KillSwitch - ApproveAssessmentRequest, RejectAssessmentRequest - TriggerKillSwitchRequest, RestoreKillSwitchRequest - KillSwitchEvent Enterprise Feature: Requires AxonFlow Enterprise license. * docs(changelog): add MAS FEAT compliance module to v2.7.0 * test: add comprehensive tests for MAS FEAT types Add tests for all enums, request builders, and response types in the MAS FEAT compliance module to improve coverage. * feat(masfeat): add Finding class with proper fields Replace List<String> with List<Finding> for type safety. Add FEATPillar, FindingSeverity, FindingStatus enums. Finding includes: id, pillar, severity, category, description, status, remediation, dueDate. * feat(masfeat): add MAS FEAT compliance namespace Add MASFEATNamespace inner class with all MAS FEAT API methods: Registry: - registerSystem, activateSystem, getSystem, getRegistrySummary Assessments: - createAssessment, getAssessment, updateAssessment - submitAssessment, approveAssessment, rejectAssessment Kill Switch: - getKillSwitch, configureKillSwitch, triggerKillSwitch - restoreKillSwitch, getKillSwitchHistory Includes field name mapping (customerImpact → risk_rating_impact, etc.) and response parsing with alternate field name handling. * fix(test): use proper Finding objects instead of strings in MASFEATTypesTest * test(masfeat): add client method tests for MAS FEAT API * fix(tests): use WireMock for MAS FEAT client tests - Switch from MockWebServer to WireMock (consistent with project) - Fix activateSystem test to match PUT /registry/{id} endpoint - Fix method signatures (approveAssessment, restoreKillSwitch, etc) - Remove listSystems test (method not implemented yet) - Use string comparison for KillSwitchEvent eventType
1 parent 9d3ad05 commit 8f35d0c

6 files changed

Lines changed: 2786 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12+
- **MAS FEAT Compliance Module** (Enterprise): Singapore financial services AI governance
13+
- AI System Registry: `masfeat().registerSystem()`, `masfeat().getSystem()`, `masfeat().updateSystem()`, `masfeat().listSystems()`, `masfeat().activateSystem()`, `masfeat().retireSystem()`, `masfeat().getRegistrySummary()`
14+
- 3-Dimensional Risk Rating: Customer Impact × Model Complexity × Human Reliance
15+
- Materiality Classification: High (sum≥12), Medium (sum≥8), Low (sum<8)
16+
- FEAT Assessments: `masfeat().createAssessment()`, `masfeat().getAssessment()`, `masfeat().updateAssessment()`, `masfeat().listAssessments()`, `masfeat().submitAssessment()`, `masfeat().approveAssessment()`, `masfeat().rejectAssessment()`
17+
- Assessment Lifecycle: pending → in_progress → completed → approved/rejected
18+
- Kill Switch: `masfeat().getKillSwitch()`, `masfeat().configureKillSwitch()`, `masfeat().checkKillSwitch()`, `masfeat().triggerKillSwitch()`, `masfeat().restoreKillSwitch()`, `masfeat().enableKillSwitch()`, `masfeat().disableKillSwitch()`, `masfeat().getKillSwitchHistory()`
19+
- Automatic model shutdown based on accuracy, bias, and error rate thresholds
20+
- New types: `AISystemRegistry`, `AISystemUseCase`, `MaterialityClassification`, `SystemStatus`, `FEATAssessment`, `FEATAssessmentStatus`, `FEATPillar`, `KillSwitch`, `KillSwitchStatus`, `KillSwitchEvent`, `KillSwitchEventType`, `RegistrySummary`
21+
1222
- **proxyLLMCall()**: New primary method for Proxy Mode with improved documentation
1323
- Clearly describes Proxy Mode behavior (AxonFlow makes the LLM call on your behalf)
1424
- Documents when to use Proxy Mode vs Gateway Mode

0 commit comments

Comments
 (0)