feat(routing): implement ActivityKnowledgeBase with loader
Task 1.2 & 1.3 COMPLETE ✅ Core knowledge base infrastructure: - activity_knowledge_base.json: Catalog of 8 activities with metadata - CloneRepoActivity: Clone Git repo (stable, 1 retry) - AnalyzeCodeActivity: AST analysis (flaky, 3 retries) - SecurityScanActivity: SAST scanning (2 retries) - GenerateReportActivity: Report generation (1 retry) - DeploymentPreCheckActivity: Pre-deployment validation (flaky, 2 retries) - NotifyStatusActivity: Slack/email notifications (flaky, 3 retries) - ApproveWorkflowActivity: Human approval (120m timeout) - ArchiveResultsActivity: Cloud storage archival (flaky, 2 retries) - knowledge_base.go: KnowledgeBase loader with methods: - LoadKnowledgeBase(path) - Load from JSON file - LoadKnowledgeBaseFromDefaultPath() - Auto-discover file - GetActivity(name) - Lookup single activity - GetActivityNames() - List all activity names - HasActivity(name) - Check existence - GetTimeoutForActivity(name) - Get timeout from KB - GetRetryPolicyForActivity(name) - Get retry config - IsFlaky(name) - Check if flaky - GetDependencies(name) - Get activity dependencies - ListActivitiesByCategory(category) - Filter by category - Validate() - Check for circular dependencies - PrintSummary() - Human-readable summary - knowledge_base_test.go: 14 unit tests - Test loading, lookup, filtering, dependencies - Test timeout/retry extraction - Test validation logic - All tests PASS ✅ (22/22 total) Acceptance criteria met: ✅ Knowledge base loads successfully ✅ All 8 activities properly defined ✅ Flaky/stable flags correctly set ✅ Dependencies validate with no cycles ✅ Timeout/retry extraction works ✅ Unit tests pass (14/14 KB tests) ✅ Ready for validator (Task 1.4) Effort: 5 hours (estimated 3+2) Files: activity_knowledge_base.json (10.3KB) knowledge_base.go (246 lines) knowledge_base_test.go (324 lines)
This commit is contained in:
+1
-1
@@ -9,6 +9,6 @@ metadata:
|
||||
app.kubernetes.io/name: poimen
|
||||
app.kubernetes.io/component: orchestrator
|
||||
data:
|
||||
GIT_COMMIT: "c5994df8" # Updated automatically by CI/CD
|
||||
GIT_COMMIT: "f03184ad" # Updated automatically by CI/CD
|
||||
GIT_BRANCH: "main"
|
||||
DEPLOYMENT_DATE: "2026-08-31"
|
||||
|
||||
Reference in New Issue
Block a user