59 lines
1.8 KiB
TypeScript
59 lines
1.8 KiB
TypeScript
import { Controller } from '../common/index.js';
|
|
import { PostMessageble } from '../hook/adapter.js';
|
|
import { RequestData } from '../common/index.dto.js';
|
|
import { connectService, getClient } from './connect.service.js';
|
|
|
|
export class ConnectController {
|
|
|
|
@Controller('connect')
|
|
async connect(data: any, webview: PostMessageble) {
|
|
const res = await connectService(data, webview);
|
|
return res;
|
|
}
|
|
|
|
@Controller('lookup-env-var')
|
|
async lookupEnvVar(data: RequestData, webview: PostMessageble) {
|
|
const { keys } = data;
|
|
const values = keys.map((key: string) => {
|
|
|
|
if (process.platform === 'win32') {
|
|
switch (key) {
|
|
case 'USER':
|
|
return process.env.USERNAME || '';
|
|
case 'HOME':
|
|
return process.env.USERPROFILE || process.env.HOME;
|
|
case 'LOGNAME':
|
|
return process.env.USERNAME || '';
|
|
case 'SHELL':
|
|
return process.env.SHELL || process.env.COMSPEC;
|
|
case 'TERM':
|
|
return process.env.TERM || '未设置 (Windows 默认终端)';
|
|
}
|
|
}
|
|
|
|
return process.env[key] || '';
|
|
});
|
|
|
|
return {
|
|
code: 200,
|
|
msg: values
|
|
}
|
|
}
|
|
|
|
@Controller('ping')
|
|
async ping(data: RequestData, webview: PostMessageble) {
|
|
const client = getClient(data.clientId);
|
|
if (!client) {
|
|
const connectResult = {
|
|
code: 501,
|
|
msg:'mcp client 尚未连接'
|
|
};
|
|
return connectResult;
|
|
}
|
|
|
|
return {
|
|
code: 200,
|
|
msg: {}
|
|
}
|
|
}
|
|
} |