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,14 +1,15 @@
1
1
  /**
2
- * SkillHooks — Skill 生命周期钩子管理器
2
+ * SkillHooks — Skill 生命周期钩子管理器 (v2)
3
3
  *
4
4
  * 每个 Skill 目录可以包含一个 hooks.js 文件,导出生命周期回调。
5
- * SkillHooks 在启动时扫描并注册所有钩子,在特定事件发生时按序调用。
5
+ * SkillHooks 在启动时扫描并注册所有钩子,在特定事件发生时按模式调用。
6
6
  *
7
- * 支持的钩子:
8
- * - onCandidateSubmit(candidate, ctx) → { block?: boolean, reason?: string }
9
- * - onRecipeCreated(recipe, ctx) void
10
- * - onGuardCheck(violation, ctx) violation (可修改)
11
- * - onBootstrapComplete(stats, ctx) → void
7
+ * v2 升级:
8
+ * - 扩展到 16+ 钩子,覆盖知识/Guard/Skill/搜索/推荐/Bootstrap/信号全生命周期
9
+ * - 4 种执行模式: series / parallel / waterfall / bail
10
+ * - Handler 支持 priority、timeout、name 元数据
11
+ * - 完全向后兼容旧版 hooks.js (直接导出函数)
12
+ * - 新格式支持: export default { hooks: { onXxx: { handler, priority, timeout } } }
12
13
  *
13
14
  * 加载顺序: 内置 skills/ → 项目级 AutoSnippet/skills/(同名覆盖)
14
15
  */
@@ -18,6 +19,45 @@ import { resolveProjectRoot } from '#shared/resolveProjectRoot.js';
18
19
  import { getProjectSkillsPath } from '../../infrastructure/config/Paths.js';
19
20
  import Logger from '../../infrastructure/logging/Logger.js';
20
21
  import { SKILLS_DIR } from '../../shared/package-root.js';
22
+ // ═══════════════════════════════════════════════════════
23
+ // Hook Registry — 声明所有支持的钩子及其执行模式
24
+ // ═══════════════════════════════════════════════════════
25
+ const HOOK_REGISTRY = [
26
+ // ── 知识生命周期 ──
27
+ { name: 'onKnowledgeSubmit', mode: 'bail', description: '知识提交前拦截' },
28
+ { name: 'onKnowledgeCreated', mode: 'parallel', description: '知识创建后通知' },
29
+ { name: 'onKnowledgeUpdated', mode: 'parallel', description: '知识更新后通知' },
30
+ { name: 'onKnowledgeExpired', mode: 'parallel', description: '知识过期/废弃后通知' },
31
+ // ── Guard ──
32
+ { name: 'onGuardCheck', mode: 'waterfall', description: 'Guard 检查,可修改违规结果' },
33
+ { name: 'onGuardViolation', mode: 'parallel', description: 'Guard 违规后通知' },
34
+ // ── Skill 生命周期 ──
35
+ { name: 'onSkillLoad', mode: 'series', description: 'Skill 被加载时' },
36
+ { name: 'onSkillCreated', mode: 'parallel', description: 'Skill 创建后' },
37
+ { name: 'onSkillExpired', mode: 'parallel', description: 'Skill 过期/删除后' },
38
+ // ── 搜索 ──
39
+ { name: 'onSearch', mode: 'waterfall', description: '搜索结果后处理(可修改排序)' },
40
+ { name: 'onSearchMiss', mode: 'parallel', description: '搜索无结果时' },
41
+ // ── 推荐 ──
42
+ { name: 'onRecommendation', mode: 'waterfall', description: '推荐结果后处理(可过滤/排序)' },
43
+ { name: 'onRecommendFeedback', mode: 'parallel', description: '推荐反馈事件' },
44
+ // ── Bootstrap ──
45
+ { name: 'onBootstrapStart', mode: 'series', description: '冷启动开始前' },
46
+ { name: 'onBootstrapComplete', mode: 'parallel', description: '冷启动完成后' },
47
+ // ── 信号 ──
48
+ { name: 'onSignalCollected', mode: 'parallel', description: '新信号收集完成' },
49
+ // ── 向后兼容 (旧名映射) ──
50
+ { name: 'onCandidateSubmit', mode: 'bail', description: '(compat) 同 onKnowledgeSubmit' },
51
+ { name: 'onRecipeCreated', mode: 'parallel', description: '(compat) Recipe 创建后通知' },
52
+ ];
53
+ /** hookName → HookDefinition 快速查表 */
54
+ const HOOK_DEF_MAP = new Map(HOOK_REGISTRY.map((d) => [d.name, d]));
55
+ /** 所有合法 hook 名称集合 */
56
+ const HOOK_NAMES = new Set(HOOK_REGISTRY.map((d) => d.name));
57
+ /** 默认 handler 超时 (ms) */
58
+ const DEFAULT_HANDLER_TIMEOUT = 10_000;
59
+ /** 默认 handler 优先级 */
60
+ const DEFAULT_HANDLER_PRIORITY = 100;
21
61
  /**
22
62
  * 获取项目级 Skills 目录(运行时动态解析)
23
63
  * 路径: {projectRoot}/AutoSnippet/skills/
@@ -26,33 +66,54 @@ function _getProjectSkillsDir(container) {
26
66
  const projectRoot = resolveProjectRoot(container);
27
67
  return getProjectSkillsPath(projectRoot);
28
68
  }
29
- const HOOK_NAMES = ['onCandidateSubmit', 'onRecipeCreated', 'onGuardCheck', 'onBootstrapComplete'];
69
+ /**
70
+ * 带超时的 Promise 包装
71
+ */
72
+ function withTimeout(promise, ms, label) {
73
+ if (ms <= 0) {
74
+ return promise;
75
+ }
76
+ return new Promise((resolve, reject) => {
77
+ const timer = setTimeout(() => {
78
+ reject(new Error(`Hook handler "${label}" timed out after ${ms}ms`));
79
+ }, ms);
80
+ promise.then((v) => {
81
+ clearTimeout(timer);
82
+ resolve(v);
83
+ }, (e) => {
84
+ clearTimeout(timer);
85
+ reject(e);
86
+ });
87
+ });
88
+ }
89
+ // ═══════════════════════════════════════════════════════
90
+ // SkillHooks 主类
91
+ // ═══════════════════════════════════════════════════════
30
92
  export class SkillHooks {
31
93
  hooks;
32
94
  logger;
33
95
  constructor() {
34
96
  this.logger = Logger.getInstance();
35
- /** @type {Map<string, Function[]>} hookName [handler, ...] */
36
- this.hooks = new Map(HOOK_NAMES.map((n) => [n, []]));
97
+ this.hooks = new Map([...HOOK_NAMES].map((n) => [n, []]));
37
98
  }
99
+ // ─── 公共 API ──────────────────────────────────────────
38
100
  /**
39
101
  * 扫描 skills 目录,加载所有 hooks.js
40
102
  * 项目级 hooks 覆盖同名内置 hooks
41
103
  */
42
104
  async load(container) {
43
- const loaded = new Map(); // skillName → hooks module
105
+ const loaded = new Map();
44
106
  // 1. 内置 skills
45
107
  await this.#loadFromDir(SKILLS_DIR, loaded);
46
108
  // 2. 项目级 skills(覆盖同名)
47
109
  await this.#loadFromDir(_getProjectSkillsDir(container), loaded);
48
110
  // 3. 注册所有钩子
49
111
  for (const [skillName, mod] of loaded) {
50
- for (const hookName of HOOK_NAMES) {
51
- if (typeof mod[hookName] === 'function') {
52
- this.hooks.get(hookName).push(mod[hookName]);
53
- this.logger.debug(`SkillHook registered: ${skillName}.${hookName}`);
54
- }
55
- }
112
+ this.#registerModule(skillName, mod);
113
+ }
114
+ // 4. 按优先级排序所有 hook 列表
115
+ for (const handlers of this.hooks.values()) {
116
+ handlers.sort((a, b) => a.priority - b.priority);
56
117
  }
57
118
  const totalHooks = [...this.hooks.values()].reduce((s, a) => s + a.length, 0);
58
119
  if (totalHooks > 0) {
@@ -60,22 +121,91 @@ export class SkillHooks {
60
121
  }
61
122
  }
62
123
  /**
63
- * 触发钩子 按注册顺序调用
124
+ * 手动注册 handler (用于代码级注册,非 hooks.js)
125
+ */
126
+ tap(hookName, handler, options) {
127
+ if (!HOOK_NAMES.has(hookName)) {
128
+ this.logger.warn(`SkillHooks.tap: unknown hook "${hookName}", registering dynamically`);
129
+ this.hooks.set(hookName, []);
130
+ }
131
+ const registered = {
132
+ fn: handler,
133
+ name: options?.name ?? 'anonymous',
134
+ priority: options?.priority ?? DEFAULT_HANDLER_PRIORITY,
135
+ timeout: options?.timeout ?? DEFAULT_HANDLER_TIMEOUT,
136
+ };
137
+ const handlers = this.hooks.get(hookName);
138
+ handlers.push(registered);
139
+ // 保持优先级排序
140
+ handlers.sort((a, b) => a.priority - b.priority);
141
+ }
142
+ /**
143
+ * 触发钩子 — 根据 hook 定义的模式自动选择执行策略
64
144
  *
65
- * @param {string} hookName
66
- * @param {...any} args
67
- * @returns {Promise<any>} 最后一个返回值(用于 blocking hooks 如 onCandidateSubmit)
145
+ * 向后兼容: 旧版 run() 签名不变,行为维持一致。
146
+ * - bail 模式: 首个返回 { block: true } 的 handler 立即终止
147
+ * - waterfall 模式: 前一个 handler 的返回值传给下一个
148
+ * - parallel 模式: 所有 handler 并行执行 (fire-and-forget)
149
+ * - series 模式: 按优先级顺序串行执行,忽略返回值
68
150
  */
69
151
  async run(hookName, ...args) {
70
152
  const handlers = this.hooks.get(hookName);
71
153
  if (!handlers || handlers.length === 0) {
72
154
  return undefined;
73
155
  }
156
+ const def = HOOK_DEF_MAP.get(hookName);
157
+ const mode = def?.mode ?? 'bail'; // 未知 hook 默认 bail (兼容旧行为)
158
+ switch (mode) {
159
+ case 'bail':
160
+ return this.#runBail(hookName, handlers, args);
161
+ case 'waterfall':
162
+ return this.#runWaterfall(hookName, handlers, args);
163
+ case 'parallel':
164
+ return this.#runParallel(hookName, handlers, args);
165
+ case 'series':
166
+ return this.#runSeries(hookName, handlers, args);
167
+ default:
168
+ return this.#runBail(hookName, handlers, args);
169
+ }
170
+ }
171
+ /**
172
+ * 检查是否有任何钩子注册
173
+ */
174
+ has(hookName) {
175
+ const handlers = this.hooks.get(hookName);
176
+ return handlers !== undefined && handlers.length > 0;
177
+ }
178
+ /**
179
+ * 获取指定 hook 的 handler 数量
180
+ */
181
+ count(hookName) {
182
+ return this.hooks.get(hookName)?.length ?? 0;
183
+ }
184
+ /**
185
+ * 获取已注册的所有 hook 名称
186
+ */
187
+ getRegisteredHooks() {
188
+ return [...this.hooks.entries()]
189
+ .filter(([, handlers]) => handlers.length > 0)
190
+ .map(([name]) => name);
191
+ }
192
+ /**
193
+ * 获取 Hook Registry 信息 (用于 Dashboard / 调试)
194
+ */
195
+ static getHookRegistry() {
196
+ return HOOK_REGISTRY;
197
+ }
198
+ // ─── 执行模式实现 ─────────────────────────────────────
199
+ /**
200
+ * Bail 模式: 串行执行,首个返回 truthy/{block:true} 的 handler 终止链
201
+ */
202
+ async #runBail(hookName, handlers, args) {
74
203
  let result;
75
- for (const handler of handlers) {
204
+ for (const h of handlers) {
76
205
  try {
77
- result = await handler(...args);
78
- // 如果是 blocking hook 且返回 block=true,立即中断
206
+ const promise = Promise.resolve(h.fn(...args));
207
+ result = await withTimeout(promise, h.timeout, h.name);
208
+ // block 短路
79
209
  if (result &&
80
210
  typeof result === 'object' &&
81
211
  'block' in result &&
@@ -84,7 +214,7 @@ export class SkillHooks {
84
214
  }
85
215
  }
86
216
  catch (err) {
87
- this.logger.warn(`SkillHook error in ${hookName}`, {
217
+ this.logger.warn(`SkillHook error in ${hookName} (handler: ${h.name})`, {
88
218
  error: err instanceof Error ? err.message : String(err),
89
219
  });
90
220
  }
@@ -92,13 +222,114 @@ export class SkillHooks {
92
222
  return result;
93
223
  }
94
224
  /**
95
- * 检查是否有任何钩子注册
225
+ * Waterfall 模式: 串行传值,前一个返回值替换 args[0]
96
226
  */
97
- has(hookName) {
98
- const handlers = this.hooks.get(hookName);
99
- return handlers && handlers.length > 0;
227
+ async #runWaterfall(hookName, handlers, args) {
228
+ let current = args[0];
229
+ const rest = args.slice(1);
230
+ for (const h of handlers) {
231
+ try {
232
+ const promise = Promise.resolve(h.fn(current, ...rest));
233
+ const result = await withTimeout(promise, h.timeout, h.name);
234
+ // 只有返回了有效值才替换
235
+ if (result !== undefined && result !== null) {
236
+ current = result;
237
+ }
238
+ }
239
+ catch (err) {
240
+ this.logger.warn(`SkillHook waterfall error in ${hookName} (handler: ${h.name})`, {
241
+ error: err instanceof Error ? err.message : String(err),
242
+ });
243
+ // waterfall 模式下出错继续传递当前值
244
+ }
245
+ }
246
+ return current;
247
+ }
248
+ /**
249
+ * Parallel 模式: 所有 handler 并行执行 (fire-and-forget)
250
+ */
251
+ async #runParallel(hookName, handlers, args) {
252
+ const results = await Promise.allSettled(handlers.map((h) => {
253
+ const promise = Promise.resolve(h.fn(...args));
254
+ return withTimeout(promise, h.timeout, h.name);
255
+ }));
256
+ // 记录失败但不阻塞
257
+ for (let i = 0; i < results.length; i++) {
258
+ const r = results[i];
259
+ if (r.status === 'rejected') {
260
+ this.logger.warn(`SkillHook parallel error in ${hookName} (handler: ${handlers[i].name})`, {
261
+ error: r.reason instanceof Error ? r.reason.message : String(r.reason),
262
+ });
263
+ }
264
+ }
265
+ return undefined;
266
+ }
267
+ /**
268
+ * Series 模式: 按优先级顺序串行执行,忽略返回值
269
+ */
270
+ async #runSeries(hookName, handlers, args) {
271
+ for (const h of handlers) {
272
+ try {
273
+ const promise = Promise.resolve(h.fn(...args));
274
+ await withTimeout(promise, h.timeout, h.name);
275
+ }
276
+ catch (err) {
277
+ this.logger.warn(`SkillHook series error in ${hookName} (handler: ${h.name})`, {
278
+ error: err instanceof Error ? err.message : String(err),
279
+ });
280
+ }
281
+ }
282
+ return undefined;
283
+ }
284
+ // ─── 模块注册 ─────────────────────────────────────────
285
+ /**
286
+ * 注册一个 skill 模块的钩子 — 支持新旧两种格式
287
+ *
288
+ * 旧格式 (v1):
289
+ * export function onGuardCheck(violation, ctx) { ... }
290
+ *
291
+ * 新格式 (v2):
292
+ * export default { hooks: { onGuardCheck: { handler, priority, timeout } } }
293
+ */
294
+ #registerModule(skillName, mod) {
295
+ // 尝试新格式: mod.hooks 是一个对象
296
+ const hooksObj = mod.hooks;
297
+ if (hooksObj && typeof hooksObj === 'object') {
298
+ for (const [hookName, config] of Object.entries(hooksObj)) {
299
+ if (!this.hooks.has(hookName)) {
300
+ this.logger.warn(`SkillHooks: ${skillName} exports unknown hook "${hookName}", skipping`);
301
+ continue;
302
+ }
303
+ if (typeof config === 'function') {
304
+ // 新格式但直接是函数: { hooks: { onXxx: fn } }
305
+ this.#addHandler(hookName, config, skillName);
306
+ }
307
+ else if (config && typeof config === 'object' && 'handler' in config) {
308
+ // 新格式含元数据: { hooks: { onXxx: { handler, priority, timeout } } }
309
+ const cfg = config;
310
+ this.#addHandler(hookName, cfg.handler, skillName, cfg.priority, cfg.timeout);
311
+ }
312
+ }
313
+ return;
314
+ }
315
+ // 旧格式: module 顶层直接导出函数
316
+ for (const hookName of HOOK_NAMES) {
317
+ if (typeof mod[hookName] === 'function') {
318
+ this.#addHandler(hookName, mod[hookName], skillName);
319
+ }
320
+ }
321
+ }
322
+ #addHandler(hookName, fn, skillName, priority, timeout) {
323
+ const handler = {
324
+ fn,
325
+ name: `${skillName}.${hookName}`,
326
+ priority: priority ?? DEFAULT_HANDLER_PRIORITY,
327
+ timeout: timeout ?? DEFAULT_HANDLER_TIMEOUT,
328
+ };
329
+ this.hooks.get(hookName).push(handler);
330
+ this.logger.debug(`SkillHook registered: ${handler.name} (priority=${handler.priority})`);
100
331
  }
101
- // ─── Internal ──────────────────────────────────────────
332
+ // ─── 目录扫描 ─────────────────────────────────────────
102
333
  async #loadFromDir(dir, loaded) {
103
334
  let dirs;
104
335
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"SkillHooks.js","sourceRoot":"","sources":["../../../../lib/service/skills/SkillHooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SkillHooks.js","sourceRoot":"","sources":["../../../../lib/service/skills/SkillHooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Skill 推荐系统 — 统一类型定义
3
+ *
4
+ * 覆盖: SignalProvider / RecommendationPipeline / FeedbackStore / SkillHooks
5
+ */
6
+ /**
7
+ * Hook 执行模式 — 受 Webpack Tapable 启发,简化为 4 种核心语义
8
+ */
9
+ export type HookMode =
10
+ /** 串行执行,所有 handler 按优先级顺序执行,忽略返回值 */
11
+ 'series'
12
+ /** 并行执行,所有 handler Promise.allSettled (fire-and-forget) */
13
+ | 'parallel'
14
+ /** 串行传值,前一个 handler 的返回值作为下一个的第一个参数 */
15
+ | 'waterfall'
16
+ /** 串行短路,首个返回 truthy 值(含 {block:true})的 handler 终止链 */
17
+ | 'bail';
18
+ /**
19
+ * Hook 定义
20
+ */
21
+ export interface HookDefinition {
22
+ name: string;
23
+ mode: HookMode;
24
+ description: string;
25
+ }
26
+ /**
27
+ * Handler 注册选项
28
+ */
29
+ export interface HookHandlerOptions {
30
+ /** handler 名称 (用于日志和调试) */
31
+ name: string;
32
+ /** 执行优先级 (越小越先,默认 100) */
33
+ priority?: number;
34
+ /** 超时 (ms),超时自动跳过,默认 10000 */
35
+ timeout?: number;
36
+ }
37
+ /**
38
+ * 已注册的 Handler 内部表示
39
+ */
40
+ export interface RegisteredHandler {
41
+ fn: (...args: unknown[]) => Promise<unknown> | unknown;
42
+ name: string;
43
+ priority: number;
44
+ timeout: number;
45
+ }
46
+ /**
47
+ * 标准化信号对象
48
+ */
49
+ export interface Signal {
50
+ id: string;
51
+ provider: string;
52
+ type: string;
53
+ timestamp: Date;
54
+ data: Record<string, unknown>;
55
+ /** 信号强度 0-1 */
56
+ strength: number;
57
+ /** 可选的去重 key */
58
+ dedupeKey?: string;
59
+ }
60
+ /**
61
+ * 信号收集上下文
62
+ */
63
+ export interface SignalContext {
64
+ projectRoot: string;
65
+ database?: unknown;
66
+ container?: unknown;
67
+ }
68
+ /**
69
+ * 统一信号提供者接口
70
+ */
71
+ export interface SignalProvider {
72
+ /** 提供者唯一名称 */
73
+ readonly name: string;
74
+ /** 信号类别 */
75
+ readonly category: 'behavior' | 'quality' | 'context' | 'external';
76
+ /** 优先级 (越小越先执行) */
77
+ readonly priority: number;
78
+ /**
79
+ * 收集信号 — 增量模式
80
+ * @param since 上次收集的时间戳 (null = 首次)
81
+ * @param context 全局上下文
82
+ * @returns 标准化信号对象数组
83
+ */
84
+ collect(since: Date | null, context: SignalContext): Promise<Signal[]>;
85
+ /** 信号提供者是否可用 */
86
+ isAvailable(context: SignalContext): boolean;
87
+ }
88
+ /**
89
+ * 推荐候选
90
+ */
91
+ export interface RecommendationCandidate {
92
+ /** 推荐的 Skill 名称 */
93
+ name: string;
94
+ /** 一句话描述 */
95
+ description: string;
96
+ /** 推荐理由 */
97
+ rationale: string;
98
+ /** 推荐来源策略 */
99
+ source: string;
100
+ /** 优先级 */
101
+ priority: 'high' | 'medium' | 'low';
102
+ /** 原始信号数据 */
103
+ signals: Record<string, unknown>;
104
+ /** 推荐内容草稿 (可选) */
105
+ body?: string;
106
+ }
107
+ /**
108
+ * 带分数的推荐结果
109
+ */
110
+ export interface ScoredRecommendation extends RecommendationCandidate {
111
+ /** 综合得分 0-1 */
112
+ score: number;
113
+ /** 各信号分项得分 */
114
+ signalScores?: Record<string, number>;
115
+ /** 唯一推荐 ID (用于反馈追踪) */
116
+ recommendationId: string;
117
+ /** 推荐生成时间 */
118
+ generatedAt: string;
119
+ }
120
+ /**
121
+ * 推荐管线上下文
122
+ */
123
+ export interface RecommendationContext {
124
+ projectRoot: string;
125
+ database?: unknown;
126
+ container?: unknown;
127
+ agentFactory?: unknown;
128
+ /** 已有的项目级 Skill 名称集合 (用于去重) */
129
+ existingSkills?: Set<string>;
130
+ /** 用户偏好 (来自 FeedbackStore) */
131
+ userPreference?: UserPreference;
132
+ /** AI Provider 是否可用 */
133
+ aiAvailable?: boolean;
134
+ }
135
+ /**
136
+ * 召回策略接口
137
+ */
138
+ export interface RecallStrategy {
139
+ readonly name: string;
140
+ /** 召回方法类型 */
141
+ readonly type: 'rule' | 'ai' | 'vector' | 'popularity';
142
+ /**
143
+ * 召回候选列表
144
+ */
145
+ recall(context: RecommendationContext): Promise<RecommendationCandidate[]>;
146
+ /** 策略是否可用 (例如 AI 策略需要 aiProvider) */
147
+ isAvailable(context: RecommendationContext): boolean;
148
+ }
149
+ /**
150
+ * 推荐反馈动作
151
+ */
152
+ export type FeedbackAction =
153
+ /** 用户采纳推荐并创建了 Skill */
154
+ 'adopted'
155
+ /** 用户主动关闭/忽略推荐 */
156
+ | 'dismissed'
157
+ /** 推荐过期未处理 */
158
+ | 'expired'
159
+ /** 用户查看了推荐详情 */
160
+ | 'viewed'
161
+ /** 用户采纳但修改了内容 */
162
+ | 'modified';
163
+ /**
164
+ * 推荐反馈记录
165
+ */
166
+ export interface RecommendationFeedback {
167
+ recommendationId: string;
168
+ action: FeedbackAction;
169
+ timestamp: string;
170
+ /** 推荐来源策略 */
171
+ source?: string;
172
+ /** 推荐类别 */
173
+ category?: string;
174
+ /** 用户反馈原因 */
175
+ reason?: string;
176
+ }
177
+ /**
178
+ * 用户偏好 (从反馈历史中推导)
179
+ */
180
+ export interface UserPreference {
181
+ preferredCategories: string[];
182
+ avoidedCategories: string[];
183
+ preferredSources: string[];
184
+ /** 总体采纳率 */
185
+ adoptionRate: number;
186
+ }
187
+ /**
188
+ * 推荐效果指标
189
+ */
190
+ export interface RecommendationMetricsSnapshot {
191
+ /** 总推荐数 */
192
+ totalRecommendations: number;
193
+ /** 总展示数 */
194
+ totalViewed: number;
195
+ /** 总采纳数 */
196
+ totalAdopted: number;
197
+ /** 总忽略数 */
198
+ totalDismissed: number;
199
+ /** 总过期数 */
200
+ totalExpired: number;
201
+ /** 采纳率 */
202
+ adoptionRate: number;
203
+ /** 查看率 */
204
+ viewRate: number;
205
+ /** 按来源分组的采纳率 */
206
+ adoptionRateBySource: Record<string, number>;
207
+ /** 统计时间范围 */
208
+ since: string;
209
+ }
210
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../lib/service/skills/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Skill 推荐系统 — 统一类型定义
3
+ *
4
+ * 覆盖: SignalProvider / RecommendationPipeline / FeedbackStore / SkillHooks
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/service/skills/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}