codexmobile-relay / client /src /relay-status.js
Codex
deploy: CodexMobile Relay
90f0300
Raw
History Blame Contribute Delete
2.93 kB
export const DEFAULT_STATUS = {
connected: false,
provider: 'cliproxyapi',
model: 'gpt-5.5',
modelShort: '5.5 中',
reasoningEffort: 'xhigh',
models: [{ value: 'gpt-5.5', label: 'gpt-5.5' }],
docs: {
provider: 'feishu',
integration: 'lark-cli',
label: '飞书文档',
configured: false,
connected: false,
user: null,
homeUrl: 'https://docs.feishu.cn/',
cliInstalled: false,
skillsInstalled: false,
capabilities: [],
codexEnabled: false,
authorizationReady: false,
missingScopes: [],
scopeGroups: [],
slidesAuthorized: false,
sheetsAuthorized: false,
authPending: null
},
voiceRealtime: { configured: false, model: 'qwen3.5-omni-plus-realtime', provider: '阿里百炼' },
auth: { authenticated: false }
};
export const CONNECTION_STATUS = {
connected: { label: '已连接', className: 'is-connected' },
connecting: { label: '连接中', className: 'is-connecting' },
pairing_required: { label: '需要配对', className: 'is-disconnected' },
mac_offline: { label: 'Mac 未连接', className: 'is-disconnected' },
mac_local_offline: { label: '本地服务离线', className: 'is-disconnected' },
degraded: { label: '连接不稳定', className: 'is-connecting' },
disconnected: { label: '已断开', className: 'is-disconnected' }
};
export function authenticatedFromStatus(data) {
return Boolean(data?.authenticated ?? data?.auth?.authenticated);
}
export function canUseAppShellFromStatus(data) {
return authenticatedFromStatus(data) || Boolean(data?.mode === 'relay' && data?.authValidationDeferred);
}
export function connectionStateFromStatus(nextStatus) {
if (nextStatus?.mode !== 'relay') {
return nextStatus?.connected ? 'connected' : 'disconnected';
}
if (nextStatus.relayState && CONNECTION_STATUS[nextStatus.relayState]) {
if (nextStatus.authValidationDeferred && nextStatus.relayState === 'pairing_required') {
return nextStatus.macConnected ? 'mac_local_offline' : 'mac_offline';
}
return nextStatus.relayState;
}
if (nextStatus.authValidationDeferred) {
return nextStatus.macConnected ? 'mac_local_offline' : 'mac_offline';
}
if (!authenticatedFromStatus(nextStatus) || nextStatus.requiresPairing) {
return 'pairing_required';
}
if (!nextStatus.macConnected) {
return 'mac_offline';
}
if (nextStatus.localStatus?.reachable === false) {
return 'mac_local_offline';
}
return nextStatus.connected ? 'connected' : 'disconnected';
}
export function relayDisabledReason(connectionState) {
if (connectionState === 'mac_offline') {
return 'Mac 连接器未在线';
}
if (connectionState === 'mac_local_offline') {
return 'Mac 本地服务未启动';
}
if (connectionState === 'pairing_required') {
return '需要重新配对';
}
if (connectionState === 'disconnected') {
return '连接已断开';
}
return '';
}