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.
- package/README.md +1 -1
- package/dashboard/dist/assets/axios-42ANG6Sg.js +6 -0
- package/dashboard/dist/assets/framer-motion-CZfOSYpP.js +9 -0
- package/dashboard/dist/assets/icons-C1dUryS-.js +1 -0
- package/dashboard/dist/assets/index-CKMy5LY6.js +128 -0
- package/dashboard/dist/assets/index-D0whuycy.css +1 -0
- package/dashboard/dist/assets/vendor-BZEJEVBn.js +3068 -0
- package/dashboard/dist/index.html +6 -6
- package/dist/lib/bootstrap.d.ts.map +1 -1
- package/dist/lib/bootstrap.js +2 -1
- package/dist/lib/bootstrap.js.map +1 -1
- package/dist/lib/core/ast/ProjectGraph.d.ts.map +1 -1
- package/dist/lib/core/ast/ProjectGraph.js.map +1 -1
- package/dist/lib/core/ast/lang-go.js.map +1 -1
- package/dist/lib/core/ast/lang-java.d.ts.map +1 -1
- package/dist/lib/core/ast/lang-java.js.map +1 -1
- package/dist/lib/core/ast/lang-kotlin.d.ts.map +1 -1
- package/dist/lib/core/ast/lang-kotlin.js.map +1 -1
- package/dist/lib/core/ast/lang-python.d.ts.map +1 -1
- package/dist/lib/core/ast/lang-python.js +4 -2
- package/dist/lib/core/ast/lang-python.js.map +1 -1
- package/dist/lib/core/ast/parser-init.d.ts.map +1 -1
- package/dist/lib/core/ast/parser-init.js +0 -1
- package/dist/lib/core/ast/parser-init.js.map +1 -1
- package/dist/lib/core/capability/CapabilityProbe.d.ts.map +1 -1
- package/dist/lib/core/capability/CapabilityProbe.js +4 -2
- package/dist/lib/core/capability/CapabilityProbe.js.map +1 -1
- package/dist/lib/domain/task/TaskIdGenerator.d.ts +2 -1
- package/dist/lib/domain/task/TaskIdGenerator.d.ts.map +1 -1
- package/dist/lib/domain/task/TaskIdGenerator.js +2 -2
- package/dist/lib/domain/task/TaskIdGenerator.js.map +1 -1
- package/dist/lib/external/ai/AiProvider.d.ts +1 -1
- package/dist/lib/external/ai/providers/ClaudeProvider.js +1 -1
- package/dist/lib/external/ai/providers/ClaudeProvider.js.map +1 -1
- package/dist/lib/external/ai/providers/GoogleGeminiProvider.d.ts.map +1 -1
- package/dist/lib/external/ai/providers/GoogleGeminiProvider.js +2 -2
- package/dist/lib/external/ai/providers/GoogleGeminiProvider.js.map +1 -1
- package/dist/lib/external/ai/providers/OpenAiProvider.js +1 -1
- package/dist/lib/external/ai/providers/OpenAiProvider.js.map +1 -1
- package/dist/lib/external/mcp/handlers/bootstrap/ExternalSubmissionTracker.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/bootstrap/ExternalSubmissionTracker.js +2 -0
- package/dist/lib/external/mcp/handlers/bootstrap/ExternalSubmissionTracker.js.map +1 -1
- package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.d.ts +1 -0
- package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.js +11 -1
- package/dist/lib/external/mcp/handlers/bootstrap/shared/bootstrap-phases.js.map +1 -1
- package/dist/lib/external/mcp/handlers/bootstrap-external.d.ts +4 -0
- package/dist/lib/external/mcp/handlers/bootstrap-external.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/bootstrap-external.js +19 -2
- package/dist/lib/external/mcp/handlers/bootstrap-external.js.map +1 -1
- package/dist/lib/external/mcp/handlers/bootstrap-internal.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/bootstrap-internal.js +2 -1
- package/dist/lib/external/mcp/handlers/bootstrap-internal.js.map +1 -1
- package/dist/lib/external/mcp/handlers/candidate.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/candidate.js +2 -1
- package/dist/lib/external/mcp/handlers/candidate.js.map +1 -1
- package/dist/lib/external/mcp/handlers/consolidated.js +1 -1
- package/dist/lib/external/mcp/handlers/consolidated.js.map +1 -1
- package/dist/lib/external/mcp/handlers/dimension-complete-external.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/dimension-complete-external.js +17 -5
- package/dist/lib/external/mcp/handlers/dimension-complete-external.js.map +1 -1
- package/dist/lib/external/mcp/handlers/guard.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/guard.js +31 -24
- package/dist/lib/external/mcp/handlers/guard.js.map +1 -1
- package/dist/lib/external/mcp/handlers/knowledge.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/knowledge.js +14 -10
- package/dist/lib/external/mcp/handlers/knowledge.js.map +1 -1
- package/dist/lib/external/mcp/handlers/skill.d.ts +5 -5
- package/dist/lib/external/mcp/handlers/skill.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/skill.js +27 -28
- package/dist/lib/external/mcp/handlers/skill.js.map +1 -1
- package/dist/lib/external/mcp/handlers/structure.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/structure.js +10 -7
- package/dist/lib/external/mcp/handlers/structure.js.map +1 -1
- package/dist/lib/external/mcp/handlers/system.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/system.js +2 -1
- package/dist/lib/external/mcp/handlers/system.js.map +1 -1
- package/dist/lib/external/mcp/handlers/task.js +2 -2
- package/dist/lib/external/mcp/handlers/task.js.map +1 -1
- package/dist/lib/external/mcp/handlers/wiki-external.d.ts.map +1 -1
- package/dist/lib/external/mcp/handlers/wiki-external.js +3 -2
- package/dist/lib/external/mcp/handlers/wiki-external.js.map +1 -1
- package/dist/lib/http/HttpServer.d.ts +2 -2
- package/dist/lib/http/HttpServer.js +64 -64
- package/dist/lib/http/HttpServer.js.map +1 -1
- package/dist/lib/http/middleware/errorHandler.d.ts +1 -5
- package/dist/lib/http/middleware/errorHandler.d.ts.map +1 -1
- package/dist/lib/http/middleware/errorHandler.js +0 -8
- package/dist/lib/http/middleware/errorHandler.js.map +1 -1
- package/dist/lib/http/middleware/validate.d.ts +2 -2
- package/dist/lib/http/middleware/validate.js +2 -2
- package/dist/lib/http/routes/ai.d.ts.map +1 -1
- package/dist/lib/http/routes/ai.js +36 -45
- package/dist/lib/http/routes/ai.js.map +1 -1
- package/dist/lib/http/routes/auth.d.ts.map +1 -1
- package/dist/lib/http/routes/auth.js +4 -5
- package/dist/lib/http/routes/auth.js.map +1 -1
- package/dist/lib/http/routes/candidates.d.ts.map +1 -1
- package/dist/lib/http/routes/candidates.js +10 -11
- package/dist/lib/http/routes/candidates.js.map +1 -1
- package/dist/lib/http/routes/commands.d.ts.map +1 -1
- package/dist/lib/http/routes/commands.js +14 -15
- package/dist/lib/http/routes/commands.js.map +1 -1
- package/dist/lib/http/routes/extract.d.ts.map +1 -1
- package/dist/lib/http/routes/extract.js +4 -5
- package/dist/lib/http/routes/extract.js.map +1 -1
- package/dist/lib/http/routes/guard.d.ts.map +1 -1
- package/dist/lib/http/routes/guard.js +4 -5
- package/dist/lib/http/routes/guard.js.map +1 -1
- package/dist/lib/http/routes/guardRules.d.ts.map +1 -1
- package/dist/lib/http/routes/guardRules.js +22 -23
- package/dist/lib/http/routes/guardRules.js.map +1 -1
- package/dist/lib/http/routes/knowledge.d.ts.map +1 -1
- package/dist/lib/http/routes/knowledge.js +24 -25
- package/dist/lib/http/routes/knowledge.js.map +1 -1
- package/dist/lib/http/routes/modules.d.ts.map +1 -1
- package/dist/lib/http/routes/modules.js +26 -27
- package/dist/lib/http/routes/modules.js.map +1 -1
- package/dist/lib/http/routes/recipes.d.ts.map +1 -1
- package/dist/lib/http/routes/recipes.js +6 -9
- package/dist/lib/http/routes/recipes.js.map +1 -1
- package/dist/lib/http/routes/remote.d.ts.map +1 -1
- package/dist/lib/http/routes/remote.js +74 -37
- package/dist/lib/http/routes/remote.js.map +1 -1
- package/dist/lib/http/routes/search.d.ts.map +1 -1
- package/dist/lib/http/routes/search.js +16 -66
- package/dist/lib/http/routes/search.js.map +1 -1
- package/dist/lib/http/routes/skills.d.ts.map +1 -1
- package/dist/lib/http/routes/skills.js +14 -15
- package/dist/lib/http/routes/skills.js.map +1 -1
- package/dist/lib/http/routes/snippets.d.ts.map +1 -1
- package/dist/lib/http/routes/snippets.js +4 -5
- package/dist/lib/http/routes/snippets.js.map +1 -1
- package/dist/lib/http/routes/task.d.ts.map +1 -1
- package/dist/lib/http/routes/task.js +2 -3
- package/dist/lib/http/routes/task.js.map +1 -1
- package/dist/lib/http/routes/violations.d.ts.map +1 -1
- package/dist/lib/http/routes/violations.js +6 -7
- package/dist/lib/http/routes/violations.js.map +1 -1
- package/dist/lib/http/routes/wiki.d.ts.map +1 -1
- package/dist/lib/http/routes/wiki.js +14 -14
- package/dist/lib/http/routes/wiki.js.map +1 -1
- package/dist/lib/http/utils/sse-sessions.d.ts +1 -1
- package/dist/lib/infrastructure/audit/AuditStore.d.ts +2 -1
- package/dist/lib/infrastructure/audit/AuditStore.d.ts.map +1 -1
- package/dist/lib/infrastructure/audit/AuditStore.js +2 -2
- package/dist/lib/infrastructure/audit/AuditStore.js.map +1 -1
- package/dist/lib/infrastructure/config/ConfigLoader.d.ts.map +1 -1
- package/dist/lib/infrastructure/config/ConfigLoader.js +1 -2
- package/dist/lib/infrastructure/config/ConfigLoader.js.map +1 -1
- package/dist/lib/infrastructure/database/DatabaseConnection.d.ts.map +1 -1
- package/dist/lib/infrastructure/database/DatabaseConnection.js +3 -3
- package/dist/lib/infrastructure/database/DatabaseConnection.js.map +1 -1
- package/dist/lib/infrastructure/database/drizzle/index.d.ts +2 -0
- package/dist/lib/infrastructure/database/drizzle/index.d.ts.map +1 -1
- package/dist/lib/infrastructure/database/drizzle/index.js +2 -0
- package/dist/lib/infrastructure/database/drizzle/index.js.map +1 -1
- package/dist/lib/injection/ServiceContainer.d.ts.map +1 -1
- package/dist/lib/injection/ServiceContainer.js +13 -1
- package/dist/lib/injection/ServiceContainer.js.map +1 -1
- package/dist/lib/injection/modules/AgentModule.d.ts.map +1 -1
- package/dist/lib/injection/modules/AgentModule.js +2 -1
- package/dist/lib/injection/modules/AgentModule.js.map +1 -1
- package/dist/lib/injection/modules/AppModule.d.ts.map +1 -1
- package/dist/lib/injection/modules/AppModule.js +13 -6
- package/dist/lib/injection/modules/AppModule.js.map +1 -1
- package/dist/lib/injection/modules/GuardModule.d.ts.map +1 -1
- package/dist/lib/injection/modules/GuardModule.js +7 -3
- package/dist/lib/injection/modules/GuardModule.js.map +1 -1
- package/dist/lib/injection/modules/InfraModule.d.ts.map +1 -1
- package/dist/lib/injection/modules/InfraModule.js +18 -5
- package/dist/lib/injection/modules/InfraModule.js.map +1 -1
- package/dist/lib/injection/modules/KnowledgeModule.d.ts.map +1 -1
- package/dist/lib/injection/modules/KnowledgeModule.js +3 -4
- package/dist/lib/injection/modules/KnowledgeModule.js.map +1 -1
- package/dist/lib/platform/ios/routes/spm.d.ts.map +1 -1
- package/dist/lib/platform/ios/routes/spm.js +16 -17
- package/dist/lib/platform/ios/routes/spm.js.map +1 -1
- package/dist/lib/platform/ios/spm/PolicyEngine.d.ts.map +1 -1
- package/dist/lib/platform/ios/spm/PolicyEngine.js +3 -1
- package/dist/lib/platform/ios/spm/PolicyEngine.js.map +1 -1
- package/dist/lib/repository/knowledge/KnowledgeRepository.impl.d.ts +2 -1
- package/dist/lib/repository/knowledge/KnowledgeRepository.impl.d.ts.map +1 -1
- package/dist/lib/repository/knowledge/KnowledgeRepository.impl.js +2 -2
- package/dist/lib/repository/knowledge/KnowledgeRepository.impl.js.map +1 -1
- package/dist/lib/repository/remote/RemoteCommandRepository.d.ts +2 -1
- package/dist/lib/repository/remote/RemoteCommandRepository.d.ts.map +1 -1
- package/dist/lib/repository/remote/RemoteCommandRepository.js +2 -2
- package/dist/lib/repository/remote/RemoteCommandRepository.js.map +1 -1
- package/dist/lib/repository/task/TaskRepository.impl.d.ts +2 -1
- package/dist/lib/repository/task/TaskRepository.impl.d.ts.map +1 -1
- package/dist/lib/repository/task/TaskRepository.impl.js +2 -2
- package/dist/lib/repository/task/TaskRepository.impl.js.map +1 -1
- package/dist/lib/repository/token/TokenUsageStore.d.ts +2 -1
- package/dist/lib/repository/token/TokenUsageStore.d.ts.map +1 -1
- package/dist/lib/repository/token/TokenUsageStore.js +2 -2
- package/dist/lib/repository/token/TokenUsageStore.js.map +1 -1
- package/dist/lib/service/agent/AgentEventBus.d.ts.map +1 -1
- package/dist/lib/service/agent/AgentEventBus.js +10 -10
- package/dist/lib/service/agent/AgentEventBus.js.map +1 -1
- package/dist/lib/service/agent/IntentClassifier.d.ts +20 -0
- package/dist/lib/service/agent/IntentClassifier.d.ts.map +1 -1
- package/dist/lib/service/agent/IntentClassifier.js +59 -4
- package/dist/lib/service/agent/IntentClassifier.js.map +1 -1
- package/dist/lib/service/agent/LarkTransport.d.ts.map +1 -1
- package/dist/lib/service/agent/LarkTransport.js +37 -18
- package/dist/lib/service/agent/LarkTransport.js.map +1 -1
- package/dist/lib/service/agent/context/ExplorationTracker.d.ts.map +1 -1
- package/dist/lib/service/agent/context/ExplorationTracker.js +5 -2
- package/dist/lib/service/agent/context/ExplorationTracker.js.map +1 -1
- package/dist/lib/service/agent/forced-summary.d.ts +4 -2
- package/dist/lib/service/agent/forced-summary.d.ts.map +1 -1
- package/dist/lib/service/agent/forced-summary.js +78 -11
- package/dist/lib/service/agent/forced-summary.js.map +1 -1
- package/dist/lib/service/agent/tools/index.d.ts.map +1 -1
- package/dist/lib/service/agent/tools/infrastructure.d.ts.map +1 -1
- package/dist/lib/service/agent/tools/infrastructure.js +6 -2
- package/dist/lib/service/agent/tools/infrastructure.js.map +1 -1
- package/dist/lib/service/automation/FileWatcher.d.ts.map +1 -1
- package/dist/lib/service/automation/FileWatcher.js +4 -8
- package/dist/lib/service/automation/FileWatcher.js.map +1 -1
- package/dist/lib/service/automation/handlers/AlinkHandler.d.ts.map +1 -1
- package/dist/lib/service/automation/handlers/AlinkHandler.js +4 -2
- package/dist/lib/service/automation/handlers/AlinkHandler.js.map +1 -1
- package/dist/lib/service/guard/ViolationsStore.d.ts +2 -1
- package/dist/lib/service/guard/ViolationsStore.d.ts.map +1 -1
- package/dist/lib/service/guard/ViolationsStore.js +2 -2
- package/dist/lib/service/guard/ViolationsStore.js.map +1 -1
- package/dist/lib/service/skills/SkillAdvisor.d.ts.map +1 -1
- package/dist/lib/service/skills/SkillAdvisor.js +3 -1
- package/dist/lib/service/skills/SkillAdvisor.js.map +1 -1
- package/dist/lib/service/skills/SkillHooks.d.ts +5 -1
- package/dist/lib/service/skills/SkillHooks.d.ts.map +1 -1
- package/dist/lib/service/skills/SkillHooks.js +5 -4
- package/dist/lib/service/skills/SkillHooks.js.map +1 -1
- package/dist/lib/shared/UnifiedValidator.d.ts +1 -1
- package/dist/lib/shared/UnifiedValidator.d.ts.map +1 -1
- package/dist/lib/shared/UnifiedValidator.js +2 -2
- package/dist/lib/shared/UnifiedValidator.js.map +1 -1
- package/dist/lib/shared/isOwnDevRepo.d.ts.map +1 -1
- package/dist/lib/shared/isOwnDevRepo.js +11 -11
- package/dist/lib/shared/isOwnDevRepo.js.map +1 -1
- package/dist/lib/shared/package-root.d.ts.map +1 -1
- package/dist/lib/shared/package-root.js +1 -3
- package/dist/lib/shared/package-root.js.map +1 -1
- package/dist/lib/shared/resolveProjectRoot.d.ts +26 -0
- package/dist/lib/shared/resolveProjectRoot.d.ts.map +1 -0
- package/dist/lib/shared/resolveProjectRoot.js +24 -0
- package/dist/lib/shared/resolveProjectRoot.js.map +1 -0
- package/dist/lib/shared/schemas/http-requests.d.ts +0 -6
- package/dist/lib/shared/schemas/http-requests.d.ts.map +1 -1
- package/dist/lib/shared/schemas/http-requests.js +0 -6
- package/dist/lib/shared/schemas/http-requests.js.map +1 -1
- package/dist/lib/shared/schemas/mcp-tools.d.ts +1 -1
- package/dist/lib/types/database.d.ts +14 -0
- package/dist/lib/types/database.d.ts.map +1 -0
- package/dist/lib/types/database.js +2 -0
- package/dist/lib/types/database.js.map +1 -0
- package/dist/scripts/build-native-ui.js +1 -4
- package/dist/scripts/build-native-ui.js.map +1 -1
- package/dist/scripts/install-cursor-skill.js +2 -5
- package/dist/scripts/install-cursor-skill.js.map +1 -1
- package/dist/scripts/install-full.js +1 -4
- package/dist/scripts/install-full.js.map +1 -1
- package/dist/scripts/install-vscode-copilot.js +1 -4
- package/dist/scripts/install-vscode-copilot.js.map +1 -1
- package/dist/scripts/release.js +1 -4
- package/dist/scripts/release.js.map +1 -1
- package/package.json +23 -24
- package/scripts/postbuild.mjs +2 -3
- package/scripts/{postinstall-safe.js → postinstall-safe.mjs} +1 -4
- package/templates/guard-ci.yml +1 -1
- package/dashboard/dist/assets/axios-C0Zqfgkc.js +0 -6
- package/dashboard/dist/assets/framer-motion-DOATyqla.js +0 -9
- package/dashboard/dist/assets/icons-0-btqT36.js +0 -531
- package/dashboard/dist/assets/index--XYC2yVO.js +0 -128
- package/dashboard/dist/assets/index-DNCrgh_C.css +0 -1
- 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',
|
|
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',
|
|
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',
|
|
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),
|
|
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),
|
|
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),
|
|
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),
|
|
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),
|
|
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),
|
|
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',
|
|
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',
|
|
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),
|
|
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',
|
|
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;
|
|
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',
|
|
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',
|
|
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":"AAAA;;;;;;GAMG;AAEH,OAAO,OAAwC,MAAM,SAAS,CAAC;AAC/D,OAAO,MAAM,MAAM,wCAAwC,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;
|
|
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;
|
|
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
|
-
//
|
|
199
|
-
|
|
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
|
-
},
|
|
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
|
|
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
|
-
|
|
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',
|
|
455
|
+
router.post('/lark/start', async (_req, res) => {
|
|
420
456
|
res.json(await startLarkWS());
|
|
421
|
-
})
|
|
422
|
-
router.post('/lark/stop',
|
|
457
|
+
});
|
|
458
|
+
router.post('/lark/stop', async (_req, res) => {
|
|
423
459
|
res.json(stopLarkWS());
|
|
424
|
-
})
|
|
425
|
-
router.get('/lark/status',
|
|
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',
|
|
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',
|
|
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',
|
|
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),
|
|
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),
|
|
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',
|
|
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),
|
|
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),
|
|
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',
|
|
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 {
|