autosnippet 3.2.22 → 3.3.2
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/dashboard/dist/assets/icons-BJ2mUBi8.js +1 -0
- package/dashboard/dist/assets/index-B659K9t5.js +128 -0
- package/dashboard/dist/assets/index-NCm40PMD.css +1 -0
- package/dashboard/dist/index.html +3 -3
- package/dist/bin/cli.d.ts +1 -1
- package/dist/bin/cli.js +244 -261
- package/dist/lib/agent/context/ExplorationTracker.d.ts +2 -0
- package/dist/lib/agent/context/ExplorationTracker.js +21 -3
- package/dist/lib/agent/core/ToolExecutionPipeline.d.ts +3 -1
- package/dist/lib/agent/core/ToolExecutionPipeline.js +8 -1
- package/dist/lib/agent/forge/DynamicComposer.d.ts +58 -0
- package/dist/lib/agent/forge/DynamicComposer.js +99 -0
- package/dist/lib/agent/forge/SandboxRunner.d.ts +60 -0
- package/dist/lib/agent/forge/SandboxRunner.js +251 -0
- package/dist/lib/agent/forge/TemporaryToolRegistry.d.ts +76 -0
- package/dist/lib/agent/forge/TemporaryToolRegistry.js +154 -0
- package/dist/lib/agent/forge/ToolForge.d.ts +92 -0
- package/dist/lib/agent/forge/ToolForge.js +239 -0
- package/dist/lib/agent/forge/ToolRequirementAnalyzer.d.ts +44 -0
- package/dist/lib/agent/forge/ToolRequirementAnalyzer.js +119 -0
- package/dist/lib/agent/tools/ToolRegistry.d.ts +2 -0
- package/dist/lib/agent/tools/ToolRegistry.js +4 -0
- package/dist/lib/agent/tools/composite.js +0 -1
- package/dist/lib/agent/tools/index.d.ts +2 -50
- package/dist/lib/agent/tools/index.js +2 -3
- package/dist/lib/agent/tools/lifecycle.d.ts +1 -58
- package/dist/lib/agent/tools/lifecycle.js +2 -75
- package/dist/lib/cli/SetupService.d.ts +46 -2
- package/dist/lib/cli/SetupService.js +2 -27
- package/dist/lib/cli/deploy/FileManifest.d.ts +0 -21
- package/dist/lib/cli/deploy/FileManifest.js +0 -11
- package/dist/lib/{platform/ios/spm → core/discovery}/SpmDiscoverer.d.ts +2 -5
- package/dist/lib/{platform/ios/spm → core/discovery}/SpmDiscoverer.js +159 -44
- package/dist/lib/core/discovery/index.d.ts +1 -1
- package/dist/lib/core/discovery/index.js +2 -2
- package/dist/lib/domain/knowledge/KnowledgeEntry.d.ts +10 -0
- package/dist/lib/domain/knowledge/KnowledgeEntry.js +2 -0
- package/dist/lib/domain/knowledge/Lifecycle.d.ts +19 -2
- package/dist/lib/domain/knowledge/Lifecycle.js +32 -6
- package/dist/lib/domain/knowledge/UnifiedValidator.d.ts +1 -5
- package/dist/lib/domain/knowledge/UnifiedValidator.js +7 -44
- package/dist/lib/domain/knowledge/values/Stats.d.ts +29 -0
- package/dist/lib/domain/knowledge/values/Stats.js +41 -0
- package/dist/lib/external/mcp/McpServer.d.ts +19 -38
- package/dist/lib/external/mcp/McpServer.js +145 -117
- package/dist/lib/external/mcp/autoApproveInjector.js +0 -2
- package/dist/lib/external/mcp/handlers/bootstrap/MissionBriefingBuilder.d.ts +26 -1
- package/dist/lib/external/mcp/handlers/bootstrap/MissionBriefingBuilder.js +41 -0
- package/dist/lib/external/mcp/handlers/bootstrap/pipeline/orchestrator.js +49 -0
- package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.d.ts +3 -0
- package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.js +27 -0
- package/dist/lib/external/mcp/handlers/bootstrap/skills.js +1 -1
- package/dist/lib/external/mcp/handlers/bootstrap-external.js +1 -0
- package/dist/lib/external/mcp/handlers/bootstrap-internal.js +2 -0
- package/dist/lib/external/mcp/handlers/consolidated.d.ts +116 -6
- package/dist/lib/external/mcp/handlers/consolidated.js +251 -71
- package/dist/lib/external/mcp/handlers/guard.d.ts +150 -0
- package/dist/lib/external/mcp/handlers/guard.js +245 -8
- package/dist/lib/external/mcp/handlers/knowledge.d.ts +0 -29
- package/dist/lib/external/mcp/handlers/knowledge.js +1 -76
- package/dist/lib/external/mcp/handlers/panorama.d.ts +36 -0
- package/dist/lib/external/mcp/handlers/panorama.js +156 -0
- package/dist/lib/external/mcp/handlers/system.d.ts +2 -54
- package/dist/lib/external/mcp/handlers/system.js +3 -113
- package/dist/lib/external/mcp/handlers/task.d.ts +13 -24
- package/dist/lib/external/mcp/handlers/task.js +217 -557
- package/dist/lib/external/mcp/handlers/types.d.ts +91 -8
- package/dist/lib/external/mcp/handlers/types.js +18 -1
- package/dist/lib/external/mcp/handlers/wiki-external.d.ts +18 -1
- package/dist/lib/external/mcp/handlers/wiki-external.js +16 -1
- package/dist/lib/external/mcp/tools.d.ts +14 -20
- package/dist/lib/external/mcp/tools.js +62 -91
- package/dist/lib/http/HttpServer.js +52 -6
- package/dist/lib/http/routes/{snippets.d.ts → audit.d.ts} +4 -2
- package/dist/lib/http/routes/audit.js +51 -0
- package/dist/lib/http/routes/commands.d.ts +1 -1
- package/dist/lib/http/routes/commands.js +1 -66
- package/dist/lib/http/routes/guardReport.d.ts +10 -0
- package/dist/lib/http/routes/guardReport.js +143 -0
- package/dist/lib/http/routes/knowledge.js +32 -1
- package/dist/lib/http/routes/panorama.d.ts +11 -0
- package/dist/lib/http/routes/panorama.js +322 -0
- package/dist/lib/http/routes/remote.js +0 -5
- package/dist/lib/http/routes/signals.d.ts +10 -0
- package/dist/lib/http/routes/signals.js +104 -0
- package/dist/lib/http/routes/task.d.ts +2 -3
- package/dist/lib/http/routes/task.js +17 -347
- package/dist/lib/http/routes/violations.js +1 -1
- package/dist/lib/infrastructure/audit/AuditLogger.d.ts +6 -1
- package/dist/lib/infrastructure/audit/AuditLogger.js +14 -1
- package/dist/lib/infrastructure/database/drizzle/schema.d.ts +181 -583
- package/dist/lib/infrastructure/database/drizzle/schema.js +28 -69
- package/dist/lib/infrastructure/database/migrations/004_evolution_proposals.d.ts +8 -0
- package/dist/lib/infrastructure/database/migrations/004_evolution_proposals.js +43 -0
- package/dist/lib/infrastructure/logging/Logger.d.ts +2 -0
- package/dist/lib/infrastructure/logging/Logger.js +34 -7
- package/dist/lib/infrastructure/monitoring/ErrorTracker.js +3 -1
- package/dist/lib/infrastructure/monitoring/PerformanceMonitor.d.ts +2 -2
- package/dist/lib/infrastructure/monitoring/PerformanceMonitor.js +12 -10
- package/dist/lib/infrastructure/notification/LarkNotifier.d.ts +24 -0
- package/dist/lib/infrastructure/notification/LarkNotifier.js +97 -0
- package/dist/lib/infrastructure/report/ReportStore.d.ts +45 -0
- package/dist/lib/infrastructure/report/ReportStore.js +133 -0
- package/dist/lib/infrastructure/signal/SignalAggregator.d.ts +18 -0
- package/dist/lib/infrastructure/signal/SignalAggregator.js +84 -0
- package/dist/lib/infrastructure/signal/SignalBridge.d.ts +13 -0
- package/dist/lib/infrastructure/signal/SignalBridge.js +20 -0
- package/dist/lib/infrastructure/signal/SignalBus.d.ts +63 -0
- package/dist/lib/infrastructure/signal/SignalBus.js +106 -0
- package/dist/lib/infrastructure/signal/SignalTraceWriter.d.ts +36 -0
- package/dist/lib/infrastructure/signal/SignalTraceWriter.js +130 -0
- package/dist/lib/injection/ServiceContainer.js +6 -0
- package/dist/lib/injection/ServiceMap.d.ts +16 -19
- package/dist/lib/injection/modules/AgentModule.d.ts +1 -1
- package/dist/lib/injection/modules/AgentModule.js +7 -1
- package/dist/lib/injection/modules/AppModule.d.ts +3 -4
- package/dist/lib/injection/modules/AppModule.js +7 -43
- package/dist/lib/injection/modules/GuardModule.js +27 -2
- package/dist/lib/injection/modules/InfraModule.d.ts +0 -1
- package/dist/lib/injection/modules/InfraModule.js +9 -7
- package/dist/lib/injection/modules/KnowledgeModule.js +51 -0
- package/dist/lib/injection/modules/PanoramaModule.d.ts +18 -0
- package/dist/lib/injection/modules/PanoramaModule.js +76 -0
- package/dist/lib/injection/modules/SignalModule.d.ts +10 -0
- package/dist/lib/injection/modules/SignalModule.js +84 -0
- package/dist/lib/repository/knowledge/KnowledgeRepository.impl.d.ts +1 -0
- package/dist/lib/repository/knowledge/KnowledgeRepository.impl.js +6 -0
- package/dist/lib/service/bootstrap/BootstrapTaskManager.d.ts +3 -1
- package/dist/lib/service/bootstrap/BootstrapTaskManager.js +20 -1
- package/dist/lib/service/delivery/AgentInstructionsGenerator.js +4 -5
- package/dist/lib/service/delivery/CursorDeliveryPipeline.d.ts +3 -1
- package/dist/lib/service/delivery/CursorDeliveryPipeline.js +13 -10
- package/dist/lib/service/delivery/RulesGenerator.js +3 -2
- package/dist/lib/service/evolution/ConsolidationAdvisor.d.ts +114 -0
- package/dist/lib/service/evolution/ConsolidationAdvisor.js +542 -0
- package/dist/lib/service/evolution/ContradictionDetector.d.ts +54 -0
- package/dist/lib/service/evolution/ContradictionDetector.js +253 -0
- package/dist/lib/service/evolution/DecayDetector.d.ts +71 -0
- package/dist/lib/service/evolution/DecayDetector.js +244 -0
- package/dist/lib/service/evolution/EnhancementSuggester.d.ts +38 -0
- package/dist/lib/service/evolution/EnhancementSuggester.js +220 -0
- package/dist/lib/service/evolution/KnowledgeMetabolism.d.ts +82 -0
- package/dist/lib/service/evolution/KnowledgeMetabolism.js +167 -0
- package/dist/lib/service/evolution/RedundancyAnalyzer.d.ts +53 -0
- package/dist/lib/service/evolution/RedundancyAnalyzer.js +210 -0
- package/dist/lib/service/evolution/StagingManager.d.ts +57 -0
- package/dist/lib/service/evolution/StagingManager.js +201 -0
- package/dist/lib/service/guard/ComplianceReporter.d.ts +42 -2
- package/dist/lib/service/guard/ComplianceReporter.js +43 -5
- package/dist/lib/service/guard/CoverageAnalyzer.d.ts +54 -0
- package/dist/lib/service/guard/CoverageAnalyzer.js +149 -0
- package/dist/lib/service/guard/GuardCheckEngine.d.ts +42 -0
- package/dist/lib/service/guard/GuardCheckEngine.js +465 -14
- package/dist/lib/service/guard/GuardFeedbackLoop.d.ts +3 -0
- package/dist/lib/service/guard/GuardFeedbackLoop.js +9 -0
- package/dist/lib/service/guard/ReverseGuard.d.ts +73 -0
- package/dist/lib/service/guard/ReverseGuard.js +256 -0
- package/dist/lib/service/guard/RuleLearner.d.ts +12 -0
- package/dist/lib/service/guard/RuleLearner.js +38 -0
- package/dist/lib/service/guard/UncertaintyCollector.d.ts +83 -0
- package/dist/lib/service/guard/UncertaintyCollector.js +149 -0
- package/dist/lib/service/guard/ViolationsStore.d.ts +1 -0
- package/dist/lib/service/guard/ViolationsStore.js +33 -3
- package/dist/lib/service/knowledge/ConfidenceRouter.d.ts +13 -0
- package/dist/lib/service/knowledge/ConfidenceRouter.js +14 -0
- package/dist/lib/service/knowledge/KnowledgeService.js +22 -4
- package/dist/lib/service/module/ModuleService.js +3 -13
- package/dist/lib/service/panorama/CouplingAnalyzer.d.ts +27 -0
- package/dist/lib/service/panorama/CouplingAnalyzer.js +192 -0
- package/dist/lib/service/panorama/DimensionAnalyzer.d.ts +28 -0
- package/dist/lib/service/panorama/DimensionAnalyzer.js +320 -0
- package/dist/lib/service/panorama/LayerInferrer.d.ts +19 -0
- package/dist/lib/service/panorama/LayerInferrer.js +182 -0
- package/dist/lib/service/panorama/ModuleDiscoverer.d.ts +24 -0
- package/dist/lib/service/panorama/ModuleDiscoverer.js +185 -0
- package/dist/lib/service/panorama/PanoramaAggregator.d.ts +29 -0
- package/dist/lib/service/panorama/PanoramaAggregator.js +228 -0
- package/dist/lib/service/panorama/PanoramaScanner.d.ts +52 -0
- package/dist/lib/service/panorama/PanoramaScanner.js +188 -0
- package/dist/lib/service/panorama/PanoramaService.d.ts +108 -0
- package/dist/lib/service/panorama/PanoramaService.js +220 -0
- package/dist/lib/service/panorama/PanoramaTypes.d.ts +134 -0
- package/dist/lib/service/panorama/PanoramaTypes.js +6 -0
- package/dist/lib/service/panorama/RoleRefiner.d.ts +48 -0
- package/dist/lib/service/panorama/RoleRefiner.js +535 -0
- package/dist/lib/service/search/MultiSignalRanker.d.ts +1 -0
- package/dist/lib/service/search/MultiSignalRanker.js +16 -0
- package/dist/lib/service/search/SearchEngine.d.ts +1 -0
- package/dist/lib/service/search/SearchEngine.js +9 -1
- package/dist/lib/service/search/SearchTypes.d.ts +2 -0
- package/dist/lib/service/signal/HitRecorder.d.ts +68 -0
- package/dist/lib/service/signal/HitRecorder.js +173 -0
- package/dist/lib/service/skills/SignalCollector.d.ts +3 -1
- package/dist/lib/service/skills/SignalCollector.js +31 -1
- package/dist/lib/service/task/IntentExtractor.d.ts +58 -0
- package/dist/lib/service/task/IntentExtractor.js +142 -0
- package/dist/lib/service/task/PrimeSearchPipeline.d.ts +54 -0
- package/dist/lib/service/task/PrimeSearchPipeline.js +98 -0
- package/dist/lib/shared/constants.d.ts +0 -15
- package/dist/lib/shared/constants.js +0 -10
- package/dist/lib/shared/schemas/mcp-tools.d.ts +41 -96
- package/dist/lib/shared/schemas/mcp-tools.js +59 -119
- package/dist/scripts/analyze-signals.d.ts +20 -0
- package/dist/scripts/analyze-signals.js +155 -0
- package/dist/scripts/diagnose-mcp.js +1 -1
- package/dist/scripts/release.js +2 -10
- package/package.json +4 -19
- package/skills/autosnippet-devdocs/SKILL.md +11 -8
- package/templates/claude-code/hooks/autosnippet-session.sh +10 -15
- package/templates/cursor-hooks/hooks/session-start.sh +1 -1
- package/templates/instructions/agent-static.md +2 -1
- package/templates/instructions/conventions.md +5 -6
- package/templates/recipes-setup/README.md +1 -2
- package/dashboard/dist/assets/icons-C1dUryS-.js +0 -1
- package/dashboard/dist/assets/index-D0whuycy.css +0 -1
- package/dashboard/dist/assets/index-DdvZE4Yd.js +0 -128
- package/dist/lib/domain/task/Task.d.ts +0 -140
- package/dist/lib/domain/task/Task.js +0 -254
- package/dist/lib/domain/task/TaskDependency.d.ts +0 -23
- package/dist/lib/domain/task/TaskDependency.js +0 -34
- package/dist/lib/domain/task/TaskIdGenerator.d.ts +0 -40
- package/dist/lib/domain/task/TaskIdGenerator.js +0 -75
- package/dist/lib/domain/task/index.d.ts +0 -4
- package/dist/lib/domain/task/index.js +0 -4
- package/dist/lib/http/routes/snippets.js +0 -49
- package/dist/lib/infrastructure/database/migrations/002_add_tasks.d.ts +0 -11
- package/dist/lib/infrastructure/database/migrations/002_add_tasks.js +0 -86
- package/dist/lib/platform/ClipboardManager.d.ts +0 -24
- package/dist/lib/platform/ClipboardManager.js +0 -142
- package/dist/lib/platform/NativeUi.d.ts +0 -53
- package/dist/lib/platform/NativeUi.js +0 -284
- package/dist/lib/platform/ios/index.d.ts +0 -38
- package/dist/lib/platform/ios/index.js +0 -42
- package/dist/lib/platform/ios/routes/spm.d.ts +0 -9
- package/dist/lib/platform/ios/routes/spm.js +0 -371
- package/dist/lib/platform/ios/snippet/PlaceholderConverter.d.ts +0 -21
- package/dist/lib/platform/ios/snippet/PlaceholderConverter.js +0 -48
- package/dist/lib/platform/ios/snippet/XcodeCodec.d.ts +0 -23
- package/dist/lib/platform/ios/snippet/XcodeCodec.js +0 -96
- package/dist/lib/platform/ios/spm/DependencyGraph.d.ts +0 -56
- package/dist/lib/platform/ios/spm/DependencyGraph.js +0 -195
- package/dist/lib/platform/ios/spm/PackageSwiftParser.d.ts +0 -69
- package/dist/lib/platform/ios/spm/PackageSwiftParser.js +0 -231
- package/dist/lib/platform/ios/spm/PathFinder.d.ts +0 -28
- package/dist/lib/platform/ios/spm/PathFinder.js +0 -117
- package/dist/lib/platform/ios/spm/PolicyEngine.d.ts +0 -44
- package/dist/lib/platform/ios/spm/PolicyEngine.js +0 -79
- package/dist/lib/platform/ios/spm/SpmHelper.d.ts +0 -102
- package/dist/lib/platform/ios/spm/SpmHelper.js +0 -464
- package/dist/lib/platform/ios/xcode/HeaderResolver.d.ts +0 -33
- package/dist/lib/platform/ios/xcode/HeaderResolver.js +0 -90
- package/dist/lib/platform/ios/xcode/SaveEventFilter.d.ts +0 -66
- package/dist/lib/platform/ios/xcode/SaveEventFilter.js +0 -142
- package/dist/lib/platform/ios/xcode/XcodeAutomation.d.ts +0 -71
- package/dist/lib/platform/ios/xcode/XcodeAutomation.js +0 -327
- package/dist/lib/platform/ios/xcode/XcodeImportResolver.d.ts +0 -130
- package/dist/lib/platform/ios/xcode/XcodeImportResolver.js +0 -404
- package/dist/lib/platform/ios/xcode/XcodeIntegration.d.ts +0 -89
- package/dist/lib/platform/ios/xcode/XcodeIntegration.js +0 -588
- package/dist/lib/platform/ios/xcode/XcodeWriteUtils.d.ts +0 -99
- package/dist/lib/platform/ios/xcode/XcodeWriteUtils.js +0 -190
- package/dist/lib/repository/task/TaskRepository.impl.d.ts +0 -171
- package/dist/lib/repository/task/TaskRepository.impl.js +0 -347
- package/dist/lib/service/automation/ActionPipeline.d.ts +0 -34
- package/dist/lib/service/automation/ActionPipeline.js +0 -53
- package/dist/lib/service/automation/AutomationOrchestrator.d.ts +0 -86
- package/dist/lib/service/automation/AutomationOrchestrator.js +0 -57
- package/dist/lib/service/automation/ContextCollector.d.ts +0 -24
- package/dist/lib/service/automation/ContextCollector.js +0 -35
- package/dist/lib/service/automation/DirectiveDetector.d.ts +0 -51
- package/dist/lib/service/automation/DirectiveDetector.js +0 -112
- package/dist/lib/service/automation/FileWatcher.d.ts +0 -51
- package/dist/lib/service/automation/FileWatcher.js +0 -366
- package/dist/lib/service/automation/TriggerResolver.d.ts +0 -36
- package/dist/lib/service/automation/TriggerResolver.js +0 -62
- package/dist/lib/service/automation/handlers/AlinkHandler.d.ts +0 -7
- package/dist/lib/service/automation/handlers/AlinkHandler.js +0 -80
- package/dist/lib/service/automation/handlers/CreateHandler.d.ts +0 -11
- package/dist/lib/service/automation/handlers/CreateHandler.js +0 -170
- package/dist/lib/service/automation/handlers/GuardHandler.d.ts +0 -17
- package/dist/lib/service/automation/handlers/GuardHandler.js +0 -218
- package/dist/lib/service/automation/handlers/HeaderHandler.d.ts +0 -2
- package/dist/lib/service/automation/handlers/HeaderHandler.js +0 -32
- package/dist/lib/service/automation/handlers/SearchHandler.d.ts +0 -11
- package/dist/lib/service/automation/handlers/SearchHandler.js +0 -278
- package/dist/lib/service/snippet/SnippetFactory.d.ts +0 -101
- package/dist/lib/service/snippet/SnippetFactory.js +0 -145
- package/dist/lib/service/snippet/SnippetInstaller.d.ts +0 -91
- package/dist/lib/service/snippet/SnippetInstaller.js +0 -276
- package/dist/lib/service/snippet/codecs/SnippetCodec.d.ts +0 -44
- package/dist/lib/service/snippet/codecs/SnippetCodec.js +0 -35
- package/dist/lib/service/snippet/codecs/VSCodeCodec.d.ts +0 -27
- package/dist/lib/service/snippet/codecs/VSCodeCodec.js +0 -82
- package/dist/lib/service/task/TaskGraphService.d.ts +0 -222
- package/dist/lib/service/task/TaskGraphService.js +0 -597
- package/dist/lib/service/task/TaskKnowledgeBridge.d.ts +0 -95
- package/dist/lib/service/task/TaskKnowledgeBridge.js +0 -298
- package/dist/lib/service/task/TaskReadyEngine.d.ts +0 -84
- package/dist/lib/service/task/TaskReadyEngine.js +0 -115
- package/dist/scripts/build-native-ui.d.ts +0 -3
- package/dist/scripts/build-native-ui.js +0 -62
- package/dist/scripts/init-snippets.d.ts +0 -30
- package/dist/scripts/init-snippets.js +0 -298
- package/dist/scripts/install-full.d.ts +0 -7
- package/dist/scripts/install-full.js +0 -38
- package/resources/native-ui/README.md +0 -29
- package/resources/native-ui/combined-window.swift +0 -494
- package/resources/native-ui/main.swift +0 -598
- package/scripts/postinstall-safe.mjs +0 -89
|
@@ -12,18 +12,99 @@ export interface McpServiceContainer {
|
|
|
12
12
|
getServiceNames?(): string[];
|
|
13
13
|
singletons?: Record<string, unknown>;
|
|
14
14
|
}
|
|
15
|
+
/** A single decision recorded during an intent lifecycle */
|
|
16
|
+
export interface DecisionRecord {
|
|
17
|
+
id: string;
|
|
18
|
+
title: string;
|
|
19
|
+
description: string;
|
|
20
|
+
rationale?: string;
|
|
21
|
+
tags?: string[];
|
|
22
|
+
recordedAt: number;
|
|
23
|
+
}
|
|
24
|
+
/** A single tool call record within an intent */
|
|
25
|
+
export interface ToolCallRecord {
|
|
26
|
+
tool: string;
|
|
27
|
+
timestamp: number;
|
|
28
|
+
args_summary: string;
|
|
29
|
+
}
|
|
30
|
+
/** A drift event detected during an intent */
|
|
31
|
+
export interface DriftEvent {
|
|
32
|
+
timestamp: number;
|
|
33
|
+
trigger: string;
|
|
34
|
+
type: 'new_module' | 'new_class' | 'search_shift' | 'file_shift';
|
|
35
|
+
detail: string;
|
|
36
|
+
primeOverlap: number;
|
|
37
|
+
}
|
|
38
|
+
/** Intent lifecycle state machine — tracks user intent from prime to close/fail */
|
|
39
|
+
export interface IntentState {
|
|
40
|
+
phase: 'idle' | 'active' | 'ended';
|
|
41
|
+
primeQuery: string;
|
|
42
|
+
primeActiveFile?: string;
|
|
43
|
+
primeRecipeIds: string[];
|
|
44
|
+
primeAt: number;
|
|
45
|
+
primeLanguage: string | null;
|
|
46
|
+
primeModule: string | null;
|
|
47
|
+
primeScenario: string;
|
|
48
|
+
searchMeta?: {
|
|
49
|
+
queries: string[];
|
|
50
|
+
resultCount: number;
|
|
51
|
+
filteredCount: number;
|
|
52
|
+
};
|
|
53
|
+
taskId?: string;
|
|
54
|
+
taskTitle?: string;
|
|
55
|
+
toolCalls: ToolCallRecord[];
|
|
56
|
+
searchQueries: string[];
|
|
57
|
+
mentionedFiles: string[];
|
|
58
|
+
mentionedModules: Set<string>;
|
|
59
|
+
decisions: DecisionRecord[];
|
|
60
|
+
driftEvents: DriftEvent[];
|
|
61
|
+
}
|
|
62
|
+
/** Create a fresh idle IntentState */
|
|
63
|
+
export declare function createIdleIntent(): IntentState;
|
|
64
|
+
/** A complete intent chain record, written to JSONL on close/fail */
|
|
65
|
+
export interface IntentChainRecord {
|
|
66
|
+
sessionId: string;
|
|
67
|
+
taskId?: string;
|
|
68
|
+
outcome: 'completed' | 'failed' | 'abandoned';
|
|
69
|
+
primeQuery: string;
|
|
70
|
+
primeActiveFile?: string;
|
|
71
|
+
primeRecipeIds: string[];
|
|
72
|
+
primeAt: number;
|
|
73
|
+
primeLanguage: string | null;
|
|
74
|
+
primeModule: string | null;
|
|
75
|
+
primeScenario: string;
|
|
76
|
+
searchMeta?: {
|
|
77
|
+
queries: string[];
|
|
78
|
+
resultCount: number;
|
|
79
|
+
filteredCount: number;
|
|
80
|
+
};
|
|
81
|
+
toolCalls: ToolCallRecord[];
|
|
82
|
+
searchQueries: string[];
|
|
83
|
+
mentionedFiles: string[];
|
|
84
|
+
decisions: DecisionRecord[];
|
|
85
|
+
driftEvents: DriftEvent[];
|
|
86
|
+
driftScore: number;
|
|
87
|
+
closeReason?: string;
|
|
88
|
+
failReason?: string;
|
|
89
|
+
guardViolations?: number;
|
|
90
|
+
startedAt: number;
|
|
91
|
+
endedAt: number;
|
|
92
|
+
duration: number;
|
|
93
|
+
}
|
|
94
|
+
/** MCP session tracking */
|
|
95
|
+
export interface McpSession {
|
|
96
|
+
id: string;
|
|
97
|
+
startedAt: number;
|
|
98
|
+
toolCallCount: number;
|
|
99
|
+
toolsUsed: Set<string>;
|
|
100
|
+
lastActivityAt: number;
|
|
101
|
+
intent: IntentState;
|
|
102
|
+
}
|
|
15
103
|
/** MCP handler context passed from McpServer / router layer */
|
|
16
104
|
export interface McpContext {
|
|
17
105
|
container: McpServiceContainer;
|
|
18
106
|
startedAt?: number;
|
|
19
|
-
session?:
|
|
20
|
-
id: string;
|
|
21
|
-
readyCalled: boolean;
|
|
22
|
-
toolCallCount: number;
|
|
23
|
-
toolsUsed: Set<string>;
|
|
24
|
-
startedAt: number;
|
|
25
|
-
[key: string]: unknown;
|
|
26
|
-
};
|
|
107
|
+
session?: McpSession;
|
|
27
108
|
[key: string]: unknown;
|
|
28
109
|
}
|
|
29
110
|
/** Common search handler args */
|
|
@@ -208,6 +289,7 @@ export interface ConsolidatedGraphArgs {
|
|
|
208
289
|
[key: string]: unknown;
|
|
209
290
|
}
|
|
210
291
|
export interface ConsolidatedGuardArgs {
|
|
292
|
+
operation?: 'check' | 'review' | 'reverse_audit' | 'coverage_matrix' | 'compliance_report';
|
|
211
293
|
code?: string;
|
|
212
294
|
files?: Array<string | {
|
|
213
295
|
path?: string;
|
|
@@ -231,6 +313,7 @@ export interface SubmitKnowledgeArgs {
|
|
|
231
313
|
dimensionId?: string;
|
|
232
314
|
knowledgeType?: string;
|
|
233
315
|
skipDuplicateCheck?: boolean;
|
|
316
|
+
skipConsolidation?: boolean;
|
|
234
317
|
[key: string]: unknown;
|
|
235
318
|
}
|
|
236
319
|
export interface KnowledgeBaseStats {
|
|
@@ -2,4 +2,21 @@
|
|
|
2
2
|
* Shared type definitions for MCP handler modules.
|
|
3
3
|
* Runtime-free — only interfaces and type aliases.
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
/** Create a fresh idle IntentState */
|
|
6
|
+
export function createIdleIntent() {
|
|
7
|
+
return {
|
|
8
|
+
phase: 'idle',
|
|
9
|
+
primeQuery: '',
|
|
10
|
+
primeRecipeIds: [],
|
|
11
|
+
primeAt: 0,
|
|
12
|
+
primeLanguage: null,
|
|
13
|
+
primeModule: null,
|
|
14
|
+
primeScenario: 'search',
|
|
15
|
+
toolCalls: [],
|
|
16
|
+
searchQueries: [],
|
|
17
|
+
mentionedFiles: [],
|
|
18
|
+
mentionedModules: new Set(),
|
|
19
|
+
decisions: [],
|
|
20
|
+
driftEvents: [],
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -24,7 +24,24 @@ interface WikiFinalizeArgs {
|
|
|
24
24
|
[key: string]: unknown;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* 统一 Wiki 路由入口 (autosnippet_wiki)
|
|
28
|
+
*
|
|
29
|
+
* @param args.operation 'plan' | 'finalize'
|
|
30
|
+
*/
|
|
31
|
+
export declare function wikiRouter(ctx: McpContext, args: Record<string, unknown>): Promise<{
|
|
32
|
+
success: boolean;
|
|
33
|
+
errorCode: string | null;
|
|
34
|
+
message: string;
|
|
35
|
+
data: unknown;
|
|
36
|
+
meta: {
|
|
37
|
+
source?: string | undefined;
|
|
38
|
+
responseTimeMs?: number | undefined;
|
|
39
|
+
version: string;
|
|
40
|
+
tool?: string | undefined;
|
|
41
|
+
};
|
|
42
|
+
}>;
|
|
43
|
+
/**
|
|
44
|
+
* 规划 Wiki 文档生成 (autosnippet_wiki operation=plan)
|
|
28
45
|
*
|
|
29
46
|
* 复用 WikiGenerator 的数据收集和主题发现逻辑(Phase 1-5),
|
|
30
47
|
* 但不撰写文章,只返回规划清单和每个主题的数据包。
|
|
@@ -32,10 +32,25 @@ function tryGet(container, name) {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
// ════════════════════════════════════════════════════════════
|
|
35
|
+
// wikiRouter — 统一入口 (autosnippet_wiki)
|
|
36
|
+
// ════════════════════════════════════════════════════════════
|
|
37
|
+
/**
|
|
38
|
+
* 统一 Wiki 路由入口 (autosnippet_wiki)
|
|
39
|
+
*
|
|
40
|
+
* @param args.operation 'plan' | 'finalize'
|
|
41
|
+
*/
|
|
42
|
+
export async function wikiRouter(ctx, args) {
|
|
43
|
+
const op = args.operation;
|
|
44
|
+
if (op === 'finalize') {
|
|
45
|
+
return wikiFinalize(ctx, args);
|
|
46
|
+
}
|
|
47
|
+
return wikiPlan(ctx, args);
|
|
48
|
+
}
|
|
49
|
+
// ════════════════════════════════════════════════════════════
|
|
35
50
|
// wikiPlan — 规划 Wiki 主题 + 数据包
|
|
36
51
|
// ════════════════════════════════════════════════════════════
|
|
37
52
|
/**
|
|
38
|
-
* 规划 Wiki 文档生成 (
|
|
53
|
+
* 规划 Wiki 文档生成 (autosnippet_wiki operation=plan)
|
|
39
54
|
*
|
|
40
55
|
* 复用 WikiGenerator 的数据收集和主题发现逻辑(Phase 1-5),
|
|
41
56
|
* 但不撰写文章,只返回规划清单和每个主题的数据包。
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MCP 工具定义 — V3 整合版 (
|
|
2
|
+
* MCP 工具定义 — V3 整合版 (14 agent + 2 admin = 16 工具)
|
|
3
3
|
*
|
|
4
4
|
* 每个工具声明包含 name、tier(agent/admin)、description 和 inputSchema。
|
|
5
5
|
* description 是 Agent 选择工具的关键 — 使用 bullet list 列出所有 operation 及其用途。
|
|
6
6
|
* inputSchema 由 Zod Schema 自动生成(zodToMcpSchema),参数的 .describe() 会转为 JSON Schema description。
|
|
7
7
|
*
|
|
8
|
-
* Agent 工具 (
|
|
8
|
+
* Agent 工具 (14):
|
|
9
9
|
* 1-7: 查询工具 (health/search/knowledge/structure/graph/call_context/guard)
|
|
10
|
-
* 8
|
|
11
|
-
*
|
|
12
|
-
* 12
|
|
13
|
-
*
|
|
14
|
-
*
|
|
10
|
+
* 8: 写入工具 (submit_knowledge — unified pipeline,单条/批量统一处理)
|
|
11
|
+
* 9: Skill 管理 (skill)
|
|
12
|
+
* 10-12: 冷启动 (bootstrap/dimension_complete/wiki)
|
|
13
|
+
* 13: 项目全景 (panorama)
|
|
14
|
+
* 14: 任务管理 (task — 5 ops: prime/create/close/fail/record_decision)
|
|
15
15
|
*
|
|
16
|
-
* Admin 工具 (
|
|
17
|
-
*
|
|
16
|
+
* Admin 工具 (2):
|
|
17
|
+
* 15-16: enrich_candidates/knowledge_lifecycle
|
|
18
18
|
*/
|
|
19
19
|
export declare const TIER_ORDER: {
|
|
20
20
|
agent: number;
|
|
@@ -25,9 +25,11 @@ export declare const TOOL_GATEWAY_MAP: {
|
|
|
25
25
|
action: string;
|
|
26
26
|
resource: string;
|
|
27
27
|
};
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
autosnippet_wiki: {
|
|
29
|
+
resolver: (args: Record<string, unknown>) => {
|
|
30
|
+
action: string;
|
|
31
|
+
resource: string;
|
|
32
|
+
} | null;
|
|
31
33
|
};
|
|
32
34
|
autosnippet_guard: {
|
|
33
35
|
resolver: (args: Record<string, unknown>) => {
|
|
@@ -45,14 +47,6 @@ export declare const TOOL_GATEWAY_MAP: {
|
|
|
45
47
|
action: string;
|
|
46
48
|
resource: string;
|
|
47
49
|
};
|
|
48
|
-
autosnippet_submit_knowledge_batch: {
|
|
49
|
-
action: string;
|
|
50
|
-
resource: string;
|
|
51
|
-
};
|
|
52
|
-
autosnippet_save_document: {
|
|
53
|
-
action: string;
|
|
54
|
-
resource: string;
|
|
55
|
-
};
|
|
56
50
|
autosnippet_task: {
|
|
57
51
|
resolver: (args: Record<string, unknown>) => {
|
|
58
52
|
action: string;
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MCP 工具定义 — V3 整合版 (
|
|
2
|
+
* MCP 工具定义 — V3 整合版 (14 agent + 2 admin = 16 工具)
|
|
3
3
|
*
|
|
4
4
|
* 每个工具声明包含 name、tier(agent/admin)、description 和 inputSchema。
|
|
5
5
|
* description 是 Agent 选择工具的关键 — 使用 bullet list 列出所有 operation 及其用途。
|
|
6
6
|
* inputSchema 由 Zod Schema 自动生成(zodToMcpSchema),参数的 .describe() 会转为 JSON Schema description。
|
|
7
7
|
*
|
|
8
|
-
* Agent 工具 (
|
|
8
|
+
* Agent 工具 (14):
|
|
9
9
|
* 1-7: 查询工具 (health/search/knowledge/structure/graph/call_context/guard)
|
|
10
|
-
* 8
|
|
11
|
-
*
|
|
12
|
-
* 12
|
|
13
|
-
*
|
|
14
|
-
*
|
|
10
|
+
* 8: 写入工具 (submit_knowledge — unified pipeline,单条/批量统一处理)
|
|
11
|
+
* 9: Skill 管理 (skill)
|
|
12
|
+
* 10-12: 冷启动 (bootstrap/dimension_complete/wiki)
|
|
13
|
+
* 13: 项目全景 (panorama)
|
|
14
|
+
* 14: 任务管理 (task — 5 ops: prime/create/close/fail/record_decision)
|
|
15
15
|
*
|
|
16
|
-
* Admin 工具 (
|
|
17
|
-
*
|
|
16
|
+
* Admin 工具 (2):
|
|
17
|
+
* 15-16: enrich_candidates/knowledge_lifecycle
|
|
18
18
|
*/
|
|
19
|
-
import { BootstrapInput, CallContextInput,
|
|
19
|
+
import { BootstrapInput, CallContextInput, DimensionCompleteInput, EnrichCandidatesInput, GraphInput, GuardInput, HealthInput, KnowledgeInput, KnowledgeLifecycleInput, PanoramaInput, SearchInput, SkillInput, StructureInput, SubmitKnowledgeInput, TaskInput, WikiInput, } from '#shared/schemas/mcp-tools.js';
|
|
20
20
|
import { zodToMcpSchema } from './zodToMcpSchema.js';
|
|
21
21
|
// ─── Tier 定义 ──────────────────────────────────────────────
|
|
22
22
|
export const TIER_ORDER = { agent: 0, admin: 1 };
|
|
@@ -26,8 +26,10 @@ export const TOOL_GATEWAY_MAP = {
|
|
|
26
26
|
// autosnippet_bootstrap: null,
|
|
27
27
|
// dimension_complete — 写操作(recipe tagging + skill creation + checkpoint)
|
|
28
28
|
autosnippet_dimension_complete: { action: 'knowledge:bootstrap', resource: 'knowledge' },
|
|
29
|
-
//
|
|
30
|
-
|
|
29
|
+
// wiki — finalize 操作是写操作(meta.json)
|
|
30
|
+
autosnippet_wiki: {
|
|
31
|
+
resolver: (args) => args?.operation === 'finalize' ? { action: 'knowledge:create', resource: 'knowledge' } : null, // plan 只读
|
|
32
|
+
},
|
|
31
33
|
// guard 写操作(仅 files 模式)
|
|
32
34
|
autosnippet_guard: {
|
|
33
35
|
resolver: (args) => args?.files && Array.isArray(args.files)
|
|
@@ -42,25 +44,16 @@ export const TOOL_GATEWAY_MAP = {
|
|
|
42
44
|
delete: { action: 'delete:skills', resource: 'skills' },
|
|
43
45
|
})[args?.operation] || null, // list/load/suggest 只读
|
|
44
46
|
},
|
|
45
|
-
//
|
|
47
|
+
// 知识提交(unified pipeline)
|
|
46
48
|
autosnippet_submit_knowledge: { action: 'knowledge:create', resource: 'knowledge' },
|
|
47
|
-
|
|
48
|
-
autosnippet_save_document: { action: 'knowledge:create', resource: 'knowledge' },
|
|
49
|
-
// task 写操作(create/claim/close/fail/defer/decompose/dep_add + decision 写操作)
|
|
49
|
+
// task 写操作(create/close/fail + record_decision)
|
|
50
50
|
autosnippet_task: {
|
|
51
51
|
resolver: (args) => ({
|
|
52
|
-
create: { action: 'task:create', resource: '
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
progress: { action: 'task:update', resource: 'tasks' },
|
|
58
|
-
decompose: { action: 'task:create', resource: 'tasks' },
|
|
59
|
-
dep_add: { action: 'task:update', resource: 'tasks' },
|
|
60
|
-
record_decision: { action: 'task:create', resource: 'tasks' },
|
|
61
|
-
revise_decision: { action: 'task:update', resource: 'tasks' },
|
|
62
|
-
unpin_decision: { action: 'task:update', resource: 'tasks' },
|
|
63
|
-
})[args?.operation] || null, // prime/ready/show/list/blocked/dep_tree/stats/list_decisions 只读
|
|
52
|
+
create: { action: 'task:create', resource: 'intent' },
|
|
53
|
+
close: { action: 'task:update', resource: 'intent' },
|
|
54
|
+
fail: { action: 'task:update', resource: 'intent' },
|
|
55
|
+
record_decision: { action: 'task:create', resource: 'intent' },
|
|
56
|
+
})[args?.operation] || null, // prime 只读
|
|
64
57
|
},
|
|
65
58
|
// admin 工具
|
|
66
59
|
autosnippet_enrich_candidates: { action: 'knowledge:update', resource: 'knowledge' },
|
|
@@ -69,7 +62,7 @@ export const TOOL_GATEWAY_MAP = {
|
|
|
69
62
|
// ─── 工具声明 ────────────────────────────────────────────────
|
|
70
63
|
export const TOOLS = [
|
|
71
64
|
// ══════════════════════════════════════════════════════
|
|
72
|
-
// Tier: agent — Agent 核心工具集 (
|
|
65
|
+
// Tier: agent — Agent 核心工具集 (14 个)
|
|
73
66
|
// ══════════════════════════════════════════════════════
|
|
74
67
|
// 1. 健康检查
|
|
75
68
|
{
|
|
@@ -138,39 +131,27 @@ export const TOOLS = [
|
|
|
138
131
|
{
|
|
139
132
|
name: 'autosnippet_guard',
|
|
140
133
|
tier: 'agent',
|
|
141
|
-
description: '
|
|
134
|
+
description: '代码规范检查与 Guard 免疫系统。\n' +
|
|
142
135
|
'• 无参数 → 自动检查 git diff 增量文件(编码后首选用法)\n' +
|
|
143
136
|
'• files → 检查指定文件列表\n' +
|
|
144
137
|
'• code → 内联检查代码片段\n' +
|
|
138
|
+
'• operation: "reverse_audit" → Recipe→Code 反向验证(检查知识是否过时)\n' +
|
|
139
|
+
'• operation: "coverage_matrix" → 模块级 Guard 规则覆盖率矩阵\n' +
|
|
145
140
|
'每个 violation 附带修复指南(doClause + coreCode),按指示修复后可再次检查。',
|
|
146
141
|
inputSchema: zodToMcpSchema(GuardInput),
|
|
147
142
|
},
|
|
148
|
-
// 8.
|
|
143
|
+
// 8. 提交知识(统一管线)
|
|
149
144
|
{
|
|
150
145
|
name: 'autosnippet_submit_knowledge',
|
|
151
146
|
tier: 'agent',
|
|
152
|
-
description: '
|
|
153
|
-
'
|
|
154
|
-
'
|
|
147
|
+
description: '提交知识条目(单条/批量统一管线)。通过 items 数组传入 1~N 条。\n' +
|
|
148
|
+
'• 所有条目统一严格校验,所有 V3 字段须一次性提供\n' +
|
|
149
|
+
'• 统一融合分析:检测与已有 Recipe 和批次内候选的重叠\n' +
|
|
150
|
+
'• 返回 CONSOLIDATION_MERGE / CONSOLIDATION_REORGANIZE / CONSOLIDATION_INSUFFICIENT 时需处理\n' +
|
|
151
|
+
'• 设 skipConsolidation: true 跳过融合检查。content 和 reasoning 必须是对象。',
|
|
155
152
|
inputSchema: zodToMcpSchema(SubmitKnowledgeInput),
|
|
156
153
|
},
|
|
157
|
-
// 9.
|
|
158
|
-
{
|
|
159
|
-
name: 'autosnippet_submit_knowledge_batch',
|
|
160
|
-
tier: 'agent',
|
|
161
|
-
description: '批量提交知识条目。每条字段要求同 submit_knowledge,支持自动去重。\n' +
|
|
162
|
-
'校验更严格:不通过的条目会被拒绝(不入库),返回 rejectedSummary。\n' +
|
|
163
|
-
'适用于冷启动维度分析、模块批量扫描等场景。',
|
|
164
|
-
inputSchema: zodToMcpSchema(SubmitKnowledgeBatchInput),
|
|
165
|
-
},
|
|
166
|
-
// 10. 保存开发文档
|
|
167
|
-
{
|
|
168
|
-
name: 'autosnippet_save_document',
|
|
169
|
-
tier: 'agent',
|
|
170
|
-
description: '保存开发文档(设计文档、排查报告、ADR 等)到知识库。仅需 title + markdown,无需完整 V3 字段。',
|
|
171
|
-
inputSchema: zodToMcpSchema(SaveDocumentInput),
|
|
172
|
-
},
|
|
173
|
-
// 11. Skill 管理
|
|
154
|
+
// 9. Skill 管理
|
|
174
155
|
{
|
|
175
156
|
name: 'autosnippet_skill',
|
|
176
157
|
tier: 'agent',
|
|
@@ -183,7 +164,7 @@ export const TOOLS = [
|
|
|
183
164
|
'• suggest — 基于项目分析推荐应创建的 Skill',
|
|
184
165
|
inputSchema: zodToMcpSchema(SkillInput),
|
|
185
166
|
},
|
|
186
|
-
//
|
|
167
|
+
// 10. 冷启动
|
|
187
168
|
{
|
|
188
169
|
name: 'autosnippet_bootstrap',
|
|
189
170
|
tier: 'agent',
|
|
@@ -194,7 +175,7 @@ export const TOOLS = [
|
|
|
194
175
|
'收到 Briefing 后按 executionPlan 完成所有维度分析。',
|
|
195
176
|
inputSchema: zodToMcpSchema(BootstrapInput),
|
|
196
177
|
},
|
|
197
|
-
//
|
|
178
|
+
// 11. 维度完成通知
|
|
198
179
|
{
|
|
199
180
|
name: 'autosnippet_dimension_complete',
|
|
200
181
|
tier: 'agent',
|
|
@@ -202,67 +183,57 @@ export const TOOLS = [
|
|
|
202
183
|
'analysisText 可简写,系统会自动从已提交的候选知识中合成详细内容用于 Skill 生成。',
|
|
203
184
|
inputSchema: zodToMcpSchema(DimensionCompleteInput),
|
|
204
185
|
},
|
|
205
|
-
//
|
|
206
|
-
{
|
|
207
|
-
name: 'autosnippet_wiki_plan',
|
|
208
|
-
tier: 'agent',
|
|
209
|
-
description: '规划 Wiki 文档生成 — 整合项目结构与知识库,返回文档主题列表及每个主题的数据包。Agent 根据规划自行撰写文章。',
|
|
210
|
-
inputSchema: zodToMcpSchema(WikiPlanInput),
|
|
211
|
-
},
|
|
212
|
-
// 15. Wiki 完成
|
|
186
|
+
// 12. Wiki 文档生成
|
|
213
187
|
{
|
|
214
|
-
name: '
|
|
188
|
+
name: 'autosnippet_wiki',
|
|
215
189
|
tier: 'agent',
|
|
216
|
-
description: '
|
|
217
|
-
|
|
190
|
+
description: 'Wiki 文档生成。\n' +
|
|
191
|
+
'• plan — 规划主题 + 数据包(整合项目结构与知识库,返回主题列表 + 每个主题的数据包,Agent 据此撰写)\n' +
|
|
192
|
+
'• finalize — 完成生成(写入 meta.json、去重检查、验证完整性,所有文章写入后调用)',
|
|
193
|
+
inputSchema: zodToMcpSchema(WikiInput),
|
|
218
194
|
},
|
|
219
|
-
//
|
|
195
|
+
// 13. 项目全景
|
|
220
196
|
{
|
|
221
|
-
name: '
|
|
197
|
+
name: 'autosnippet_panorama',
|
|
222
198
|
tier: 'agent',
|
|
223
|
-
description: '
|
|
224
|
-
|
|
199
|
+
description: '项目全景查询。无数据时自动触发结构扫描,无需手动冷启动。\n' +
|
|
200
|
+
'• overview(默认)— 项目骨架 + 架构层级 + 模块角色 + 知识覆盖率\n' +
|
|
201
|
+
'• module — 单模块详情 + 邻居关系(需 module 参数)\n' +
|
|
202
|
+
'• gaps — 知识空白区(有代码无 Recipe 的模块)\n' +
|
|
203
|
+
'• health — 全景健康度(覆盖率 + 耦合度 + 循环依赖 + 健康评分)\n' +
|
|
204
|
+
'• governance_cycle — 知识新陈代谢完整周期(矛盾检测 + 冗余分析 + 衰退评估)\n' +
|
|
205
|
+
'• decay_report — 衰退评估报告(5 策略检测 + decayScore 评分)\n' +
|
|
206
|
+
'• staging_check — staging 条目检查 + 到期自动发布\n' +
|
|
207
|
+
'• enhancement_suggestions — 基于使用数据的 Recipe 增强建议',
|
|
208
|
+
inputSchema: zodToMcpSchema(PanoramaInput),
|
|
225
209
|
},
|
|
226
|
-
//
|
|
210
|
+
// 14. 任务与决策管理
|
|
227
211
|
{
|
|
228
212
|
name: 'autosnippet_task',
|
|
229
213
|
tier: 'agent',
|
|
230
|
-
description: '
|
|
231
|
-
'
|
|
232
|
-
'
|
|
233
|
-
'
|
|
234
|
-
'
|
|
214
|
+
description: '任务与决策管理(5 operations)。每次对话开始时先调用 prime 加载知识上下文。\n' +
|
|
215
|
+
'• prime — 加载知识上下文 + 初始化意图生命周期\n' +
|
|
216
|
+
'• create — 创建任务锚点(≥2 files 或 ≥10 lines 的非轻量工作)\n' +
|
|
217
|
+
'• close — 完成任务 + 触发 Guard 合规审查\n' +
|
|
218
|
+
'• fail — 放弃任务\n' +
|
|
219
|
+
'• record_decision — 记录用户偏好决策',
|
|
235
220
|
inputSchema: zodToMcpSchema(TaskInput),
|
|
236
221
|
},
|
|
237
222
|
// ══════════════════════════════════════════════════════
|
|
238
|
-
// Tier: admin — 管理员/CI 工具 (
|
|
223
|
+
// Tier: admin — 管理员/CI 工具 (+2)
|
|
239
224
|
// ══════════════════════════════════════════════════════
|
|
240
|
-
//
|
|
225
|
+
// 15. 候选字段诊断
|
|
241
226
|
{
|
|
242
227
|
name: 'autosnippet_enrich_candidates',
|
|
243
228
|
tier: 'admin',
|
|
244
229
|
description: '诊断候选条目的字段完整性(无 AI)。返回每条候选的 missingFields 列表,Agent 据此补全后重新提交。',
|
|
245
230
|
inputSchema: zodToMcpSchema(EnrichCandidatesInput),
|
|
246
231
|
},
|
|
247
|
-
//
|
|
232
|
+
// 16. 知识生命周期
|
|
248
233
|
{
|
|
249
234
|
name: 'autosnippet_knowledge_lifecycle',
|
|
250
235
|
tier: 'admin',
|
|
251
236
|
description: '知识条目生命周期操作。approve/fast_track → 发布知识;reject → 拒绝;deprecate → 废弃;reactivate → 恢复。',
|
|
252
237
|
inputSchema: zodToMcpSchema(KnowledgeLifecycleInput),
|
|
253
238
|
},
|
|
254
|
-
// 20. 候选预校验(调试)
|
|
255
|
-
{
|
|
256
|
-
name: 'autosnippet_validate_candidate',
|
|
257
|
-
tier: 'admin',
|
|
258
|
-
description: '独立候选校验(5 层结构化检查)。调试用,submit_knowledge 已内置校验。',
|
|
259
|
-
inputSchema: zodToMcpSchema(ValidateCandidateInput),
|
|
260
|
-
},
|
|
261
|
-
// 21. 去重检测(调试)
|
|
262
|
-
{
|
|
263
|
-
name: 'autosnippet_check_duplicate',
|
|
264
|
-
tier: 'admin',
|
|
265
|
-
description: '独立相似度检测。调试用,submit_knowledge 已内置去重。',
|
|
266
|
-
inputSchema: zodToMcpSchema(CheckDuplicateInput),
|
|
267
|
-
},
|
|
268
239
|
];
|
|
@@ -15,28 +15,30 @@ import { initErrorTracker } from '../infrastructure/monitoring/ErrorTracker.js';
|
|
|
15
15
|
import { initPerformanceMonitor } from '../infrastructure/monitoring/PerformanceMonitor.js';
|
|
16
16
|
import { initRealtimeService } from '../infrastructure/realtime/RealtimeService.js';
|
|
17
17
|
import { getServiceContainer } from '../injection/ServiceContainer.js';
|
|
18
|
-
import spmRouter from '../platform/ios/routes/spm.js';
|
|
19
18
|
import apiSpec from './api-spec.js';
|
|
20
19
|
import { errorHandler } from './middleware/errorHandler.js';
|
|
21
20
|
import { gatewayMiddleware } from './middleware/gatewayMiddleware.js';
|
|
22
21
|
import { requestLogger } from './middleware/requestLogger.js';
|
|
23
22
|
import { roleResolverMiddleware } from './middleware/roleResolver.js';
|
|
24
23
|
import aiRouter from './routes/ai.js';
|
|
24
|
+
import auditRouter from './routes/audit.js';
|
|
25
25
|
import authRouter from './routes/auth.js';
|
|
26
26
|
import candidatesRouter from './routes/candidates.js';
|
|
27
27
|
import commandsRouter from './routes/commands.js';
|
|
28
28
|
import extractRouter from './routes/extract.js';
|
|
29
29
|
import guardRouter from './routes/guard.js';
|
|
30
|
+
import guardReportRouter from './routes/guardReport.js';
|
|
30
31
|
import guardRuleRouter from './routes/guardRules.js';
|
|
31
32
|
import healthRouter from './routes/health.js';
|
|
32
33
|
import knowledgeRouter from './routes/knowledge.js';
|
|
33
34
|
import modulesRouter from './routes/modules.js';
|
|
34
35
|
import monitoringRouter from './routes/monitoring.js';
|
|
36
|
+
import panoramaRouter from './routes/panorama.js';
|
|
35
37
|
import recipesRouter from './routes/recipes.js';
|
|
36
38
|
import remoteRouter from './routes/remote.js';
|
|
37
39
|
import searchRouter from './routes/search.js';
|
|
40
|
+
import signalsRouter from './routes/signals.js';
|
|
38
41
|
import skillsRouter from './routes/skills.js';
|
|
39
|
-
import snippetRouter from './routes/snippets.js';
|
|
40
42
|
import taskRouter from './routes/task.js';
|
|
41
43
|
import violationsRouter from './routes/violations.js';
|
|
42
44
|
import wikiRouter from './routes/wiki.js';
|
|
@@ -225,14 +227,14 @@ export class HttpServer {
|
|
|
225
227
|
}
|
|
226
228
|
// Guard 实时检查路由(Extension DiagnosticCollection 调用)
|
|
227
229
|
this.app.use(`${apiPrefix}/guard`, guardRouter);
|
|
230
|
+
// Guard 合规报告路由
|
|
231
|
+
this.app.use(`${apiPrefix}/guard/report`, guardReportRouter);
|
|
228
232
|
// 守护规则路由
|
|
229
233
|
this.app.use(`${apiPrefix}/rules`, guardRuleRouter);
|
|
230
234
|
// TaskGraph 路由(Extension taskTool.ts 转发调用)
|
|
231
235
|
this.app.use(`${apiPrefix}/task`, taskRouter);
|
|
232
236
|
// 搜索路由
|
|
233
237
|
this.app.use(`${apiPrefix}/search`, searchRouter);
|
|
234
|
-
// Snippet 路由
|
|
235
|
-
this.app.use(`${apiPrefix}/snippets`, snippetRouter);
|
|
236
238
|
// AI 路由
|
|
237
239
|
this.app.use(`${apiPrefix}/ai`, aiRouter);
|
|
238
240
|
// 提取路由
|
|
@@ -243,8 +245,6 @@ export class HttpServer {
|
|
|
243
245
|
this.app.use(`${apiPrefix}/skills`, skillsRouter);
|
|
244
246
|
// Candidates 路由(AI 补齐/润色)
|
|
245
247
|
this.app.use(`${apiPrefix}/candidates`, candidatesRouter);
|
|
246
|
-
// SPM 路由(向后兼容保留)
|
|
247
|
-
this.app.use(`${apiPrefix}/spm`, spmRouter);
|
|
248
248
|
// Modules 路由(v3.2 统一多语言模块扫描)
|
|
249
249
|
this.app.use(`${apiPrefix}/modules`, modulesRouter);
|
|
250
250
|
// 违规记录路由
|
|
@@ -257,6 +257,12 @@ export class HttpServer {
|
|
|
257
257
|
this.app.use(`${apiPrefix}/wiki`, wikiRouter);
|
|
258
258
|
// Remote 路由(飞书 Bot → IDE 远程指令桥接)
|
|
259
259
|
this.app.use(`${apiPrefix}/remote`, remoteRouter);
|
|
260
|
+
// Panorama 全景路由(项目结构 + 覆盖率 + 健康度)
|
|
261
|
+
this.app.use(`${apiPrefix}/panorama`, panoramaRouter);
|
|
262
|
+
// 信号留痕 & 报告路由
|
|
263
|
+
this.app.use(`${apiPrefix}/signals`, signalsRouter);
|
|
264
|
+
// 审计日志路由
|
|
265
|
+
this.app.use(`${apiPrefix}/audit`, auditRouter);
|
|
260
266
|
// 根路径 — 返回 API 元信息(避免外部探测产生无意义 404)
|
|
261
267
|
this.app.all('/', (_req, res) => {
|
|
262
268
|
res.json({
|
|
@@ -303,6 +309,46 @@ export class HttpServer {
|
|
|
303
309
|
try {
|
|
304
310
|
this.realtimeService = initRealtimeService(this.server);
|
|
305
311
|
this.logger.info('Realtime service initialized');
|
|
312
|
+
// 桥接 EventBus / SignalBus → RealtimeService
|
|
313
|
+
try {
|
|
314
|
+
const container = getServiceContainer();
|
|
315
|
+
const rs = this.realtimeService;
|
|
316
|
+
if (typeof rs?.broadcastEvent !== 'function') {
|
|
317
|
+
throw new Error('broadcastEvent not available');
|
|
318
|
+
}
|
|
319
|
+
// EventBus → lifecycle:transition
|
|
320
|
+
const eventBus = container.services.eventBus ? container.get('eventBus') : null;
|
|
321
|
+
if (eventBus) {
|
|
322
|
+
eventBus.on('lifecycle:transition', (data) => {
|
|
323
|
+
rs.broadcastEvent('lifecycle:transition', data);
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
// SignalBridge 已将信号转发到 EventBus,HttpServer 只听 EventBus
|
|
327
|
+
if (eventBus) {
|
|
328
|
+
eventBus.on('signal:event', (signal) => {
|
|
329
|
+
rs.broadcastEvent('signal:event', signal);
|
|
330
|
+
});
|
|
331
|
+
eventBus.on('guard:updated', (signal) => {
|
|
332
|
+
rs.broadcastEvent('guard:updated', signal);
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
// 确保 SignalBridge 已初始化(触发 lazy singleton)
|
|
336
|
+
try {
|
|
337
|
+
container.get('signalBridge');
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
// SignalBridge 未注册时静默跳过
|
|
341
|
+
}
|
|
342
|
+
// EventBus → audit:entry
|
|
343
|
+
if (eventBus) {
|
|
344
|
+
eventBus.on('audit:entry', (data) => {
|
|
345
|
+
rs.broadcastEvent('audit:entry', data);
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
catch {
|
|
350
|
+
// EventBus/SignalBus 不可用时静默跳过
|
|
351
|
+
}
|
|
306
352
|
}
|
|
307
353
|
catch (error) {
|
|
308
354
|
this.logger.warn('Failed to initialize realtime service', {
|