SnowCat 雪猫底层全源码:NapCat 4.18.28 底座 + SnowLuma 能力移植 + V8 通道适配 9.9.37
26 包 monorepo(TS 全源码): - snowcat-core: NT 内核 API 封装 + listener(含 9.9.37 六回调适配)+ Packet 发包 - snowcat-onebot: OneBot v11 全动作 + MCP Streamable HTTP 适配器 + 稳定线 - snowcat-webui-frontend/backend: 雪猫控制台(React+HeroUI) - snowcat-shell: 单文件 bundle 出口(vite inlineDynamicImports) - snowcat-native: napi2native / MoeHoo / ffmpeg / pty 运行时 - 56 项 SnowLuma 独门动作移植(qzone 全家桶/群相册/装扮/闪照/收藏) - 工具件: 解包器/启动器/便携制作器/doctor GitHub 关联已全量指向 DandanLLab/SnowCatQQ
This commit is contained in:
commit
b9655a5ab1
1048 files changed
+130851
No files matched your search
@@ -0,0 +1,69 @@
|
||||
import { Type, Static } from '@sinclair/typebox';
|
||||
import { TypeCompiler } from '@sinclair/typebox/compiler';
|
||||
import { Value } from '@sinclair/typebox/value';
|
||||
|
||||
// WebSocket 服务端配置
|
||||
const WebsocketServerConfigSchema = Type.Object({
|
||||
name: Type.String({ default: 'snowcat-ws-server' }),
|
||||
enable: Type.Boolean({ default: false }),
|
||||
host: Type.String({ default: '127.0.0.1' }),
|
||||
port: Type.Number({ default: 6700 }),
|
||||
token: Type.String({ default: '' }),
|
||||
heartInterval: Type.Number({ default: 30000 }),
|
||||
debug: Type.Boolean({ default: false }),
|
||||
});
|
||||
|
||||
// WebSocket 客户端配置
|
||||
const WebsocketClientConfigSchema = Type.Object({
|
||||
name: Type.String({ default: 'snowcat-ws-client' }),
|
||||
enable: Type.Boolean({ default: false }),
|
||||
url: Type.String({ default: 'ws://localhost:6701' }),
|
||||
token: Type.String({ default: '' }),
|
||||
reconnectInterval: Type.Number({ default: 5000 }),
|
||||
heartInterval: Type.Number({ default: 30000 }),
|
||||
debug: Type.Boolean({ default: false }),
|
||||
});
|
||||
|
||||
// HTTP 服务端配置
|
||||
const HttpServerConfigSchema = Type.Object({
|
||||
name: Type.String({ default: 'snowcat-http-server' }),
|
||||
enable: Type.Boolean({ default: false }),
|
||||
host: Type.String({ default: '127.0.0.1' }),
|
||||
port: Type.Number({ default: 6702 }),
|
||||
token: Type.String({ default: '' }),
|
||||
enableCors: Type.Boolean({ default: true }),
|
||||
debug: Type.Boolean({ default: false }),
|
||||
});
|
||||
|
||||
// 网络配置
|
||||
const NetworkConfigSchema = Type.Object({
|
||||
httpServers: Type.Array(HttpServerConfigSchema, { default: [] }),
|
||||
websocketServers: Type.Array(WebsocketServerConfigSchema, { default: [] }),
|
||||
websocketClients: Type.Array(WebsocketClientConfigSchema, { default: [] }),
|
||||
}, { default: {} });
|
||||
|
||||
// NapCat Protocol 主配置 - 默认关闭
|
||||
export const SnowCatProtocolConfigSchema = Type.Object({
|
||||
enable: Type.Boolean({ default: false }), // 默认关闭
|
||||
network: NetworkConfigSchema,
|
||||
});
|
||||
|
||||
export type SnowCatProtocolConfig = Static<typeof SnowCatProtocolConfigSchema>;
|
||||
export type HttpServerConfig = Static<typeof HttpServerConfigSchema>;
|
||||
export type WebsocketServerConfig = Static<typeof WebsocketServerConfigSchema>;
|
||||
export type WebsocketClientConfig = Static<typeof WebsocketClientConfigSchema>;
|
||||
|
||||
export type NetworkAdapterConfig = HttpServerConfig | WebsocketServerConfig | WebsocketClientConfig;
|
||||
export type NetworkConfigKey = keyof SnowCatProtocolConfig['network'];
|
||||
|
||||
export function loadConfig (config: Partial<SnowCatProtocolConfig>): SnowCatProtocolConfig {
|
||||
let data = config;
|
||||
data = Value.Parse(SnowCatProtocolConfigSchema, data) as Partial<SnowCatProtocolConfig>;
|
||||
const validate = TypeCompiler.Compile(SnowCatProtocolConfigSchema);
|
||||
const valid = validate.Check(data);
|
||||
if (!valid) {
|
||||
const errorMsg = [...validate.Errors(data)].map(e => e.message).join(', ');
|
||||
throw new Error(errorMsg);
|
||||
}
|
||||
return data as SnowCatProtocolConfig;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { ConfigBase, SnowCatCore } from 'snowcat-core';
|
||||
|
||||
import { SnowCatProtocolConfig, SnowCatProtocolConfigSchema } from './config';
|
||||
|
||||
export class SnowCatProtocolConfigLoader extends ConfigBase<SnowCatProtocolConfig> {
|
||||
constructor (core: SnowCatCore, configPath: string) {
|
||||
super('napcat_protocol', core, configPath, SnowCatProtocolConfigSchema);
|
||||
}
|
||||
}
|
||||
|
||||
export * from './config';
|
||||
Reference in new issue
Block a user