@caoruhua/open-claude-remote 0.1.6 → 0.2.3
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 +514 -11
- package/dist/backend/src/api/config-routes.d.ts +2 -2
- package/dist/backend/src/api/config-routes.d.ts.map +1 -1
- package/dist/backend/src/api/config-routes.js +21 -6
- package/dist/backend/src/api/config-routes.js.map +1 -1
- package/dist/backend/src/api/health-routes.d.ts +4 -1
- package/dist/backend/src/api/health-routes.d.ts.map +1 -1
- package/dist/backend/src/api/health-routes.js +20 -2
- package/dist/backend/src/api/health-routes.js.map +1 -1
- package/dist/backend/src/api/hook-routes.d.ts +2 -2
- package/dist/backend/src/api/hook-routes.d.ts.map +1 -1
- package/dist/backend/src/api/hook-routes.js +10 -3
- package/dist/backend/src/api/hook-routes.js.map +1 -1
- package/dist/backend/src/api/instance-routes.d.ts +5 -3
- package/dist/backend/src/api/instance-routes.d.ts.map +1 -1
- package/dist/backend/src/api/instance-routes.js +48 -45
- package/dist/backend/src/api/instance-routes.js.map +1 -1
- package/dist/backend/src/api/router.d.ts +4 -12
- package/dist/backend/src/api/router.d.ts.map +1 -1
- package/dist/backend/src/api/router.js +28 -20
- package/dist/backend/src/api/router.js.map +1 -1
- package/dist/backend/src/api/status-routes.d.ts +2 -2
- package/dist/backend/src/api/status-routes.d.ts.map +1 -1
- package/dist/backend/src/api/status-routes.js +11 -6
- package/dist/backend/src/api/status-routes.js.map +1 -1
- package/dist/backend/src/attach.d.ts +1 -1
- package/dist/backend/src/attach.d.ts.map +1 -1
- package/dist/backend/src/attach.js +25 -71
- package/dist/backend/src/attach.js.map +1 -1
- package/dist/backend/src/cli-utils.d.ts +24 -1
- package/dist/backend/src/cli-utils.d.ts.map +1 -1
- package/dist/backend/src/cli-utils.js +73 -37
- package/dist/backend/src/cli-utils.js.map +1 -1
- package/dist/backend/src/cli.d.ts +22 -2
- package/dist/backend/src/cli.d.ts.map +1 -1
- package/dist/backend/src/cli.js +328 -23
- package/dist/backend/src/cli.js.map +1 -1
- package/dist/backend/src/config.d.ts +48 -15
- package/dist/backend/src/config.d.ts.map +1 -1
- package/dist/backend/src/config.js +126 -27
- package/dist/backend/src/config.js.map +1 -1
- package/dist/backend/src/daemon/daemon-client.d.ts +69 -0
- package/dist/backend/src/daemon/daemon-client.d.ts.map +1 -0
- package/dist/backend/src/daemon/daemon-client.js +209 -0
- package/dist/backend/src/daemon/daemon-client.js.map +1 -0
- package/dist/backend/src/daemon/daemon-entry.d.ts +8 -0
- package/dist/backend/src/daemon/daemon-entry.d.ts.map +1 -0
- package/dist/backend/src/daemon/daemon-entry.js +37 -0
- package/dist/backend/src/daemon/daemon-entry.js.map +1 -0
- package/dist/backend/src/daemon/daemon-launcher.d.ts +13 -0
- package/dist/backend/src/daemon/daemon-launcher.d.ts.map +1 -0
- package/dist/backend/src/daemon/daemon-launcher.js +62 -0
- package/dist/backend/src/daemon/daemon-launcher.js.map +1 -0
- package/dist/backend/src/index.d.ts.map +1 -1
- package/dist/backend/src/index.js +115 -251
- package/dist/backend/src/index.js.map +1 -1
- package/dist/backend/src/instance/index.d.ts +4 -0
- package/dist/backend/src/instance/index.d.ts.map +1 -0
- package/dist/backend/src/instance/index.js +3 -0
- package/dist/backend/src/instance/index.js.map +1 -0
- package/dist/backend/src/instance/instance-manager.d.ts +62 -0
- package/dist/backend/src/instance/instance-manager.d.ts.map +1 -0
- package/dist/backend/src/instance/instance-manager.js +194 -0
- package/dist/backend/src/instance/instance-manager.js.map +1 -0
- package/dist/backend/src/instance/instance-session.d.ts +87 -0
- package/dist/backend/src/instance/instance-session.d.ts.map +1 -0
- package/dist/backend/src/instance/instance-session.js +359 -0
- package/dist/backend/src/instance/instance-session.js.map +1 -0
- package/dist/backend/src/instance/types.d.ts +39 -0
- package/dist/backend/src/instance/types.d.ts.map +1 -0
- package/dist/backend/src/instance/types.js +2 -0
- package/dist/backend/src/instance/types.js.map +1 -0
- package/dist/backend/src/notification/notification-manager.js +1 -1
- package/dist/backend/src/notification/notification-manager.js.map +1 -1
- package/dist/backend/src/notification/notification-service-factory.js +1 -1
- package/dist/backend/src/notification/notification-service-factory.js.map +1 -1
- package/dist/backend/src/pty/virtual-pty.d.ts.map +1 -1
- package/dist/backend/src/pty/virtual-pty.js +6 -0
- package/dist/backend/src/pty/virtual-pty.js.map +1 -1
- package/dist/backend/src/registry/shared-token.d.ts +2 -2
- package/dist/backend/src/registry/shared-token.js +11 -11
- package/dist/backend/src/registry/shared-token.js.map +1 -1
- package/dist/backend/src/registry/stop-instances.d.ts +0 -25
- package/dist/backend/src/registry/stop-instances.d.ts.map +1 -1
- package/dist/backend/src/registry/stop-instances.js +6 -206
- package/dist/backend/src/registry/stop-instances.js.map +1 -1
- package/dist/backend/src/skills/index.d.ts +4 -0
- package/dist/backend/src/skills/index.d.ts.map +1 -0
- package/dist/backend/src/skills/index.js +4 -0
- package/dist/backend/src/skills/index.js.map +1 -0
- package/dist/backend/src/skills/skill-command-merger.d.ts +32 -0
- package/dist/backend/src/skills/skill-command-merger.d.ts.map +1 -0
- package/dist/backend/src/skills/skill-command-merger.js +78 -0
- package/dist/backend/src/skills/skill-command-merger.js.map +1 -0
- package/dist/backend/src/skills/skill-commands.d.ts +25 -0
- package/dist/backend/src/skills/skill-commands.d.ts.map +1 -0
- package/dist/backend/src/skills/skill-commands.js +56 -0
- package/dist/backend/src/skills/skill-commands.js.map +1 -0
- package/dist/backend/src/skills/skill-scanner.d.ts +36 -0
- package/dist/backend/src/skills/skill-scanner.d.ts.map +1 -0
- package/dist/backend/src/skills/skill-scanner.js +143 -0
- package/dist/backend/src/skills/skill-scanner.js.map +1 -0
- package/dist/backend/src/terminal/terminal-relay.d.ts +1 -0
- package/dist/backend/src/terminal/terminal-relay.d.ts.map +1 -1
- package/dist/backend/src/terminal/terminal-relay.js +6 -0
- package/dist/backend/src/terminal/terminal-relay.js.map +1 -1
- package/dist/backend/src/update.d.ts.map +1 -1
- package/dist/backend/src/update.js +46 -1
- package/dist/backend/src/update.js.map +1 -1
- package/dist/backend/src/utils/banner.d.ts +15 -0
- package/dist/backend/src/utils/banner.d.ts.map +1 -0
- package/dist/backend/src/utils/banner.js +95 -0
- package/dist/backend/src/utils/banner.js.map +1 -0
- package/dist/backend/src/ws/ws-server.d.ts +13 -54
- package/dist/backend/src/ws/ws-server.d.ts.map +1 -1
- package/dist/backend/src/ws/ws-server.js +57 -155
- package/dist/backend/src/ws/ws-server.js.map +1 -1
- package/dist/shared/constants.d.ts +2 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +2 -1
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/defaults.d.ts.map +1 -1
- package/dist/shared/defaults.js +1 -5
- package/dist/shared/defaults.js.map +1 -1
- package/dist/shared/instance.d.ts +4 -9
- package/dist/shared/instance.d.ts.map +1 -1
- package/dist/shared/instance.js +0 -2
- package/dist/shared/instance.js.map +1 -1
- package/frontend-dist/assets/index-CM2xfmS8.js +152 -0
- package/frontend-dist/index.html +1 -1
- package/package.json +2 -2
- package/frontend-dist/assets/index-Cfhr3h3e.js +0 -152
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-routes.js","sourceRoot":"","sources":["../../../../backend/src/api/config-routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-routes.js","sourceRoot":"","sources":["../../../../backend/src/api/config-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
|
|
2
|
+
import type { InstanceManager } from '../instance/instance-manager.js';
|
|
3
|
+
/** 设置 daemon 启动时间 */
|
|
4
|
+
export declare function setDaemonStartTime(time: string): void;
|
|
5
|
+
export declare function createHealthRoutes(instanceManager?: InstanceManager): Router;
|
|
3
6
|
//# sourceMappingURL=health-routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-routes.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/health-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"health-routes.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/health-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKvE,qBAAqB;AACrB,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAErD;AAED,wBAAgB,kBAAkB,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,MAAM,CAkB5E"}
|
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
|
|
2
|
+
import { DEFAULT_PORT } from '../../../shared/index.js';
|
|
3
|
+
import { getCurrentVersion } from '../update.js';
|
|
4
|
+
/** Daemon 启动时间(ISO 格式) */
|
|
5
|
+
let daemonStartTime = null;
|
|
6
|
+
/** 设置 daemon 启动时间 */
|
|
7
|
+
export function setDaemonStartTime(time) {
|
|
8
|
+
daemonStartTime = time;
|
|
9
|
+
}
|
|
10
|
+
export function createHealthRoutes(instanceManager) {
|
|
3
11
|
const router = Router();
|
|
4
12
|
router.get('/health', (_req, res) => {
|
|
5
|
-
res.json({
|
|
13
|
+
res.json({
|
|
14
|
+
status: 'ok',
|
|
15
|
+
version: getCurrentVersion(),
|
|
16
|
+
pid: process.pid,
|
|
17
|
+
port: DEFAULT_PORT,
|
|
18
|
+
startedAt: daemonStartTime,
|
|
19
|
+
uptime: daemonStartTime
|
|
20
|
+
? Math.floor((Date.now() - new Date(daemonStartTime).getTime()) / 1000)
|
|
21
|
+
: null,
|
|
22
|
+
instanceCount: instanceManager?.listInstances().length ?? 0,
|
|
23
|
+
});
|
|
6
24
|
});
|
|
7
25
|
return router;
|
|
8
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-routes.js","sourceRoot":"","sources":["../../../../backend/src/api/health-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"health-routes.js","sourceRoot":"","sources":["../../../../backend/src/api/health-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,0BAA0B;AAC1B,IAAI,eAAe,GAAkB,IAAI,CAAC;AAE1C,qBAAqB;AACrB,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,eAAiC;IAClE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAClC,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,iBAAiB,EAAE;YAC5B,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,eAAe;YAC1B,MAAM,EAAE,eAAe;gBACrB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;gBACvE,CAAC,CAAC,IAAI;YACR,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,MAAM,IAAI,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
import {
|
|
3
|
-
export declare function createHookRoutes(
|
|
2
|
+
import type { InstanceManager } from '../instance/instance-manager.js';
|
|
3
|
+
export declare function createHookRoutes(instanceManager: InstanceManager): Router;
|
|
4
4
|
//# sourceMappingURL=hook-routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-routes.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/hook-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"hook-routes.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/hook-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,eAAe,GAAG,MAAM,CAyCzE"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
2
|
import { logger } from '../logger/logger.js';
|
|
3
|
-
export function createHookRoutes(
|
|
3
|
+
export function createHookRoutes(instanceManager) {
|
|
4
4
|
const router = Router();
|
|
5
|
-
router.post('/hook', async (req, res) => {
|
|
5
|
+
router.post('/hook/:instanceId', async (req, res) => {
|
|
6
6
|
// Only accept from localhost
|
|
7
7
|
const ip = req.ip ?? req.socket.remoteAddress ?? '';
|
|
8
8
|
const isLocalhost = ip === '127.0.0.1' || ip === '::1' || ip === '::ffff:127.0.0.1';
|
|
@@ -11,12 +11,19 @@ export function createHookRoutes(hookReceiver) {
|
|
|
11
11
|
res.status(403).json({ error: 'Forbidden' });
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
|
+
const instanceId = req.params.instanceId;
|
|
15
|
+
const session = instanceManager.getInstance(instanceId);
|
|
16
|
+
if (!session) {
|
|
17
|
+
logger.warn({ instanceId }, 'Hook request for unknown instance');
|
|
18
|
+
res.status(404).json({ error: 'Instance not found' });
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
14
21
|
const payload = req.body;
|
|
15
22
|
if (!payload || typeof payload !== 'object') {
|
|
16
23
|
res.status(400).json({ error: 'Invalid payload' });
|
|
17
24
|
return;
|
|
18
25
|
}
|
|
19
|
-
const result = hookReceiver.processHook(payload);
|
|
26
|
+
const result = session.hookReceiver.processHook(payload);
|
|
20
27
|
switch (result.type) {
|
|
21
28
|
case 'notification':
|
|
22
29
|
res.json({ ok: true, tool: result.notification.tool });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-routes.js","sourceRoot":"","sources":["../../../../backend/src/api/hook-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,UAAU,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"hook-routes.js","sourceRoot":"","sources":["../../../../backend/src/api/hook-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,MAAM,UAAU,gBAAgB,CAAC,eAAgC;IAC/D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QACrE,6BAA6B;QAC7B,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,kBAAkB,CAAC;QACpF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,0CAA0C,CAAC,CAAC;YAChE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAoB,CAAC;QACnD,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,mCAAmC,CAAC,CAAC;YACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEzD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,cAAc;gBACjB,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,YAAa,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxD,MAAM;YACR,KAAK,SAAS,CAAC;YACf;gBACE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtC,MAAM;QACV,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
import type {
|
|
2
|
+
import type { SettingsFile } from '../../../shared/index.js';
|
|
3
3
|
import { AuthModule } from '../auth/auth-middleware.js';
|
|
4
|
-
import {
|
|
4
|
+
import type { InstanceManager } from '../instance/instance-manager.js';
|
|
5
5
|
export interface CreateInstanceRequest {
|
|
6
6
|
/** 工作目录 */
|
|
7
7
|
cwd: string;
|
|
@@ -9,6 +9,8 @@ export interface CreateInstanceRequest {
|
|
|
9
9
|
name?: string;
|
|
10
10
|
/** Claude 额外参数(可选) */
|
|
11
11
|
claudeArgs?: string[];
|
|
12
|
+
/** 是否为 headless 模式(默认 true,Web 端创建的实例无 PC 终端) */
|
|
13
|
+
headless?: boolean;
|
|
12
14
|
}
|
|
13
15
|
export interface InstanceConfigResponse {
|
|
14
16
|
/** 预设工作目录列表 */
|
|
@@ -20,5 +22,5 @@ export interface InstanceConfigResponse {
|
|
|
20
22
|
/** 扫描的 settings 目录列表(用于显示) */
|
|
21
23
|
settingsDirs: string[];
|
|
22
24
|
}
|
|
23
|
-
export declare function createInstanceRoutes(authModule: AuthModule,
|
|
25
|
+
export declare function createInstanceRoutes(authModule: AuthModule, instanceManager: InstanceManager): Router;
|
|
24
26
|
//# sourceMappingURL=instance-routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-routes.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/instance-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"instance-routes.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/instance-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGjC,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAgCvE,MAAM,WAAW,qBAAqB;IACpC,WAAW;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,eAAe;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wBAAwB;IACxB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,8BAA8B;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,eAAe,GAC/B,MAAM,CAsHR"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
3
|
import { resolve, relative } from 'node:path';
|
|
4
|
-
import { createAuthRoutes } from './auth-routes.js';
|
|
5
4
|
import { loadUserConfig, getSettingsDirs, scanSettingsFiles } from '../config.js';
|
|
6
5
|
import { logger } from '../logger/logger.js';
|
|
7
6
|
/**
|
|
@@ -23,22 +22,20 @@ function isCwdAllowed(absoluteCwd, allowedCwds) {
|
|
|
23
22
|
* 获取合并后的允许 cwd 白名单
|
|
24
23
|
* 来源:配置文件 workspaces + 已启动实例的 cwd(去重)
|
|
25
24
|
*/
|
|
26
|
-
|
|
25
|
+
function getAllowedCwds(instanceManager) {
|
|
27
26
|
const config = loadUserConfig();
|
|
28
27
|
const configWorkspaces = config.workspaces ?? [];
|
|
29
|
-
const instances =
|
|
28
|
+
const instances = instanceManager.listInstances();
|
|
30
29
|
const instanceCwds = instances.map(inst => inst.cwd);
|
|
31
30
|
return [...new Set([...configWorkspaces, ...instanceCwds])];
|
|
32
31
|
}
|
|
33
|
-
export function createInstanceRoutes(authModule,
|
|
32
|
+
export function createInstanceRoutes(authModule, instanceManager) {
|
|
34
33
|
const router = Router();
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
router.get('/instances', authModule.requireAuth, async (_req, res) => {
|
|
38
|
-
const instances = await listInstances();
|
|
34
|
+
router.get('/instances', authModule.requireAuth, (_req, res) => {
|
|
35
|
+
const instances = instanceManager.listInstances();
|
|
39
36
|
const result = instances.map(inst => ({
|
|
40
37
|
...inst,
|
|
41
|
-
isCurrent:
|
|
38
|
+
isCurrent: false, // daemon 模式下无 "当前" 概念,前端按 activeInstanceId 判断
|
|
42
39
|
}));
|
|
43
40
|
res.json(result);
|
|
44
41
|
});
|
|
@@ -47,10 +44,10 @@ export function createInstanceRoutes(authModule, listInstances, currentInstanceI
|
|
|
47
44
|
* 返回合并后的工作目录白名单和默认参数
|
|
48
45
|
* 白名单 = 配置文件 workspaces + 已启动实例的 cwd(去重)
|
|
49
46
|
*/
|
|
50
|
-
router.get('/instances/config', authModule.requireAuth,
|
|
47
|
+
router.get('/instances/config', authModule.requireAuth, (_req, res) => {
|
|
51
48
|
try {
|
|
52
49
|
const config = loadUserConfig();
|
|
53
|
-
const allowedCwds =
|
|
50
|
+
const allowedCwds = getAllowedCwds(instanceManager);
|
|
54
51
|
const settingsDirs = getSettingsDirs(config);
|
|
55
52
|
const settingsFiles = scanSettingsFiles(settingsDirs);
|
|
56
53
|
const response = {
|
|
@@ -67,11 +64,11 @@ export function createInstanceRoutes(authModule, listInstances, currentInstanceI
|
|
|
67
64
|
}
|
|
68
65
|
});
|
|
69
66
|
/**
|
|
70
|
-
* POST /api/instances/create -
|
|
67
|
+
* POST /api/instances/create - 创建新实例(进程内创建)
|
|
71
68
|
*/
|
|
72
|
-
router.post('/instances/create', authModule.requireAuth,
|
|
69
|
+
router.post('/instances/create', authModule.requireAuth, (req, res) => {
|
|
73
70
|
try {
|
|
74
|
-
const { cwd, name, claudeArgs } = req.body;
|
|
71
|
+
const { cwd, name, claudeArgs, headless } = req.body;
|
|
75
72
|
// 参数验证
|
|
76
73
|
if (!cwd || typeof cwd !== 'string') {
|
|
77
74
|
res.status(400).json({ error: 'cwd is required and must be a string' });
|
|
@@ -83,46 +80,39 @@ export function createInstanceRoutes(authModule, listInstances, currentInstanceI
|
|
|
83
80
|
res.status(400).json({ error: `Directory does not exist: ${absoluteCwd}` });
|
|
84
81
|
return;
|
|
85
82
|
}
|
|
86
|
-
//
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
res.status(500).json({ error: 'Instance spawner not configured' });
|
|
100
|
-
return;
|
|
83
|
+
// CLI 启动(headless: false)不受 workspace 限制,只有 Web 端创建的实例需要验证
|
|
84
|
+
// 原因:CLI 是本地终端启动,用户已通过 shell 进入该目录;Web 端是远程请求,需要安全限制
|
|
85
|
+
const isCliLaunch = headless === false;
|
|
86
|
+
if (!isCliLaunch) {
|
|
87
|
+
// 路径安全检查
|
|
88
|
+
const allowedCwds = getAllowedCwds(instanceManager);
|
|
89
|
+
if (!isCwdAllowed(absoluteCwd, allowedCwds)) {
|
|
90
|
+
logger.warn({ absoluteCwd, allowedCwds }, 'Cwd path not allowed');
|
|
91
|
+
res.status(403).json({
|
|
92
|
+
error: 'Directory not allowed. Must be in allowed workspaces list.',
|
|
93
|
+
});
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
101
96
|
}
|
|
102
|
-
//
|
|
103
|
-
//
|
|
104
|
-
const
|
|
105
|
-
const finalClaudeArgs = claudeArgs !== undefined && claudeArgs.length === 0
|
|
106
|
-
? [] // 前端显式传空数组 = 清空
|
|
107
|
-
: Array.from(new Set([...userClaudeArgs, ...(claudeArgs ?? [])]));
|
|
108
|
-
const spawnOptions = {
|
|
97
|
+
// 进程内创建实例
|
|
98
|
+
// headless 默认 true:Web 端创建的实例无 PC 终端;CLI 创建时显式传 false
|
|
99
|
+
const session = instanceManager.createInstance({
|
|
109
100
|
cwd: absoluteCwd,
|
|
110
101
|
name: name || undefined,
|
|
111
|
-
claudeArgs
|
|
112
|
-
headless: true,
|
|
113
|
-
};
|
|
114
|
-
const result = await spawner.spawn(spawnOptions);
|
|
102
|
+
claudeArgs,
|
|
103
|
+
headless: headless ?? true,
|
|
104
|
+
});
|
|
115
105
|
logger.info({
|
|
116
|
-
|
|
106
|
+
instanceId: session.instanceId,
|
|
117
107
|
cwd: absoluteCwd,
|
|
118
|
-
name:
|
|
108
|
+
name: session.name,
|
|
119
109
|
}, 'Instance created via API');
|
|
120
110
|
res.json({
|
|
121
111
|
success: true,
|
|
122
112
|
instance: {
|
|
123
|
-
|
|
124
|
-
cwd:
|
|
125
|
-
name:
|
|
113
|
+
instanceId: session.instanceId,
|
|
114
|
+
cwd: session.cwd,
|
|
115
|
+
name: session.name,
|
|
126
116
|
},
|
|
127
117
|
});
|
|
128
118
|
}
|
|
@@ -131,6 +121,19 @@ export function createInstanceRoutes(authModule, listInstances, currentInstanceI
|
|
|
131
121
|
res.status(500).json({ error: 'Failed to create instance' });
|
|
132
122
|
}
|
|
133
123
|
});
|
|
124
|
+
/**
|
|
125
|
+
* DELETE /api/instances/:instanceId - 销毁实例
|
|
126
|
+
*/
|
|
127
|
+
router.delete('/instances/:instanceId', authModule.requireAuth, (req, res) => {
|
|
128
|
+
const instanceId = req.params.instanceId;
|
|
129
|
+
const destroyed = instanceManager.destroyInstance(instanceId);
|
|
130
|
+
if (!destroyed) {
|
|
131
|
+
res.status(404).json({ error: 'Instance not found' });
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
logger.info({ instanceId }, 'Instance destroyed via API');
|
|
135
|
+
res.json({ success: true });
|
|
136
|
+
});
|
|
134
137
|
return router;
|
|
135
138
|
}
|
|
136
139
|
//# sourceMappingURL=instance-routes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-routes.js","sourceRoot":"","sources":["../../../../backend/src/api/instance-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"instance-routes.js","sourceRoot":"","sources":["../../../../backend/src/api/instance-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,17 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
2
|
import { AuthModule } from '../auth/auth-middleware.js';
|
|
3
|
-
import { HookReceiver } from '../hooks/hook-receiver.js';
|
|
4
3
|
import { PushService } from '../push/push-service.js';
|
|
5
|
-
import {
|
|
6
|
-
import type { SessionController } from '../session/session-controller.js';
|
|
4
|
+
import type { InstanceManager } from '../instance/instance-manager.js';
|
|
7
5
|
import type { NotificationManager } from '../notification/notification-manager.js';
|
|
8
6
|
import type { NotificationServiceFactory } from '../notification/notification-service-factory.js';
|
|
9
|
-
import type { WsServer } from '../ws/ws-server.js';
|
|
10
|
-
import type { InstanceInfo } from '../../../shared/index.js';
|
|
11
7
|
export interface ApiRouterOptions {
|
|
12
8
|
authModule: AuthModule;
|
|
13
|
-
|
|
14
|
-
getController: () => SessionController | null;
|
|
9
|
+
instanceManager: InstanceManager;
|
|
15
10
|
pushService?: PushService;
|
|
16
|
-
listInstances?: () => Promise<InstanceInfo[]>;
|
|
17
|
-
currentInstanceId?: string;
|
|
18
|
-
instanceSpawner?: InstanceSpawner;
|
|
19
11
|
notificationManager?: NotificationManager;
|
|
20
12
|
notificationServiceFactory?: NotificationServiceFactory;
|
|
21
|
-
|
|
13
|
+
/** 关闭 daemon 的回调 */
|
|
14
|
+
onShutdown?: () => void;
|
|
22
15
|
}
|
|
23
16
|
export declare function createApiRouter(opts: ApiRouterOptions): Router;
|
|
24
|
-
export declare function createApiRouter(authModule: AuthModule, hookReceiver: HookReceiver, getController: () => SessionController | null, pushService?: PushService): Router;
|
|
25
17
|
//# sourceMappingURL=router.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAQjC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAQjC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAGlG,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;IACxD,oBAAoB;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CA8C9D"}
|
|
@@ -6,31 +6,39 @@ import { createHookRoutes } from './hook-routes.js';
|
|
|
6
6
|
import { createPushRoutes } from './push-routes.js';
|
|
7
7
|
import { createInstanceRoutes } from './instance-routes.js';
|
|
8
8
|
import { createConfigRoutes } from './config-routes.js';
|
|
9
|
-
import {
|
|
10
|
-
export function createApiRouter(
|
|
11
|
-
let opts;
|
|
12
|
-
if (authModuleOrOpts instanceof AuthModule) {
|
|
13
|
-
opts = {
|
|
14
|
-
authModule: authModuleOrOpts,
|
|
15
|
-
hookReceiver: hookReceiver,
|
|
16
|
-
getController: getController,
|
|
17
|
-
pushService,
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
opts = authModuleOrOpts;
|
|
22
|
-
}
|
|
9
|
+
import { logger } from '../logger/logger.js';
|
|
10
|
+
export function createApiRouter(opts) {
|
|
23
11
|
const router = Router();
|
|
24
|
-
router.use(createHealthRoutes());
|
|
12
|
+
router.use(createHealthRoutes(opts.instanceManager));
|
|
25
13
|
router.use(createAuthRoutes(opts.authModule));
|
|
26
|
-
router.use(createStatusRoutes(opts.authModule, opts.
|
|
27
|
-
router.use(createHookRoutes(opts.
|
|
28
|
-
router.use(createConfigRoutes(opts.authModule, opts.notificationManager, opts.notificationServiceFactory, opts.
|
|
14
|
+
router.use(createStatusRoutes(opts.authModule, opts.instanceManager));
|
|
15
|
+
router.use(createHookRoutes(opts.instanceManager));
|
|
16
|
+
router.use(createConfigRoutes(opts.authModule, opts.notificationManager, opts.notificationServiceFactory, opts.instanceManager));
|
|
29
17
|
if (opts.pushService) {
|
|
30
18
|
router.use(createPushRoutes(opts.authModule, opts.pushService));
|
|
31
19
|
}
|
|
32
|
-
|
|
33
|
-
|
|
20
|
+
router.use(createInstanceRoutes(opts.authModule, opts.instanceManager));
|
|
21
|
+
// Shutdown endpoint (localhost only, requires confirmation)
|
|
22
|
+
if (opts.onShutdown) {
|
|
23
|
+
const shutdownFn = opts.onShutdown;
|
|
24
|
+
router.post('/shutdown', (req, res) => {
|
|
25
|
+
const ip = req.ip ?? req.socket.remoteAddress ?? '';
|
|
26
|
+
const isLocalhost = ip === '127.0.0.1' || ip === '::1' || ip === '::ffff:127.0.0.1';
|
|
27
|
+
if (!isLocalhost) {
|
|
28
|
+
res.status(403).json({ error: 'Forbidden' });
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Require confirmation in request body
|
|
32
|
+
const { confirm } = req.body;
|
|
33
|
+
if (!confirm) {
|
|
34
|
+
res.status(400).json({ error: 'Shutdown requires confirmation. Include { "confirm": true } in request body.' });
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
logger.info('Shutdown requested via API (confirmed)');
|
|
38
|
+
res.json({ ok: true });
|
|
39
|
+
// Delay shutdown to let the response flush
|
|
40
|
+
setTimeout(shutdownFn, 100);
|
|
41
|
+
});
|
|
34
42
|
}
|
|
35
43
|
return router;
|
|
36
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../backend/src/api/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../backend/src/api/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAY7C,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAC3B,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,0BAA0B,EAC/B,IAAI,CAAC,eAAe,CACrB,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAExE,4DAA4D;IAC5D,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACpC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,EAAE,CAAC;YACpD,MAAM,WAAW,GAAG,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,kBAAkB,CAAC;YACpF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC7C,OAAO;YACT,CAAC;YAED,uCAAuC;YACvC,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAA6B,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8EAA8E,EAAE,CAAC,CAAC;gBAChH,OAAO;YACT,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACvB,2CAA2C;YAC3C,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
import type { SessionController } from '../session/session-controller.js';
|
|
3
2
|
import { AuthModule } from '../auth/auth-middleware.js';
|
|
4
|
-
|
|
3
|
+
import type { InstanceManager } from '../instance/instance-manager.js';
|
|
4
|
+
export declare function createStatusRoutes(authModule: AuthModule, instanceManager: InstanceManager): Router;
|
|
5
5
|
//# sourceMappingURL=status-routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-routes.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/status-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,
|
|
1
|
+
{"version":3,"file":"status-routes.d.ts","sourceRoot":"","sources":["../../../../backend/src/api/status-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,GAAG,MAAM,CAwBnG"}
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import { Router } from 'express';
|
|
2
|
-
export function createStatusRoutes(authModule,
|
|
2
|
+
export function createStatusRoutes(authModule, instanceManager) {
|
|
3
3
|
const router = Router();
|
|
4
|
+
// Session validation endpoint - checks if user is authenticated
|
|
4
5
|
router.get('/status', authModule.requireAuth, (_req, res) => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
res.json({ status: 'ok' });
|
|
7
|
+
});
|
|
8
|
+
router.get('/status/:instanceId', authModule.requireAuth, (req, res) => {
|
|
9
|
+
const instanceId = req.params.instanceId;
|
|
10
|
+
const session = instanceManager.getInstance(instanceId);
|
|
11
|
+
if (!session) {
|
|
12
|
+
res.json({ status: 'not_found' });
|
|
8
13
|
return;
|
|
9
14
|
}
|
|
10
15
|
res.json({
|
|
11
|
-
status:
|
|
12
|
-
connectedClients:
|
|
16
|
+
status: session.status,
|
|
17
|
+
connectedClients: session.clientCount,
|
|
13
18
|
});
|
|
14
19
|
});
|
|
15
20
|
return router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-routes.js","sourceRoot":"","sources":["../../../../backend/src/api/status-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,MAAM,UAAU,kBAAkB,CAAC,UAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"status-routes.js","sourceRoot":"","sources":["../../../../backend/src/api/status-routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,MAAM,UAAU,kBAAkB,CAAC,UAAsB,EAAE,eAAgC;IACzF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,gEAAgE;IAChE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC1D,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACrE,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,UAAoB,CAAC;QACnD,MAAM,OAAO,GAAG,eAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAExD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,gBAAgB,EAAE,OAAO,CAAC,WAAW;SACtC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../../backend/src/attach.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../../backend/src/attach.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,aAAa;IAC5B,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgH1E"}
|