autosnippet 3.2.11 → 3.2.13

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 (278) hide show
  1. package/README.md +1 -1
  2. package/dashboard/dist/assets/axios-42ANG6Sg.js +6 -0
  3. package/dashboard/dist/assets/framer-motion-CZfOSYpP.js +9 -0
  4. package/dashboard/dist/assets/icons-C1dUryS-.js +1 -0
  5. package/dashboard/dist/assets/index-CKMy5LY6.js +128 -0
  6. package/dashboard/dist/assets/index-D0whuycy.css +1 -0
  7. package/dashboard/dist/assets/vendor-BZEJEVBn.js +3068 -0
  8. package/dashboard/dist/index.html +6 -6
  9. package/dist/lib/bootstrap.d.ts.map +1 -1
  10. package/dist/lib/bootstrap.js +2 -1
  11. package/dist/lib/bootstrap.js.map +1 -1
  12. package/dist/lib/core/ast/ProjectGraph.d.ts.map +1 -1
  13. package/dist/lib/core/ast/ProjectGraph.js.map +1 -1
  14. package/dist/lib/core/ast/lang-go.js.map +1 -1
  15. package/dist/lib/core/ast/lang-java.d.ts.map +1 -1
  16. package/dist/lib/core/ast/lang-java.js.map +1 -1
  17. package/dist/lib/core/ast/lang-kotlin.d.ts.map +1 -1
  18. package/dist/lib/core/ast/lang-kotlin.js.map +1 -1
  19. package/dist/lib/core/ast/lang-python.d.ts.map +1 -1
  20. package/dist/lib/core/ast/lang-python.js +4 -2
  21. package/dist/lib/core/ast/lang-python.js.map +1 -1
  22. package/dist/lib/core/ast/parser-init.d.ts.map +1 -1
  23. package/dist/lib/core/ast/parser-init.js +0 -1
  24. package/dist/lib/core/ast/parser-init.js.map +1 -1
  25. package/dist/lib/core/capability/CapabilityProbe.d.ts.map +1 -1
  26. package/dist/lib/core/capability/CapabilityProbe.js +4 -2
  27. package/dist/lib/core/capability/CapabilityProbe.js.map +1 -1
  28. package/dist/lib/domain/task/TaskIdGenerator.d.ts +2 -1
  29. package/dist/lib/domain/task/TaskIdGenerator.d.ts.map +1 -1
  30. package/dist/lib/domain/task/TaskIdGenerator.js +2 -2
  31. package/dist/lib/domain/task/TaskIdGenerator.js.map +1 -1
  32. package/dist/lib/external/ai/AiProvider.d.ts +1 -1
  33. package/dist/lib/external/ai/providers/ClaudeProvider.js +1 -1
  34. package/dist/lib/external/ai/providers/ClaudeProvider.js.map +1 -1
  35. package/dist/lib/external/ai/providers/GoogleGeminiProvider.d.ts.map +1 -1
  36. package/dist/lib/external/ai/providers/GoogleGeminiProvider.js +2 -2
  37. package/dist/lib/external/ai/providers/GoogleGeminiProvider.js.map +1 -1
  38. package/dist/lib/external/ai/providers/OpenAiProvider.js +1 -1
  39. package/dist/lib/external/ai/providers/OpenAiProvider.js.map +1 -1
  40. package/dist/lib/external/mcp/handlers/bootstrap/ExternalSubmissionTracker.d.ts.map +1 -1
  41. package/dist/lib/external/mcp/handlers/bootstrap/ExternalSubmissionTracker.js +2 -0
  42. package/dist/lib/external/mcp/handlers/bootstrap/ExternalSubmissionTracker.js.map +1 -1
  43. package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.d.ts +1 -0
  44. package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.d.ts.map +1 -1
  45. package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.js +11 -1
  46. package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.js.map +1 -1
  47. package/dist/lib/external/mcp/handlers/bootstrap-external.d.ts +4 -0
  48. package/dist/lib/external/mcp/handlers/bootstrap-external.d.ts.map +1 -1
  49. package/dist/lib/external/mcp/handlers/bootstrap-external.js +19 -2
  50. package/dist/lib/external/mcp/handlers/bootstrap-external.js.map +1 -1
  51. package/dist/lib/external/mcp/handlers/bootstrap-internal.d.ts.map +1 -1
  52. package/dist/lib/external/mcp/handlers/bootstrap-internal.js +2 -1
  53. package/dist/lib/external/mcp/handlers/bootstrap-internal.js.map +1 -1
  54. package/dist/lib/external/mcp/handlers/candidate.d.ts.map +1 -1
  55. package/dist/lib/external/mcp/handlers/candidate.js +2 -1
  56. package/dist/lib/external/mcp/handlers/candidate.js.map +1 -1
  57. package/dist/lib/external/mcp/handlers/consolidated.js +1 -1
  58. package/dist/lib/external/mcp/handlers/consolidated.js.map +1 -1
  59. package/dist/lib/external/mcp/handlers/dimension-complete-external.d.ts.map +1 -1
  60. package/dist/lib/external/mcp/handlers/dimension-complete-external.js +17 -5
  61. package/dist/lib/external/mcp/handlers/dimension-complete-external.js.map +1 -1
  62. package/dist/lib/external/mcp/handlers/guard.d.ts.map +1 -1
  63. package/dist/lib/external/mcp/handlers/guard.js +31 -24
  64. package/dist/lib/external/mcp/handlers/guard.js.map +1 -1
  65. package/dist/lib/external/mcp/handlers/knowledge.d.ts.map +1 -1
  66. package/dist/lib/external/mcp/handlers/knowledge.js +14 -10
  67. package/dist/lib/external/mcp/handlers/knowledge.js.map +1 -1
  68. package/dist/lib/external/mcp/handlers/skill.d.ts +5 -5
  69. package/dist/lib/external/mcp/handlers/skill.d.ts.map +1 -1
  70. package/dist/lib/external/mcp/handlers/skill.js +27 -28
  71. package/dist/lib/external/mcp/handlers/skill.js.map +1 -1
  72. package/dist/lib/external/mcp/handlers/structure.d.ts.map +1 -1
  73. package/dist/lib/external/mcp/handlers/structure.js +10 -7
  74. package/dist/lib/external/mcp/handlers/structure.js.map +1 -1
  75. package/dist/lib/external/mcp/handlers/system.d.ts.map +1 -1
  76. package/dist/lib/external/mcp/handlers/system.js +2 -1
  77. package/dist/lib/external/mcp/handlers/system.js.map +1 -1
  78. package/dist/lib/external/mcp/handlers/task.js +2 -2
  79. package/dist/lib/external/mcp/handlers/task.js.map +1 -1
  80. package/dist/lib/external/mcp/handlers/wiki-external.d.ts.map +1 -1
  81. package/dist/lib/external/mcp/handlers/wiki-external.js +3 -2
  82. package/dist/lib/external/mcp/handlers/wiki-external.js.map +1 -1
  83. package/dist/lib/http/HttpServer.d.ts +2 -2
  84. package/dist/lib/http/HttpServer.js +64 -64
  85. package/dist/lib/http/HttpServer.js.map +1 -1
  86. package/dist/lib/http/middleware/errorHandler.d.ts +1 -5
  87. package/dist/lib/http/middleware/errorHandler.d.ts.map +1 -1
  88. package/dist/lib/http/middleware/errorHandler.js +0 -8
  89. package/dist/lib/http/middleware/errorHandler.js.map +1 -1
  90. package/dist/lib/http/middleware/validate.d.ts +2 -2
  91. package/dist/lib/http/middleware/validate.js +2 -2
  92. package/dist/lib/http/routes/ai.d.ts.map +1 -1
  93. package/dist/lib/http/routes/ai.js +36 -45
  94. package/dist/lib/http/routes/ai.js.map +1 -1
  95. package/dist/lib/http/routes/auth.d.ts.map +1 -1
  96. package/dist/lib/http/routes/auth.js +4 -5
  97. package/dist/lib/http/routes/auth.js.map +1 -1
  98. package/dist/lib/http/routes/candidates.d.ts.map +1 -1
  99. package/dist/lib/http/routes/candidates.js +10 -11
  100. package/dist/lib/http/routes/candidates.js.map +1 -1
  101. package/dist/lib/http/routes/commands.d.ts.map +1 -1
  102. package/dist/lib/http/routes/commands.js +14 -15
  103. package/dist/lib/http/routes/commands.js.map +1 -1
  104. package/dist/lib/http/routes/extract.d.ts.map +1 -1
  105. package/dist/lib/http/routes/extract.js +4 -5
  106. package/dist/lib/http/routes/extract.js.map +1 -1
  107. package/dist/lib/http/routes/guard.d.ts.map +1 -1
  108. package/dist/lib/http/routes/guard.js +4 -5
  109. package/dist/lib/http/routes/guard.js.map +1 -1
  110. package/dist/lib/http/routes/guardRules.d.ts.map +1 -1
  111. package/dist/lib/http/routes/guardRules.js +22 -23
  112. package/dist/lib/http/routes/guardRules.js.map +1 -1
  113. package/dist/lib/http/routes/knowledge.d.ts.map +1 -1
  114. package/dist/lib/http/routes/knowledge.js +24 -25
  115. package/dist/lib/http/routes/knowledge.js.map +1 -1
  116. package/dist/lib/http/routes/modules.d.ts.map +1 -1
  117. package/dist/lib/http/routes/modules.js +26 -27
  118. package/dist/lib/http/routes/modules.js.map +1 -1
  119. package/dist/lib/http/routes/recipes.d.ts.map +1 -1
  120. package/dist/lib/http/routes/recipes.js +6 -9
  121. package/dist/lib/http/routes/recipes.js.map +1 -1
  122. package/dist/lib/http/routes/remote.d.ts.map +1 -1
  123. package/dist/lib/http/routes/remote.js +74 -37
  124. package/dist/lib/http/routes/remote.js.map +1 -1
  125. package/dist/lib/http/routes/search.d.ts.map +1 -1
  126. package/dist/lib/http/routes/search.js +16 -66
  127. package/dist/lib/http/routes/search.js.map +1 -1
  128. package/dist/lib/http/routes/skills.d.ts.map +1 -1
  129. package/dist/lib/http/routes/skills.js +14 -15
  130. package/dist/lib/http/routes/skills.js.map +1 -1
  131. package/dist/lib/http/routes/snippets.d.ts.map +1 -1
  132. package/dist/lib/http/routes/snippets.js +4 -5
  133. package/dist/lib/http/routes/snippets.js.map +1 -1
  134. package/dist/lib/http/routes/task.d.ts.map +1 -1
  135. package/dist/lib/http/routes/task.js +2 -3
  136. package/dist/lib/http/routes/task.js.map +1 -1
  137. package/dist/lib/http/routes/violations.d.ts.map +1 -1
  138. package/dist/lib/http/routes/violations.js +6 -7
  139. package/dist/lib/http/routes/violations.js.map +1 -1
  140. package/dist/lib/http/routes/wiki.d.ts.map +1 -1
  141. package/dist/lib/http/routes/wiki.js +14 -14
  142. package/dist/lib/http/routes/wiki.js.map +1 -1
  143. package/dist/lib/http/utils/sse-sessions.d.ts +1 -1
  144. package/dist/lib/infrastructure/audit/AuditStore.d.ts +2 -1
  145. package/dist/lib/infrastructure/audit/AuditStore.d.ts.map +1 -1
  146. package/dist/lib/infrastructure/audit/AuditStore.js +2 -2
  147. package/dist/lib/infrastructure/audit/AuditStore.js.map +1 -1
  148. package/dist/lib/infrastructure/config/ConfigLoader.d.ts.map +1 -1
  149. package/dist/lib/infrastructure/config/ConfigLoader.js +1 -2
  150. package/dist/lib/infrastructure/config/ConfigLoader.js.map +1 -1
  151. package/dist/lib/infrastructure/database/DatabaseConnection.d.ts.map +1 -1
  152. package/dist/lib/infrastructure/database/DatabaseConnection.js +3 -3
  153. package/dist/lib/infrastructure/database/DatabaseConnection.js.map +1 -1
  154. package/dist/lib/infrastructure/database/drizzle/index.d.ts +2 -0
  155. package/dist/lib/infrastructure/database/drizzle/index.d.ts.map +1 -1
  156. package/dist/lib/infrastructure/database/drizzle/index.js +2 -0
  157. package/dist/lib/infrastructure/database/drizzle/index.js.map +1 -1
  158. package/dist/lib/injection/ServiceContainer.d.ts.map +1 -1
  159. package/dist/lib/injection/ServiceContainer.js +13 -1
  160. package/dist/lib/injection/ServiceContainer.js.map +1 -1
  161. package/dist/lib/injection/modules/AgentModule.d.ts.map +1 -1
  162. package/dist/lib/injection/modules/AgentModule.js +2 -1
  163. package/dist/lib/injection/modules/AgentModule.js.map +1 -1
  164. package/dist/lib/injection/modules/AppModule.d.ts.map +1 -1
  165. package/dist/lib/injection/modules/AppModule.js +13 -6
  166. package/dist/lib/injection/modules/AppModule.js.map +1 -1
  167. package/dist/lib/injection/modules/GuardModule.d.ts.map +1 -1
  168. package/dist/lib/injection/modules/GuardModule.js +7 -3
  169. package/dist/lib/injection/modules/GuardModule.js.map +1 -1
  170. package/dist/lib/injection/modules/InfraModule.d.ts.map +1 -1
  171. package/dist/lib/injection/modules/InfraModule.js +18 -5
  172. package/dist/lib/injection/modules/InfraModule.js.map +1 -1
  173. package/dist/lib/injection/modules/KnowledgeModule.d.ts.map +1 -1
  174. package/dist/lib/injection/modules/KnowledgeModule.js +3 -4
  175. package/dist/lib/injection/modules/KnowledgeModule.js.map +1 -1
  176. package/dist/lib/platform/ios/routes/spm.d.ts.map +1 -1
  177. package/dist/lib/platform/ios/routes/spm.js +16 -17
  178. package/dist/lib/platform/ios/routes/spm.js.map +1 -1
  179. package/dist/lib/platform/ios/spm/PolicyEngine.d.ts.map +1 -1
  180. package/dist/lib/platform/ios/spm/PolicyEngine.js +3 -1
  181. package/dist/lib/platform/ios/spm/PolicyEngine.js.map +1 -1
  182. package/dist/lib/repository/knowledge/KnowledgeRepository.impl.d.ts +2 -1
  183. package/dist/lib/repository/knowledge/KnowledgeRepository.impl.d.ts.map +1 -1
  184. package/dist/lib/repository/knowledge/KnowledgeRepository.impl.js +2 -2
  185. package/dist/lib/repository/knowledge/KnowledgeRepository.impl.js.map +1 -1
  186. package/dist/lib/repository/remote/RemoteCommandRepository.d.ts +2 -1
  187. package/dist/lib/repository/remote/RemoteCommandRepository.d.ts.map +1 -1
  188. package/dist/lib/repository/remote/RemoteCommandRepository.js +2 -2
  189. package/dist/lib/repository/remote/RemoteCommandRepository.js.map +1 -1
  190. package/dist/lib/repository/task/TaskRepository.impl.d.ts +2 -1
  191. package/dist/lib/repository/task/TaskRepository.impl.d.ts.map +1 -1
  192. package/dist/lib/repository/task/TaskRepository.impl.js +2 -2
  193. package/dist/lib/repository/task/TaskRepository.impl.js.map +1 -1
  194. package/dist/lib/repository/token/TokenUsageStore.d.ts +2 -1
  195. package/dist/lib/repository/token/TokenUsageStore.d.ts.map +1 -1
  196. package/dist/lib/repository/token/TokenUsageStore.js +2 -2
  197. package/dist/lib/repository/token/TokenUsageStore.js.map +1 -1
  198. package/dist/lib/service/agent/AgentEventBus.d.ts.map +1 -1
  199. package/dist/lib/service/agent/AgentEventBus.js +10 -10
  200. package/dist/lib/service/agent/AgentEventBus.js.map +1 -1
  201. package/dist/lib/service/agent/IntentClassifier.d.ts +20 -0
  202. package/dist/lib/service/agent/IntentClassifier.d.ts.map +1 -1
  203. package/dist/lib/service/agent/IntentClassifier.js +59 -4
  204. package/dist/lib/service/agent/IntentClassifier.js.map +1 -1
  205. package/dist/lib/service/agent/LarkTransport.d.ts.map +1 -1
  206. package/dist/lib/service/agent/LarkTransport.js +37 -18
  207. package/dist/lib/service/agent/LarkTransport.js.map +1 -1
  208. package/dist/lib/service/agent/context/ExplorationTracker.d.ts.map +1 -1
  209. package/dist/lib/service/agent/context/ExplorationTracker.js +5 -2
  210. package/dist/lib/service/agent/context/ExplorationTracker.js.map +1 -1
  211. package/dist/lib/service/agent/forced-summary.d.ts +4 -2
  212. package/dist/lib/service/agent/forced-summary.d.ts.map +1 -1
  213. package/dist/lib/service/agent/forced-summary.js +78 -11
  214. package/dist/lib/service/agent/forced-summary.js.map +1 -1
  215. package/dist/lib/service/agent/tools/index.d.ts.map +1 -1
  216. package/dist/lib/service/agent/tools/infrastructure.d.ts.map +1 -1
  217. package/dist/lib/service/agent/tools/infrastructure.js +6 -2
  218. package/dist/lib/service/agent/tools/infrastructure.js.map +1 -1
  219. package/dist/lib/service/automation/FileWatcher.d.ts.map +1 -1
  220. package/dist/lib/service/automation/FileWatcher.js +4 -8
  221. package/dist/lib/service/automation/FileWatcher.js.map +1 -1
  222. package/dist/lib/service/automation/handlers/AlinkHandler.d.ts.map +1 -1
  223. package/dist/lib/service/automation/handlers/AlinkHandler.js +4 -2
  224. package/dist/lib/service/automation/handlers/AlinkHandler.js.map +1 -1
  225. package/dist/lib/service/guard/ViolationsStore.d.ts +2 -1
  226. package/dist/lib/service/guard/ViolationsStore.d.ts.map +1 -1
  227. package/dist/lib/service/guard/ViolationsStore.js +2 -2
  228. package/dist/lib/service/guard/ViolationsStore.js.map +1 -1
  229. package/dist/lib/service/skills/SkillAdvisor.d.ts.map +1 -1
  230. package/dist/lib/service/skills/SkillAdvisor.js +3 -1
  231. package/dist/lib/service/skills/SkillAdvisor.js.map +1 -1
  232. package/dist/lib/service/skills/SkillHooks.d.ts +5 -1
  233. package/dist/lib/service/skills/SkillHooks.d.ts.map +1 -1
  234. package/dist/lib/service/skills/SkillHooks.js +5 -4
  235. package/dist/lib/service/skills/SkillHooks.js.map +1 -1
  236. package/dist/lib/shared/UnifiedValidator.d.ts +1 -1
  237. package/dist/lib/shared/UnifiedValidator.d.ts.map +1 -1
  238. package/dist/lib/shared/UnifiedValidator.js +2 -2
  239. package/dist/lib/shared/UnifiedValidator.js.map +1 -1
  240. package/dist/lib/shared/isOwnDevRepo.d.ts.map +1 -1
  241. package/dist/lib/shared/isOwnDevRepo.js +11 -11
  242. package/dist/lib/shared/isOwnDevRepo.js.map +1 -1
  243. package/dist/lib/shared/package-root.d.ts.map +1 -1
  244. package/dist/lib/shared/package-root.js +1 -3
  245. package/dist/lib/shared/package-root.js.map +1 -1
  246. package/dist/lib/shared/resolveProjectRoot.d.ts +26 -0
  247. package/dist/lib/shared/resolveProjectRoot.d.ts.map +1 -0
  248. package/dist/lib/shared/resolveProjectRoot.js +24 -0
  249. package/dist/lib/shared/resolveProjectRoot.js.map +1 -0
  250. package/dist/lib/shared/schemas/http-requests.d.ts +0 -6
  251. package/dist/lib/shared/schemas/http-requests.d.ts.map +1 -1
  252. package/dist/lib/shared/schemas/http-requests.js +0 -6
  253. package/dist/lib/shared/schemas/http-requests.js.map +1 -1
  254. package/dist/lib/shared/schemas/mcp-tools.d.ts +1 -1
  255. package/dist/lib/types/database.d.ts +14 -0
  256. package/dist/lib/types/database.d.ts.map +1 -0
  257. package/dist/lib/types/database.js +2 -0
  258. package/dist/lib/types/database.js.map +1 -0
  259. package/dist/scripts/build-native-ui.js +1 -4
  260. package/dist/scripts/build-native-ui.js.map +1 -1
  261. package/dist/scripts/install-cursor-skill.js +2 -5
  262. package/dist/scripts/install-cursor-skill.js.map +1 -1
  263. package/dist/scripts/install-full.js +1 -4
  264. package/dist/scripts/install-full.js.map +1 -1
  265. package/dist/scripts/install-vscode-copilot.js +1 -4
  266. package/dist/scripts/install-vscode-copilot.js.map +1 -1
  267. package/dist/scripts/release.js +1 -4
  268. package/dist/scripts/release.js.map +1 -1
  269. package/package.json +23 -24
  270. package/scripts/postbuild.mjs +2 -3
  271. package/scripts/{postinstall-safe.js → postinstall-safe.mjs} +1 -4
  272. package/templates/guard-ci.yml +1 -1
  273. package/dashboard/dist/assets/axios-C0Zqfgkc.js +0 -6
  274. package/dashboard/dist/assets/framer-motion-DOATyqla.js +0 -9
  275. package/dashboard/dist/assets/icons-0-btqT36.js +0 -531
  276. package/dashboard/dist/assets/index--XYC2yVO.js +0 -128
  277. package/dashboard/dist/assets/index-DNCrgh_C.css +0 -1
  278. package/dashboard/dist/assets/vendor-Ck-HBmg5.js +0 -3122
@@ -8,7 +8,6 @@ import express from 'express';
8
8
  import { ModuleBootstrapBody, ScanFolderBody, ScanProjectBody, ScanTargetBody, } from '#shared/schemas/http-requests.js';
9
9
  import Logger from '../../infrastructure/logging/Logger.js';
10
10
  import { getServiceContainer } from '../../injection/ServiceContainer.js';
11
- import { asyncHandler } from '../middleware/errorHandler.js';
12
11
  import { validate } from '../middleware/validate.js';
13
12
  import { createStreamSession, getStreamSession } from '../utils/sse-sessions.js';
14
13
  const router = express.Router();
@@ -17,7 +16,7 @@ const logger = Logger.getInstance();
17
16
  * GET /api/v1/modules/targets
18
17
  * 获取所有模块 Target 列表(多语言合并)
19
18
  */
20
- router.get('/targets', asyncHandler(async (req, res) => {
19
+ router.get('/targets', async (req, res) => {
21
20
  const container = getServiceContainer();
22
21
  const moduleService = container.get('moduleService');
23
22
  await moduleService.load();
@@ -30,12 +29,12 @@ router.get('/targets', asyncHandler(async (req, res) => {
30
29
  projectInfo: moduleService.getProjectInfo(),
31
30
  },
32
31
  });
33
- }));
32
+ });
34
33
  /**
35
34
  * GET /api/v1/modules/dep-graph
36
35
  * 获取模块依赖关系图
37
36
  */
38
- router.get('/dep-graph', asyncHandler(async (req, res) => {
37
+ router.get('/dep-graph', async (req, res) => {
39
38
  const container = getServiceContainer();
40
39
  const moduleService = container.get('moduleService');
41
40
  await moduleService.load();
@@ -103,12 +102,12 @@ router.get('/dep-graph', asyncHandler(async (req, res) => {
103
102
  generatedAt: graph.generatedAt || null,
104
103
  },
105
104
  });
106
- }));
105
+ });
107
106
  /**
108
107
  * GET /api/v1/modules/browse-dirs
109
108
  * 浏览项目目录结构 — 供前端选择要扫描的文件夹
110
109
  */
111
- router.get('/browse-dirs', asyncHandler(async (req, res) => {
110
+ router.get('/browse-dirs', async (req, res) => {
112
111
  const container = getServiceContainer();
113
112
  const moduleService = container.get('moduleService');
114
113
  await moduleService.load();
@@ -124,12 +123,12 @@ router.get('/browse-dirs', asyncHandler(async (req, res) => {
124
123
  projectRoot: moduleService.getProjectInfo().projectRoot,
125
124
  },
126
125
  });
127
- }));
126
+ });
128
127
  /**
129
128
  * POST /api/v1/modules/scan-folder
130
129
  * 扫描任意目录 — 直接走 AI 管线(无需 Discoverer 检测)
131
130
  */
132
- router.post('/scan-folder', validate(ScanFolderBody), asyncHandler(async (req, res) => {
131
+ router.post('/scan-folder', validate(ScanFolderBody), async (req, res) => {
133
132
  const { path: folderPath, options = {} } = req.body;
134
133
  const container = getServiceContainer();
135
134
  const moduleService = container.get('moduleService');
@@ -139,12 +138,12 @@ router.post('/scan-folder', validate(ScanFolderBody), asyncHandler(async (req, r
139
138
  success: true,
140
139
  data: result,
141
140
  });
142
- }));
141
+ });
143
142
  /**
144
143
  * POST /api/v1/modules/scan-folder/stream
145
144
  * 流式扫描任意目录 — SSE Session 架构
146
145
  */
147
- router.post('/scan-folder/stream', validate(ScanFolderBody), asyncHandler(async (req, res) => {
146
+ router.post('/scan-folder/stream', validate(ScanFolderBody), async (req, res) => {
148
147
  const { path: folderPath, options = {} } = req.body;
149
148
  const container = getServiceContainer();
150
149
  const moduleService = container.get('moduleService');
@@ -183,12 +182,12 @@ router.post('/scan-folder/stream', validate(ScanFolderBody), asyncHandler(async
183
182
  }
184
183
  }
185
184
  });
186
- }));
185
+ });
187
186
  /**
188
187
  * POST /api/v1/modules/target-files
189
188
  * 获取模块的文件列表
190
189
  */
191
- router.post('/target-files', validate(ScanTargetBody), asyncHandler(async (req, res) => {
190
+ router.post('/target-files', validate(ScanTargetBody), async (req, res) => {
192
191
  const { target, targetName } = req.body;
193
192
  const container = getServiceContainer();
194
193
  const moduleService = container.get('moduleService');
@@ -213,12 +212,12 @@ router.post('/target-files', validate(ScanTargetBody), asyncHandler(async (req,
213
212
  total: files.length,
214
213
  },
215
214
  });
216
- }));
215
+ });
217
216
  /**
218
217
  * POST /api/v1/modules/scan
219
218
  * AI 扫描模块,发现候选项
220
219
  */
221
- router.post('/scan', validate(ScanTargetBody), asyncHandler(async (req, res) => {
220
+ router.post('/scan', validate(ScanTargetBody), async (req, res) => {
222
221
  const { target, targetName, options = {} } = req.body;
223
222
  const container = getServiceContainer();
224
223
  const moduleService = container.get('moduleService');
@@ -243,13 +242,13 @@ router.post('/scan', validate(ScanTargetBody), asyncHandler(async (req, res) =>
243
242
  success: true,
244
243
  data: result,
245
244
  });
246
- }));
245
+ });
247
246
  // ── 流式 Target 扫描(SSE Session + EventSource 架构) ─────────
248
247
  /**
249
248
  * POST /api/v1/modules/scan/stream
250
249
  * 创建流式扫描会话,后台异步执行 AI 扫描
251
250
  */
252
- router.post('/scan/stream', validate(ScanTargetBody), asyncHandler(async (req, res) => {
251
+ router.post('/scan/stream', validate(ScanTargetBody), async (req, res) => {
253
252
  const { target, targetName, options = {} } = req.body;
254
253
  const container = getServiceContainer();
255
254
  const moduleService = container.get('moduleService');
@@ -300,7 +299,7 @@ router.post('/scan/stream', validate(ScanTargetBody), asyncHandler(async (req, r
300
299
  session.error(err.message, 'SCAN_ERROR');
301
300
  }
302
301
  });
303
- }));
302
+ });
304
303
  /**
305
304
  * GET /api/v1/modules/scan/events/:sessionId
306
305
  * EventSource SSE 端点 — 消费扫描进度事件
@@ -366,7 +365,7 @@ router.get('/scan/events/:sessionId', (req, res) => {
366
365
  * POST /api/v1/modules/scan-project
367
366
  * 全项目扫描:AI 提取候选 + Guard 审计
368
367
  */
369
- router.post('/scan-project', validate(ScanProjectBody), asyncHandler(async (req, res) => {
368
+ router.post('/scan-project', validate(ScanProjectBody), async (req, res) => {
370
369
  const { options = {} } = req.body;
371
370
  const container = getServiceContainer();
372
371
  const moduleService = container.get('moduleService');
@@ -377,12 +376,12 @@ router.post('/scan-project', validate(ScanProjectBody), asyncHandler(async (req,
377
376
  success: true,
378
377
  data: result,
379
378
  });
380
- }));
379
+ });
381
380
  /**
382
381
  * POST /api/v1/modules/update-map
383
382
  * 刷新模块映射(替代 spm-map)
384
383
  */
385
- router.post('/update-map', asyncHandler(async (req, res) => {
384
+ router.post('/update-map', async (req, res) => {
386
385
  const container = getServiceContainer();
387
386
  const moduleService = container.get('moduleService');
388
387
  const result = await moduleService.updateModuleMap({
@@ -393,12 +392,12 @@ router.post('/update-map', asyncHandler(async (req, res) => {
393
392
  success: true,
394
393
  data: result,
395
394
  });
396
- }));
395
+ });
397
396
  /**
398
397
  * GET /api/v1/modules/project-info
399
398
  * 项目信息(检测到的语言、框架等)
400
399
  */
401
- router.get('/project-info', asyncHandler(async (req, res) => {
400
+ router.get('/project-info', async (req, res) => {
402
401
  const container = getServiceContainer();
403
402
  const moduleService = container.get('moduleService');
404
403
  await moduleService.load();
@@ -407,12 +406,12 @@ router.get('/project-info', asyncHandler(async (req, res) => {
407
406
  success: true,
408
407
  data: info,
409
408
  });
410
- }));
409
+ });
411
410
  /**
412
411
  * POST /api/v1/modules/bootstrap
413
412
  * 冷启动:快速骨架 + 异步逐维度填充
414
413
  */
415
- router.post('/bootstrap', validate(ModuleBootstrapBody), asyncHandler(async (req, res) => {
414
+ router.post('/bootstrap', validate(ModuleBootstrapBody), async (req, res) => {
416
415
  const { maxFiles, skipGuard, contentMaxLines } = req.body || {};
417
416
  const container = getServiceContainer();
418
417
  const agentFactory = container.get('agentFactory');
@@ -430,12 +429,12 @@ router.post('/bootstrap', validate(ModuleBootstrapBody), asyncHandler(async (req
430
429
  asyncFill: true,
431
430
  },
432
431
  });
433
- }));
432
+ });
434
433
  /**
435
434
  * GET /api/v1/modules/bootstrap/status
436
435
  * 查询 bootstrap 异步填充进度
437
436
  */
438
- router.get('/bootstrap/status', asyncHandler(async (req, res) => {
437
+ router.get('/bootstrap/status', async (req, res) => {
439
438
  const container = getServiceContainer();
440
439
  let taskManager = null;
441
440
  try {
@@ -454,6 +453,6 @@ router.get('/bootstrap/status', asyncHandler(async (req, res) => {
454
453
  success: true,
455
454
  data: taskManager.getSessionStatus(),
456
455
  });
457
- }));
456
+ });
458
457
  export default router;
459
458
  //# sourceMappingURL=modules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../../../../lib/http/routes/modules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../../../../lib/http/routes/modules.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../../../lib/http/routes/recipes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,QAAA,MAAM,MAAM,4CAAmB,CAAC;AAgKhC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"recipes.d.ts","sourceRoot":"","sources":["../../../../lib/http/routes/recipes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,QAAA,MAAM,MAAM,4CAAmB,CAAC;AAwJhC,eAAe,MAAM,CAAC"}
@@ -8,7 +8,6 @@
8
8
  import express from 'express';
9
9
  import Logger from '../../infrastructure/logging/Logger.js';
10
10
  import { getServiceContainer } from '../../injection/ServiceContainer.js';
11
- import { asyncHandler } from '../middleware/errorHandler.js';
12
11
  const router = express.Router();
13
12
  const logger = Logger.getInstance();
14
13
  /* ═══ 进程内任务状态(单实例足够) ═══════════════════════ */
@@ -44,7 +43,7 @@ function resetTask() {
44
43
  * 立即返回 { status: 'started' },后台执行。
45
44
  * Dashboard 通过 GET /discover-relations/status 轮询进度。
46
45
  */
47
- router.post('/discover-relations', asyncHandler(async (req, res) => {
46
+ router.post('/discover-relations', async (req, res) => {
48
47
  const { batchSize: _batchSize = 20 } = req.body;
49
48
  // 如果已有任务在运行,返回当前状态
50
49
  if (discoverTask.status === 'running') {
@@ -102,8 +101,7 @@ router.post('/discover-relations', asyncHandler(async (req, res) => {
102
101
  discoverTask.discovered = result.discovered || 0;
103
102
  discoverTask.totalPairs = result.totalPairs || 0;
104
103
  discoverTask.batchErrors = result.batchErrors || 0;
105
- discoverTask.elapsed = Math.round((new Date(discoverTask.finishedAt).getTime() -
106
- new Date(discoverTask.startedAt).getTime()) /
104
+ discoverTask.elapsed = Math.round((new Date(discoverTask.finishedAt).getTime() - new Date(discoverTask.startedAt).getTime()) /
107
105
  1000);
108
106
  logger.info('Discover relations completed', {
109
107
  discovered: discoverTask.discovered,
@@ -116,8 +114,7 @@ router.post('/discover-relations', asyncHandler(async (req, res) => {
116
114
  discoverTask.status = 'error';
117
115
  discoverTask.finishedAt = new Date().toISOString();
118
116
  discoverTask.error = err.message;
119
- discoverTask.elapsed = Math.round((new Date(discoverTask.finishedAt).getTime() -
120
- new Date(discoverTask.startedAt).getTime()) /
117
+ discoverTask.elapsed = Math.round((new Date(discoverTask.finishedAt).getTime() - new Date(discoverTask.startedAt).getTime()) /
121
118
  1000);
122
119
  logger.error('Discover relations failed', { error: err.message });
123
120
  }
@@ -130,18 +127,18 @@ router.post('/discover-relations', asyncHandler(async (req, res) => {
130
127
  message: 'AI 分析已启动,正在后台运行',
131
128
  },
132
129
  });
133
- }));
130
+ });
134
131
  /* ═══ GET /api/v1/recipes/discover-relations/status ═════ */
135
132
  /**
136
133
  * 查询关系发现任务状态
137
134
  */
138
- router.get('/discover-relations/status', asyncHandler(async (req, res) => {
135
+ router.get('/discover-relations/status', async (req, res) => {
139
136
  const data = { ...discoverTask };
140
137
  // 计算实时 elapsed
141
138
  if (data.status === 'running' && data.startedAt) {
142
139
  data.elapsed = Math.round((Date.now() - new Date(data.startedAt).getTime()) / 1000);
143
140
  }
144
141
  res.json({ success: true, data });
145
- }));
142
+ });
146
143
  export default router;
147
144
  //# sourceMappingURL=recipes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../../../lib/http/routes/recipes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recipes.js","sourceRoot":"","sources":["../../../../lib/http/routes/recipes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../../lib/http/routes/remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgDH,QAAA,MAAM,MAAM,4CAAmB,CAAC;AAw6BhC;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,SAAK;;;GAsCpD;AAgDD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,oBA6CtD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,YAEtC;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../../lib/http/routes/remote.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgDH,QAAA,MAAM,MAAM,4CAAmB,CAAC;AAm8BhC;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,SAAK;;;GAsCpD;AAgDD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,oBA6CtD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,YAEtC;AAED,eAAe,MAAM,CAAC"}
@@ -22,8 +22,8 @@ import Logger from '../../infrastructure/logging/Logger.js';
22
22
  import { getServiceContainer } from '../../injection/ServiceContainer.js';
23
23
  import { RemoteCommandRepository, } from '../../repository/remote/RemoteCommandRepository.js';
24
24
  import { LarkTransport } from '../../service/agent/LarkTransport.js';
25
+ import { resolveProjectRoot } from '../../shared/resolveProjectRoot.js';
25
26
  import { RemoteHistoryQuery, RemoteNotifyBody, RemoteResultBody, RemoteSendBody, } from '../../shared/schemas/http-requests.js';
26
- import { asyncHandler } from '../middleware/errorHandler.js';
27
27
  import { validate, validateQuery } from '../middleware/validate.js';
28
28
  const router = express.Router();
29
29
  const logger = Logger.getInstance();
@@ -99,6 +99,31 @@ let _wsClient = null;
99
99
  let _larkClient = null;
100
100
  let _wsConnected = false;
101
101
  let _wsStarting = false;
102
+ /**
103
+ * Lark SDK 日志适配器 — 将 SDK 内部的 console 输出路由到项目统一 Logger
104
+ * 替代 SDK 默认的 console.log 直出,日志格式与项目其他模块保持一致。
105
+ * 前缀: [Remote/Lark/SDK]
106
+ */
107
+ const larkSdkLogger = {
108
+ error(...args) {
109
+ logger.error(`[Remote/Lark/SDK] ${args.map(String).join(' ')}`);
110
+ },
111
+ warn(...args) {
112
+ logger.warn(`[Remote/Lark/SDK] ${args.map(String).join(' ')}`);
113
+ },
114
+ info(...args) {
115
+ logger.info(`[Remote/Lark/SDK] ${args.map(String).join(' ')}`);
116
+ },
117
+ debug(...args) {
118
+ logger.debug(`[Remote/Lark/SDK] ${args.map(String).join(' ')}`);
119
+ },
120
+ trace(...args) {
121
+ logger.debug(`[Remote/Lark/SDK] [trace] ${args.map(String).join(' ')}`);
122
+ },
123
+ log(...args) {
124
+ logger.info(`[Remote/Lark/SDK] ${args.map(String).join(' ')}`);
125
+ },
126
+ };
102
127
  async function startLarkWS({ silent = false } = {}) {
103
128
  // 如果已连接且对象存在 → 直接返回
104
129
  if (_wsClient && _wsConnected) {
@@ -145,6 +170,7 @@ async function startLarkWS({ silent = false } = {}) {
145
170
  appSecret: config.appSecret,
146
171
  loggerLevel: lark.LoggerLevel?.info ?? 2,
147
172
  autoReconnect: true,
173
+ logger: larkSdkLogger,
148
174
  });
149
175
  await _wsClient.start({ eventDispatcher });
150
176
  _wsConnected = true;
@@ -195,14 +221,15 @@ function stopLarkWS() {
195
221
  // ─── 自动启动(路由加载时) ─────────────────────────
196
222
  const { appId: _autoId, appSecret: _autoSecret } = getLarkConfig();
197
223
  if (_autoId && _autoSecret) {
198
- // 延迟 3 秒启动,等 express/DB 初始化完成
199
- setTimeout(async () => {
224
+ // 延迟启动:setImmediate 确保路由注册、DB init 全部完成后,再等 8s 启动飞书连接
225
+ // 不阻塞主服务启动流程
226
+ setImmediate(() => setTimeout(async () => {
200
227
  logger.info('[Remote/Lark] Auto-starting WebSocket connection...');
201
228
  const result = await startLarkWS();
202
229
  if (!result.success) {
203
230
  logger.warn(`[Remote/Lark] Auto-start failed: ${result.message}`);
204
231
  }
205
- }, 3000);
232
+ }, 8000));
206
233
  }
207
234
  // ─── 连接健康检查 & 自动重连 ────────────────────────
208
235
  const HEALTH_CHECK_INTERVAL = 30_000; // 30 秒检查一次
@@ -284,7 +311,7 @@ function getLarkTransport() {
284
311
  getStatusFn: getStatusText,
285
312
  enqueueIdeFn: enqueueIdeCommand,
286
313
  isUserAllowed,
287
- projectRoot: container.get('projectRoot') || process.cwd(),
314
+ projectRoot: resolveProjectRoot(container),
288
315
  });
289
316
  logger.info('[Remote/Lark] LarkTransport initialized');
290
317
  return _larkTransport;
@@ -367,8 +394,7 @@ async function enqueueIdeCommand(command, meta = {}) {
367
394
  return { id };
368
395
  }
369
396
  function _getProjectRoot() {
370
- const container = getServiceContainer();
371
- return container.singletons?._projectRoot || process.env.ASD_PROJECT_DIR || process.cwd();
397
+ return resolveProjectRoot(getServiceContainer());
372
398
  }
373
399
  // ═══════════════════════════════════════════════════════
374
400
  // 飞书消息处理 — 通过 LarkTransport 路由
@@ -391,7 +417,7 @@ async function handleLarkMessage(data) {
391
417
  await transport.receive(data);
392
418
  }
393
419
  else {
394
- // Transport 未就绪 → 降级为旧队列模式
420
+ // Transport 未就绪 → 降级模式
395
421
  logger.warn('[Remote/Lark] Transport not ready, falling back to queue mode');
396
422
  const sender = data?.sender || data?.event?.sender || {};
397
423
  let text = '';
@@ -406,6 +432,16 @@ async function handleLarkMessage(data) {
406
432
  text = '';
407
433
  }
408
434
  if (text) {
435
+ // ── 降级模式下仍需识别系统指令,避免"状态"等命令被盲目转发 IDE ──
436
+ const FALLBACK_SYSTEM_RE = /^(状态|status|截图|screenshot|帮助|help|ping|队列|queue|取消|cancel|清[理空])$/i;
437
+ const FALLBACK_SYSTEM_CONTAINS_RE = /状态|status|截图|screenshot|screen|截屏|帮助|help|诊断|链路|连接.*状态|服务.*状态/i;
438
+ if (FALLBACK_SYSTEM_RE.test(text) || FALLBACK_SYSTEM_CONTAINS_RE.test(text)) {
439
+ // 系统指令 — 在降级模式下直接回复状态
440
+ logger.info(`[Remote/Lark] Fallback: system command detected — "${text}"`);
441
+ const statusText = await getStatusText();
442
+ await replyLark(messageId, statusText || '📊 系统状态查询中 (Agent 模式未就绪)');
443
+ return;
444
+ }
409
445
  const senderId = sender.sender_id?.user_id || sender.sender_id?.open_id || '';
410
446
  const senderName = sender.sender_id?.user_id || 'lark_user';
411
447
  await enqueueIdeCommand(text, { chatId, messageId, senderId, senderName });
@@ -416,13 +452,13 @@ async function handleLarkMessage(data) {
416
452
  // ═══════════════════════════════════════════════════════
417
453
  // 飞书连接管理端点
418
454
  // ═══════════════════════════════════════════════════════
419
- router.post('/lark/start', asyncHandler(async (_req, res) => {
455
+ router.post('/lark/start', async (_req, res) => {
420
456
  res.json(await startLarkWS());
421
- }));
422
- router.post('/lark/stop', asyncHandler(async (_req, res) => {
457
+ });
458
+ router.post('/lark/stop', async (_req, res) => {
423
459
  res.json(stopLarkWS());
424
- }));
425
- router.get('/lark/status', asyncHandler(async (_req, res) => {
460
+ });
461
+ router.get('/lark/status', async (_req, res) => {
426
462
  const config = getLarkConfig();
427
463
  let queueInfo = {};
428
464
  try {
@@ -441,13 +477,14 @@ router.get('/lark/status', asyncHandler(async (_req, res) => {
441
477
  activeChatId: _activeChatId ? `${_activeChatId.slice(0, 12)}...` : '',
442
478
  notificationReady: isLarkNotificationReady(),
443
479
  queue: queueInfo,
480
+ projectRoot: _getProjectRoot(),
444
481
  },
445
482
  });
446
- }));
483
+ });
447
484
  // ═══════════════════════════════════════════════════════
448
485
  // 飞书 Webhook 回调(备用)
449
486
  // ═══════════════════════════════════════════════════════
450
- router.post('/lark/event', asyncHandler(async (req, res) => {
487
+ router.post('/lark/event', async (req, res) => {
451
488
  const body = req.body;
452
489
  if (body.type === 'url_verification') {
453
490
  return void res.json({ challenge: body.challenge });
@@ -462,11 +499,11 @@ router.post('/lark/event', asyncHandler(async (req, res) => {
462
499
  await handleLarkMessage(event);
463
500
  }
464
501
  res.json({ success: true });
465
- }));
502
+ });
466
503
  // ═══════════════════════════════════════════════════════
467
504
  // VSCode 扩展 API
468
505
  // ═══════════════════════════════════════════════════════
469
- router.get('/pending', asyncHandler(async (_req, res) => {
506
+ router.get('/pending', async (_req, res) => {
470
507
  _lastPollAt = Date.now();
471
508
  const repo = getRepo();
472
509
  const row = repo.findFirstPending();
@@ -483,8 +520,8 @@ router.get('/pending', asyncHandler(async (_req, res) => {
483
520
  }
484
521
  : null,
485
522
  });
486
- }));
487
- router.post('/claim/:id', asyncHandler(async (req, res) => {
523
+ });
524
+ router.post('/claim/:id', async (req, res) => {
488
525
  const id = req.params.id;
489
526
  const repo = getRepo();
490
527
  const claimed = repo.claim(id);
@@ -497,8 +534,8 @@ router.post('/claim/:id', asyncHandler(async (req, res) => {
497
534
  replyLark(row.messageId, `🚀 IDE 已开始执行...\n\n> ${(row.command || '').slice(0, 60)}`).catch(() => { });
498
535
  }
499
536
  res.json({ success: true });
500
- }));
501
- router.post('/result/:id', validate(RemoteResultBody), asyncHandler(async (req, res) => {
537
+ });
538
+ router.post('/result/:id', validate(RemoteResultBody), async (req, res) => {
502
539
  const id = req.params.id;
503
540
  const { result, status } = req.body;
504
541
  const repo = getRepo();
@@ -520,13 +557,13 @@ router.post('/result/:id', validate(RemoteResultBody), asyncHandler(async (req,
520
557
  }
521
558
  }
522
559
  res.json({ success: true });
523
- }));
524
- router.get('/history', validateQuery(RemoteHistoryQuery), asyncHandler(async (req, res) => {
560
+ });
561
+ router.get('/history', validateQuery(RemoteHistoryQuery), async (req, res) => {
525
562
  const repo = getRepo();
526
563
  const limit = req.query.limit;
527
564
  const rows = repo.getHistory(limit);
528
565
  res.json({ success: true, data: rows });
529
- }));
566
+ });
530
567
  // ═══════════════════════════════════════════════════════
531
568
  // Long-Poll — 新消息到达时立即唤醒扩展端
532
569
  // ═══════════════════════════════════════════════════════
@@ -569,7 +606,7 @@ router.get('/wait', (req, res) => {
569
606
  });
570
607
  });
571
608
  // POST /flush — IDE 重连时清理所有积压的 pending 指令
572
- router.post('/flush', asyncHandler(async (req, res) => {
609
+ router.post('/flush', async (req, res) => {
573
610
  const repo = getRepo();
574
611
  const pending = repo.flushPending();
575
612
  if (pending.length === 0) {
@@ -586,8 +623,8 @@ router.post('/flush', asyncHandler(async (req, res) => {
586
623
  const lines = summaries.map((s, i) => ` ${i + 1}. ${s.command}${s.command.length >= 60 ? '…' : ''} (${s.age}s ago)`);
587
624
  sendLarkNotification(`🗑 IDE 重连,已清理 ${pending.length} 条积压指令:\n${lines.join('\n')}`).catch(() => { });
588
625
  res.json({ success: true, flushed: pending.length, commands: summaries });
589
- }));
590
- router.post('/send', validate(RemoteSendBody), asyncHandler(async (req, res) => {
626
+ });
627
+ router.post('/send', validate(RemoteSendBody), async (req, res) => {
591
628
  const { command } = req.body;
592
629
  const repo = getRepo();
593
630
  const id = genId();
@@ -598,19 +635,19 @@ router.post('/send', validate(RemoteSendBody), asyncHandler(async (req, res) =>
598
635
  command,
599
636
  });
600
637
  res.json({ success: true, data: { id, command } });
601
- }));
638
+ });
602
639
  // POST /api/v1/remote/notify — 通用通知(扩展/外部模块主动推送飞书)
603
- router.post('/notify', validate(RemoteNotifyBody), asyncHandler(async (req, res) => {
640
+ router.post('/notify', validate(RemoteNotifyBody), async (req, res) => {
604
641
  const { text } = req.body;
605
642
  const sent = await sendLarkNotification(text);
606
643
  res.json({ success: sent, message: sent ? 'Sent' : 'Lark not connected or no active chat' });
607
- }));
644
+ });
608
645
  // POST /api/v1/remote/screenshot — 截取 IDE 窗口并发送到飞书
609
- router.post('/screenshot', asyncHandler(async (req, res) => {
646
+ router.post('/screenshot', async (req, res) => {
610
647
  const { caption } = req.body || {};
611
648
  const result = await sendLarkScreenshot(caption || '');
612
649
  res.json(result);
613
- }));
650
+ });
614
651
  // ═══════════════════════════════════════════════════════
615
652
  // 飞书回复辅助
616
653
  // ═══════════════════════════════════════════════════════
@@ -630,10 +667,10 @@ async function getTenantToken() {
630
667
  headers: { 'Content-Type': 'application/json' },
631
668
  body: JSON.stringify({ app_id: config.appId, app_secret: config.appSecret }),
632
669
  });
633
- const data = await resp.json();
670
+ const data = (await resp.json());
634
671
  if (data.code === 0 && data.tenant_access_token) {
635
672
  _tenantToken = data.tenant_access_token;
636
- _tenantTokenExpiry = Date.now() + (data.expire - 300) * 1000;
673
+ _tenantTokenExpiry = Date.now() + ((data.expire ?? 7200) - 300) * 1000;
637
674
  return _tenantToken;
638
675
  }
639
676
  return '';
@@ -740,7 +777,7 @@ async function _uploadImageToLark(filePath) {
740
777
  headers: { Authorization: `Bearer ${token}` },
741
778
  body: form,
742
779
  });
743
- const data = await resp.json();
780
+ const data = (await resp.json());
744
781
  if (data.code === 0 && data.data?.image_key) {
745
782
  return { imageKey: data.data.image_key, error: null };
746
783
  }
@@ -794,7 +831,7 @@ async function _sendLarkImageMsg(imageKey) {
794
831
  msg_type: 'image',
795
832
  }),
796
833
  });
797
- const data = await resp.json();
834
+ const data = (await resp.json());
798
835
  return data.code === 0;
799
836
  }
800
837
  catch {
@@ -924,7 +961,7 @@ export async function sendLarkNotification(text) {
924
961
  msg_type: 'text',
925
962
  }),
926
963
  });
927
- const data = await resp.json();
964
+ const data = (await resp.json());
928
965
  return data.code === 0;
929
966
  }
930
967
  catch {