UNPKG

grix-connector

Version:

Connect local AI coding agents (Claude, Codex, Gemini, Qwen, DeepSeek, Cursor, OpenCode, Pi, OpenHuman, Reasonix) to the Grix scheduling platform. Also serves as an OpenClaw plugin for Grix channel transport.

2 lines (1 loc) 2.21 kB
const s="acp-toolbar-persist";function d(e,r){return e.bindingStore.get(r)?.cwd?null:{status:"failed",errorCode:"binding_missing",errorMsg:"Session binding missing. Open a workspace first."}}async function u(e,r,o){const t=String(o??"").trim();if(!t)return{status:"failed",errorCode:"set_model_invalid",errorMsg:"model_id is required"};const l=d(e,r);if(l)return l;e.bindingStore.setAcpModelId(r,t),e.globalConfigStore?.set(e.agentName,{modelId:t});const a=!!e.acpAdapter?.isAlive();if(e.log.info(s,`set_model persisted: session=${r} model=${t} acpAlive=${a}`),!a)return{status:"ok",result:{outcome:"model_set_pending",modelId:t,sessionAlive:!1}};let i=!1;try{i=await e.acpAdapter.setModel(t)}catch(n){e.log.warn(s,`set_model RPC threw: session=${r} model=${t} err=${n instanceof Error?n.message:String(n)}`),i=!1}return i?{status:"ok",result:{outcome:"model_set",modelId:t,sessionAlive:!0,rpcOk:!0}}:(e.log.warn(s,`set_model RPC failed: session=${r} model=${t} (kept in binding)`),{status:"ok",result:{outcome:"model_set_pending",modelId:t,sessionAlive:!0,rpcOk:!1}})}async function m(e,r,o){const t=String(o??"").trim();if(!t)return{status:"failed",errorCode:"set_mode_invalid",errorMsg:"mode_id is required"};const l=d(e,r);if(l)return l;e.bindingStore.setAcpModeId(r,t);const a=!!e.acpAdapter?.isAlive();if(e.log.info(s,`set_mode persisted: session=${r} mode=${t} acpAlive=${a}`),!a)return{status:"ok",result:{outcome:"mode_set_pending",modeId:t,sessionAlive:!1}};let i=!1;try{i=await e.acpAdapter.setMode(t)}catch(n){e.log.warn(s,`set_mode RPC threw: session=${r} mode=${t} err=${n instanceof Error?n.message:String(n)}`),i=!1}return i?{status:"ok",result:{outcome:"mode_set",modeId:t,sessionAlive:!0,rpcOk:!0}}:(e.log.warn(s,`set_mode RPC failed: session=${r} mode=${t} (kept in binding)`),{status:"ok",result:{outcome:"mode_set_pending",modeId:t,sessionAlive:!0,rpcOk:!1}})}function c(...e){for(const r of e){const o=String(r??"").trim();if(o)return o}}function g(e){const r=c(e.sessionBinding?.acpModeId,e.configInitialMode);return{initialModel:c(e.sessionBinding?.acpModelId,e.globalDefaults?.modelId),initialMode:r}}export{m as handleAcpSetMode,u as handleAcpSetModel,g as resolveAcpInitialDefaults};