@myassis/gateway 1.0.18 → 1.0.20
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/dist/api/index.js +27 -19
- package/dist/cli.js +18 -5
- package/dist/config/index.js +34 -11
- package/dist/index.js +1 -2
- package/dist/main.js +76 -71
- package/dist/middleware/auth.js +9 -5
- package/dist/middleware/errorHandler.js +9 -4
- package/dist/routes/agent.js +39 -37
- package/dist/routes/auth.js +32 -30
- package/dist/routes/chat.js +7 -5
- package/dist/routes/config.js +5 -3
- package/dist/routes/models.js +28 -23
- package/dist/routes/service.js +29 -24
- package/dist/routes/settings.js +26 -21
- package/dist/routes/skillHub.js +22 -17
- package/dist/routes/skills.js +25 -20
- package/dist/routes/tasks.js +24 -19
- package/dist/routes/upload.js +24 -17
- package/dist/routes/version.js +20 -19
- package/dist/services/HMSPushService.js +4 -1
- package/dist/services/LocalTaskService.js +12 -9
- package/dist/services/NotificationService.js +14 -11
- package/dist/services/ServiceManager.js +77 -65
- package/dist/services/TaskSchedulerService.js +33 -30
- package/dist/services/TaskService.js +27 -24
- package/dist/services/WebSocketService.js +14 -11
- package/dist/services/agent/Agent.js +13 -9
- package/dist/services/agent/AgentManager.js +32 -24
- package/dist/services/agent/AgentStore.js +7 -3
- package/dist/services/dataService.js +72 -69
- package/dist/services/index.js +25 -9
- package/dist/services/llm/LLMClient.js +17 -9
- package/dist/services/memory/MemoryManager.js +22 -18
- package/dist/services/model/ModelCapabilities.js +11 -7
- package/dist/services/model/index.js +17 -1
- package/dist/services/models.js +5 -1
- package/dist/services/session/MigrationManager.js +18 -11
- package/dist/services/session/Session.js +33 -29
- package/dist/services/session/SessionManager.js +26 -21
- package/dist/services/session/SessionStore.js +32 -25
- package/dist/services/session/index.js +8 -2
- package/dist/services/skills.js +4 -1
- package/dist/services/systemPrompt.js +23 -16
- package/dist/services/task/PushTokenStore.js +9 -5
- package/dist/services/task/TaskStore.js +10 -6
- package/dist/services/tools/calculator.js +4 -1
- package/dist/services/tools/edit.js +16 -10
- package/dist/services/tools/exec.js +25 -16
- package/dist/services/tools/fetch.js +30 -4
- package/dist/services/tools/file.js +41 -35
- package/dist/services/tools/index.js +44 -24
- package/dist/services/tools/keyboard.js +41 -38
- package/dist/services/tools/model.js +12 -9
- package/dist/services/tools/mouse.js +12 -9
- package/dist/services/tools/screenshot.js +9 -3
- package/dist/services/tools/search.js +34 -4
- package/dist/services/tools/sessionsSpawn.js +11 -8
- package/dist/services/tools/skill.js +19 -16
- package/dist/services/tools/task.js +12 -9
- package/dist/services/tools/types.js +2 -1
- package/dist/services/tools/webFetch.js +34 -4
- package/dist/stores/authStore.js +25 -19
- package/dist/stores/index.js +9 -3
- package/dist/stores/memoryStore.js +5 -2
- package/dist/stores/persistStore.js +20 -14
- package/package.json +11 -20
package/dist/routes/agent.js
CHANGED
|
@@ -1,26 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
const
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const express_1 = require("express");
|
|
4
|
+
const auth_js_1 = require("../middleware/auth.js");
|
|
5
|
+
const index_js_1 = require("../api/index.js");
|
|
6
|
+
const index_js_2 = require("../services/session/index.js");
|
|
7
|
+
const AgentManager_js_1 = require("../services/agent/AgentManager.js");
|
|
8
|
+
const AgentStore_js_1 = require("../services/agent/AgentStore.js");
|
|
9
|
+
const shared_1 = require("@myassis/shared");
|
|
10
|
+
const logger = (0, shared_1.getLogger)('AgentRoutes');
|
|
11
|
+
const SessionStore_js_1 = require("../services/session/SessionStore.js");
|
|
12
|
+
const router = (0, express_1.Router)();
|
|
11
13
|
// 所有路由需要认证
|
|
12
|
-
router.use(requireAuth, (req, _res, next) => {
|
|
13
|
-
void runWithToken(req.token, async () => { next(); });
|
|
14
|
+
router.use(auth_js_1.requireAuth, (req, _res, next) => {
|
|
15
|
+
void (0, index_js_1.runWithToken)(req.token, async () => { next(); });
|
|
14
16
|
});
|
|
15
17
|
// Middleware: ensure agentManager is initialized
|
|
16
18
|
function ensureAgentManager(req, res, next) {
|
|
17
19
|
try {
|
|
18
20
|
// Get or create AgentStore using SessionStore's db instance
|
|
19
|
-
const db = sessionStore.getDb();
|
|
20
|
-
const agentStore = new AgentStore(db);
|
|
21
|
-
const agentManager = initAgentManager(agentStore, req.userId);
|
|
21
|
+
const db = SessionStore_js_1.sessionStore.getDb();
|
|
22
|
+
const agentStore = new AgentStore_js_1.AgentStore(db);
|
|
23
|
+
const agentManager = (0, AgentManager_js_1.initAgentManager)(agentStore, req.userId);
|
|
22
24
|
agentManager.initialize();
|
|
23
|
-
req.agentManager = agentManagerMap;
|
|
25
|
+
req.agentManager = AgentManager_js_1.agentManagerMap;
|
|
24
26
|
next();
|
|
25
27
|
}
|
|
26
28
|
catch (error) {
|
|
@@ -36,7 +38,7 @@ function ensureAgentManager(req, res, next) {
|
|
|
36
38
|
router.get('/list', ensureAgentManager, async (req, res) => {
|
|
37
39
|
try {
|
|
38
40
|
const userId = req.userId;
|
|
39
|
-
const agentManager = agentManagerMap.get(userId);
|
|
41
|
+
const agentManager = AgentManager_js_1.agentManagerMap.get(userId);
|
|
40
42
|
const agentList = agentManager.getAgentList();
|
|
41
43
|
res.json({ success: true, data: agentList });
|
|
42
44
|
}
|
|
@@ -52,7 +54,7 @@ router.get('/list', ensureAgentManager, async (req, res) => {
|
|
|
52
54
|
router.get('/:id', ensureAgentManager, async (req, res) => {
|
|
53
55
|
try {
|
|
54
56
|
const userId = req.userId;
|
|
55
|
-
const agentManager = agentManagerMap.get(userId);
|
|
57
|
+
const agentManager = AgentManager_js_1.agentManagerMap.get(userId);
|
|
56
58
|
const agent = agentManager.getAgent(req.params.id);
|
|
57
59
|
if (!agent) {
|
|
58
60
|
return res.status(404).json({ success: false, error: 'Agent not found' });
|
|
@@ -87,7 +89,7 @@ router.post('/create', ensureAgentManager, async (req, res) => {
|
|
|
87
89
|
if (!name) {
|
|
88
90
|
return res.status(400).json({ success: false, error: 'Name is required' });
|
|
89
91
|
}
|
|
90
|
-
const agentManager = agentManagerMap.get(userId);
|
|
92
|
+
const agentManager = AgentManager_js_1.agentManagerMap.get(userId);
|
|
91
93
|
const agent = agentManager.createAgent({
|
|
92
94
|
name,
|
|
93
95
|
description,
|
|
@@ -123,7 +125,7 @@ router.put('/:id', ensureAgentManager, async (req, res) => {
|
|
|
123
125
|
const userId = req.userId;
|
|
124
126
|
logger.debug('update agent', req.body);
|
|
125
127
|
const { name, description, systemPrompt, avatar, config } = req.body;
|
|
126
|
-
const agentManager = agentManagerMap.get(userId);
|
|
128
|
+
const agentManager = AgentManager_js_1.agentManagerMap.get(userId);
|
|
127
129
|
const agent = agentManager.updateAgent(req.params.id, {
|
|
128
130
|
name,
|
|
129
131
|
description,
|
|
@@ -159,7 +161,7 @@ router.put('/:id', ensureAgentManager, async (req, res) => {
|
|
|
159
161
|
router.delete('/:id', ensureAgentManager, async (req, res) => {
|
|
160
162
|
try {
|
|
161
163
|
const userId = req.userId;
|
|
162
|
-
const agentManager = agentManagerMap.get(userId);
|
|
164
|
+
const agentManager = AgentManager_js_1.agentManagerMap.get(userId);
|
|
163
165
|
const deleted = agentManager.deleteAgent(req.params.id);
|
|
164
166
|
if (!deleted) {
|
|
165
167
|
return res.status(404).json({ success: false, error: 'Agent not found' });
|
|
@@ -180,7 +182,7 @@ router.delete('/:id', ensureAgentManager, async (req, res) => {
|
|
|
180
182
|
router.get('/current', ensureAgentManager, async (req, res) => {
|
|
181
183
|
try {
|
|
182
184
|
const userId = req.userId;
|
|
183
|
-
const agentManager = agentManagerMap.get(userId);
|
|
185
|
+
const agentManager = AgentManager_js_1.agentManagerMap.get(userId);
|
|
184
186
|
const current = agentManager.getCurrentAgent();
|
|
185
187
|
res.json({
|
|
186
188
|
success: true, data: current ? {
|
|
@@ -209,7 +211,7 @@ router.post('/set-current', ensureAgentManager, async (req, res) => {
|
|
|
209
211
|
try {
|
|
210
212
|
const userId = req.userId;
|
|
211
213
|
const { agentId } = req.body;
|
|
212
|
-
const agentManager = agentManagerMap.get(userId);
|
|
214
|
+
const agentManager = AgentManager_js_1.agentManagerMap.get(userId);
|
|
213
215
|
agentManager.setCurrentAgent(agentId || null);
|
|
214
216
|
res.json({ success: true });
|
|
215
217
|
}
|
|
@@ -226,7 +228,7 @@ router.post('/set-current', ensureAgentManager, async (req, res) => {
|
|
|
226
228
|
router.get('/:id/sessions', ensureAgentManager, async (req, res) => {
|
|
227
229
|
try {
|
|
228
230
|
const userId = req.userId;
|
|
229
|
-
const agentManager = agentManagerMap.get(userId);
|
|
231
|
+
const agentManager = AgentManager_js_1.agentManagerMap.get(userId);
|
|
230
232
|
const agent = agentManager.getAgent(req.params.id);
|
|
231
233
|
if (!agent) {
|
|
232
234
|
return res.status(404).json({ success: false, error: 'Agent not found' });
|
|
@@ -246,7 +248,7 @@ router.get('/:id/sessions', ensureAgentManager, async (req, res) => {
|
|
|
246
248
|
router.post('/:id/sessions', ensureAgentManager, async (req, res) => {
|
|
247
249
|
try {
|
|
248
250
|
const userId = req.userId;
|
|
249
|
-
const agentManager = agentManagerMap.get(userId);
|
|
251
|
+
const agentManager = AgentManager_js_1.agentManagerMap.get(userId);
|
|
250
252
|
const agent = agentManager.getAgent(req.params.id);
|
|
251
253
|
if (!agent) {
|
|
252
254
|
return res.status(404).json({ success: false, error: 'Agent not found' });
|
|
@@ -279,7 +281,7 @@ router.post('/:id/sessions', ensureAgentManager, async (req, res) => {
|
|
|
279
281
|
router.put('/:id/sessions/:sessionId', ensureAgentManager, async (req, res) => {
|
|
280
282
|
try {
|
|
281
283
|
const userId = req.userId;
|
|
282
|
-
const agentManager = agentManagerMap.get(userId);
|
|
284
|
+
const agentManager = AgentManager_js_1.agentManagerMap.get(userId);
|
|
283
285
|
const agent = agentManager.getAgent(req.params.id);
|
|
284
286
|
if (!agent) {
|
|
285
287
|
return res.status(404).json({ success: false, error: 'Agent not found' });
|
|
@@ -309,7 +311,7 @@ router.put('/:id/sessions/:sessionId', ensureAgentManager, async (req, res) => {
|
|
|
309
311
|
router.delete('/:id/sessions/:sessionId', ensureAgentManager, async (req, res) => {
|
|
310
312
|
try {
|
|
311
313
|
const userId = req.userId;
|
|
312
|
-
const agentManager = agentManagerMap.get(userId);
|
|
314
|
+
const agentManager = AgentManager_js_1.agentManagerMap.get(userId);
|
|
313
315
|
const agent = agentManager.getAgent(req.params.id);
|
|
314
316
|
if (!agent) {
|
|
315
317
|
return res.status(404).json({ success: false, error: 'Agent not found' });
|
|
@@ -334,7 +336,7 @@ router.get('/sessions/:sessionId/messages', ensureAgentManager, async (req, res)
|
|
|
334
336
|
const page = parseInt(req.query.page) || 1;
|
|
335
337
|
const pageSize = parseInt(req.query.pageSize) || 20;
|
|
336
338
|
// Find session directly
|
|
337
|
-
const session = getSessionManager(userId).getSession(sessionId);
|
|
339
|
+
const session = (0, index_js_2.getSessionManager)(userId).getSession(sessionId);
|
|
338
340
|
if (session) {
|
|
339
341
|
session.loadMessages(); // Ensure messages are loaded
|
|
340
342
|
const messages = session.getMessagesByPage(page, pageSize);
|
|
@@ -365,7 +367,7 @@ router.delete('/sessions/:sessionId/messages/:messageId', ensureAgentManager, as
|
|
|
365
367
|
const userId = req.userId;
|
|
366
368
|
const { sessionId, messageId } = req.params;
|
|
367
369
|
// Find session directly
|
|
368
|
-
const session = getSessionManager(userId).getSession(sessionId);
|
|
370
|
+
const session = (0, index_js_2.getSessionManager)(userId).getSession(sessionId);
|
|
369
371
|
if (session) {
|
|
370
372
|
session.deleteMessage(messageId);
|
|
371
373
|
return res.json({ success: true });
|
|
@@ -389,7 +391,7 @@ router.put('/sessions/:sessionId/messages/:messageId/feedback', ensureAgentManag
|
|
|
389
391
|
if (feedback !== null && feedback !== 'like' && feedback !== 'dislike') {
|
|
390
392
|
return res.status(400).json({ success: false, error: 'Invalid feedback value. Must be "like", "dislike", or null' });
|
|
391
393
|
}
|
|
392
|
-
const session = getSessionManager(userId).getSession(sessionId);
|
|
394
|
+
const session = (0, index_js_2.getSessionManager)(userId).getSession(sessionId);
|
|
393
395
|
if (session) {
|
|
394
396
|
session.updateMessageFeedback(messageId, feedback);
|
|
395
397
|
return res.json({ success: true, data: { messageId, feedback } });
|
|
@@ -410,7 +412,7 @@ router.delete('/sessions/:sessionId/messages', ensureAgentManager, async (req, r
|
|
|
410
412
|
const userId = req.userId;
|
|
411
413
|
const { sessionId } = req.params;
|
|
412
414
|
// Find session directly
|
|
413
|
-
const session = getSessionManager(userId).getSession(sessionId);
|
|
415
|
+
const session = (0, index_js_2.getSessionManager)(userId).getSession(sessionId);
|
|
414
416
|
if (session) {
|
|
415
417
|
session.clearMessages();
|
|
416
418
|
return res.json({ success: true });
|
|
@@ -435,7 +437,7 @@ router.post('/sessions/:sessionId/stream', ensureAgentManager, async (req, res)
|
|
|
435
437
|
return res.status(400).json({ success: false, error: 'Content is required' });
|
|
436
438
|
}
|
|
437
439
|
// Find session directly
|
|
438
|
-
const session = getSessionManager(userId).getSession(sessionId);
|
|
440
|
+
const session = (0, index_js_2.getSessionManager)(userId).getSession(sessionId);
|
|
439
441
|
if (session) {
|
|
440
442
|
// Set SSE headers
|
|
441
443
|
res.setHeader('Content-Type', 'text/event-stream');
|
|
@@ -475,7 +477,7 @@ router.post('/sessions/:sessionId/reset', async (req, res) => {
|
|
|
475
477
|
try {
|
|
476
478
|
const userId = req.userId;
|
|
477
479
|
const { sessionId } = req.params;
|
|
478
|
-
const stopped = getSessionManager(userId).stopSession(sessionId);
|
|
480
|
+
const stopped = (0, index_js_2.getSessionManager)(userId).stopSession(sessionId);
|
|
479
481
|
res.json({ success: true, data: { stopped } });
|
|
480
482
|
}
|
|
481
483
|
catch (error) {
|
|
@@ -492,9 +494,9 @@ router.post('/sessions/:sessionId/set-current', async (req, res) => {
|
|
|
492
494
|
try {
|
|
493
495
|
const userId = req.userId;
|
|
494
496
|
const { sessionId } = req.params;
|
|
495
|
-
getSessionManager(userId).setCurrentSession(sessionId);
|
|
497
|
+
(0, index_js_2.getSessionManager)(userId).setCurrentSession(sessionId);
|
|
496
498
|
// 同步清除 session 的未读数
|
|
497
|
-
const session = getSessionManager(userId).getSession(sessionId);
|
|
499
|
+
const session = (0, index_js_2.getSessionManager)(userId).getSession(sessionId);
|
|
498
500
|
if (session) {
|
|
499
501
|
session.clearUnreadCount();
|
|
500
502
|
}
|
|
@@ -513,7 +515,7 @@ router.post('/sessions/:sessionId/set-current', async (req, res) => {
|
|
|
513
515
|
router.get('/sessions/unread-count', async (req, res) => {
|
|
514
516
|
try {
|
|
515
517
|
const userId = req.userId;
|
|
516
|
-
const total = getSessionManager(userId).getTotalUnreadCount();
|
|
518
|
+
const total = (0, index_js_2.getSessionManager)(userId).getTotalUnreadCount();
|
|
517
519
|
res.json({ success: true, data: { total } });
|
|
518
520
|
}
|
|
519
521
|
catch (error) {
|
|
@@ -521,4 +523,4 @@ router.get('/sessions/unread-count', async (req, res) => {
|
|
|
521
523
|
res.status(500).json({ success: false, error: 'Failed to get unread count' });
|
|
522
524
|
}
|
|
523
525
|
});
|
|
524
|
-
|
|
526
|
+
exports.default = router;
|
package/dist/routes/auth.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
const
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const express_1 = require("express");
|
|
4
|
+
const index_js_1 = require("../api/index.js");
|
|
5
|
+
const index_js_2 = require("../stores/index.js");
|
|
6
|
+
const auth_js_1 = require("../middleware/auth.js");
|
|
7
|
+
const index_js_3 = require("../api/index.js");
|
|
8
|
+
const shared_1 = require("@myassis/shared");
|
|
9
|
+
const system_js_1 = require("@myassis/shared/dist/utils/system.js");
|
|
10
|
+
const logger = (0, shared_1.getLogger)('auth');
|
|
11
|
+
const router = (0, express_1.Router)();
|
|
10
12
|
// Get publish token - 获取发布技能库所需的 token
|
|
11
|
-
router.get('/publish-token', requireAuth, async (req, res) => {
|
|
13
|
+
router.get('/publish-token', auth_js_1.requireAuth, async (req, res) => {
|
|
12
14
|
res.json({
|
|
13
15
|
success: true,
|
|
14
16
|
token: req.token,
|
|
@@ -24,15 +26,15 @@ router.post('/register', async (req, res) => {
|
|
|
24
26
|
return;
|
|
25
27
|
}
|
|
26
28
|
// 使用 authApi.register(服务端路由期望 account 字段)
|
|
27
|
-
const response = await authApi.register({
|
|
29
|
+
const response = await index_js_1.authApi.register({
|
|
28
30
|
account: username,
|
|
29
31
|
password,
|
|
30
32
|
nickname: username,
|
|
31
|
-
platform: getPlatform(),
|
|
33
|
+
platform: (0, system_js_1.getPlatform)(),
|
|
32
34
|
});
|
|
33
35
|
if (response.success && response.data) {
|
|
34
36
|
const expiresIn = response.data.expiresIn || 86400;
|
|
35
|
-
authStore.save({
|
|
37
|
+
index_js_2.authStore.save({
|
|
36
38
|
accessToken: response.data.accessToken,
|
|
37
39
|
refreshToken: response.data.refreshToken,
|
|
38
40
|
expiresIn,
|
|
@@ -66,13 +68,13 @@ router.post('/login', async (req, res) => {
|
|
|
66
68
|
return;
|
|
67
69
|
}
|
|
68
70
|
// 使用 authApi.login(服务端路由期望 email 字段)
|
|
69
|
-
const response = await authApi.login({
|
|
71
|
+
const response = await index_js_1.authApi.login({
|
|
70
72
|
account: username,
|
|
71
73
|
password,
|
|
72
|
-
platform: getPlatform(),
|
|
74
|
+
platform: (0, system_js_1.getPlatform)(),
|
|
73
75
|
});
|
|
74
76
|
if (response.success && response.data) {
|
|
75
|
-
authStore.save(response.data);
|
|
77
|
+
index_js_2.authStore.save(response.data);
|
|
76
78
|
res.json({
|
|
77
79
|
success: true,
|
|
78
80
|
data: response.data,
|
|
@@ -98,9 +100,9 @@ router.post('/refresh', async (req, res) => {
|
|
|
98
100
|
res.status(400).json({ success: false, error: 'Missing refresh token' });
|
|
99
101
|
return;
|
|
100
102
|
}
|
|
101
|
-
const response = await authApi.refresh(refreshToken);
|
|
103
|
+
const response = await index_js_1.authApi.refresh(refreshToken);
|
|
102
104
|
if (response.success && response.accessToken) {
|
|
103
|
-
authStore.updateToken(response.accessToken, response.refreshToken);
|
|
105
|
+
index_js_2.authStore.updateToken(response.accessToken, response.refreshToken);
|
|
104
106
|
res.json({ success: true });
|
|
105
107
|
}
|
|
106
108
|
else {
|
|
@@ -116,29 +118,29 @@ router.post('/refresh', async (req, res) => {
|
|
|
116
118
|
}
|
|
117
119
|
});
|
|
118
120
|
// Logout - 清除本地存储
|
|
119
|
-
router.post('/logout', requireAuth, async (req, res) => {
|
|
121
|
+
router.post('/logout', auth_js_1.requireAuth, async (req, res) => {
|
|
120
122
|
try {
|
|
121
123
|
const { refreshToken } = req.body;
|
|
122
124
|
// 用 AsyncLocalStorage 将 token 注入 server 请求上下文
|
|
123
|
-
await runWithToken(req.token, async () => {
|
|
125
|
+
await (0, index_js_3.runWithToken)(req.token, async () => {
|
|
124
126
|
if (refreshToken) {
|
|
125
|
-
authApi.logout(req.token).catch(() => { });
|
|
127
|
+
index_js_1.authApi.logout(req.token).catch(() => { });
|
|
126
128
|
}
|
|
127
129
|
});
|
|
128
|
-
authStore.clear();
|
|
130
|
+
index_js_2.authStore.clear();
|
|
129
131
|
res.json({ success: true });
|
|
130
132
|
}
|
|
131
133
|
catch (error) {
|
|
132
|
-
authStore.clear();
|
|
134
|
+
index_js_2.authStore.clear();
|
|
133
135
|
res.json({ success: true });
|
|
134
136
|
}
|
|
135
137
|
});
|
|
136
138
|
// Check authentication - 验证 token 有效性并获取用户信息
|
|
137
|
-
router.get('/isAuth', requireAuth, async (req, res) => {
|
|
139
|
+
router.get('/isAuth', auth_js_1.requireAuth, async (req, res) => {
|
|
138
140
|
try {
|
|
139
141
|
// 用 AsyncLocalStorage 将 token 注入 server 请求上下文
|
|
140
|
-
const userResponse = await runWithToken(req.token, async () => {
|
|
141
|
-
return await authApi.me(req.token);
|
|
142
|
+
const userResponse = await (0, index_js_3.runWithToken)(req.token, async () => {
|
|
143
|
+
return await index_js_1.authApi.me(req.token);
|
|
142
144
|
});
|
|
143
145
|
res.json({
|
|
144
146
|
authenticated: true,
|
|
@@ -156,7 +158,7 @@ router.get('/isAuth', requireAuth, async (req, res) => {
|
|
|
156
158
|
}
|
|
157
159
|
});
|
|
158
160
|
// Delete account - 删除账号
|
|
159
|
-
router.post('/account/delete', requireAuth, async (req, res) => {
|
|
161
|
+
router.post('/account/delete', auth_js_1.requireAuth, async (req, res) => {
|
|
160
162
|
try {
|
|
161
163
|
const { password } = req.body;
|
|
162
164
|
if (!password) {
|
|
@@ -164,9 +166,9 @@ router.post('/account/delete', requireAuth, async (req, res) => {
|
|
|
164
166
|
return;
|
|
165
167
|
}
|
|
166
168
|
// 转发删除账号请求到 Server(带上 token)
|
|
167
|
-
const response = await authApi.deleteAccount({ password }, req.token);
|
|
169
|
+
const response = await index_js_1.authApi.deleteAccount({ password }, req.token);
|
|
168
170
|
if (response.success) {
|
|
169
|
-
authStore.clear();
|
|
171
|
+
index_js_2.authStore.clear();
|
|
170
172
|
}
|
|
171
173
|
res.json(response);
|
|
172
174
|
}
|
|
@@ -178,4 +180,4 @@ router.post('/account/delete', requireAuth, async (req, res) => {
|
|
|
178
180
|
});
|
|
179
181
|
}
|
|
180
182
|
});
|
|
181
|
-
|
|
183
|
+
exports.default = router;
|
package/dist/routes/chat.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const express_1 = require("express");
|
|
4
|
+
const shared_1 = require("@myassis/shared");
|
|
5
|
+
const logger = (0, shared_1.getLogger)('ChatRoutes');
|
|
6
|
+
const router = (0, express_1.Router)();
|
|
5
7
|
// Chat completion proxy - forwards to cloud API
|
|
6
8
|
router.post('/completion', async (req, res) => {
|
|
7
9
|
try {
|
|
@@ -42,4 +44,4 @@ router.post('/stream', async (req, res) => {
|
|
|
42
44
|
res.status(500).json({ error: 'Streaming failed' });
|
|
43
45
|
}
|
|
44
46
|
});
|
|
45
|
-
|
|
47
|
+
exports.default = router;
|
package/dist/routes/config.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const express_1 = require("express");
|
|
4
|
+
const router = (0, express_1.Router)();
|
|
3
5
|
// Get app configuration
|
|
4
6
|
router.get('/', (req, res) => {
|
|
5
7
|
res.json({
|
|
@@ -18,4 +20,4 @@ router.get('/', (req, res) => {
|
|
|
18
20
|
}
|
|
19
21
|
});
|
|
20
22
|
});
|
|
21
|
-
|
|
23
|
+
exports.default = router;
|
package/dist/routes/models.js
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const express_1 = __importDefault(require("express"));
|
|
7
|
+
const shared_1 = require("@myassis/shared");
|
|
8
|
+
const index_js_1 = require("../services/index.js");
|
|
9
|
+
const persistStore_js_1 = require("../stores/persistStore.js");
|
|
10
|
+
const auth_js_1 = require("../middleware/auth.js");
|
|
11
|
+
const index_js_2 = require("../api/index.js");
|
|
12
|
+
const logger = (0, shared_1.getLogger)('models');
|
|
13
|
+
const router = express_1.default.Router();
|
|
14
|
+
router.use(auth_js_1.requireAuth, (req, _res, next) => {
|
|
15
|
+
void (0, index_js_2.runWithToken)(req.token, async () => { next(); });
|
|
11
16
|
});
|
|
12
17
|
/**
|
|
13
18
|
* 获取所有模型配置
|
|
@@ -15,7 +20,7 @@ router.use(requireAuth, (req, _res, next) => {
|
|
|
15
20
|
*/
|
|
16
21
|
router.get('/', async (req, res) => {
|
|
17
22
|
try {
|
|
18
|
-
const result = await modelsService.list(req.token);
|
|
23
|
+
const result = await index_js_1.modelsService.list(req.token);
|
|
19
24
|
res.json(result);
|
|
20
25
|
}
|
|
21
26
|
catch (error) {
|
|
@@ -29,7 +34,7 @@ router.get('/', async (req, res) => {
|
|
|
29
34
|
*/
|
|
30
35
|
router.get('/:id', async (req, res) => {
|
|
31
36
|
try {
|
|
32
|
-
const result = await modelsService.get(req.params.id, req.token);
|
|
37
|
+
const result = await index_js_1.modelsService.get(req.params.id, req.token);
|
|
33
38
|
res.json(result);
|
|
34
39
|
}
|
|
35
40
|
catch (error) {
|
|
@@ -41,21 +46,21 @@ router.get('/:id', async (req, res) => {
|
|
|
41
46
|
* 创建模型配置
|
|
42
47
|
* POST /api/v1/models
|
|
43
48
|
*/
|
|
44
|
-
router.post('/', requireAuth, async (req, res) => {
|
|
49
|
+
router.post('/', auth_js_1.requireAuth, async (req, res) => {
|
|
45
50
|
try {
|
|
46
51
|
const userId = req.userId;
|
|
47
52
|
const modelData = req.body;
|
|
48
53
|
const apiKey = modelData.apiKey;
|
|
49
|
-
const modelCapabilities = detectModelCapabilities(modelData.modelId || '');
|
|
54
|
+
const modelCapabilities = (0, shared_1.detectModelCapabilities)(modelData.modelId || '');
|
|
50
55
|
const dataToSave = {
|
|
51
56
|
...modelData,
|
|
52
57
|
isPrimary: modelData.isPrimary ? 1 : 0,
|
|
53
58
|
isActive: modelData.isActive ? 1 : 0,
|
|
54
59
|
supportsToolCall: modelCapabilities.supportsToolCall ? 1 : 0,
|
|
55
60
|
};
|
|
56
|
-
const result = await runWithToken(req.token, () => modelsService.create(dataToSave, req.token));
|
|
61
|
+
const result = await (0, index_js_2.runWithToken)(req.token, () => index_js_1.modelsService.create(dataToSave, req.token));
|
|
57
62
|
if (apiKey && result.success && result.data?.id) {
|
|
58
|
-
persistStore.setModelApiKey(result.data.id, apiKey);
|
|
63
|
+
persistStore_js_1.persistStore.setModelApiKey(result.data.id, apiKey);
|
|
59
64
|
}
|
|
60
65
|
res.json(result);
|
|
61
66
|
}
|
|
@@ -68,20 +73,20 @@ router.post('/', requireAuth, async (req, res) => {
|
|
|
68
73
|
* 更新模型配置
|
|
69
74
|
* PUT /api/v1/models/:id
|
|
70
75
|
*/
|
|
71
|
-
router.put('/:id', requireAuth, async (req, res) => {
|
|
76
|
+
router.put('/:id', auth_js_1.requireAuth, async (req, res) => {
|
|
72
77
|
try {
|
|
73
78
|
const userId = req.userId;
|
|
74
79
|
const modelData = req.body;
|
|
75
80
|
const apiKey = modelData.apiKey;
|
|
76
81
|
if (apiKey) {
|
|
77
|
-
persistStore.setModelApiKey(req.params.id, apiKey);
|
|
82
|
+
persistStore_js_1.persistStore.setModelApiKey(req.params.id, apiKey);
|
|
78
83
|
}
|
|
79
|
-
const modelCapabilities = detectModelCapabilities(modelData.modelId || '');
|
|
84
|
+
const modelCapabilities = (0, shared_1.detectModelCapabilities)(modelData.modelId || '');
|
|
80
85
|
const dataToSave = {
|
|
81
86
|
...modelData,
|
|
82
87
|
supportsToolCall: modelCapabilities.supportsToolCall ? 1 : 0,
|
|
83
88
|
};
|
|
84
|
-
const result = await runWithToken(req.token, () => modelsService.update(req.params.id, dataToSave, req.token));
|
|
89
|
+
const result = await (0, index_js_2.runWithToken)(req.token, () => index_js_1.modelsService.update(req.params.id, dataToSave, req.token));
|
|
85
90
|
res.json(result);
|
|
86
91
|
}
|
|
87
92
|
catch (error) {
|
|
@@ -95,7 +100,7 @@ router.put('/:id', requireAuth, async (req, res) => {
|
|
|
95
100
|
*/
|
|
96
101
|
router.delete('/:id', async (req, res) => {
|
|
97
102
|
try {
|
|
98
|
-
const result = await modelsService.delete(req.params.id, req.token);
|
|
103
|
+
const result = await index_js_1.modelsService.delete(req.params.id, req.token);
|
|
99
104
|
res.json(result);
|
|
100
105
|
}
|
|
101
106
|
catch (error) {
|
|
@@ -109,7 +114,7 @@ router.delete('/:id', async (req, res) => {
|
|
|
109
114
|
*/
|
|
110
115
|
router.post('/:id/primary', async (req, res) => {
|
|
111
116
|
try {
|
|
112
|
-
const result = await modelsService.setPrimary(req.params.id, req.token);
|
|
117
|
+
const result = await index_js_1.modelsService.setPrimary(req.params.id, req.token);
|
|
113
118
|
res.json(result);
|
|
114
119
|
}
|
|
115
120
|
catch (error) {
|
|
@@ -117,4 +122,4 @@ router.post('/:id/primary', async (req, res) => {
|
|
|
117
122
|
res.status(500).json({ success: false, error: '设置主模型失败' });
|
|
118
123
|
}
|
|
119
124
|
});
|
|
120
|
-
|
|
125
|
+
exports.default = router;
|