autosnippet 3.3.6 → 3.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dashboard/dist/assets/icons-BMNb0V6L.js +1 -0
- package/dashboard/dist/assets/index-DHJ1Dj7u.css +1 -0
- package/dashboard/dist/assets/index-DV8biUkH.js +112 -0
- package/dashboard/dist/index.html +3 -3
- package/dist/bin/cli.js +8 -4
- package/dist/lib/agent/AgentRuntime.d.ts +2 -2
- package/dist/lib/agent/AgentRuntime.js +26 -18
- package/dist/lib/agent/core/ChatAgentPrompts.js +57 -21
- package/dist/lib/agent/core/LoopContext.d.ts +1 -0
- package/dist/lib/agent/core/ToolExecutionPipeline.js +13 -0
- package/dist/lib/agent/domain/ChatAgentTasks.js +4 -0
- package/dist/lib/agent/forced-summary.js +7 -2
- package/dist/lib/agent/memory/ActiveContext.d.ts +0 -2
- package/dist/lib/agent/memory/ActiveContext.js +0 -2
- package/dist/lib/agent/memory/MemoryEmbeddingStore.d.ts +49 -0
- package/dist/lib/agent/memory/MemoryEmbeddingStore.js +159 -0
- package/dist/lib/agent/memory/MemoryRetriever.d.ts +2 -0
- package/dist/lib/agent/memory/MemoryRetriever.js +25 -11
- package/dist/lib/agent/memory/MemoryStore.d.ts +8 -41
- package/dist/lib/agent/memory/MemoryStore.js +196 -261
- package/dist/lib/agent/memory/PersistentMemory.d.ts +2 -0
- package/dist/lib/agent/memory/PersistentMemory.js +4 -5
- package/dist/lib/agent/memory/SessionStore.d.ts +0 -2
- package/dist/lib/agent/memory/SessionStore.js +0 -2
- package/dist/lib/agent/tools/ast-graph.js +21 -19
- package/dist/lib/agent/tools/infrastructure.js +3 -2
- package/dist/lib/agent/tools/project-access.d.ts +2 -2
- package/dist/lib/agent/tools/project-access.js +5 -4
- package/dist/lib/bootstrap.js +2 -1
- package/dist/lib/cli/AiScanService.js +8 -21
- package/dist/lib/cli/KnowledgeSyncService.d.ts +7 -37
- package/dist/lib/cli/KnowledgeSyncService.js +23 -51
- package/dist/lib/core/ast/ProjectGraph.js +5 -27
- package/dist/lib/core/discovery/ConfigWatcher.d.ts +64 -0
- package/dist/lib/core/discovery/ConfigWatcher.js +336 -0
- package/dist/lib/core/discovery/CustomConfigDiscoverer.d.ts +28 -0
- package/dist/lib/core/discovery/CustomConfigDiscoverer.js +1303 -0
- package/dist/lib/core/discovery/DiscovererPreference.d.ts +44 -0
- package/dist/lib/core/discovery/DiscovererPreference.js +141 -0
- package/dist/lib/core/discovery/DiscovererRegistry.d.ts +10 -1
- package/dist/lib/core/discovery/DiscovererRegistry.js +42 -2
- package/dist/lib/core/discovery/ProjectDiscoverer.d.ts +19 -0
- package/dist/lib/core/discovery/index.d.ts +2 -0
- package/dist/lib/core/discovery/index.js +4 -0
- package/dist/lib/core/discovery/parsers/CMakeParser.d.ts +32 -0
- package/dist/lib/core/discovery/parsers/CMakeParser.js +148 -0
- package/dist/lib/core/discovery/parsers/GradleDslParser.d.ts +43 -0
- package/dist/lib/core/discovery/parsers/GradleDslParser.js +171 -0
- package/dist/lib/core/discovery/parsers/JsonConfigParser.d.ts +45 -0
- package/dist/lib/core/discovery/parsers/JsonConfigParser.js +122 -0
- package/dist/lib/core/discovery/parsers/RubyDslParser.d.ts +49 -0
- package/dist/lib/core/discovery/parsers/RubyDslParser.js +282 -0
- package/dist/lib/core/discovery/parsers/StarlarkParser.d.ts +33 -0
- package/dist/lib/core/discovery/parsers/StarlarkParser.js +229 -0
- package/dist/lib/core/discovery/parsers/YamlConfigParser.d.ts +37 -0
- package/dist/lib/core/discovery/parsers/YamlConfigParser.js +212 -0
- package/dist/lib/domain/dimension/DimensionRegistry.d.ts +0 -2
- package/dist/lib/domain/dimension/DimensionRegistry.js +0 -2
- package/dist/lib/domain/dimension/DimensionSop.js +44 -33
- package/dist/lib/domain/dimension/UnifiedDimension.d.ts +0 -2
- package/dist/lib/domain/dimension/UnifiedDimension.js +0 -2
- package/dist/lib/domain/knowledge/KnowledgeEntry.d.ts +7 -1
- package/dist/lib/domain/knowledge/KnowledgeEntry.js +17 -3
- package/dist/lib/domain/knowledge/Lifecycle.d.ts +26 -0
- package/dist/lib/domain/knowledge/Lifecycle.js +42 -0
- package/dist/lib/domain/knowledge/index.d.ts +2 -1
- package/dist/lib/domain/knowledge/index.js +1 -1
- package/dist/lib/external/ai/AiProvider.d.ts +12 -0
- package/dist/lib/external/ai/AiProvider.js +24 -0
- package/dist/lib/external/ai/AiProviderManager.d.ts +101 -0
- package/dist/lib/external/ai/AiProviderManager.js +193 -0
- package/dist/lib/external/ai/providers/ClaudeProvider.js +11 -0
- package/dist/lib/external/ai/providers/GoogleGeminiProvider.js +18 -0
- package/dist/lib/external/ai/providers/MockProvider.d.ts +21 -3
- package/dist/lib/external/ai/providers/MockProvider.js +290 -14
- package/dist/lib/external/ai/providers/OpenAiProvider.js +16 -0
- package/dist/lib/external/lark/LarkTransport.d.ts +5 -1
- package/dist/lib/external/lark/LarkTransport.js +10 -2
- package/dist/lib/external/mcp/handlers/bootstrap/pipeline/BootstrapSnapshot.d.ts +2 -1
- package/dist/lib/external/mcp/handlers/bootstrap/pipeline/BootstrapSnapshot.js +102 -153
- package/dist/lib/external/mcp/handlers/bootstrap/pipeline/mock-pipeline.d.ts +20 -0
- package/dist/lib/external/mcp/handlers/bootstrap/pipeline/mock-pipeline.js +432 -0
- package/dist/lib/external/mcp/handlers/bootstrap/pipeline/orchestrator.js +49 -24
- package/dist/lib/external/mcp/handlers/bootstrap/refine.js +8 -0
- package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.d.ts +1 -1
- package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.js +41 -37
- package/dist/lib/external/mcp/handlers/bootstrap-external.d.ts +9 -0
- package/dist/lib/external/mcp/handlers/bootstrap-external.js +3 -1
- package/dist/lib/external/mcp/handlers/bootstrap-internal.js +2 -0
- package/dist/lib/external/mcp/handlers/consolidated.js +2 -1
- package/dist/lib/external/mcp/handlers/dimension-complete-external.js +9 -4
- package/dist/lib/external/mcp/handlers/evolve-external.d.ts +1 -0
- package/dist/lib/external/mcp/handlers/evolve-external.js +18 -18
- package/dist/lib/external/mcp/handlers/guard.js +15 -24
- package/dist/lib/external/mcp/handlers/knowledge.js +5 -4
- package/dist/lib/external/mcp/handlers/panorama.js +9 -9
- package/dist/lib/external/mcp/handlers/rescan-external.js +7 -6
- package/dist/lib/external/mcp/handlers/rescan-internal.js +9 -5
- package/dist/lib/external/mcp/handlers/search.js +3 -1
- package/dist/lib/external/mcp/handlers/skill.js +4 -4
- package/dist/lib/external/mcp/handlers/structure.js +8 -12
- package/dist/lib/external/mcp/handlers/system.js +10 -34
- package/dist/lib/http/routes/ai.js +109 -30
- package/dist/lib/http/routes/candidates.js +11 -4
- package/dist/lib/http/routes/commands.js +10 -1
- package/dist/lib/http/routes/guardReport.js +3 -5
- package/dist/lib/http/routes/health.js +11 -0
- package/dist/lib/http/routes/modules.js +27 -0
- package/dist/lib/http/routes/panorama.js +12 -12
- package/dist/lib/http/routes/recipes.js +66 -8
- package/dist/lib/http/routes/remote.js +3 -13
- package/dist/lib/http/routes/search.js +11 -8
- package/dist/lib/http/utils/routeHelpers.js +2 -1
- package/dist/lib/infrastructure/audit/AuditLogger.d.ts +20 -3
- package/dist/lib/infrastructure/audit/AuditStore.d.ts +28 -29
- package/dist/lib/infrastructure/audit/AuditStore.js +81 -88
- package/dist/lib/infrastructure/database/drizzle/schema.d.ts +180 -2
- package/dist/lib/infrastructure/database/drizzle/schema.js +23 -3
- package/dist/lib/injection/ServiceContainer.d.ts +6 -5
- package/dist/lib/injection/ServiceContainer.js +18 -31
- package/dist/lib/injection/ServiceMap.d.ts +22 -0
- package/dist/lib/injection/modules/AiModule.d.ts +6 -9
- package/dist/lib/injection/modules/AiModule.js +82 -39
- package/dist/lib/injection/modules/AppModule.js +2 -1
- package/dist/lib/injection/modules/GuardModule.js +5 -5
- package/dist/lib/injection/modules/InfraModule.js +60 -0
- package/dist/lib/injection/modules/KnowledgeModule.js +86 -51
- package/dist/lib/injection/modules/PanoramaModule.js +16 -10
- package/dist/lib/injection/modules/VectorModule.js +3 -0
- package/dist/lib/repository/audit/AuditRepository.d.ts +107 -0
- package/dist/lib/repository/audit/AuditRepository.js +272 -0
- package/dist/lib/repository/base/RepositoryBase.d.ts +46 -0
- package/dist/lib/repository/base/RepositoryBase.js +32 -0
- package/dist/lib/repository/bootstrap/BootstrapRepository.d.ts +94 -0
- package/dist/lib/repository/bootstrap/BootstrapRepository.js +246 -0
- package/dist/lib/repository/code/CodeEntityRepository.d.ts +91 -0
- package/dist/lib/repository/code/CodeEntityRepository.js +361 -0
- package/dist/lib/repository/delivery/DeliveryRepoAdapter.d.ts +39 -0
- package/dist/lib/repository/delivery/DeliveryRepoAdapter.js +23 -0
- package/dist/lib/repository/evolution/LifecycleEventRepository.d.ts +51 -0
- package/dist/lib/repository/evolution/LifecycleEventRepository.js +119 -0
- package/dist/lib/repository/evolution/ProposalRepository.d.ts +9 -12
- package/dist/lib/repository/evolution/ProposalRepository.js +114 -57
- package/dist/lib/repository/guard/GuardViolationRepository.d.ts +104 -0
- package/dist/lib/repository/guard/GuardViolationRepository.js +217 -0
- package/dist/lib/repository/knowledge/KnowledgeEdgeRepository.d.ts +129 -0
- package/dist/lib/repository/knowledge/KnowledgeEdgeRepository.js +475 -0
- package/dist/lib/repository/knowledge/KnowledgeFileStore.d.ts +39 -0
- package/dist/lib/repository/knowledge/KnowledgeFileStore.js +12 -0
- package/dist/lib/repository/knowledge/KnowledgeRepository.impl.d.ts +295 -11
- package/dist/lib/repository/knowledge/KnowledgeRepository.impl.js +608 -13
- package/dist/lib/repository/knowledge/KnowledgeUnitOfWork.d.ts +61 -0
- package/dist/lib/repository/knowledge/KnowledgeUnitOfWork.js +156 -0
- package/dist/lib/repository/memory/MemoryRepository.d.ts +90 -0
- package/dist/lib/repository/memory/MemoryRepository.js +260 -0
- package/dist/lib/repository/search/SearchRepoAdapter.d.ts +92 -0
- package/dist/lib/repository/search/SearchRepoAdapter.js +124 -0
- package/dist/lib/repository/session/SessionRepository.d.ts +46 -0
- package/dist/lib/repository/session/SessionRepository.js +110 -0
- package/dist/lib/repository/sourceref/RecipeSourceRefRepository.d.ts +66 -0
- package/dist/lib/repository/sourceref/RecipeSourceRefRepository.js +182 -0
- package/dist/lib/repository/sync/SyncRepoAdapter.d.ts +58 -0
- package/dist/lib/repository/sync/SyncRepoAdapter.js +58 -0
- package/dist/lib/service/bootstrap/UiStartupTasks.js +5 -6
- package/dist/lib/service/bootstrap/bootstrap-event-types.d.ts +0 -1
- package/dist/lib/service/bootstrap/bootstrap-event-types.js +0 -1
- package/dist/lib/service/cleanup/CleanupService.d.ts +54 -7
- package/dist/lib/service/cleanup/CleanupService.js +291 -40
- package/dist/lib/service/delivery/CursorDeliveryPipeline.js +6 -8
- package/dist/lib/service/evolution/ConsolidationAdvisor.d.ts +4 -9
- package/dist/lib/service/evolution/ConsolidationAdvisor.js +34 -70
- package/dist/lib/service/evolution/ContentPatcher.d.ts +4 -12
- package/dist/lib/service/evolution/ContentPatcher.js +48 -19
- package/dist/lib/service/evolution/ContradictionDetector.d.ts +3 -7
- package/dist/lib/service/evolution/ContradictionDetector.js +17 -24
- package/dist/lib/service/evolution/DecayDetector.d.ts +10 -9
- package/dist/lib/service/evolution/DecayDetector.js +63 -57
- package/dist/lib/service/evolution/EnhancementSuggester.d.ts +3 -9
- package/dist/lib/service/evolution/EnhancementSuggester.js +42 -86
- package/dist/lib/service/evolution/KnowledgeMetabolism.d.ts +4 -4
- package/dist/lib/service/evolution/KnowledgeMetabolism.js +102 -71
- package/dist/lib/service/evolution/ProposalExecutor.d.ts +5 -12
- package/dist/lib/service/evolution/ProposalExecutor.js +64 -69
- package/dist/lib/service/evolution/RecipeLifecycleSupervisor.d.ts +9 -14
- package/dist/lib/service/evolution/RecipeLifecycleSupervisor.js +94 -155
- package/dist/lib/service/evolution/RecipeRelevanceAuditor.d.ts +4 -1
- package/dist/lib/service/evolution/RecipeRelevanceAuditor.js +50 -49
- package/dist/lib/service/evolution/RedundancyAnalyzer.d.ts +3 -7
- package/dist/lib/service/evolution/RedundancyAnalyzer.js +15 -22
- package/dist/lib/service/evolution/StagingManager.d.ts +6 -15
- package/dist/lib/service/evolution/StagingManager.js +37 -95
- package/dist/lib/service/evolution/createSupersedeProposal.d.ts +1 -1
- package/dist/lib/service/evolution/createSupersedeProposal.js +7 -8
- package/dist/lib/service/guard/CoverageAnalyzer.d.ts +3 -7
- package/dist/lib/service/guard/CoverageAnalyzer.js +9 -11
- package/dist/lib/service/guard/GuardCheckEngine.d.ts +3 -0
- package/dist/lib/service/guard/GuardCheckEngine.js +14 -22
- package/dist/lib/service/guard/ReverseGuard.d.ts +4 -7
- package/dist/lib/service/guard/ReverseGuard.js +21 -31
- package/dist/lib/service/guard/ViolationsStore.d.ts +15 -21
- package/dist/lib/service/guard/ViolationsStore.js +75 -69
- package/dist/lib/service/knowledge/CodeEntityGraph.d.ts +45 -63
- package/dist/lib/service/knowledge/CodeEntityGraph.js +418 -496
- package/dist/lib/service/knowledge/ConfidenceRouter.js +18 -9
- package/dist/lib/service/knowledge/KnowledgeFileWriter.d.ts +2 -1
- package/dist/lib/service/knowledge/KnowledgeGraphService.d.ts +18 -60
- package/dist/lib/service/knowledge/KnowledgeGraphService.js +58 -109
- package/dist/lib/service/knowledge/KnowledgeService.d.ts +15 -1
- package/dist/lib/service/knowledge/KnowledgeService.js +97 -46
- package/dist/lib/service/knowledge/RecipeProductionGateway.d.ts +0 -2
- package/dist/lib/service/knowledge/RecipeProductionGateway.js +0 -2
- package/dist/lib/service/knowledge/SourceRefReconciler.d.ts +5 -13
- package/dist/lib/service/knowledge/SourceRefReconciler.js +58 -78
- package/dist/lib/service/module/ModuleService.js +10 -19
- package/dist/lib/service/panorama/CouplingAnalyzer.d.ts +14 -3
- package/dist/lib/service/panorama/CouplingAnalyzer.js +137 -32
- package/dist/lib/service/panorama/DimensionAnalyzer.d.ts +7 -4
- package/dist/lib/service/panorama/DimensionAnalyzer.js +94 -33
- package/dist/lib/service/panorama/LayerInferrer.d.ts +16 -1
- package/dist/lib/service/panorama/LayerInferrer.js +118 -1
- package/dist/lib/service/panorama/ModuleDiscoverer.d.ts +14 -4
- package/dist/lib/service/panorama/ModuleDiscoverer.js +209 -61
- package/dist/lib/service/panorama/PanoramaAggregator.d.ts +15 -4
- package/dist/lib/service/panorama/PanoramaAggregator.js +128 -62
- package/dist/lib/service/panorama/PanoramaScanner.d.ts +5 -1
- package/dist/lib/service/panorama/PanoramaScanner.js +60 -31
- package/dist/lib/service/panorama/PanoramaService.d.ts +11 -8
- package/dist/lib/service/panorama/PanoramaService.js +49 -69
- package/dist/lib/service/panorama/PanoramaTypes.d.ts +41 -0
- package/dist/lib/service/panorama/RoleRefiner.d.ts +10 -5
- package/dist/lib/service/panorama/RoleRefiner.js +92 -282
- package/dist/lib/service/panorama/TechStackProfiler.d.ts +13 -0
- package/dist/lib/service/panorama/TechStackProfiler.js +79 -0
- package/dist/lib/service/quality/QualityScorer.d.ts +45 -26
- package/dist/lib/service/quality/QualityScorer.js +157 -83
- package/dist/lib/service/search/SearchEngine.d.ts +1 -0
- package/dist/lib/service/search/SearchEngine.js +32 -37
- package/dist/lib/service/signal/HitRecorder.js +5 -5
- package/dist/lib/service/skills/RuleRecallStrategy.js +7 -3
- package/dist/lib/service/skills/SignalCollector.d.ts +6 -8
- package/dist/lib/service/skills/SignalCollector.js +34 -60
- package/dist/lib/service/skills/SkillAdvisor.d.ts +7 -13
- package/dist/lib/service/skills/SkillAdvisor.js +30 -79
- package/dist/lib/service/vector/ContextualEnricher.d.ts +1 -0
- package/dist/lib/service/vector/ContextualEnricher.js +4 -0
- package/dist/lib/service/vector/SyncCoordinator.d.ts +3 -1
- package/dist/lib/service/vector/SyncCoordinator.js +25 -3
- package/dist/lib/service/vector/VectorService.d.ts +2 -0
- package/dist/lib/service/vector/VectorService.js +3 -0
- package/dist/lib/service/wiki/WikiGenerator.js +1 -1
- package/dist/lib/shared/LanguageProfiles.d.ts +109 -0
- package/dist/lib/shared/LanguageProfiles.js +939 -0
- package/dist/lib/shared/LanguageService.d.ts +6 -0
- package/dist/lib/shared/LanguageService.js +19 -0
- package/dist/lib/shared/constants.d.ts +19 -19
- package/dist/lib/shared/constants.js +10 -10
- package/dist/lib/shared/developer-identity.d.ts +18 -0
- package/dist/lib/shared/developer-identity.js +62 -0
- package/dist/lib/shared/schemas/http-requests.d.ts +8 -17
- package/dist/lib/shared/schemas/http-requests.js +9 -6
- package/dist/lib/shared/schemas/mcp-tools.d.ts +1 -1
- package/dist/lib/types/knowledge-wire.d.ts +1 -0
- package/dist/lib/types/project-snapshot-builder.d.ts +0 -1
- package/dist/lib/types/project-snapshot-builder.js +0 -1
- package/dist/lib/types/project-snapshot.d.ts +0 -1
- package/dist/lib/types/project-snapshot.js +0 -1
- package/dist/lib/types/snapshot-views.d.ts +0 -2
- package/dist/lib/types/snapshot-views.js +0 -1
- package/package.json +2 -1
- package/dashboard/dist/assets/icons-D1aVZYFW.js +0 -1
- package/dashboard/dist/assets/index-CxHOu8Hd.css +0 -1
- package/dashboard/dist/assets/index-DDdAOpYT.js +0 -128
- package/dist/lib/repository/base/BaseRepository.d.ts +0 -53
- package/dist/lib/repository/base/BaseRepository.js +0 -226
|
@@ -16,7 +16,18 @@ import { EventBus } from '../../infrastructure/event/EventBus.js';
|
|
|
16
16
|
import Logger from '../../infrastructure/logging/Logger.js';
|
|
17
17
|
import { getRealtimeService as _getRealtimeService } from '../../infrastructure/realtime/RealtimeService.js';
|
|
18
18
|
import { ReportStore } from '../../infrastructure/report/ReportStore.js';
|
|
19
|
+
import { AuditRepositoryImpl } from '../../repository/audit/AuditRepository.js';
|
|
20
|
+
import { BootstrapRepositoryImpl } from '../../repository/bootstrap/BootstrapRepository.js';
|
|
21
|
+
import { CodeEntityRepositoryImpl } from '../../repository/code/CodeEntityRepository.js';
|
|
22
|
+
import { ProposalRepository } from '../../repository/evolution/ProposalRepository.js';
|
|
23
|
+
import { GuardViolationRepositoryImpl } from '../../repository/guard/GuardViolationRepository.js';
|
|
24
|
+
import { KnowledgeEdgeRepositoryImpl } from '../../repository/knowledge/KnowledgeEdgeRepository.js';
|
|
19
25
|
import { KnowledgeRepositoryImpl } from '../../repository/knowledge/KnowledgeRepository.impl.js';
|
|
26
|
+
import { MemoryRepositoryImpl } from '../../repository/memory/MemoryRepository.js';
|
|
27
|
+
import { RemoteCommandRepository } from '../../repository/remote/RemoteCommandRepository.js';
|
|
28
|
+
import { unwrapRawDb } from '../../repository/search/SearchRepoAdapter.js';
|
|
29
|
+
import { SessionRepositoryImpl } from '../../repository/session/SessionRepository.js';
|
|
30
|
+
import { RecipeSourceRefRepositoryImpl } from '../../repository/sourceref/RecipeSourceRefRepository.js';
|
|
20
31
|
import { BootstrapTaskManager } from '../../service/bootstrap/BootstrapTaskManager.js';
|
|
21
32
|
import { KnowledgeFileWriter } from '../../service/knowledge/KnowledgeFileWriter.js';
|
|
22
33
|
export function register(c) {
|
|
@@ -59,6 +70,55 @@ export function register(c) {
|
|
|
59
70
|
const drizzle = db.getDrizzle();
|
|
60
71
|
return new KnowledgeRepositoryImpl(db, drizzle);
|
|
61
72
|
});
|
|
73
|
+
c.singleton('knowledgeEdgeRepository', (ct) => {
|
|
74
|
+
const db = ct.get('database');
|
|
75
|
+
const drizzle = db.getDrizzle();
|
|
76
|
+
return new KnowledgeEdgeRepositoryImpl(drizzle);
|
|
77
|
+
});
|
|
78
|
+
c.singleton('codeEntityRepository', (ct) => {
|
|
79
|
+
const db = ct.get('database');
|
|
80
|
+
const drizzle = db.getDrizzle();
|
|
81
|
+
return new CodeEntityRepositoryImpl(drizzle);
|
|
82
|
+
});
|
|
83
|
+
c.singleton('bootstrapRepository', (ct) => {
|
|
84
|
+
const db = ct.get('database');
|
|
85
|
+
const drizzle = db.getDrizzle();
|
|
86
|
+
return new BootstrapRepositoryImpl(drizzle);
|
|
87
|
+
});
|
|
88
|
+
c.singleton('guardViolationRepository', (ct) => {
|
|
89
|
+
const db = ct.get('database');
|
|
90
|
+
const drizzle = db.getDrizzle();
|
|
91
|
+
return new GuardViolationRepositoryImpl(drizzle);
|
|
92
|
+
});
|
|
93
|
+
c.singleton('auditRepository', (ct) => {
|
|
94
|
+
const db = ct.get('database');
|
|
95
|
+
const drizzle = db.getDrizzle();
|
|
96
|
+
return new AuditRepositoryImpl(drizzle);
|
|
97
|
+
});
|
|
98
|
+
c.singleton('memoryRepository', (ct) => {
|
|
99
|
+
const db = ct.get('database');
|
|
100
|
+
const drizzle = db.getDrizzle();
|
|
101
|
+
return new MemoryRepositoryImpl(drizzle);
|
|
102
|
+
});
|
|
103
|
+
c.singleton('sessionRepository', (ct) => {
|
|
104
|
+
const db = ct.get('database');
|
|
105
|
+
const drizzle = db.getDrizzle();
|
|
106
|
+
return new SessionRepositoryImpl(drizzle);
|
|
107
|
+
});
|
|
108
|
+
c.singleton('proposalRepository', (ct) => {
|
|
109
|
+
const db = ct.get('database');
|
|
110
|
+
const drizzle = db.getDrizzle();
|
|
111
|
+
return new ProposalRepository(drizzle);
|
|
112
|
+
});
|
|
113
|
+
c.singleton('remoteCommandRepository', (ct) => {
|
|
114
|
+
const db = ct.get('database');
|
|
115
|
+
return new RemoteCommandRepository(unwrapRawDb(db), db.getDrizzle());
|
|
116
|
+
});
|
|
117
|
+
c.singleton('recipeSourceRefRepository', (ct) => {
|
|
118
|
+
const db = ct.get('database');
|
|
119
|
+
const drizzle = db.getDrizzle();
|
|
120
|
+
return new RecipeSourceRefRepositoryImpl(drizzle);
|
|
121
|
+
});
|
|
62
122
|
c.singleton('knowledgeFileWriter', (ct) => {
|
|
63
123
|
const projectRoot = resolveProjectRoot(ct);
|
|
64
124
|
return new KnowledgeFileWriter(projectRoot);
|
|
@@ -14,6 +14,7 @@ import { getEnhancementRegistry } from '../../core/enhancement/index.js';
|
|
|
14
14
|
import { HnswVectorAdapter } from '../../infrastructure/vector/HnswVectorAdapter.js';
|
|
15
15
|
import { IndexingPipeline } from '../../infrastructure/vector/IndexingPipeline.js';
|
|
16
16
|
import { JsonVectorAdapter } from '../../infrastructure/vector/JsonVectorAdapter.js';
|
|
17
|
+
import { LifecycleEventRepository } from '../../repository/evolution/LifecycleEventRepository.js';
|
|
17
18
|
import { ProposalRepository } from '../../repository/evolution/ProposalRepository.js';
|
|
18
19
|
import { ConsolidationAdvisor } from '../../service/evolution/ConsolidationAdvisor.js';
|
|
19
20
|
import { ContentPatcher } from '../../service/evolution/ContentPatcher.js';
|
|
@@ -42,11 +43,13 @@ export function register(c) {
|
|
|
42
43
|
confidenceRouter: ct.get('confidenceRouter'),
|
|
43
44
|
qualityScorer: ct.get('qualityScorer'),
|
|
44
45
|
eventBus: ct.services.eventBus ? ct.get('eventBus') : null,
|
|
46
|
+
edgeRepo: ct.get('knowledgeEdgeRepository'),
|
|
47
|
+
proposalRepo: ct.get('proposalRepository'),
|
|
45
48
|
}));
|
|
46
|
-
c.singleton('knowledgeGraphService', (ct) => new KnowledgeGraphService(ct.get('
|
|
49
|
+
c.singleton('knowledgeGraphService', (ct) => new KnowledgeGraphService(ct.get('knowledgeEdgeRepository')));
|
|
47
50
|
c.singleton('codeEntityGraph', (ct) => {
|
|
48
51
|
const projectRoot = resolveProjectRoot(ct);
|
|
49
|
-
return new CodeEntityGraph(ct.get('
|
|
52
|
+
return new CodeEntityGraph(ct.get('codeEntityRepository'), ct.get('knowledgeEdgeRepository'), { projectRoot });
|
|
50
53
|
});
|
|
51
54
|
// ═══ Search + Vector ═══
|
|
52
55
|
c.singleton('searchEngine', (ct) => {
|
|
@@ -58,11 +61,10 @@ export function register(c) {
|
|
|
58
61
|
vectorStore: ct.get('vectorStore'),
|
|
59
62
|
vectorService,
|
|
60
63
|
hybridRetriever: ct.get('hybridRetriever'),
|
|
61
|
-
// CrossEncoderReranker disabled — BM25+vector dual-recall + CoarseRanker + MultiSignalRanker
|
|
62
|
-
// is sufficient for knowledge-base scale (hundreds~thousands of entries).
|
|
63
|
-
// Re-enable when document scale grows to 10k+ or external noisy sources are integrated.
|
|
64
64
|
crossEncoderReranker: null,
|
|
65
65
|
signalBus: ct.singletons.signalBus || null,
|
|
66
|
+
knowledgeRepo: ct.get('knowledgeRepository'),
|
|
67
|
+
sourceRefRepo: ct.get('recipeSourceRefRepository'),
|
|
66
68
|
});
|
|
67
69
|
}, { aiDependent: true });
|
|
68
70
|
c.singleton('vectorStore', (ct) => {
|
|
@@ -135,39 +137,47 @@ export function register(c) {
|
|
|
135
137
|
c.register('projectGraph', () => c.singletons.projectGraph || null);
|
|
136
138
|
// ═══ Governance / Evolution ═══
|
|
137
139
|
c.singleton('sourceRefReconciler', (ct) => {
|
|
138
|
-
const db = ct.get('database');
|
|
139
140
|
const projectRoot = resolveProjectRoot();
|
|
140
|
-
|
|
141
|
+
const sourceRefRepo = ct.get('recipeSourceRefRepository');
|
|
142
|
+
const knowledgeRepo = ct.get('knowledgeRepository');
|
|
143
|
+
return new SourceRefReconciler(projectRoot, sourceRefRepo, knowledgeRepo, {
|
|
141
144
|
signalBus: ct.singletons.signalBus || undefined,
|
|
142
145
|
});
|
|
143
146
|
});
|
|
144
147
|
c.singleton('stagingManager', (ct) => {
|
|
145
|
-
const
|
|
146
|
-
return new StagingManager(
|
|
148
|
+
const knowledgeRepo = ct.get('knowledgeRepository');
|
|
149
|
+
return new StagingManager(knowledgeRepo, {
|
|
147
150
|
signalBus: ct.singletons.signalBus || undefined,
|
|
148
151
|
});
|
|
149
152
|
});
|
|
150
153
|
c.singleton('decayDetector', (ct) => {
|
|
151
|
-
const
|
|
152
|
-
return new DecayDetector(
|
|
154
|
+
const knowledgeRepo = ct.get('knowledgeRepository');
|
|
155
|
+
return new DecayDetector(knowledgeRepo, {
|
|
153
156
|
signalBus: ct.singletons.signalBus || undefined,
|
|
157
|
+
knowledgeEdgeRepo: ct.services.knowledgeEdgeRepository
|
|
158
|
+
? ct.get('knowledgeEdgeRepository')
|
|
159
|
+
: undefined,
|
|
160
|
+
sourceRefRepo: ct.services.recipeSourceRefRepository
|
|
161
|
+
? ct.get('recipeSourceRefRepository')
|
|
162
|
+
: undefined,
|
|
163
|
+
drizzle: ct.get('database').getDrizzle(),
|
|
154
164
|
});
|
|
155
165
|
});
|
|
156
166
|
c.singleton('contradictionDetector', (ct) => {
|
|
157
|
-
const
|
|
158
|
-
return new ContradictionDetector(
|
|
167
|
+
const knowledgeRepo = ct.get('knowledgeRepository');
|
|
168
|
+
return new ContradictionDetector(knowledgeRepo, {
|
|
159
169
|
signalBus: ct.singletons.signalBus || undefined,
|
|
160
170
|
});
|
|
161
171
|
});
|
|
162
172
|
c.singleton('redundancyAnalyzer', (ct) => {
|
|
163
|
-
const
|
|
164
|
-
return new RedundancyAnalyzer(
|
|
173
|
+
const knowledgeRepo = ct.get('knowledgeRepository');
|
|
174
|
+
return new RedundancyAnalyzer(knowledgeRepo, {
|
|
165
175
|
signalBus: ct.singletons.signalBus || undefined,
|
|
166
176
|
});
|
|
167
177
|
});
|
|
168
178
|
c.singleton('enhancementSuggester', (ct) => {
|
|
169
|
-
const
|
|
170
|
-
return new EnhancementSuggester(
|
|
179
|
+
const knowledgeRepo = ct.get('knowledgeRepository');
|
|
180
|
+
return new EnhancementSuggester(knowledgeRepo, {
|
|
171
181
|
signalBus: ct.singletons.signalBus || undefined,
|
|
172
182
|
});
|
|
173
183
|
});
|
|
@@ -184,29 +194,45 @@ export function register(c) {
|
|
|
184
194
|
});
|
|
185
195
|
c.singleton('proposalRepository', (ct) => {
|
|
186
196
|
const db = ct.get('database');
|
|
187
|
-
|
|
197
|
+
const drizzle = db.getDrizzle();
|
|
198
|
+
return new ProposalRepository(drizzle);
|
|
188
199
|
});
|
|
189
200
|
c.singleton('contentPatcher', (ct) => {
|
|
201
|
+
const knowledgeRepo = ct.get('knowledgeRepository');
|
|
202
|
+
const sourceRefRepo = ct.get('recipeSourceRefRepository');
|
|
203
|
+
return new ContentPatcher(knowledgeRepo, sourceRefRepo);
|
|
204
|
+
});
|
|
205
|
+
c.singleton('lifecycleEventRepository', (ct) => {
|
|
190
206
|
const db = ct.get('database');
|
|
191
|
-
|
|
207
|
+
const drizzle = db.getDrizzle();
|
|
208
|
+
return new LifecycleEventRepository(drizzle);
|
|
192
209
|
});
|
|
193
210
|
c.singleton('lifecycleSupervisor', (ct) => {
|
|
194
|
-
const
|
|
195
|
-
return new RecipeLifecycleSupervisor(
|
|
211
|
+
const knowledgeRepo = ct.get('knowledgeRepository');
|
|
212
|
+
return new RecipeLifecycleSupervisor(knowledgeRepo, {
|
|
196
213
|
signalBus: ct.singletons.signalBus || undefined,
|
|
214
|
+
lifecycleEventRepo: ct.services.lifecycleEventRepository
|
|
215
|
+
? ct.get('lifecycleEventRepository')
|
|
216
|
+
: undefined,
|
|
217
|
+
proposalRepo: ct.services.proposalRepository
|
|
218
|
+
? ct.get('proposalRepository')
|
|
219
|
+
: undefined,
|
|
197
220
|
});
|
|
198
221
|
});
|
|
199
222
|
c.singleton('proposalExecutor', (ct) => {
|
|
200
|
-
const
|
|
201
|
-
return new ProposalExecutor(
|
|
223
|
+
const knowledgeRepo = ct.get('knowledgeRepository');
|
|
224
|
+
return new ProposalExecutor(knowledgeRepo, ct.get('proposalRepository'), {
|
|
202
225
|
signalBus: ct.singletons.signalBus || undefined,
|
|
203
226
|
contentPatcher: ct.get('contentPatcher'),
|
|
204
227
|
supervisor: ct.get('lifecycleSupervisor'),
|
|
228
|
+
knowledgeEdgeRepo: ct.services.knowledgeEdgeRepository
|
|
229
|
+
? ct.get('knowledgeEdgeRepository')
|
|
230
|
+
: undefined,
|
|
205
231
|
});
|
|
206
232
|
});
|
|
207
233
|
c.singleton('consolidationAdvisor', (ct) => {
|
|
208
|
-
const
|
|
209
|
-
return new ConsolidationAdvisor(
|
|
234
|
+
const knowledgeRepo = ct.get('knowledgeRepository');
|
|
235
|
+
return new ConsolidationAdvisor(knowledgeRepo);
|
|
210
236
|
});
|
|
211
237
|
}
|
|
212
238
|
/**
|
|
@@ -235,7 +261,7 @@ export function initializeKnowledgeServices(c) {
|
|
|
235
261
|
try {
|
|
236
262
|
const d = data;
|
|
237
263
|
if (d.action === 'create' && d.entryId) {
|
|
238
|
-
_populateSourceRefsForEntry(c, d.entryId);
|
|
264
|
+
void _populateSourceRefsForEntry(c, d.entryId);
|
|
239
265
|
}
|
|
240
266
|
}
|
|
241
267
|
catch {
|
|
@@ -256,36 +282,45 @@ function await_import_EventBus() {
|
|
|
256
282
|
}
|
|
257
283
|
/**
|
|
258
284
|
* 从 knowledge_entries.reasoning 中提取 sources 并填充 recipe_source_refs 桥接表
|
|
285
|
+
* 使用 KnowledgeRepository + RecipeSourceRefRepository 类型安全 API
|
|
259
286
|
*/
|
|
260
|
-
function _populateSourceRefsForEntry(c, entryId) {
|
|
261
|
-
const db = c.get('database');
|
|
262
|
-
const rawDb = db.getDb();
|
|
263
|
-
const row = rawDb.prepare(`SELECT reasoning FROM knowledge_entries WHERE id = ?`).get(entryId);
|
|
264
|
-
if (!row?.reasoning) {
|
|
265
|
-
return;
|
|
266
|
-
}
|
|
267
|
-
let sources = [];
|
|
287
|
+
async function _populateSourceRefsForEntry(c, entryId) {
|
|
268
288
|
try {
|
|
269
|
-
const
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
}
|
|
277
|
-
if (sources.length === 0) {
|
|
278
|
-
return;
|
|
279
|
-
}
|
|
280
|
-
const now = Date.now();
|
|
281
|
-
const upsert = rawDb.prepare(`INSERT OR REPLACE INTO recipe_source_refs (recipe_id, source_path, status, verified_at)
|
|
282
|
-
VALUES (?, ?, 'active', ?)`);
|
|
283
|
-
for (const sourcePath of sources) {
|
|
289
|
+
const knowledgeRepo = c.get('knowledgeRepository');
|
|
290
|
+
const sourceRefRepo = c.get('recipeSourceRefRepository');
|
|
291
|
+
const row = await knowledgeRepo.findSourceFileAndReasoning(entryId);
|
|
292
|
+
if (!row?.reasoning) {
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
let sources = [];
|
|
284
296
|
try {
|
|
285
|
-
|
|
297
|
+
const reasoning = JSON.parse(row.reasoning);
|
|
298
|
+
sources = Array.isArray(reasoning.sources)
|
|
299
|
+
? reasoning.sources.filter((s) => typeof s === 'string' && s.length > 0)
|
|
300
|
+
: [];
|
|
286
301
|
}
|
|
287
302
|
catch {
|
|
288
|
-
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
if (sources.length === 0) {
|
|
306
|
+
return;
|
|
289
307
|
}
|
|
308
|
+
const now = Date.now();
|
|
309
|
+
for (const sourcePath of sources) {
|
|
310
|
+
try {
|
|
311
|
+
sourceRefRepo.upsert({
|
|
312
|
+
recipeId: entryId,
|
|
313
|
+
sourcePath,
|
|
314
|
+
status: 'active',
|
|
315
|
+
verifiedAt: now,
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
catch {
|
|
319
|
+
/* table may not exist yet */
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
catch {
|
|
324
|
+
/* repos may not be registered yet */
|
|
290
325
|
}
|
|
291
326
|
}
|
|
@@ -23,16 +23,16 @@ import { RoleRefiner } from '../../service/panorama/RoleRefiner.js';
|
|
|
23
23
|
export const PanoramaModule = {
|
|
24
24
|
register(container) {
|
|
25
25
|
const ct = container;
|
|
26
|
-
const getDb = () => {
|
|
27
|
-
const db = ct.singletons.database;
|
|
28
|
-
return (db?.getDb ? db.getDb() : db);
|
|
29
|
-
};
|
|
30
26
|
const getProjectRoot = () => ct.config?.projectRoot ?? process.cwd();
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
const getBootstrapRepo = () => container.get('bootstrapRepository');
|
|
28
|
+
const getEntityRepo = () => container.get('codeEntityRepository');
|
|
29
|
+
const getEdgeRepo = () => container.get('knowledgeEdgeRepository');
|
|
30
|
+
const getKnowledgeRepo = () => container.get('knowledgeRepository');
|
|
31
|
+
ct.singleton('moduleDiscoverer', () => new ModuleDiscoverer(getEntityRepo(), getEdgeRepo(), getProjectRoot()));
|
|
32
|
+
ct.singleton('roleRefiner', () => new RoleRefiner(getBootstrapRepo(), getEntityRepo(), getEdgeRepo(), getProjectRoot()));
|
|
33
|
+
ct.singleton('couplingAnalyzer', () => new CouplingAnalyzer(getEdgeRepo(), getEntityRepo(), getProjectRoot()));
|
|
34
34
|
ct.singleton('layerInferrer', () => new LayerInferrer());
|
|
35
|
-
ct.singleton('dimensionAnalyzer', () => new DimensionAnalyzer(
|
|
35
|
+
ct.singleton('dimensionAnalyzer', () => new DimensionAnalyzer(getBootstrapRepo(), getEntityRepo(), getKnowledgeRepo(), getProjectRoot()));
|
|
36
36
|
ct.singleton('panoramaAggregator', (c) => {
|
|
37
37
|
const sc = c;
|
|
38
38
|
const roleRefiner = sc.get('roleRefiner');
|
|
@@ -43,7 +43,10 @@ export const PanoramaModule = {
|
|
|
43
43
|
roleRefiner,
|
|
44
44
|
couplingAnalyzer,
|
|
45
45
|
layerInferrer,
|
|
46
|
-
|
|
46
|
+
bootstrapRepo: getBootstrapRepo(),
|
|
47
|
+
entityRepo: getEntityRepo(),
|
|
48
|
+
edgeRepo: getEdgeRepo(),
|
|
49
|
+
knowledgeRepo: getKnowledgeRepo(),
|
|
47
50
|
projectRoot: getProjectRoot(),
|
|
48
51
|
dimensionAnalyzer,
|
|
49
52
|
});
|
|
@@ -56,6 +59,8 @@ export const PanoramaModule = {
|
|
|
56
59
|
return new PanoramaScanner({
|
|
57
60
|
projectRoot: getProjectRoot(),
|
|
58
61
|
container: container,
|
|
62
|
+
entityRepo: getEntityRepo(),
|
|
63
|
+
edgeRepo: getEdgeRepo(),
|
|
59
64
|
logger,
|
|
60
65
|
});
|
|
61
66
|
});
|
|
@@ -66,7 +71,8 @@ export const PanoramaModule = {
|
|
|
66
71
|
const moduleDiscoverer = sc.get('moduleDiscoverer');
|
|
67
72
|
return new PanoramaService({
|
|
68
73
|
aggregator,
|
|
69
|
-
|
|
74
|
+
edgeRepo: getEdgeRepo(),
|
|
75
|
+
knowledgeRepo: getKnowledgeRepo(),
|
|
70
76
|
projectRoot: getProjectRoot(),
|
|
71
77
|
scanner,
|
|
72
78
|
moduleDiscoverer,
|
|
@@ -39,6 +39,9 @@ export function register(c) {
|
|
|
39
39
|
: null,
|
|
40
40
|
autoSyncOnCrud: config.autoSyncOnCrud !== false,
|
|
41
41
|
syncDebounceMs: config.syncDebounceMs || 2000,
|
|
42
|
+
drizzle: ct.services.database
|
|
43
|
+
? ct.get('database').getDrizzle?.()
|
|
44
|
+
: undefined,
|
|
42
45
|
});
|
|
43
46
|
}, { aiDependent: true });
|
|
44
47
|
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AuditRepository — 审计日志的仓储实现
|
|
3
|
+
*
|
|
4
|
+
* 从 AuditStore 提取的数据操作,
|
|
5
|
+
* 使用 Drizzle 类型安全 API 操作 audit_logs 表。
|
|
6
|
+
*/
|
|
7
|
+
import { auditLogs } from '../../infrastructure/database/drizzle/schema.js';
|
|
8
|
+
import { RepositoryBase } from '../base/RepositoryBase.js';
|
|
9
|
+
export interface AuditLogEntity {
|
|
10
|
+
id: string;
|
|
11
|
+
timestamp: number;
|
|
12
|
+
actor: string;
|
|
13
|
+
actorContext: Record<string, unknown>;
|
|
14
|
+
action: string;
|
|
15
|
+
resource: string | null;
|
|
16
|
+
operationData: Record<string, unknown>;
|
|
17
|
+
result: string;
|
|
18
|
+
errorMessage: string | null;
|
|
19
|
+
duration: number | null;
|
|
20
|
+
}
|
|
21
|
+
export interface AuditLogInsert {
|
|
22
|
+
id: string;
|
|
23
|
+
timestamp: number;
|
|
24
|
+
actor: string;
|
|
25
|
+
actorContext?: string;
|
|
26
|
+
action: string;
|
|
27
|
+
resource?: string;
|
|
28
|
+
operationData?: string;
|
|
29
|
+
result: string;
|
|
30
|
+
errorMessage?: string | null;
|
|
31
|
+
duration?: number | null;
|
|
32
|
+
}
|
|
33
|
+
export interface AuditQueryFilters {
|
|
34
|
+
actor?: string;
|
|
35
|
+
action?: string;
|
|
36
|
+
result?: string;
|
|
37
|
+
startDate?: number;
|
|
38
|
+
endDate?: number;
|
|
39
|
+
limit?: number;
|
|
40
|
+
}
|
|
41
|
+
export interface AuditStats {
|
|
42
|
+
timeRange: string;
|
|
43
|
+
total: number;
|
|
44
|
+
success: number;
|
|
45
|
+
failure: number;
|
|
46
|
+
successRate: string;
|
|
47
|
+
avgDuration: string;
|
|
48
|
+
byActor: Array<{
|
|
49
|
+
actor: string;
|
|
50
|
+
count: number;
|
|
51
|
+
}>;
|
|
52
|
+
byAction: Array<{
|
|
53
|
+
action: string;
|
|
54
|
+
count: number;
|
|
55
|
+
}>;
|
|
56
|
+
}
|
|
57
|
+
export declare class AuditRepositoryImpl extends RepositoryBase<typeof auditLogs, AuditLogEntity> {
|
|
58
|
+
#private;
|
|
59
|
+
constructor(drizzle: ConstructorParameters<typeof RepositoryBase<typeof auditLogs, AuditLogEntity>>[0]);
|
|
60
|
+
findById(id: string): Promise<AuditLogEntity | null>;
|
|
61
|
+
create(data: AuditLogInsert): Promise<AuditLogEntity>;
|
|
62
|
+
delete(id: string): Promise<boolean>;
|
|
63
|
+
/** 动态多条件查询 */
|
|
64
|
+
query(filters?: AuditQueryFilters): Promise<AuditLogEntity[]>;
|
|
65
|
+
/** 根据请求 ID 查询 */
|
|
66
|
+
findByRequestId(requestId: string): Promise<AuditLogEntity | null>;
|
|
67
|
+
/** 根据角色查询 */
|
|
68
|
+
findByActor(actor: string, limit?: number): Promise<AuditLogEntity[]>;
|
|
69
|
+
/** 根据操作查询 */
|
|
70
|
+
findByAction(action: string, limit?: number): Promise<AuditLogEntity[]>;
|
|
71
|
+
/** 根据结果查询 */
|
|
72
|
+
findByResult(result: string, limit?: number): Promise<AuditLogEntity[]>;
|
|
73
|
+
/** 获取统计数据 */
|
|
74
|
+
getStats(timeRange?: string): Promise<AuditStats>;
|
|
75
|
+
/**
|
|
76
|
+
* 清理过期审计日志
|
|
77
|
+
* @param maxAgeDays 保留天数
|
|
78
|
+
*/
|
|
79
|
+
cleanup(maxAgeDays?: number): Promise<{
|
|
80
|
+
deleted: number;
|
|
81
|
+
}>;
|
|
82
|
+
/**
|
|
83
|
+
* Guard 违规规则名 TOP-N (SkillAdvisor.#getGuardPatterns)
|
|
84
|
+
*/
|
|
85
|
+
findTopGuardViolationRules(minCount: number, limit: number): Promise<Array<{
|
|
86
|
+
ruleName: string;
|
|
87
|
+
cnt: number;
|
|
88
|
+
}>>;
|
|
89
|
+
/**
|
|
90
|
+
* Guard 违规信号 (SignalCollector.#collectGuardSignals)
|
|
91
|
+
*/
|
|
92
|
+
findGuardViolationSignals(limit: number): Promise<Array<{
|
|
93
|
+
ruleName: string;
|
|
94
|
+
cnt: number;
|
|
95
|
+
lastAt: number;
|
|
96
|
+
}>>;
|
|
97
|
+
/**
|
|
98
|
+
* 最近动作日志 (SignalCollector.#collectActionSignals)
|
|
99
|
+
*/
|
|
100
|
+
findRecentActions(sinceTs: number, limit: number): Promise<Array<{
|
|
101
|
+
actor: string;
|
|
102
|
+
action: string;
|
|
103
|
+
resource: string | null;
|
|
104
|
+
result: string;
|
|
105
|
+
timestamp: number;
|
|
106
|
+
}>>;
|
|
107
|
+
}
|