feat: configure Pi models for CutOS agent

This commit is contained in:
yankun
2026-08-02 15:41:38 +08:00
parent 782a8b6d88
commit 9489b334c5
5 changed files with 363 additions and 6 deletions
+9 -3
View File
@@ -17,6 +17,7 @@ const { ProvisionManager } = require('./provisioning');
const { BtMonitor } = require('./bt-monitor');
const { hasInternet, hasWiredInternetProbe, getLocalIps, getLocalNetworks } = require('./network');
const { applyFullProviderFromVps, removeProviderByName, refreshModelsIfChanged, isFullProvider } = require('./openclaw-provider');
const piProvider = require('./pi-provider');
const sysCall = require('./sys-call');
const led = require('./led');
const { OPENCLAW, resolveAgentType } = require('./agent-type');
@@ -481,8 +482,9 @@ class ClawClient {
_applyStatus(msg) {
if (msg.status === 'inactive') {
if (this._isOpenClaw() && msg.provider && msg.provider.name) {
removeProviderByName(String(msg.provider.name));
if (msg.provider && msg.provider.name) {
if (this._isOpenClaw()) removeProviderByName(String(msg.provider.name));
else piProvider.removeProviderByName(String(msg.provider.name));
}
this._cfg.activated = false;
config.save(this._cfg);
@@ -507,7 +509,11 @@ class ClawClient {
log.info('clawd', `已激活 claw_id = ${this._cfg.claw_id}`);
const clawIdStr = String(this._cfg.claw_id);
if (!this._isOpenClaw()) {
log.info('clawd', `agent=${this._agentType},跳过 OpenClaw provider/origin 配置`);
if (piProvider.isFullProvider(msg.provider)) {
piProvider.applyFullProviderFromVps(msg.provider);
} else {
piProvider.refreshModelsIfChanged();
}
} else if (isFullProvider(msg.provider)) {
applyFullProviderFromVps(msg.provider, () => {
this._updateOpenClawOrigin(clawIdStr);