autosnippet 3.2.13 → 3.2.16

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 (331) hide show
  1. package/config/constitution.yaml +19 -0
  2. package/config/default.json +6 -1
  3. package/dist/bin/cli.d.ts +2 -1
  4. package/dist/bin/cli.d.ts.map +1 -1
  5. package/dist/bin/cli.js +241 -22
  6. package/dist/bin/cli.js.map +1 -1
  7. package/dist/lib/cli/SetupService.d.ts +70 -6
  8. package/dist/lib/cli/SetupService.d.ts.map +1 -1
  9. package/dist/lib/cli/SetupService.js +238 -50
  10. package/dist/lib/cli/SetupService.js.map +1 -1
  11. package/dist/lib/cli/UpgradeService.d.ts.map +1 -1
  12. package/dist/lib/cli/UpgradeService.js +3 -2
  13. package/dist/lib/cli/UpgradeService.js.map +1 -1
  14. package/dist/lib/cli/deploy/FileDeployer.d.ts.map +1 -1
  15. package/dist/lib/cli/deploy/FileDeployer.js +6 -4
  16. package/dist/lib/cli/deploy/FileDeployer.js.map +1 -1
  17. package/dist/lib/cli/deploy/FileManifest.d.ts.map +1 -1
  18. package/dist/lib/cli/deploy/FileManifest.js +3 -2
  19. package/dist/lib/cli/deploy/FileManifest.js.map +1 -1
  20. package/dist/lib/core/capability/CapabilityProbe.d.ts +13 -0
  21. package/dist/lib/core/capability/CapabilityProbe.d.ts.map +1 -1
  22. package/dist/lib/core/capability/CapabilityProbe.js +36 -17
  23. package/dist/lib/core/capability/CapabilityProbe.js.map +1 -1
  24. package/dist/lib/external/mcp/McpServer.d.ts +13 -0
  25. package/dist/lib/external/mcp/McpServer.d.ts.map +1 -1
  26. package/dist/lib/external/mcp/McpServer.js +44 -3
  27. package/dist/lib/external/mcp/McpServer.js.map +1 -1
  28. package/dist/lib/external/mcp/handlers/bootstrap/pipeline/orchestrator.d.ts.map +1 -1
  29. package/dist/lib/external/mcp/handlers/bootstrap/pipeline/orchestrator.js +16 -1
  30. package/dist/lib/external/mcp/handlers/bootstrap/pipeline/orchestrator.js.map +1 -1
  31. package/dist/lib/external/mcp/handlers/bootstrap-external.js.map +1 -1
  32. package/dist/lib/external/mcp/handlers/consolidated.d.ts +22 -24
  33. package/dist/lib/external/mcp/handlers/consolidated.d.ts.map +1 -1
  34. package/dist/lib/external/mcp/handlers/consolidated.js +4 -2
  35. package/dist/lib/external/mcp/handlers/consolidated.js.map +1 -1
  36. package/dist/lib/external/mcp/handlers/dimension-complete-external.js.map +1 -1
  37. package/dist/lib/external/mcp/handlers/search.d.ts +115 -39
  38. package/dist/lib/external/mcp/handlers/search.d.ts.map +1 -1
  39. package/dist/lib/external/mcp/handlers/search.js +107 -190
  40. package/dist/lib/external/mcp/handlers/search.js.map +1 -1
  41. package/dist/lib/external/mcp/handlers/skill.d.ts +17 -0
  42. package/dist/lib/external/mcp/handlers/skill.d.ts.map +1 -1
  43. package/dist/lib/external/mcp/handlers/skill.js +166 -0
  44. package/dist/lib/external/mcp/handlers/skill.js.map +1 -1
  45. package/dist/lib/external/mcp/handlers/task.d.ts +3 -0
  46. package/dist/lib/external/mcp/handlers/task.d.ts.map +1 -1
  47. package/dist/lib/external/mcp/handlers/task.js +10 -1
  48. package/dist/lib/external/mcp/handlers/task.js.map +1 -1
  49. package/dist/lib/external/mcp/handlers/wiki-external.d.ts.map +1 -1
  50. package/dist/lib/external/mcp/handlers/wiki-external.js +4 -3
  51. package/dist/lib/external/mcp/handlers/wiki-external.js.map +1 -1
  52. package/dist/lib/http/HttpServer.js +2 -2
  53. package/dist/lib/http/HttpServer.js.map +1 -1
  54. package/dist/lib/http/middleware/gatewayMiddleware.js +2 -2
  55. package/dist/lib/http/middleware/gatewayMiddleware.js.map +1 -1
  56. package/dist/lib/http/routes/ai.js +3 -3
  57. package/dist/lib/http/routes/ai.js.map +1 -1
  58. package/dist/lib/http/routes/candidates.d.ts.map +1 -1
  59. package/dist/lib/http/routes/candidates.js +3 -1
  60. package/dist/lib/http/routes/candidates.js.map +1 -1
  61. package/dist/lib/http/routes/commands.d.ts.map +1 -1
  62. package/dist/lib/http/routes/commands.js +37 -9
  63. package/dist/lib/http/routes/commands.js.map +1 -1
  64. package/dist/lib/http/routes/guard.d.ts.map +1 -1
  65. package/dist/lib/http/routes/guard.js.map +1 -1
  66. package/dist/lib/http/routes/guardRules.d.ts.map +1 -1
  67. package/dist/lib/http/routes/guardRules.js +7 -7
  68. package/dist/lib/http/routes/guardRules.js.map +1 -1
  69. package/dist/lib/http/routes/knowledge.d.ts.map +1 -1
  70. package/dist/lib/http/routes/knowledge.js +62 -18
  71. package/dist/lib/http/routes/knowledge.js.map +1 -1
  72. package/dist/lib/http/routes/modules.d.ts.map +1 -1
  73. package/dist/lib/http/routes/modules.js +7 -5
  74. package/dist/lib/http/routes/modules.js.map +1 -1
  75. package/dist/lib/http/routes/recipes.js +1 -1
  76. package/dist/lib/http/routes/recipes.js.map +1 -1
  77. package/dist/lib/http/routes/remote.d.ts.map +1 -1
  78. package/dist/lib/http/routes/remote.js +1 -1
  79. package/dist/lib/http/routes/remote.js.map +1 -1
  80. package/dist/lib/http/routes/search.d.ts.map +1 -1
  81. package/dist/lib/http/routes/search.js +31 -23
  82. package/dist/lib/http/routes/search.js.map +1 -1
  83. package/dist/lib/http/routes/skills.d.ts.map +1 -1
  84. package/dist/lib/http/routes/skills.js +73 -0
  85. package/dist/lib/http/routes/skills.js.map +1 -1
  86. package/dist/lib/http/routes/snippets.js +2 -2
  87. package/dist/lib/http/routes/snippets.js.map +1 -1
  88. package/dist/lib/http/routes/task.js.map +1 -1
  89. package/dist/lib/http/routes/violations.js +2 -2
  90. package/dist/lib/http/routes/violations.js.map +1 -1
  91. package/dist/lib/http/routes/wiki.d.ts.map +1 -1
  92. package/dist/lib/http/routes/wiki.js +3 -2
  93. package/dist/lib/http/routes/wiki.js.map +1 -1
  94. package/dist/lib/http/utils/routeHelpers.d.ts +2 -2
  95. package/dist/lib/http/utils/routeHelpers.js +2 -2
  96. package/dist/lib/http/utils/routeHelpers.js.map +1 -1
  97. package/dist/lib/infrastructure/config/Defaults.d.ts +3 -0
  98. package/dist/lib/infrastructure/config/Defaults.d.ts.map +1 -1
  99. package/dist/lib/infrastructure/config/Defaults.js +10 -6
  100. package/dist/lib/infrastructure/config/Defaults.js.map +1 -1
  101. package/dist/lib/infrastructure/config/Paths.d.ts +1 -1
  102. package/dist/lib/infrastructure/config/Paths.d.ts.map +1 -1
  103. package/dist/lib/infrastructure/config/Paths.js +4 -16
  104. package/dist/lib/infrastructure/config/Paths.js.map +1 -1
  105. package/dist/lib/infrastructure/vector/HnswVectorAdapter.d.ts +4 -1
  106. package/dist/lib/infrastructure/vector/HnswVectorAdapter.d.ts.map +1 -1
  107. package/dist/lib/infrastructure/vector/HnswVectorAdapter.js +26 -6
  108. package/dist/lib/infrastructure/vector/HnswVectorAdapter.js.map +1 -1
  109. package/dist/lib/infrastructure/vector/IndexingPipeline.d.ts +20 -0
  110. package/dist/lib/infrastructure/vector/IndexingPipeline.d.ts.map +1 -1
  111. package/dist/lib/infrastructure/vector/IndexingPipeline.js +65 -3
  112. package/dist/lib/infrastructure/vector/IndexingPipeline.js.map +1 -1
  113. package/dist/lib/infrastructure/vector/JsonVectorAdapter.d.ts +1 -1
  114. package/dist/lib/infrastructure/vector/JsonVectorAdapter.js +1 -1
  115. package/dist/lib/injection/ServiceContainer.d.ts +12 -2
  116. package/dist/lib/injection/ServiceContainer.d.ts.map +1 -1
  117. package/dist/lib/injection/ServiceContainer.js +10 -85
  118. package/dist/lib/injection/ServiceContainer.js.map +1 -1
  119. package/dist/lib/injection/ServiceMap.d.ts +124 -0
  120. package/dist/lib/injection/ServiceMap.d.ts.map +1 -0
  121. package/dist/lib/injection/ServiceMap.js +10 -0
  122. package/dist/lib/injection/ServiceMap.js.map +1 -0
  123. package/dist/lib/injection/modules/AgentModule.d.ts +1 -0
  124. package/dist/lib/injection/modules/AgentModule.d.ts.map +1 -1
  125. package/dist/lib/injection/modules/AgentModule.js +28 -0
  126. package/dist/lib/injection/modules/AgentModule.js.map +1 -1
  127. package/dist/lib/injection/modules/AiModule.d.ts +36 -0
  128. package/dist/lib/injection/modules/AiModule.d.ts.map +1 -0
  129. package/dist/lib/injection/modules/AiModule.js +99 -0
  130. package/dist/lib/injection/modules/AiModule.js.map +1 -0
  131. package/dist/lib/injection/modules/AppModule.js.map +1 -1
  132. package/dist/lib/injection/modules/GuardModule.js.map +1 -1
  133. package/dist/lib/injection/modules/KnowledgeModule.d.ts +1 -1
  134. package/dist/lib/injection/modules/KnowledgeModule.d.ts.map +1 -1
  135. package/dist/lib/injection/modules/KnowledgeModule.js +4 -10
  136. package/dist/lib/injection/modules/KnowledgeModule.js.map +1 -1
  137. package/dist/lib/injection/modules/VectorModule.d.ts +20 -0
  138. package/dist/lib/injection/modules/VectorModule.d.ts.map +1 -0
  139. package/dist/lib/injection/modules/VectorModule.js +74 -0
  140. package/dist/lib/injection/modules/VectorModule.js.map +1 -0
  141. package/dist/lib/platform/ios/routes/spm.d.ts.map +1 -1
  142. package/dist/lib/platform/ios/routes/spm.js +7 -5
  143. package/dist/lib/platform/ios/routes/spm.js.map +1 -1
  144. package/dist/lib/platform/ios/spm/SpmHelper.d.ts +1 -1
  145. package/dist/lib/service/agent/AgentRuntime.d.ts +3 -73
  146. package/dist/lib/service/agent/AgentRuntime.d.ts.map +1 -1
  147. package/dist/lib/service/agent/AgentRuntime.js +2 -2
  148. package/dist/lib/service/agent/AgentRuntime.js.map +1 -1
  149. package/dist/lib/service/agent/AgentRuntimeTypes.d.ts +113 -0
  150. package/dist/lib/service/agent/AgentRuntimeTypes.d.ts.map +1 -0
  151. package/dist/lib/service/agent/AgentRuntimeTypes.js +11 -0
  152. package/dist/lib/service/agent/AgentRuntimeTypes.js.map +1 -0
  153. package/dist/lib/service/agent/PipelineStrategy.d.ts +1 -1
  154. package/dist/lib/service/agent/PipelineStrategy.d.ts.map +1 -1
  155. package/dist/lib/service/agent/PipelineStrategy.js +3 -3
  156. package/dist/lib/service/agent/PipelineStrategy.js.map +1 -1
  157. package/dist/lib/service/agent/core/ChatAgentPrompts.d.ts +2 -2
  158. package/dist/lib/service/agent/core/ChatAgentPrompts.d.ts.map +1 -1
  159. package/dist/lib/service/agent/core/ChatAgentPrompts.js +2 -2
  160. package/dist/lib/service/agent/core/ChatAgentPrompts.js.map +1 -1
  161. package/dist/lib/service/agent/domain/insight-analyst.d.ts +3 -3
  162. package/dist/lib/service/agent/domain/insight-analyst.d.ts.map +1 -1
  163. package/dist/lib/service/agent/domain/insight-analyst.js +3 -3
  164. package/dist/lib/service/agent/domain/insight-analyst.js.map +1 -1
  165. package/dist/lib/service/agent/memory/MemoryCoordinator.d.ts +3 -3
  166. package/dist/lib/service/agent/memory/MemoryCoordinator.d.ts.map +1 -1
  167. package/dist/lib/service/agent/memory/MemoryCoordinator.js +6 -6
  168. package/dist/lib/service/agent/memory/MemoryCoordinator.js.map +1 -1
  169. package/dist/lib/service/agent/memory/MemoryRetriever.d.ts +18 -12
  170. package/dist/lib/service/agent/memory/MemoryRetriever.d.ts.map +1 -1
  171. package/dist/lib/service/agent/memory/MemoryRetriever.js +70 -17
  172. package/dist/lib/service/agent/memory/MemoryRetriever.js.map +1 -1
  173. package/dist/lib/service/agent/memory/MemoryStore.d.ts +38 -0
  174. package/dist/lib/service/agent/memory/MemoryStore.d.ts.map +1 -1
  175. package/dist/lib/service/agent/memory/MemoryStore.js +70 -3
  176. package/dist/lib/service/agent/memory/MemoryStore.js.map +1 -1
  177. package/dist/lib/service/agent/memory/PersistentMemory.d.ts +18 -4
  178. package/dist/lib/service/agent/memory/PersistentMemory.d.ts.map +1 -1
  179. package/dist/lib/service/agent/memory/PersistentMemory.js +24 -4
  180. package/dist/lib/service/agent/memory/PersistentMemory.js.map +1 -1
  181. package/dist/lib/service/agent/presets.d.ts +2 -2
  182. package/dist/lib/service/agent/tools/index.d.ts +0 -5
  183. package/dist/lib/service/agent/tools/index.d.ts.map +1 -1
  184. package/dist/lib/service/agent/tools/query.d.ts +0 -5
  185. package/dist/lib/service/agent/tools/query.d.ts.map +1 -1
  186. package/dist/lib/service/agent/tools/query.js +41 -32
  187. package/dist/lib/service/agent/tools/query.js.map +1 -1
  188. package/dist/lib/service/automation/FileWatcher.js +9 -9
  189. package/dist/lib/service/automation/FileWatcher.js.map +1 -1
  190. package/dist/lib/service/automation/handlers/AlinkHandler.d.ts.map +1 -1
  191. package/dist/lib/service/automation/handlers/AlinkHandler.js +1 -1
  192. package/dist/lib/service/automation/handlers/AlinkHandler.js.map +1 -1
  193. package/dist/lib/service/automation/handlers/GuardHandler.js +1 -1
  194. package/dist/lib/service/automation/handlers/GuardHandler.js.map +1 -1
  195. package/dist/lib/service/automation/handlers/SearchHandler.d.ts.map +1 -1
  196. package/dist/lib/service/automation/handlers/SearchHandler.js +10 -10
  197. package/dist/lib/service/automation/handlers/SearchHandler.js.map +1 -1
  198. package/dist/lib/service/cursor/CursorDeliveryPipeline.d.ts.map +1 -1
  199. package/dist/lib/service/cursor/CursorDeliveryPipeline.js +2 -1
  200. package/dist/lib/service/cursor/CursorDeliveryPipeline.js.map +1 -1
  201. package/dist/lib/service/cursor/SkillsSyncer.d.ts.map +1 -1
  202. package/dist/lib/service/cursor/SkillsSyncer.js +2 -1
  203. package/dist/lib/service/cursor/SkillsSyncer.js.map +1 -1
  204. package/dist/lib/service/guard/ExclusionManager.d.ts.map +1 -1
  205. package/dist/lib/service/guard/ExclusionManager.js +2 -1
  206. package/dist/lib/service/guard/ExclusionManager.js.map +1 -1
  207. package/dist/lib/service/guard/RuleLearner.d.ts.map +1 -1
  208. package/dist/lib/service/guard/RuleLearner.js +2 -1
  209. package/dist/lib/service/guard/RuleLearner.js.map +1 -1
  210. package/dist/lib/service/knowledge/KnowledgeService.d.ts +5 -0
  211. package/dist/lib/service/knowledge/KnowledgeService.d.ts.map +1 -1
  212. package/dist/lib/service/knowledge/KnowledgeService.js +27 -0
  213. package/dist/lib/service/knowledge/KnowledgeService.js.map +1 -1
  214. package/dist/lib/service/module/ModuleService.d.ts.map +1 -1
  215. package/dist/lib/service/module/ModuleService.js +1 -0
  216. package/dist/lib/service/module/ModuleService.js.map +1 -1
  217. package/dist/lib/service/quality/FeedbackCollector.d.ts.map +1 -1
  218. package/dist/lib/service/quality/FeedbackCollector.js +2 -1
  219. package/dist/lib/service/quality/FeedbackCollector.js.map +1 -1
  220. package/dist/lib/service/search/BM25Scorer.d.ts +52 -0
  221. package/dist/lib/service/search/BM25Scorer.d.ts.map +1 -0
  222. package/dist/lib/service/search/BM25Scorer.js +155 -0
  223. package/dist/lib/service/search/BM25Scorer.js.map +1 -0
  224. package/dist/lib/service/search/CrossEncoderReranker.js +1 -1
  225. package/dist/lib/service/search/CrossEncoderReranker.js.map +1 -1
  226. package/dist/lib/service/search/MultiSignalRanker.d.ts +7 -0
  227. package/dist/lib/service/search/MultiSignalRanker.d.ts.map +1 -1
  228. package/dist/lib/service/search/MultiSignalRanker.js +37 -18
  229. package/dist/lib/service/search/MultiSignalRanker.js.map +1 -1
  230. package/dist/lib/service/search/SearchEngine.d.ts +15 -215
  231. package/dist/lib/service/search/SearchEngine.d.ts.map +1 -1
  232. package/dist/lib/service/search/SearchEngine.js +127 -270
  233. package/dist/lib/service/search/SearchEngine.js.map +1 -1
  234. package/dist/lib/service/search/SearchTypes.d.ts +258 -0
  235. package/dist/lib/service/search/SearchTypes.d.ts.map +1 -0
  236. package/dist/lib/service/search/SearchTypes.js +50 -0
  237. package/dist/lib/service/search/SearchTypes.js.map +1 -0
  238. package/dist/lib/service/search/contextBoost.d.ts +1 -1
  239. package/dist/lib/service/search/contextBoost.js +2 -2
  240. package/dist/lib/service/search/contextBoost.js.map +1 -1
  241. package/dist/lib/service/search/tokenizer.d.ts +18 -0
  242. package/dist/lib/service/search/tokenizer.d.ts.map +1 -0
  243. package/dist/lib/service/search/tokenizer.js +215 -0
  244. package/dist/lib/service/search/tokenizer.js.map +1 -0
  245. package/dist/lib/service/skills/AIRecallStrategy.d.ts +30 -0
  246. package/dist/lib/service/skills/AIRecallStrategy.d.ts.map +1 -0
  247. package/dist/lib/service/skills/AIRecallStrategy.js +51 -0
  248. package/dist/lib/service/skills/AIRecallStrategy.js.map +1 -0
  249. package/dist/lib/service/skills/FeedbackStore.d.ts +48 -0
  250. package/dist/lib/service/skills/FeedbackStore.d.ts.map +1 -0
  251. package/dist/lib/service/skills/FeedbackStore.js +255 -0
  252. package/dist/lib/service/skills/FeedbackStore.js.map +1 -0
  253. package/dist/lib/service/skills/RecommendationMetrics.d.ts +60 -0
  254. package/dist/lib/service/skills/RecommendationMetrics.d.ts.map +1 -0
  255. package/dist/lib/service/skills/RecommendationMetrics.js +120 -0
  256. package/dist/lib/service/skills/RecommendationMetrics.js.map +1 -0
  257. package/dist/lib/service/skills/RecommendationPipeline.d.ts +43 -0
  258. package/dist/lib/service/skills/RecommendationPipeline.d.ts.map +1 -0
  259. package/dist/lib/service/skills/RecommendationPipeline.js +235 -0
  260. package/dist/lib/service/skills/RecommendationPipeline.js.map +1 -0
  261. package/dist/lib/service/skills/RuleRecallStrategy.d.ts +16 -0
  262. package/dist/lib/service/skills/RuleRecallStrategy.d.ts.map +1 -0
  263. package/dist/lib/service/skills/RuleRecallStrategy.js +37 -0
  264. package/dist/lib/service/skills/RuleRecallStrategy.js.map +1 -0
  265. package/dist/lib/service/skills/SignalCollector.d.ts +3 -3
  266. package/dist/lib/service/skills/SignalCollector.d.ts.map +1 -1
  267. package/dist/lib/service/skills/SignalCollector.js +72 -2
  268. package/dist/lib/service/skills/SignalCollector.js.map +1 -1
  269. package/dist/lib/service/skills/SkillHooks.d.ts +33 -14
  270. package/dist/lib/service/skills/SkillHooks.d.ts.map +1 -1
  271. package/dist/lib/service/skills/SkillHooks.js +261 -30
  272. package/dist/lib/service/skills/SkillHooks.js.map +1 -1
  273. package/dist/lib/service/skills/types.d.ts +210 -0
  274. package/dist/lib/service/skills/types.d.ts.map +1 -0
  275. package/dist/lib/service/skills/types.js +7 -0
  276. package/dist/lib/service/skills/types.js.map +1 -0
  277. package/dist/lib/service/task/TaskGraphService.d.ts +15 -6
  278. package/dist/lib/service/task/TaskGraphService.d.ts.map +1 -1
  279. package/dist/lib/service/task/TaskGraphService.js +55 -5
  280. package/dist/lib/service/task/TaskGraphService.js.map +1 -1
  281. package/dist/lib/service/task/TaskKnowledgeBridge.d.ts +90 -25
  282. package/dist/lib/service/task/TaskKnowledgeBridge.d.ts.map +1 -1
  283. package/dist/lib/service/task/TaskKnowledgeBridge.js +253 -35
  284. package/dist/lib/service/task/TaskKnowledgeBridge.js.map +1 -1
  285. package/dist/lib/service/vector/ContextualEnricher.d.ts +62 -0
  286. package/dist/lib/service/vector/ContextualEnricher.d.ts.map +1 -0
  287. package/dist/lib/service/vector/ContextualEnricher.js +150 -0
  288. package/dist/lib/service/vector/ContextualEnricher.js.map +1 -0
  289. package/dist/lib/service/vector/SyncCoordinator.d.ts +63 -0
  290. package/dist/lib/service/vector/SyncCoordinator.d.ts.map +1 -0
  291. package/dist/lib/service/vector/SyncCoordinator.js +290 -0
  292. package/dist/lib/service/vector/SyncCoordinator.js.map +1 -0
  293. package/dist/lib/service/vector/VectorService.d.ts +176 -0
  294. package/dist/lib/service/vector/VectorService.d.ts.map +1 -0
  295. package/dist/lib/service/vector/VectorService.js +456 -0
  296. package/dist/lib/service/vector/VectorService.js.map +1 -0
  297. package/dist/lib/service/wiki/WikiGenerator.d.ts.map +1 -1
  298. package/dist/lib/service/wiki/WikiGenerator.js +2 -1
  299. package/dist/lib/service/wiki/WikiGenerator.js.map +1 -1
  300. package/dist/lib/service/wiki/WikiRenderers.d.ts +4 -128
  301. package/dist/lib/service/wiki/WikiRenderers.d.ts.map +1 -1
  302. package/dist/lib/service/wiki/WikiRenderers.js +2 -0
  303. package/dist/lib/service/wiki/WikiRenderers.js.map +1 -1
  304. package/dist/lib/service/wiki/WikiTypes.d.ts +146 -0
  305. package/dist/lib/service/wiki/WikiTypes.d.ts.map +1 -0
  306. package/dist/lib/service/wiki/WikiTypes.js +10 -0
  307. package/dist/lib/service/wiki/WikiTypes.js.map +1 -0
  308. package/dist/lib/service/wiki/WikiUtils.d.ts.map +1 -1
  309. package/dist/lib/service/wiki/WikiUtils.js +2 -1
  310. package/dist/lib/service/wiki/WikiUtils.js.map +1 -1
  311. package/dist/lib/shared/PathGuard.d.ts.map +1 -1
  312. package/dist/lib/shared/PathGuard.js +8 -17
  313. package/dist/lib/shared/PathGuard.js.map +1 -1
  314. package/dist/lib/shared/ProjectMarkers.d.ts +67 -0
  315. package/dist/lib/shared/ProjectMarkers.d.ts.map +1 -0
  316. package/dist/lib/shared/ProjectMarkers.js +142 -0
  317. package/dist/lib/shared/ProjectMarkers.js.map +1 -0
  318. package/dist/lib/shared/schemas/mcp-tools.d.ts +3 -0
  319. package/dist/lib/shared/schemas/mcp-tools.d.ts.map +1 -1
  320. package/dist/lib/shared/schemas/mcp-tools.js +6 -0
  321. package/dist/lib/shared/schemas/mcp-tools.js.map +1 -1
  322. package/package.json +5 -1
  323. package/templates/constitution.yaml +23 -2
  324. package/dist/lib/service/search/InvertedIndex.d.ts +0 -34
  325. package/dist/lib/service/search/InvertedIndex.d.ts.map +0 -1
  326. package/dist/lib/service/search/InvertedIndex.js +0 -83
  327. package/dist/lib/service/search/InvertedIndex.js.map +0 -1
  328. package/dist/lib/service/search/RetrievalFunnel.d.ts +0 -26
  329. package/dist/lib/service/search/RetrievalFunnel.d.ts.map +0 -1
  330. package/dist/lib/service/search/RetrievalFunnel.js +0 -77
  331. package/dist/lib/service/search/RetrievalFunnel.js.map +0 -1
@@ -1,32 +1,62 @@
1
1
  /**
2
2
  * MCP Handlers — 搜索类
3
- * 4 个搜索函数(search / contextSearch / keywordSearch / semanticSearch)
4
- * 已通过 consolidated.js 整合为统一 MCP 工具 autosnippet_search,
5
- * mode 参数(auto / keyword / bm25 / semantic / context)路由到对应处理函数。
3
+ *
4
+ * v2: 合并原 4 个搜索函数(search / contextSearch / keywordSearch / semanticSearch)
5
+ * 为统一 search() 入口,通过 mode 参数路由。
6
+ * consolidated.ts 的 mode 路由直接指向本函数。
6
7
  *
7
8
  * 设计原则:
8
9
  * 1. 通过 container.get('searchEngine') 获取 singleton 实例(含 vectorStore + aiProvider)
9
10
  * 2. 统一 responseTime、byKind 分组、kind 过滤
10
- * 3. 投影原则:只交付 Agent 可操作的信号,去除内部排序信号
11
+ * 3. 投影使用 SearchTypes.slimSearchResult()(消除 3 处重复投影)
11
12
  */
12
- import type { ByKindGroup, McpContext, SearchArgs } from './types.js';
13
+ import { type SlimSearchResult } from '#service/search/SearchTypes.js';
14
+ import type { McpContext, SearchArgs, SearchResultItem } from './types.js';
13
15
  /**
14
- * 智能统合搜索 —— 支持 auto/keyword/bm25/semantic 四种模式
16
+ * 统一搜索入口 支持 auto / keyword / bm25 / semantic / context 五种模式
17
+ *
18
+ * 合并了原 search / contextSearch / keywordSearch / semanticSearch 4 个函数。
19
+ * mode 路由:
20
+ * - auto (默认): BM25 + semantic 融合 + Ranking Pipeline
21
+ * - keyword: SQL LIKE 精确匹配,适合已知函数名/类名
22
+ * - bm25: BM25 (TF-IDF) 排序搜索
23
+ * - semantic: 向量语义搜索(不可用时降级 BM25)
24
+ * - context: BM25 + Ranking Pipeline + 会话上下文加成
15
25
  *
16
- * mode=auto(默认)时,同时执行 BM25 + semantic,融合去重取分数最高者。
17
- * 支持 kind 过滤(rule/pattern/fact)和 byKind 自动分组。
26
+ * 所有模式共享: kind 过滤 → slimSearchResult 投影 → byKind 分组
18
27
  */
19
28
  export declare function search(ctx: McpContext, args: SearchArgs): Promise<{
20
29
  success: boolean;
21
30
  errorCode: string | null;
22
31
  message: string;
23
32
  data: {
33
+ metadata?: {
34
+ responseTimeMs: number;
35
+ totalResults: any;
36
+ kindCounts: {
37
+ rule: number;
38
+ pattern: number;
39
+ fact: number;
40
+ };
41
+ } | undefined;
42
+ degraded?: boolean | undefined;
43
+ degradedReason?: string | undefined;
24
44
  query: string;
25
45
  mode: any;
26
46
  kind: string | undefined;
27
47
  totalResults: any;
28
48
  items: any;
29
- byKind: ByKindGroup;
49
+ byKind: {
50
+ rule: {
51
+ kind?: string;
52
+ }[];
53
+ pattern: {
54
+ kind?: string;
55
+ }[];
56
+ fact: {
57
+ kind?: string;
58
+ }[];
59
+ };
30
60
  kindCounts: {
31
61
  rule: number;
32
62
  pattern: number;
@@ -40,22 +70,13 @@ export declare function search(ctx: McpContext, args: SearchArgs): Promise<{
40
70
  tool?: string | undefined;
41
71
  };
42
72
  }>;
43
- /**
44
- * 智能上下文搜索 —— SearchEngine 内置 Ranking Pipeline
45
- *
46
- * 设计原则:MCP 调用方是外部 AI Agent,意图识别由 Agent 自行完成。
47
- * 本工具聚焦数据检索:BM25 召回 + CoarseRanker + MultiSignalRanker + 上下文加成
48
- *
49
- * 特色:byKind 分组、个性化推荐、会话连续性
50
- */
73
+ /** contextSearch — mode='context' 的别名 */
51
74
  export declare function contextSearch(ctx: McpContext, args: SearchArgs): Promise<{
52
75
  success: boolean;
53
76
  errorCode: string | null;
54
77
  message: string;
55
78
  data: {
56
- items: any;
57
- byKind: ByKindGroup;
58
- metadata: {
79
+ metadata?: {
59
80
  responseTimeMs: number;
60
81
  totalResults: any;
61
82
  kindCounts: {
@@ -63,6 +84,29 @@ export declare function contextSearch(ctx: McpContext, args: SearchArgs): Promis
63
84
  pattern: number;
64
85
  fact: number;
65
86
  };
87
+ } | undefined;
88
+ degraded?: boolean | undefined;
89
+ degradedReason?: string | undefined;
90
+ query: string;
91
+ mode: any;
92
+ kind: string | undefined;
93
+ totalResults: any;
94
+ items: any;
95
+ byKind: {
96
+ rule: {
97
+ kind?: string;
98
+ }[];
99
+ pattern: {
100
+ kind?: string;
101
+ }[];
102
+ fact: {
103
+ kind?: string;
104
+ }[];
105
+ };
106
+ kindCounts: {
107
+ rule: number;
108
+ pattern: number;
109
+ fact: number;
66
110
  };
67
111
  } | null;
68
112
  meta: {
@@ -72,24 +116,39 @@ export declare function contextSearch(ctx: McpContext, args: SearchArgs): Promis
72
116
  tool?: string | undefined;
73
117
  };
74
118
  }>;
75
- /**
76
- * 纯关键词精确匹配 —— SQL LIKE 查询,适合已知函数名/类名/变量名。
77
- * 与 search/semantic_search 的 BM25/向量搜索互补:
78
- * - keyword_search 对精确字符串(ObjC 方法名、类名前缀)最快最准
79
- * - search 对模糊查询更好(BM25 词频权重)
80
- * - semantic_search 对自然语言意图最好(向量相似度)
81
- */
119
+ /** keywordSearch — mode='keyword' 的别名 */
82
120
  export declare function keywordSearch(ctx: McpContext, args: SearchArgs): Promise<{
83
121
  success: boolean;
84
122
  errorCode: string | null;
85
123
  message: string;
86
124
  data: {
125
+ metadata?: {
126
+ responseTimeMs: number;
127
+ totalResults: any;
128
+ kindCounts: {
129
+ rule: number;
130
+ pattern: number;
131
+ fact: number;
132
+ };
133
+ } | undefined;
134
+ degraded?: boolean | undefined;
135
+ degradedReason?: string | undefined;
87
136
  query: string;
88
- mode: string;
137
+ mode: any;
89
138
  kind: string | undefined;
90
139
  totalResults: any;
91
140
  items: any;
92
- byKind: ByKindGroup;
141
+ byKind: {
142
+ rule: {
143
+ kind?: string;
144
+ }[];
145
+ pattern: {
146
+ kind?: string;
147
+ }[];
148
+ fact: {
149
+ kind?: string;
150
+ }[];
151
+ };
93
152
  kindCounts: {
94
153
  rule: number;
95
154
  pattern: number;
@@ -103,26 +162,39 @@ export declare function keywordSearch(ctx: McpContext, args: SearchArgs): Promis
103
162
  tool?: string | undefined;
104
163
  };
105
164
  }>;
106
- /**
107
- * 向量语义搜索 —— 基于 embedding 的相似度检索。
108
- * 通过 container singleton 的 SearchEngine(含 vectorStore + aiProvider)执行真正的向量搜索。
109
- * 如果向量引擎不可用会自动降级到 BM25,并在 actualMode 标注。
110
- *
111
- * kind 过滤 + byKind 分组一致性。
112
- */
165
+ /** semanticSearch — mode='semantic' 的别名 */
113
166
  export declare function semanticSearch(ctx: McpContext, args: SearchArgs): Promise<{
114
167
  success: boolean;
115
168
  errorCode: string | null;
116
169
  message: string;
117
170
  data: {
171
+ metadata?: {
172
+ responseTimeMs: number;
173
+ totalResults: any;
174
+ kindCounts: {
175
+ rule: number;
176
+ pattern: number;
177
+ fact: number;
178
+ };
179
+ } | undefined;
180
+ degraded?: boolean | undefined;
181
+ degradedReason?: string | undefined;
118
182
  query: string;
119
183
  mode: any;
120
184
  kind: string | undefined;
121
- degraded: boolean;
122
- degradedReason: string | undefined;
123
185
  totalResults: any;
124
186
  items: any;
125
- byKind: ByKindGroup;
187
+ byKind: {
188
+ rule: {
189
+ kind?: string;
190
+ }[];
191
+ pattern: {
192
+ kind?: string;
193
+ }[];
194
+ fact: {
195
+ kind?: string;
196
+ }[];
197
+ };
126
198
  kindCounts: {
127
199
  rule: number;
128
200
  pattern: number;
@@ -136,4 +208,8 @@ export declare function semanticSearch(ctx: McpContext, args: SearchArgs): Promi
136
208
  tool?: string | undefined;
137
209
  };
138
210
  }>;
211
+ /**
212
+ * @deprecated Use `slimSearchResult` from `SearchTypes.ts` instead
213
+ */
214
+ export declare function _slimSearchItem(item: SearchResultItem): SlimSearchResult;
139
215
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../../lib/external/mcp/handlers/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,UAAU,EAGX,MAAM,YAAY,CAAC;AA+EpB;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;GA4C7D;AAID;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;GAwCpE;AAID;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;GAoCpE;AAID;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;GA2CrE"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../../../lib/external/mcp/handlers/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAwC3E;;;;;;;;;;;;GAYG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmG7D;AAKD,yCAAyC;AACzC,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAE9D;AAED,yCAAyC;AACzC,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAE9D;AAED,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAE/D;AAqBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB,CAExE"}
@@ -1,14 +1,16 @@
1
1
  /**
2
2
  * MCP Handlers — 搜索类
3
- * 4 个搜索函数(search / contextSearch / keywordSearch / semanticSearch)
4
- * 已通过 consolidated.js 整合为统一 MCP 工具 autosnippet_search,
5
- * mode 参数(auto / keyword / bm25 / semantic / context)路由到对应处理函数。
3
+ *
4
+ * v2: 合并原 4 个搜索函数(search / contextSearch / keywordSearch / semanticSearch)
5
+ * 为统一 search() 入口,通过 mode 参数路由。
6
+ * consolidated.ts 的 mode 路由直接指向本函数。
6
7
  *
7
8
  * 设计原则:
8
9
  * 1. 通过 container.get('searchEngine') 获取 singleton 实例(含 vectorStore + aiProvider)
9
10
  * 2. 统一 responseTime、byKind 分组、kind 过滤
10
- * 3. 投影原则:只交付 Agent 可操作的信号,去除内部排序信号
11
+ * 3. 投影使用 SearchTypes.slimSearchResult()(消除 3 处重复投影)
11
12
  */
13
+ import { groupByKind, slimSearchResult, } from '#service/search/SearchTypes.js';
12
14
  import { envelope } from '../envelope.js';
13
15
  // ─── 工具函数 ────────────────────────────────────────────────
14
16
  /**
@@ -41,72 +43,67 @@ function filterByKind(items, kind) {
41
43
  }
42
44
  return items.filter((it) => (it.kind || it.metadata?.kind || 'pattern') === kind);
43
45
  }
46
+ // ─── 统一搜索入口 ────────────────────────────────────────────
44
47
  /**
45
- * 搜索结果投影去除内部排序信号,只保留 Agent 可操作字段。
48
+ * 统一搜索入口支持 auto / keyword / bm25 / semantic / context 五种模式
46
49
  *
47
- * 移除: type(=recipe, 冗余), status(已 filter), updatedAt, createdAt, difficulty,
48
- * tags, usageCount, authorityScore, qualityScore, headers, moduleName, content(巨大)
49
- * 新增: actionHint (whenClause doClause 一句话摘要)
50
- */
51
- function _slimSearchItem(item) {
52
- const doText = item.doClause || '';
53
- const whenText = item.whenClause || '';
54
- const actionHint = doText || whenText
55
- ? `${whenText ? `${whenText} → ` : ''}${doText}`.replace(/ → $/, '')
56
- : undefined;
57
- return {
58
- id: item.id,
59
- title: item.title,
60
- trigger: item.trigger || '',
61
- kind: item.kind || 'pattern',
62
- language: item.language || '',
63
- score: item.score,
64
- description: (item.description || '').slice(0, 120),
65
- actionHint,
66
- };
67
- }
68
- /**
69
- * items → slim byKind 分组
70
- */
71
- function _slimGroupByKind(items) {
72
- const byKind = { rule: [], pattern: [], fact: [] };
73
- for (const it of items) {
74
- const kind = it.kind || 'pattern';
75
- const bucket = byKind[kind] || byKind.pattern;
76
- bucket.push(it);
77
- }
78
- return byKind;
79
- }
80
- // ─── 1. autosnippet_search — 统合搜索入口 ─────────────────────
81
- /**
82
- * 智能统合搜索 —— 支持 auto/keyword/bm25/semantic 四种模式
50
+ * 合并了原 search / contextSearch / keywordSearch / semanticSearch 4 个函数。
51
+ * mode 路由:
52
+ * - auto (默认): BM25 + semantic 融合 + Ranking Pipeline
53
+ * - keyword: SQL LIKE 精确匹配,适合已知函数名/类名
54
+ * - bm25: BM25 (TF-IDF) 排序搜索
55
+ * - semantic: 向量语义搜索(不可用时降级 BM25)
56
+ * - context: BM25 + Ranking Pipeline + 会话上下文加成
83
57
  *
84
- * mode=auto(默认)时,同时执行 BM25 + semantic,融合去重取分数最高者。
85
- * 支持 kind 过滤(rule/pattern/fact)和 byKind 自动分组。
58
+ * 所有模式共享: kind 过滤 → slimSearchResult 投影 → byKind 分组
86
59
  */
87
60
  export async function search(ctx, args) {
88
61
  const t0 = Date.now();
89
62
  const engine = getSearchEngine(ctx) || (await getFallbackEngine(ctx));
90
63
  const query = args.query;
91
- const limit = args.limit || 10;
92
- const kind = args.kind || args.type || 'all';
93
64
  const mode = args.mode || 'auto';
94
- // 统一调用 SearchEngine(auto 模式内置 BM25+semantic 融合去重 + Ranking Pipeline)
65
+ const kind = args.kind || args.type || 'all';
66
+ // ── Mode-specific 参数适配 ──
67
+ // context 模式: 默认 limit=5, 传递 sessionHistory
68
+ const isContext = mode === 'context';
69
+ const limit = args.limit ?? (isContext ? 5 : 10);
70
+ // keyword 模式不排序(默认),其他模式排序
71
+ const rank = mode !== 'keyword';
72
+ // context 模式额外传递会话上下文
73
+ const context = isContext
74
+ ? {
75
+ intent: 'search',
76
+ language: args.language,
77
+ sessionHistory: args.sessionHistory || [],
78
+ }
79
+ : undefined;
80
+ // kind 过滤时过采样 2x 以保证过滤后仍有足够结果
81
+ const recallLimit = kind !== 'all' ? limit * 2 : limit;
82
+ // semantic 模式也过采样 2x(向量搜索可能有噪声)
83
+ const engineLimit = mode === 'semantic' ? recallLimit * 2 : recallLimit;
84
+ // ── 统一调用 SearchEngine ──
95
85
  const result = await engine.search(query, {
96
- mode,
97
- limit: kind !== 'all' ? limit * 2 : limit,
98
- rank: true,
86
+ mode: isContext ? 'bm25' : mode,
87
+ limit: engineLimit,
88
+ rank,
99
89
  groupByKind: true,
90
+ context,
100
91
  });
101
92
  let items = result?.items || [];
102
93
  const actualMode = result?.mode || mode;
103
- // kind 过滤
94
+ // ── Kind 过滤 + 截断 ──
104
95
  items = filterByKind(items, kind);
105
96
  items = items.slice(0, limit);
106
- // Agent 投影:去除内部排序信号
107
- const slimItems = items.map(_slimSearchItem);
108
- const byKind = _slimGroupByKind(slimItems);
97
+ // ── 统一投影: slimSearchResult() ──
98
+ const slimItems = items.map(slimSearchResult);
99
+ const byKindGroups = groupByKind(slimItems);
109
100
  const elapsed = Date.now() - t0;
101
+ // ── 构造工具名称 ──
102
+ const toolName = _toolName(mode);
103
+ // ── semantic 降级提示 ──
104
+ const degraded = mode === 'semantic' && actualMode !== 'semantic';
105
+ // ── 统一响应格式 ──
106
+ const source = result?.ranked ? 'search-engine+ranking' : 'search-engine';
110
107
  return envelope({
111
108
  success: true,
112
109
  data: {
@@ -115,151 +112,71 @@ export async function search(ctx, args) {
115
112
  kind: kind === 'all' ? undefined : kind,
116
113
  totalResults: slimItems.length,
117
114
  items: slimItems,
118
- byKind,
115
+ byKind: byKindGroups,
119
116
  kindCounts: {
120
- rule: byKind.rule.length,
121
- pattern: byKind.pattern.length,
122
- fact: byKind.fact.length,
117
+ rule: byKindGroups.rule.length,
118
+ pattern: byKindGroups.pattern.length,
119
+ fact: byKindGroups.fact.length,
123
120
  },
121
+ // semantic 模式专属: 降级提示
122
+ ...(mode === 'semantic'
123
+ ? {
124
+ degraded,
125
+ degradedReason: degraded ? 'vectorStore/aiProvider 不可用,已降级到 BM25' : undefined,
126
+ }
127
+ : {}),
128
+ // context 模式专属: metadata 包装(保持向后兼容)
129
+ ...(isContext
130
+ ? {
131
+ metadata: {
132
+ responseTimeMs: elapsed,
133
+ totalResults: slimItems.length,
134
+ kindCounts: {
135
+ rule: byKindGroups.rule.length,
136
+ pattern: byKindGroups.pattern.length,
137
+ fact: byKindGroups.fact.length,
138
+ },
139
+ },
140
+ }
141
+ : {}),
124
142
  },
125
- meta: { tool: 'autosnippet_search', responseTimeMs: elapsed },
143
+ meta: { tool: toolName, source, responseTimeMs: elapsed },
126
144
  });
127
145
  }
128
- // ─── 2. autosnippet_context_search — 智能上下文搜索 ────────────
129
- /**
130
- * 智能上下文搜索 —— SearchEngine 内置 Ranking Pipeline
131
- *
132
- * 设计原则:MCP 调用方是外部 AI Agent,意图识别由 Agent 自行完成。
133
- * 本工具聚焦数据检索:BM25 召回 + CoarseRanker + MultiSignalRanker + 上下文加成
134
- *
135
- * 特色:byKind 分组、个性化推荐、会话连续性
136
- */
137
- export async function contextSearch(ctx, args) {
138
- const t0 = Date.now();
139
- const engine = getSearchEngine(ctx) || (await getFallbackEngine(ctx));
140
- const limit = args.limit ?? 5;
141
- const result = await engine.search(args.query, {
142
- mode: 'bm25',
143
- limit,
144
- rank: true,
145
- groupByKind: true,
146
- context: {
147
- intent: 'search',
148
- language: args.language,
149
- sessionHistory: args.sessionHistory || [],
150
- },
151
- });
152
- const items = (result?.items || []).slice(0, limit);
153
- const slimItems = items.map(_slimSearchItem);
154
- const byKind = _slimGroupByKind(slimItems);
155
- const elapsed = Date.now() - t0;
156
- const source = result?.ranked ? 'search-engine+ranking' : 'search-engine';
157
- return envelope({
158
- success: true,
159
- data: {
160
- items: slimItems,
161
- byKind,
162
- metadata: {
163
- responseTimeMs: elapsed,
164
- totalResults: slimItems.length,
165
- kindCounts: {
166
- rule: byKind.rule.length,
167
- pattern: byKind.pattern.length,
168
- fact: byKind.fact.length,
169
- },
170
- },
171
- },
172
- meta: { tool: 'autosnippet_context_search', source, responseTimeMs: elapsed },
173
- });
146
+ // ─── Backward-compatible aliases ────────────────────────────
147
+ // consolidated.ts 按 mode 路由时直接调用这些别名
148
+ /** contextSearch mode='context' 的别名 */
149
+ export function contextSearch(ctx, args) {
150
+ return search(ctx, { ...args, mode: 'context' });
174
151
  }
175
- // ─── 3. autosnippet_keyword_search SQL LIKE 精确匹配 ─────────
176
- /**
177
- * 纯关键词精确匹配 —— SQL LIKE 查询,适合已知函数名/类名/变量名。
178
- * 与 search/semantic_search 的 BM25/向量搜索互补:
179
- * - keyword_search 对精确字符串(ObjC 方法名、类名前缀)最快最准
180
- * - search 对模糊查询更好(BM25 词频权重)
181
- * - semantic_search 对自然语言意图最好(向量相似度)
182
- */
183
- export async function keywordSearch(ctx, args) {
184
- const t0 = Date.now();
185
- const engine = getSearchEngine(ctx) || (await getFallbackEngine(ctx));
186
- const query = args.query;
187
- const limit = args.limit || 10;
188
- const kind = args.kind || 'all';
189
- const result = await engine.search(query, {
190
- mode: 'keyword',
191
- limit,
192
- groupByKind: true,
193
- });
194
- let items = result?.items || [];
195
- items = filterByKind(items, kind).slice(0, limit);
196
- const slimItems = items.map(_slimSearchItem);
197
- const byKind = _slimGroupByKind(slimItems);
198
- const elapsed = Date.now() - t0;
199
- return envelope({
200
- success: true,
201
- data: {
202
- query,
203
- mode: 'keyword',
204
- kind: kind === 'all' ? undefined : kind,
205
- totalResults: slimItems.length,
206
- items: slimItems,
207
- byKind,
208
- kindCounts: {
209
- rule: byKind.rule.length,
210
- pattern: byKind.pattern.length,
211
- fact: byKind.fact.length,
212
- },
213
- },
214
- meta: { tool: 'autosnippet_keyword_search', responseTimeMs: elapsed },
215
- });
152
+ /** keywordSearchmode='keyword' 的别名 */
153
+ export function keywordSearch(ctx, args) {
154
+ return search(ctx, { ...args, mode: 'keyword' });
155
+ }
156
+ /** semanticSearch mode='semantic' 的别名 */
157
+ export function semanticSearch(ctx, args) {
158
+ return search(ctx, { ...args, mode: 'semantic' });
216
159
  }
217
- // ─── 4. autosnippet_semantic_search — 向量语义搜索 ──────────────
160
+ // ─── 内部辅助 ────────────────────────────────────────────────
161
+ /** 根据 mode 返回对应的 MCP 工具名称 */
162
+ function _toolName(mode) {
163
+ switch (mode) {
164
+ case 'context':
165
+ return 'autosnippet_context_search';
166
+ case 'keyword':
167
+ return 'autosnippet_keyword_search';
168
+ case 'semantic':
169
+ return 'autosnippet_semantic_search';
170
+ default:
171
+ return 'autosnippet_search';
172
+ }
173
+ }
174
+ // ─── Re-export slim projection for backward compatibility ────
175
+ // (部分内部模块可能直接 import 了这些)
218
176
  /**
219
- * 向量语义搜索 —— 基于 embedding 的相似度检索。
220
- * 通过 container singleton 的 SearchEngine(含 vectorStore + aiProvider)执行真正的向量搜索。
221
- * 如果向量引擎不可用会自动降级到 BM25,并在 actualMode 标注。
222
- *
223
- * kind 过滤 + byKind 分组一致性。
177
+ * @deprecated Use `slimSearchResult` from `SearchTypes.ts` instead
224
178
  */
225
- export async function semanticSearch(ctx, args) {
226
- const t0 = Date.now();
227
- const engine = getSearchEngine(ctx) || (await getFallbackEngine(ctx));
228
- const query = args.query;
229
- const limit = args.limit || 10;
230
- const kind = args.kind || 'all';
231
- const result = await engine.search(query, {
232
- mode: 'semantic',
233
- limit: limit * 2,
234
- rank: true,
235
- groupByKind: true,
236
- });
237
- let items = result?.items || [];
238
- const actualMode = result?.mode || 'semantic';
239
- items = filterByKind(items, kind).slice(0, limit);
240
- const slimItems = items.map(_slimSearchItem);
241
- const byKind = _slimGroupByKind(slimItems);
242
- const elapsed = Date.now() - t0;
243
- // 提示 AI Agent 当前实际模式
244
- const degraded = actualMode !== 'semantic';
245
- return envelope({
246
- success: true,
247
- data: {
248
- query,
249
- mode: actualMode,
250
- kind: kind === 'all' ? undefined : kind,
251
- degraded,
252
- degradedReason: degraded ? 'vectorStore/aiProvider 不可用,已降级到 BM25' : undefined,
253
- totalResults: slimItems.length,
254
- items: slimItems,
255
- byKind,
256
- kindCounts: {
257
- rule: byKind.rule.length,
258
- pattern: byKind.pattern.length,
259
- fact: byKind.fact.length,
260
- },
261
- },
262
- meta: { tool: 'autosnippet_semantic_search', responseTimeMs: elapsed },
263
- });
179
+ export function _slimSearchItem(item) {
180
+ return slimSearchResult(item);
264
181
  }
265
182
  //# sourceMappingURL=search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../../lib/external/mcp/handlers/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../../lib/external/mcp/handlers/search.ts"],"names":[],"mappings":"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"}
@@ -79,5 +79,22 @@ export declare function updateSkill(ctx: McpContext | null, args: UpdateSkillArg
79
79
  * @returns {Promise<string>} JSON envelope
80
80
  */
81
81
  export declare function suggestSkills(ctx: McpContext): Promise<string>;
82
+ /**
83
+ * 记录推荐反馈
84
+ *
85
+ * operation: 'feedback'
86
+ * @param args.recommendationId 推荐 ID
87
+ * @param args.action 'adopted' | 'dismissed' | 'expired' | 'viewed' | 'modified'
88
+ * @param args.reason 可选 — 忽略原因
89
+ * @param args.source 可选 — 推荐来源
90
+ * @param args.category 可选 — 推荐类别
91
+ */
92
+ export declare function recordFeedback(ctx: McpContext, args: {
93
+ recommendationId?: string;
94
+ action?: string;
95
+ reason?: string;
96
+ source?: string;
97
+ category?: string;
98
+ }): Promise<string>;
82
99
  export {};
83
100
  //# sourceMappingURL=skill.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../../../../lib/external/mcp/handlers/skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAqE7C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,UA6EjD;AAMD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,UA+E/F;AAMD;;;;;;;GAOG;AACH,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,eAAe,UAsHxE;AAyED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,UAsE1E;AAMD;;;;;;;GAOG;AACH,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,eAAe,UAiHxE;AAMD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,mBAmBlD"}
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../../../../lib/external/mcp/handlers/skill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAqE7C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,UA6EjD;AAMD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,UA2F/F;AAMD;;;;;;;GAOG;AACH,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,eAAe,UAoIxE;AAyED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,UAkF1E;AAMD;;;;;;;GAOG;AACH,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,eAAe,UAiHxE;AAMD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,UAAU,mBAwDlD;AAuDD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE;IACJ,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,mBAiEF"}