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) • 1.38 kB
JavaScript
const f=500,d=140;function o(t){return typeof t=="string"?t.trim().replace(/\s+/g," "):t==null?"":typeof t=="number"||typeof t=="boolean"?String(t):""}function i(t,r){const e=o(t);return e.length<=r?e:r<=3?e.slice(0,r):`${e.slice(0,r-3)}...`}function l(t){const r=o(t);if(!r)return"";try{const e=JSON.parse(r),n=T(e);if(n)return n}catch{}return r}function a(t){const r=o(t);if(!r)return"";try{return T(JSON.parse(r))}catch{return""}}function T(t){if(!t||typeof t!="object"||Array.isArray(t))return"";const r=t;for(const e of["command","file_path","path","pattern","query","description","url","text"]){const n=o(r[e]);if(n)return n}return""}function _(t,r){const e=o(t)||"tool",n=l(r);return{summaryText:n?`${e}: ${i(n,140)}`:e,...n?{detailText:i(n,500)}:{}}}function p(t,r){const e=o(r);if(e==="(failed)")return{summaryText:"(failed)"};if(e.startsWith("(failed) ")){const u=e.slice(9),c=a(u);return{summaryText:c?`${i(c,140)} (failed)`:"(failed)",...c?{detailText:i(c,500)}:{}}}const n=a(e);if(n)return{summaryText:i(n,140),detailText:i(n,500)};const s=i(e,500);return{summaryText:t||"result",...s?{detailText:s}:{}}}function I(t,r,e){const n=new URLSearchParams;return n.set("d",JSON.stringify(e)),`[${t}](grix://card/${r}?${n.toString()})`}export{I as buildLocalGrixCardLink,p as buildToolResultCard,_ as buildToolUseCard,i as compactToolCardText,o as normalizeToolCardText};