autosnippet 3.2.21 → 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.
Files changed (311) hide show
  1. package/dashboard/dist/assets/icons-BJ2mUBi8.js +1 -0
  2. package/dashboard/dist/assets/index-B659K9t5.js +128 -0
  3. package/dashboard/dist/assets/index-NCm40PMD.css +1 -0
  4. package/dashboard/dist/index.html +3 -3
  5. package/dist/bin/cli.d.ts +1 -1
  6. package/dist/bin/cli.js +244 -261
  7. package/dist/lib/agent/context/ExplorationTracker.d.ts +2 -0
  8. package/dist/lib/agent/context/ExplorationTracker.js +21 -3
  9. package/dist/lib/agent/core/ToolExecutionPipeline.d.ts +3 -1
  10. package/dist/lib/agent/core/ToolExecutionPipeline.js +8 -1
  11. package/dist/lib/agent/forge/DynamicComposer.d.ts +58 -0
  12. package/dist/lib/agent/forge/DynamicComposer.js +99 -0
  13. package/dist/lib/agent/forge/SandboxRunner.d.ts +60 -0
  14. package/dist/lib/agent/forge/SandboxRunner.js +251 -0
  15. package/dist/lib/agent/forge/TemporaryToolRegistry.d.ts +76 -0
  16. package/dist/lib/agent/forge/TemporaryToolRegistry.js +154 -0
  17. package/dist/lib/agent/forge/ToolForge.d.ts +92 -0
  18. package/dist/lib/agent/forge/ToolForge.js +239 -0
  19. package/dist/lib/agent/forge/ToolRequirementAnalyzer.d.ts +44 -0
  20. package/dist/lib/agent/forge/ToolRequirementAnalyzer.js +119 -0
  21. package/dist/lib/agent/tools/ToolRegistry.d.ts +2 -0
  22. package/dist/lib/agent/tools/ToolRegistry.js +4 -0
  23. package/dist/lib/agent/tools/composite.js +0 -1
  24. package/dist/lib/agent/tools/index.d.ts +2 -50
  25. package/dist/lib/agent/tools/index.js +2 -3
  26. package/dist/lib/agent/tools/lifecycle.d.ts +1 -58
  27. package/dist/lib/agent/tools/lifecycle.js +2 -75
  28. package/dist/lib/cli/SetupService.d.ts +46 -2
  29. package/dist/lib/cli/SetupService.js +2 -27
  30. package/dist/lib/cli/deploy/FileManifest.d.ts +0 -21
  31. package/dist/lib/cli/deploy/FileManifest.js +0 -11
  32. package/dist/lib/{platform/ios/spm → core/discovery}/SpmDiscoverer.d.ts +2 -5
  33. package/dist/lib/{platform/ios/spm → core/discovery}/SpmDiscoverer.js +159 -44
  34. package/dist/lib/core/discovery/index.d.ts +1 -1
  35. package/dist/lib/core/discovery/index.js +2 -2
  36. package/dist/lib/domain/knowledge/KnowledgeEntry.d.ts +10 -0
  37. package/dist/lib/domain/knowledge/KnowledgeEntry.js +2 -0
  38. package/dist/lib/domain/knowledge/Lifecycle.d.ts +19 -2
  39. package/dist/lib/domain/knowledge/Lifecycle.js +32 -6
  40. package/dist/lib/domain/knowledge/UnifiedValidator.d.ts +1 -5
  41. package/dist/lib/domain/knowledge/UnifiedValidator.js +7 -44
  42. package/dist/lib/domain/knowledge/values/Stats.d.ts +29 -0
  43. package/dist/lib/domain/knowledge/values/Stats.js +41 -0
  44. package/dist/lib/external/mcp/McpServer.d.ts +19 -38
  45. package/dist/lib/external/mcp/McpServer.js +145 -117
  46. package/dist/lib/external/mcp/autoApproveInjector.js +0 -2
  47. package/dist/lib/external/mcp/handlers/bootstrap/MissionBriefingBuilder.d.ts +26 -1
  48. package/dist/lib/external/mcp/handlers/bootstrap/MissionBriefingBuilder.js +41 -0
  49. package/dist/lib/external/mcp/handlers/bootstrap/pipeline/orchestrator.js +49 -0
  50. package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.d.ts +3 -0
  51. package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.js +27 -0
  52. package/dist/lib/external/mcp/handlers/bootstrap/skills.js +1 -1
  53. package/dist/lib/external/mcp/handlers/bootstrap-external.js +1 -0
  54. package/dist/lib/external/mcp/handlers/bootstrap-internal.js +2 -0
  55. package/dist/lib/external/mcp/handlers/consolidated.d.ts +116 -6
  56. package/dist/lib/external/mcp/handlers/consolidated.js +251 -71
  57. package/dist/lib/external/mcp/handlers/guard.d.ts +150 -0
  58. package/dist/lib/external/mcp/handlers/guard.js +245 -8
  59. package/dist/lib/external/mcp/handlers/knowledge.d.ts +0 -29
  60. package/dist/lib/external/mcp/handlers/knowledge.js +1 -76
  61. package/dist/lib/external/mcp/handlers/panorama.d.ts +36 -0
  62. package/dist/lib/external/mcp/handlers/panorama.js +156 -0
  63. package/dist/lib/external/mcp/handlers/system.d.ts +2 -54
  64. package/dist/lib/external/mcp/handlers/system.js +3 -113
  65. package/dist/lib/external/mcp/handlers/task.d.ts +13 -24
  66. package/dist/lib/external/mcp/handlers/task.js +217 -557
  67. package/dist/lib/external/mcp/handlers/types.d.ts +91 -8
  68. package/dist/lib/external/mcp/handlers/types.js +18 -1
  69. package/dist/lib/external/mcp/handlers/wiki-external.d.ts +18 -1
  70. package/dist/lib/external/mcp/handlers/wiki-external.js +16 -1
  71. package/dist/lib/external/mcp/tools.d.ts +14 -20
  72. package/dist/lib/external/mcp/tools.js +62 -91
  73. package/dist/lib/http/HttpServer.js +52 -6
  74. package/dist/lib/http/routes/{snippets.d.ts → audit.d.ts} +4 -2
  75. package/dist/lib/http/routes/audit.js +51 -0
  76. package/dist/lib/http/routes/commands.d.ts +1 -1
  77. package/dist/lib/http/routes/commands.js +1 -66
  78. package/dist/lib/http/routes/guardReport.d.ts +10 -0
  79. package/dist/lib/http/routes/guardReport.js +143 -0
  80. package/dist/lib/http/routes/knowledge.js +32 -1
  81. package/dist/lib/http/routes/panorama.d.ts +11 -0
  82. package/dist/lib/http/routes/panorama.js +322 -0
  83. package/dist/lib/http/routes/remote.js +0 -5
  84. package/dist/lib/http/routes/signals.d.ts +10 -0
  85. package/dist/lib/http/routes/signals.js +104 -0
  86. package/dist/lib/http/routes/task.d.ts +2 -3
  87. package/dist/lib/http/routes/task.js +17 -347
  88. package/dist/lib/http/routes/violations.js +1 -1
  89. package/dist/lib/infrastructure/audit/AuditLogger.d.ts +6 -1
  90. package/dist/lib/infrastructure/audit/AuditLogger.js +14 -1
  91. package/dist/lib/infrastructure/database/drizzle/schema.d.ts +181 -583
  92. package/dist/lib/infrastructure/database/drizzle/schema.js +28 -69
  93. package/dist/lib/infrastructure/database/migrations/004_evolution_proposals.d.ts +8 -0
  94. package/dist/lib/infrastructure/database/migrations/004_evolution_proposals.js +43 -0
  95. package/dist/lib/infrastructure/logging/Logger.d.ts +2 -0
  96. package/dist/lib/infrastructure/logging/Logger.js +34 -7
  97. package/dist/lib/infrastructure/monitoring/ErrorTracker.js +3 -1
  98. package/dist/lib/infrastructure/monitoring/PerformanceMonitor.d.ts +2 -2
  99. package/dist/lib/infrastructure/monitoring/PerformanceMonitor.js +12 -10
  100. package/dist/lib/infrastructure/notification/LarkNotifier.d.ts +24 -0
  101. package/dist/lib/infrastructure/notification/LarkNotifier.js +97 -0
  102. package/dist/lib/infrastructure/report/ReportStore.d.ts +45 -0
  103. package/dist/lib/infrastructure/report/ReportStore.js +133 -0
  104. package/dist/lib/infrastructure/signal/SignalAggregator.d.ts +18 -0
  105. package/dist/lib/infrastructure/signal/SignalAggregator.js +84 -0
  106. package/dist/lib/infrastructure/signal/SignalBridge.d.ts +13 -0
  107. package/dist/lib/infrastructure/signal/SignalBridge.js +20 -0
  108. package/dist/lib/infrastructure/signal/SignalBus.d.ts +63 -0
  109. package/dist/lib/infrastructure/signal/SignalBus.js +106 -0
  110. package/dist/lib/infrastructure/signal/SignalTraceWriter.d.ts +36 -0
  111. package/dist/lib/infrastructure/signal/SignalTraceWriter.js +130 -0
  112. package/dist/lib/injection/ServiceContainer.js +6 -0
  113. package/dist/lib/injection/ServiceMap.d.ts +16 -19
  114. package/dist/lib/injection/modules/AgentModule.d.ts +1 -1
  115. package/dist/lib/injection/modules/AgentModule.js +7 -1
  116. package/dist/lib/injection/modules/AppModule.d.ts +3 -4
  117. package/dist/lib/injection/modules/AppModule.js +7 -43
  118. package/dist/lib/injection/modules/GuardModule.js +59 -2
  119. package/dist/lib/injection/modules/InfraModule.d.ts +0 -1
  120. package/dist/lib/injection/modules/InfraModule.js +9 -7
  121. package/dist/lib/injection/modules/KnowledgeModule.js +51 -0
  122. package/dist/lib/injection/modules/PanoramaModule.d.ts +18 -0
  123. package/dist/lib/injection/modules/PanoramaModule.js +76 -0
  124. package/dist/lib/injection/modules/SignalModule.d.ts +10 -0
  125. package/dist/lib/injection/modules/SignalModule.js +84 -0
  126. package/dist/lib/repository/knowledge/KnowledgeRepository.impl.d.ts +1 -0
  127. package/dist/lib/repository/knowledge/KnowledgeRepository.impl.js +6 -0
  128. package/dist/lib/service/bootstrap/BootstrapTaskManager.d.ts +3 -1
  129. package/dist/lib/service/bootstrap/BootstrapTaskManager.js +20 -1
  130. package/dist/lib/service/delivery/AgentInstructionsGenerator.js +4 -5
  131. package/dist/lib/service/delivery/CursorDeliveryPipeline.d.ts +3 -1
  132. package/dist/lib/service/delivery/CursorDeliveryPipeline.js +13 -10
  133. package/dist/lib/service/delivery/RulesGenerator.js +3 -2
  134. package/dist/lib/service/evolution/ConsolidationAdvisor.d.ts +114 -0
  135. package/dist/lib/service/evolution/ConsolidationAdvisor.js +542 -0
  136. package/dist/lib/service/evolution/ContradictionDetector.d.ts +54 -0
  137. package/dist/lib/service/evolution/ContradictionDetector.js +253 -0
  138. package/dist/lib/service/evolution/DecayDetector.d.ts +71 -0
  139. package/dist/lib/service/evolution/DecayDetector.js +244 -0
  140. package/dist/lib/service/evolution/EnhancementSuggester.d.ts +38 -0
  141. package/dist/lib/service/evolution/EnhancementSuggester.js +220 -0
  142. package/dist/lib/service/evolution/KnowledgeMetabolism.d.ts +82 -0
  143. package/dist/lib/service/evolution/KnowledgeMetabolism.js +167 -0
  144. package/dist/lib/service/evolution/RedundancyAnalyzer.d.ts +53 -0
  145. package/dist/lib/service/evolution/RedundancyAnalyzer.js +210 -0
  146. package/dist/lib/service/evolution/StagingManager.d.ts +57 -0
  147. package/dist/lib/service/evolution/StagingManager.js +201 -0
  148. package/dist/lib/service/guard/ComplianceReporter.d.ts +42 -2
  149. package/dist/lib/service/guard/ComplianceReporter.js +43 -5
  150. package/dist/lib/service/guard/CoverageAnalyzer.d.ts +54 -0
  151. package/dist/lib/service/guard/CoverageAnalyzer.js +149 -0
  152. package/dist/lib/service/guard/GuardCheckEngine.d.ts +55 -1
  153. package/dist/lib/service/guard/GuardCheckEngine.js +508 -15
  154. package/dist/lib/service/guard/GuardFeedbackLoop.d.ts +3 -0
  155. package/dist/lib/service/guard/GuardFeedbackLoop.js +9 -0
  156. package/dist/lib/service/guard/ReverseGuard.d.ts +73 -0
  157. package/dist/lib/service/guard/ReverseGuard.js +256 -0
  158. package/dist/lib/service/guard/RuleLearner.d.ts +12 -0
  159. package/dist/lib/service/guard/RuleLearner.js +38 -0
  160. package/dist/lib/service/guard/UncertaintyCollector.d.ts +83 -0
  161. package/dist/lib/service/guard/UncertaintyCollector.js +149 -0
  162. package/dist/lib/service/guard/ViolationsStore.d.ts +1 -0
  163. package/dist/lib/service/guard/ViolationsStore.js +33 -3
  164. package/dist/lib/service/knowledge/ConfidenceRouter.d.ts +13 -0
  165. package/dist/lib/service/knowledge/ConfidenceRouter.js +14 -0
  166. package/dist/lib/service/knowledge/KnowledgeService.js +22 -4
  167. package/dist/lib/service/module/ModuleService.js +3 -13
  168. package/dist/lib/service/panorama/CouplingAnalyzer.d.ts +27 -0
  169. package/dist/lib/service/panorama/CouplingAnalyzer.js +192 -0
  170. package/dist/lib/service/panorama/DimensionAnalyzer.d.ts +28 -0
  171. package/dist/lib/service/panorama/DimensionAnalyzer.js +320 -0
  172. package/dist/lib/service/panorama/LayerInferrer.d.ts +19 -0
  173. package/dist/lib/service/panorama/LayerInferrer.js +182 -0
  174. package/dist/lib/service/panorama/ModuleDiscoverer.d.ts +24 -0
  175. package/dist/lib/service/panorama/ModuleDiscoverer.js +185 -0
  176. package/dist/lib/service/panorama/PanoramaAggregator.d.ts +29 -0
  177. package/dist/lib/service/panorama/PanoramaAggregator.js +228 -0
  178. package/dist/lib/service/panorama/PanoramaScanner.d.ts +52 -0
  179. package/dist/lib/service/panorama/PanoramaScanner.js +188 -0
  180. package/dist/lib/service/panorama/PanoramaService.d.ts +108 -0
  181. package/dist/lib/service/panorama/PanoramaService.js +220 -0
  182. package/dist/lib/service/panorama/PanoramaTypes.d.ts +134 -0
  183. package/dist/lib/service/panorama/PanoramaTypes.js +6 -0
  184. package/dist/lib/service/panorama/RoleRefiner.d.ts +48 -0
  185. package/dist/lib/service/panorama/RoleRefiner.js +535 -0
  186. package/dist/lib/service/search/MultiSignalRanker.d.ts +1 -0
  187. package/dist/lib/service/search/MultiSignalRanker.js +16 -0
  188. package/dist/lib/service/search/SearchEngine.d.ts +1 -0
  189. package/dist/lib/service/search/SearchEngine.js +9 -1
  190. package/dist/lib/service/search/SearchTypes.d.ts +2 -0
  191. package/dist/lib/service/signal/HitRecorder.d.ts +68 -0
  192. package/dist/lib/service/signal/HitRecorder.js +173 -0
  193. package/dist/lib/service/skills/SignalCollector.d.ts +3 -1
  194. package/dist/lib/service/skills/SignalCollector.js +31 -1
  195. package/dist/lib/service/task/IntentExtractor.d.ts +58 -0
  196. package/dist/lib/service/task/IntentExtractor.js +142 -0
  197. package/dist/lib/service/task/PrimeSearchPipeline.d.ts +54 -0
  198. package/dist/lib/service/task/PrimeSearchPipeline.js +98 -0
  199. package/dist/lib/shared/constants.d.ts +0 -15
  200. package/dist/lib/shared/constants.js +0 -10
  201. package/dist/lib/shared/schemas/config.d.ts +4 -1
  202. package/dist/lib/shared/schemas/config.js +8 -1
  203. package/dist/lib/shared/schemas/mcp-tools.d.ts +41 -96
  204. package/dist/lib/shared/schemas/mcp-tools.js +59 -119
  205. package/dist/scripts/analyze-signals.d.ts +20 -0
  206. package/dist/scripts/analyze-signals.js +155 -0
  207. package/dist/scripts/diagnose-mcp.js +1 -1
  208. package/dist/scripts/release.js +2 -10
  209. package/package.json +4 -19
  210. package/skills/autosnippet-devdocs/SKILL.md +11 -8
  211. package/templates/claude-code/hooks/autosnippet-session.sh +10 -15
  212. package/templates/cursor-hooks/hooks/session-start.sh +1 -1
  213. package/templates/instructions/agent-static.md +2 -1
  214. package/templates/instructions/conventions.md +5 -6
  215. package/templates/recipes-setup/README.md +1 -2
  216. package/dashboard/dist/assets/icons-C1dUryS-.js +0 -1
  217. package/dashboard/dist/assets/index-D0whuycy.css +0 -1
  218. package/dashboard/dist/assets/index-DdvZE4Yd.js +0 -128
  219. package/dist/lib/domain/task/Task.d.ts +0 -140
  220. package/dist/lib/domain/task/Task.js +0 -254
  221. package/dist/lib/domain/task/TaskDependency.d.ts +0 -23
  222. package/dist/lib/domain/task/TaskDependency.js +0 -34
  223. package/dist/lib/domain/task/TaskIdGenerator.d.ts +0 -40
  224. package/dist/lib/domain/task/TaskIdGenerator.js +0 -75
  225. package/dist/lib/domain/task/index.d.ts +0 -4
  226. package/dist/lib/domain/task/index.js +0 -4
  227. package/dist/lib/http/routes/snippets.js +0 -49
  228. package/dist/lib/infrastructure/database/migrations/002_add_tasks.d.ts +0 -11
  229. package/dist/lib/infrastructure/database/migrations/002_add_tasks.js +0 -86
  230. package/dist/lib/platform/ClipboardManager.d.ts +0 -24
  231. package/dist/lib/platform/ClipboardManager.js +0 -142
  232. package/dist/lib/platform/NativeUi.d.ts +0 -53
  233. package/dist/lib/platform/NativeUi.js +0 -284
  234. package/dist/lib/platform/ios/index.d.ts +0 -38
  235. package/dist/lib/platform/ios/index.js +0 -42
  236. package/dist/lib/platform/ios/routes/spm.d.ts +0 -9
  237. package/dist/lib/platform/ios/routes/spm.js +0 -371
  238. package/dist/lib/platform/ios/snippet/PlaceholderConverter.d.ts +0 -21
  239. package/dist/lib/platform/ios/snippet/PlaceholderConverter.js +0 -48
  240. package/dist/lib/platform/ios/snippet/XcodeCodec.d.ts +0 -23
  241. package/dist/lib/platform/ios/snippet/XcodeCodec.js +0 -96
  242. package/dist/lib/platform/ios/spm/DependencyGraph.d.ts +0 -56
  243. package/dist/lib/platform/ios/spm/DependencyGraph.js +0 -195
  244. package/dist/lib/platform/ios/spm/PackageSwiftParser.d.ts +0 -69
  245. package/dist/lib/platform/ios/spm/PackageSwiftParser.js +0 -231
  246. package/dist/lib/platform/ios/spm/PathFinder.d.ts +0 -28
  247. package/dist/lib/platform/ios/spm/PathFinder.js +0 -117
  248. package/dist/lib/platform/ios/spm/PolicyEngine.d.ts +0 -44
  249. package/dist/lib/platform/ios/spm/PolicyEngine.js +0 -79
  250. package/dist/lib/platform/ios/spm/SpmHelper.d.ts +0 -102
  251. package/dist/lib/platform/ios/spm/SpmHelper.js +0 -464
  252. package/dist/lib/platform/ios/xcode/HeaderResolver.d.ts +0 -33
  253. package/dist/lib/platform/ios/xcode/HeaderResolver.js +0 -90
  254. package/dist/lib/platform/ios/xcode/SaveEventFilter.d.ts +0 -66
  255. package/dist/lib/platform/ios/xcode/SaveEventFilter.js +0 -142
  256. package/dist/lib/platform/ios/xcode/XcodeAutomation.d.ts +0 -71
  257. package/dist/lib/platform/ios/xcode/XcodeAutomation.js +0 -327
  258. package/dist/lib/platform/ios/xcode/XcodeImportResolver.d.ts +0 -130
  259. package/dist/lib/platform/ios/xcode/XcodeImportResolver.js +0 -404
  260. package/dist/lib/platform/ios/xcode/XcodeIntegration.d.ts +0 -89
  261. package/dist/lib/platform/ios/xcode/XcodeIntegration.js +0 -588
  262. package/dist/lib/platform/ios/xcode/XcodeWriteUtils.d.ts +0 -99
  263. package/dist/lib/platform/ios/xcode/XcodeWriteUtils.js +0 -190
  264. package/dist/lib/repository/task/TaskRepository.impl.d.ts +0 -171
  265. package/dist/lib/repository/task/TaskRepository.impl.js +0 -347
  266. package/dist/lib/service/automation/ActionPipeline.d.ts +0 -34
  267. package/dist/lib/service/automation/ActionPipeline.js +0 -53
  268. package/dist/lib/service/automation/AutomationOrchestrator.d.ts +0 -86
  269. package/dist/lib/service/automation/AutomationOrchestrator.js +0 -57
  270. package/dist/lib/service/automation/ContextCollector.d.ts +0 -24
  271. package/dist/lib/service/automation/ContextCollector.js +0 -35
  272. package/dist/lib/service/automation/DirectiveDetector.d.ts +0 -51
  273. package/dist/lib/service/automation/DirectiveDetector.js +0 -112
  274. package/dist/lib/service/automation/FileWatcher.d.ts +0 -51
  275. package/dist/lib/service/automation/FileWatcher.js +0 -366
  276. package/dist/lib/service/automation/TriggerResolver.d.ts +0 -36
  277. package/dist/lib/service/automation/TriggerResolver.js +0 -62
  278. package/dist/lib/service/automation/handlers/AlinkHandler.d.ts +0 -7
  279. package/dist/lib/service/automation/handlers/AlinkHandler.js +0 -80
  280. package/dist/lib/service/automation/handlers/CreateHandler.d.ts +0 -11
  281. package/dist/lib/service/automation/handlers/CreateHandler.js +0 -170
  282. package/dist/lib/service/automation/handlers/GuardHandler.d.ts +0 -17
  283. package/dist/lib/service/automation/handlers/GuardHandler.js +0 -218
  284. package/dist/lib/service/automation/handlers/HeaderHandler.d.ts +0 -2
  285. package/dist/lib/service/automation/handlers/HeaderHandler.js +0 -32
  286. package/dist/lib/service/automation/handlers/SearchHandler.d.ts +0 -11
  287. package/dist/lib/service/automation/handlers/SearchHandler.js +0 -278
  288. package/dist/lib/service/snippet/SnippetFactory.d.ts +0 -101
  289. package/dist/lib/service/snippet/SnippetFactory.js +0 -145
  290. package/dist/lib/service/snippet/SnippetInstaller.d.ts +0 -91
  291. package/dist/lib/service/snippet/SnippetInstaller.js +0 -276
  292. package/dist/lib/service/snippet/codecs/SnippetCodec.d.ts +0 -44
  293. package/dist/lib/service/snippet/codecs/SnippetCodec.js +0 -35
  294. package/dist/lib/service/snippet/codecs/VSCodeCodec.d.ts +0 -27
  295. package/dist/lib/service/snippet/codecs/VSCodeCodec.js +0 -82
  296. package/dist/lib/service/task/TaskGraphService.d.ts +0 -222
  297. package/dist/lib/service/task/TaskGraphService.js +0 -597
  298. package/dist/lib/service/task/TaskKnowledgeBridge.d.ts +0 -95
  299. package/dist/lib/service/task/TaskKnowledgeBridge.js +0 -298
  300. package/dist/lib/service/task/TaskReadyEngine.d.ts +0 -84
  301. package/dist/lib/service/task/TaskReadyEngine.js +0 -115
  302. package/dist/scripts/build-native-ui.d.ts +0 -3
  303. package/dist/scripts/build-native-ui.js +0 -62
  304. package/dist/scripts/init-snippets.d.ts +0 -30
  305. package/dist/scripts/init-snippets.js +0 -298
  306. package/dist/scripts/install-full.d.ts +0 -7
  307. package/dist/scripts/install-full.js +0 -38
  308. package/resources/native-ui/README.md +0 -29
  309. package/resources/native-ui/combined-window.swift +0 -494
  310. package/resources/native-ui/main.swift +0 -598
  311. package/scripts/postinstall-safe.mjs +0 -89
@@ -0,0 +1,149 @@
1
+ /**
2
+ * CoverageAnalyzer — Guard 覆盖率矩阵 + Panorama 协同
3
+ *
4
+ * 计算模块级 Rule 覆盖率,识别零覆盖和低覆盖模块。
5
+ * 与 PanoramaService 协同:利用模块划分 + gaps 数据做精准评估。
6
+ */
7
+ import Logger from '../../infrastructure/logging/Logger.js';
8
+ import { LanguageService } from '../../shared/LanguageService.js';
9
+ /* ────────────────────── 常量 ────────────────────── */
10
+ const LOW_COVERAGE_THRESHOLD = 50;
11
+ /* ────────────────────── Class ────────────────────── */
12
+ export class CoverageAnalyzer {
13
+ #db;
14
+ #ruleLearner;
15
+ #logger = Logger.getInstance();
16
+ constructor(db, options = {}) {
17
+ this.#db = db;
18
+ this.#ruleLearner = options.ruleLearner ?? null;
19
+ }
20
+ /**
21
+ * 计算覆盖率矩阵
22
+ * @param moduleFiles 模块名 → 文件路径列表的映射
23
+ */
24
+ analyze(moduleFiles) {
25
+ // 1. 加载所有 active rule recipes
26
+ const rules = this.#loadActiveRules();
27
+ // 2. 构建 rule → 文件路径映射 (从 guard_violations 历史推断)
28
+ const ruleFileMap = this.#buildRuleFileMap();
29
+ // 3. 加载规则健康数据
30
+ const allStats = this.#ruleLearner?.getAllStats() ?? {};
31
+ // 4. 对每个模块计算覆盖率
32
+ const modules = [];
33
+ for (const [moduleName, files] of moduleFiles) {
34
+ if (files.length === 0) {
35
+ modules.push({
36
+ module: moduleName,
37
+ ruleCount: 0,
38
+ fpRate: 0,
39
+ coverage: 0,
40
+ level: 'zero',
41
+ });
42
+ continue;
43
+ }
44
+ // 找出与该模块文件匹配的 rule
45
+ const fileSet = new Set(files);
46
+ const matchedRules = new Set();
47
+ // 方式 1: rule 的 guard_violations 历史曾命中该模块的文件
48
+ for (const [ruleId, rulePaths] of ruleFileMap) {
49
+ for (const rp of rulePaths) {
50
+ if (fileSet.has(rp)) {
51
+ matchedRules.add(ruleId);
52
+ break;
53
+ }
54
+ }
55
+ }
56
+ // 方式 2: rule 的 scope/language 与模块语言匹配 (基于文件扩展名推断)
57
+ const moduleLanguages = this.#inferLanguages(files);
58
+ for (const rule of rules) {
59
+ if (rule.languages.length === 0 || rule.languages.some((l) => moduleLanguages.has(l))) {
60
+ matchedRules.add(rule.id);
61
+ }
62
+ }
63
+ const ruleCount = matchedRules.size;
64
+ // 计算该模块关联规则的平均 FP 率
65
+ let fpRateSum = 0;
66
+ let fpRuleCount = 0;
67
+ for (const ruleId of matchedRules) {
68
+ const stat = allStats[ruleId];
69
+ if (stat?.triggers && stat.triggers > 0) {
70
+ const metrics = this.#ruleLearner?.getMetrics(ruleId);
71
+ if (metrics) {
72
+ fpRateSum += metrics.falsePositiveRate;
73
+ fpRuleCount++;
74
+ }
75
+ }
76
+ }
77
+ const fpRate = fpRuleCount > 0 ? Math.round((fpRateSum / fpRuleCount) * 100) : 0;
78
+ // 覆盖率 = 匹配到的规则数 / (模块文件数 × 权重因子)
79
+ // 简化公式: 每个文件理论上应有 ≥1 条规则覆盖
80
+ const coverage = Math.min(100, Math.round((ruleCount / Math.max(1, files.length)) * 100));
81
+ const level = coverage === 0 ? 'zero' : coverage < LOW_COVERAGE_THRESHOLD ? 'low' : 'good';
82
+ modules.push({ module: moduleName, ruleCount, fpRate, coverage, level });
83
+ }
84
+ // 5. 总体覆盖率
85
+ const totalModules = modules.length;
86
+ const overallCoverage = totalModules > 0
87
+ ? Math.round(modules.reduce((sum, m) => sum + m.coverage, 0) / totalModules)
88
+ : 0;
89
+ const zeroModules = modules.filter((m) => m.level === 'zero').map((m) => m.module);
90
+ const lowModules = modules.filter((m) => m.level === 'low').map((m) => m.module);
91
+ return { modules, overallCoverage, zeroModules, lowModules };
92
+ }
93
+ /* ── 内部 ── */
94
+ #loadActiveRules() {
95
+ try {
96
+ const rows = this.#db
97
+ .prepare(`SELECT id, language FROM knowledge_entries WHERE lifecycle = 'active' AND kind = 'rule'`)
98
+ .all();
99
+ return rows.map((r) => ({
100
+ id: r.id,
101
+ languages: r.language
102
+ ? r.language.split(',').map((l) => LanguageService.normalize(l.trim()))
103
+ : [],
104
+ }));
105
+ }
106
+ catch {
107
+ return [];
108
+ }
109
+ }
110
+ #buildRuleFileMap() {
111
+ const map = new Map();
112
+ try {
113
+ const rows = this.#db
114
+ .prepare(`SELECT file_path, violations_json FROM guard_violations ORDER BY created_at DESC LIMIT 200`)
115
+ .all();
116
+ for (const row of rows) {
117
+ try {
118
+ const violations = JSON.parse(row.violations_json || '[]');
119
+ const filePath = row.file_path;
120
+ for (const v of violations) {
121
+ if (!v.ruleId) {
122
+ continue;
123
+ }
124
+ const list = map.get(v.ruleId) || [];
125
+ list.push(filePath);
126
+ map.set(v.ruleId, list);
127
+ }
128
+ }
129
+ catch {
130
+ // invalid json
131
+ }
132
+ }
133
+ }
134
+ catch {
135
+ // table doesn't exist
136
+ }
137
+ return map;
138
+ }
139
+ #inferLanguages(files) {
140
+ const langs = new Set();
141
+ for (const f of files) {
142
+ const lang = LanguageService.inferLang(f);
143
+ if (lang !== 'unknown') {
144
+ langs.add(lang);
145
+ }
146
+ }
147
+ return langs;
148
+ }
149
+ }
@@ -6,6 +6,9 @@
6
6
  */
7
7
  import * as AstAnalyzerModule from '../../core/AstAnalyzer.js';
8
8
  import Logger from '../../infrastructure/logging/Logger.js';
9
+ import type { SignalBus } from '../../infrastructure/signal/SignalBus.js';
10
+ import type { GuardCapabilityReport, UncertainResult } from './UncertaintyCollector.js';
11
+ import { UncertaintyCollector } from './UncertaintyCollector.js';
9
12
  /** Minimal DB interface for Guard engine */
10
13
  interface DatabaseLike {
11
14
  prepare(sql: string): {
@@ -24,6 +27,7 @@ interface BuiltInRule {
24
27
  category?: string;
25
28
  fixSuggestion?: string;
26
29
  excludePaths?: RegExp;
30
+ excludeLinePatterns?: string[];
27
31
  skipComments?: boolean;
28
32
  skipTestBlocks?: boolean;
29
33
  }
@@ -40,6 +44,7 @@ interface GuardRule {
40
44
  type?: string;
41
45
  fixSuggestion?: string | null;
42
46
  excludePaths?: RegExp | string;
47
+ excludeLinePatterns?: string[];
43
48
  skipComments?: boolean;
44
49
  skipTestBlocks?: boolean;
45
50
  astQuery?: {
@@ -62,13 +67,19 @@ interface GuardViolation {
62
67
  suggestedFix: string | null;
63
68
  };
64
69
  }
70
+ /** 每条规则的覆盖配置(支持数字阈值或富对象) */
71
+ interface RuleOverride {
72
+ severity?: string;
73
+ exclude?: string[];
74
+ }
65
75
  interface GuardConfig {
66
76
  disabledRules?: string[];
67
- codeLevelThresholds?: Record<string, number>;
77
+ codeLevelThresholds?: Record<string, number | RuleOverride>;
68
78
  }
69
79
  interface GuardCheckEngineOptions {
70
80
  cacheTTL?: number;
71
81
  guardConfig?: GuardConfig;
82
+ signalBus?: SignalBus;
72
83
  }
73
84
  interface ExternalRuleInput {
74
85
  ruleId: string;
@@ -84,10 +95,12 @@ interface AuditFileResult {
84
95
  filePath: string;
85
96
  language: string;
86
97
  violations: GuardViolation[];
98
+ uncertainResults: UncertainResult[];
87
99
  summary: {
88
100
  total: number;
89
101
  errors: number;
90
102
  warnings: number;
103
+ uncertain: number;
91
104
  };
92
105
  }
93
106
  interface AuditFilesInput {
@@ -105,6 +118,11 @@ export declare class GuardCheckEngine {
105
118
  _epInjected: boolean;
106
119
  _externalRules: Map<string, GuardRule>;
107
120
  _guardConfig: GuardConfig;
121
+ _signalBus: SignalBus | null;
122
+ /** 上次 guard 信号指纹,用于去重(相同结果不重复发射) */
123
+ _lastGuardSignalKey: string;
124
+ _lastBlindSpotSignalKey: string;
125
+ _uncertaintyCollector: UncertaintyCollector;
108
126
  db: DatabaseLike;
109
127
  logger: ReturnType<typeof Logger.getInstance>;
110
128
  constructor(db: DatabaseLike | {
@@ -155,8 +173,40 @@ export declare class GuardCheckEngine {
155
173
  * @returns violations
156
174
  */
157
175
  _runAstRuleChecks(code: string, language: string): GuardViolation[];
176
+ /**
177
+ * AST Layer 2: analyzeFile() 深层检查
178
+ *
179
+ * 利用 AstAnalyzer.analyzeFile() 的完整输出产出 violations:
180
+ *
181
+ * --- 方法度量 ---
182
+ * - ast_class_bloat: 类方法数过多 (>20)
183
+ * - ast_method_complexity: 高圈复杂度 (>15)
184
+ * - ast_method_too_long: 方法行数过长 (>80)
185
+ * - ast_deep_nesting: 方法嵌套过深 (>5)
186
+ *
187
+ * --- 继承图检查 ---
188
+ * - ast_deep_inheritance: 继承链过深 (>4)
189
+ * - ast_wide_protocol_conformance: 单类遵守协议过多 (>5)
190
+ * - ast_missing_super: 子类未调用 super 的关键方法
191
+ *
192
+ * --- 属性规范 ---
193
+ * - ast_assign_object_property: ObjC assign 修饰对象类型属性
194
+ * - ast_missing_nonatomic: ObjC 属性缺少 nonatomic
195
+ * - ast_mutable_public_collection: 公开可变集合属性
196
+ *
197
+ * --- 设计模式/反模式检测 ---
198
+ * - ast_god_class: 方法+属性过多的上帝类 (>30 methods + >15 properties)
199
+ * - ast_singleton_abuse: 过多单例模式
200
+ * - ast_missing_weakify: block 内 self 捕获但未使用 weakify
201
+ */
202
+ _runAstLayer2Checks(code: string, language: string, filePath: string): GuardViolation[];
158
203
  /** 获取 AstAnalyzer 模块(静态 import,带可用性检测) */
159
204
  _getAstAnalyzer(): typeof AstAnalyzerModule;
205
+ /**
206
+ * 合并内置 + 配置级行排除模式,编译为 RegExp 数组
207
+ * 配置来自 guardConfig.codeLevelThresholds[ruleId].exclude
208
+ */
209
+ _getExcludeLineRegexes(ruleId: string, builtIn?: string[]): RegExp[];
160
210
  /**
161
211
  * 将 Guard 命中计数回写到对应 Recipe 的 guard_hit_count
162
212
  * @param violations
@@ -186,9 +236,13 @@ export declare class GuardCheckEngine {
186
236
  filesChecked: number;
187
237
  totalViolations: number;
188
238
  totalErrors: number;
239
+ totalUncertain: number;
189
240
  filesWithViolations: number;
190
241
  };
242
+ capabilityReport: GuardCapabilityReport;
191
243
  };
244
+ /** 获取 uncertainty collector(供外部读取单文件 uncertain 状态) */
245
+ getUncertaintyCollector(): UncertaintyCollector;
192
246
  /** 清除规则缓存 */
193
247
  clearCache(): void;
194
248
  /** 获取内置规则列表 */