@entrydesk/cli 1.12.3 → 1.12.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/{agents-YIPPGKPY.js → agents-5NGIAJKD.js} +1 -1
  2. package/dist/{budget-ZZG44RXO.js → budget-CKEDYF7L.js} +1 -1
  3. package/dist/{chunk-HHCG7UQG.js → chunk-QD5PQJFR.js} +1 -1
  4. package/dist/{config-CTC4CBIG.js → config-Q732J22D.js} +1 -1
  5. package/dist/{config-JU3KJETZ.js → config-YOUVD4QX.js} +1 -1
  6. package/dist/{config-help-HHCW7XFB.js → config-help-KMNPHZCV.js} +1 -1
  7. package/dist/{connectors-ZGWBL6TL.js → connectors-RWBB3OGY.js} +1 -1
  8. package/dist/{help-NESOCXU4.js → help-GFQ2C2W7.js} +0 -2
  9. package/dist/index.js +1 -1
  10. package/dist/{login-FVBYXP32.js → login-HKD5XK2B.js} +1 -1
  11. package/dist/{logout-PNYLTJQN.js → logout-VCUDZL4F.js} +1 -1
  12. package/dist/{mcp-DC7H7XHP.js → mcp-K77FUX6L.js} +1 -1
  13. package/dist/{models-W6IJTX2A.js → models-TVFAS4O4.js} +1 -1
  14. package/dist/profile-TIL5TZBN.js +17 -0
  15. package/dist/{schedules-A6QPLBMI.js → schedules-Y3WH3UXK.js} +1 -1
  16. package/dist/{skills-OM2KB43P.js → skills-CNNGZIRR.js} +1 -1
  17. package/dist/status-VRIA6UFP.js +2 -0
  18. package/dist/task-WPTGUHJC.js +182 -0
  19. package/dist/{tasks-BWEMFPPU.js → tasks-HZUQMQE4.js} +1 -1
  20. package/dist/{tool-VDBXLXT4.js → tool-OLMFV24S.js} +1 -1
  21. package/dist/{usage-TGX24GRZ.js → usage-BQZAOUPT.js} +1 -1
  22. package/dist/version-244WIRQD.js +2 -0
  23. package/dist/{workspaces-ZAQAF3RJ.js → workspaces-NNHECGMD.js} +1 -1
  24. package/package.json +3 -3
  25. package/dist/profile-JOKK2XKJ.js +0 -17
  26. package/dist/status-QVELZ6DI.js +0 -2
  27. package/dist/task-BFJ2RB7C.js +0 -182
  28. package/dist/version-G574O2IC.js +0 -2
@@ -0,0 +1,182 @@
1
+ #!/usr/bin/env node
2
+ import{a as ie,b as de,c as Bt,g as rt,h as pe,k as Je,n as ln,o as We,q as an}from"./chunk-QD5PQJFR.js";import{render as cr}from"ink";import{v4 as Nt}from"uuid";import{exec as co}from"child_process";import uo from"fs";import Fe from"fs/promises";import cn from"os";import Ot from"path";import{promisify as fo}from"util";import{glob as po}from"glob";var mo=fo(co),go=`## Filesystem Tool Instructions
3
+
4
+ You have access to filesystem tools that allow you to interact with the user's local filesystem.
5
+
6
+ ### Available Operations
7
+
8
+ - **Read File**: Read the contents of a file
9
+ - **Read Multiple Files**: Read multiple files at once (max 10)
10
+ - **Write File**: Create or overwrite a file
11
+ - **Create Directory**: Create a new directory (including parent directories)
12
+ - **List Directory**: List files and subdirectories
13
+ - **Search Files**: Search for files matching a glob pattern
14
+ - **Get File Info**: Get metadata about a file or directory
15
+ - **Move File**: Move or rename a file or directory
16
+ - **Execute Command**: Run shell commands on the user's machine
17
+
18
+ ### Important Notes
19
+
20
+ - Always use absolute paths when possible
21
+ - Be mindful of file permissions and access restrictions
22
+ - Large files will be truncated in responses
23
+ - Search results are limited to prevent overwhelming responses
24
+ - Execute Command has a default timeout of 30 seconds (max 5 minutes)
25
+ - The current working directory is: ${process.cwd()}
26
+ - The user's home directory is: ${cn.homedir()}
27
+ `,ho=[{name:"filesystem__read_file",description:"Read the contents of a file from the local filesystem.",inputSchema:{type:"object",properties:{path:{type:"string",description:"The absolute path to the file to read."}},required:["path"]}},{name:"filesystem__read_multiple_files",description:"Read multiple files at once (max 10 files).",inputSchema:{type:"object",properties:{paths:{type:"array",items:{type:"string"},description:"Array of absolute file paths to read."}},required:["paths"]}},{name:"filesystem__write_file",description:"Create or overwrite a file with the given content.",inputSchema:{type:"object",properties:{path:{type:"string",description:"The absolute path to the file to write."},content:{type:"string",description:"The content to write to the file."}},required:["path","content"]}},{name:"filesystem__create_directory",description:"Create a new directory (including parent directories if needed).",inputSchema:{type:"object",properties:{path:{type:"string",description:"The absolute path of the directory to create."}},required:["path"]}},{name:"filesystem__list_directory",description:"List files and subdirectories in a directory.",inputSchema:{type:"object",properties:{path:{type:"string",description:"The absolute path of the directory to list."}},required:["path"]}},{name:"filesystem__search_files",description:"Search for files matching a glob pattern.",inputSchema:{type:"object",properties:{pattern:{type:"string",description:'Glob pattern to match files (e.g., "**/*.ts").'},cwd:{type:"string",description:"Base directory to search in (optional)."}},required:["pattern"]}},{name:"filesystem__get_file_info",description:"Get metadata about a file or directory.",inputSchema:{type:"object",properties:{path:{type:"string",description:"The absolute path to get info for."}},required:["path"]}},{name:"filesystem__move_file",description:"Move or rename a file or directory.",inputSchema:{type:"object",properties:{source:{type:"string",description:"The source path."},destination:{type:"string",description:"The destination path."}},required:["source","destination"]}},{name:"filesystem__execute_command",description:"Execute a shell command on the local machine.",inputSchema:{type:"object",properties:{command:{type:"string",description:"The command to execute."},cwd:{type:"string",description:"Working directory for the command (optional)."},timeout:{type:"number",description:"Timeout in milliseconds (default: 30000, max: 300000)."}},required:["command"]}}];function un(){return{name:"filesystem",systemPrompt:go,tools:ho}}function Ae(e){return e.startsWith("~/")?Ot.join(cn.homedir(),e.slice(2)):e}function yt(e,t=1e5){return e.length<=t?e:e.slice(0,t)+`
28
+
29
+ ... (truncated, ${e.length-t} more characters)`}async function dn(e,t){try{switch(e){case"filesystem__read_file":{let n=Ae(t.path),r=await Fe.readFile(n,"utf-8");return{success:!0,result:yt(r)}}case"filesystem__read_multiple_files":{let n=t.paths.slice(0,10),r={};for(let a of n){let c=Ae(a);try{let p=await Fe.readFile(c,"utf-8");r[a]=yt(p,5e4)}catch(p){r[a]={error:p instanceof Error?p.message:String(p)}}}return{success:!0,result:r}}case"filesystem__write_file":{let n=Ae(t.path),r=t.content;return await Fe.mkdir(Ot.dirname(n),{recursive:!0}),await Fe.writeFile(n,r,"utf-8"),{success:!0,result:{written:n}}}case"filesystem__create_directory":{let n=Ae(t.path);return await Fe.mkdir(n,{recursive:!0}),{success:!0,result:{created:n}}}case"filesystem__list_directory":{let n=Ae(t.path);return{success:!0,result:(await Fe.readdir(n,{withFileTypes:!0})).map(c=>({name:c.name,type:c.isDirectory()?"directory":c.isFile()?"file":c.isSymbolicLink()?"symlink":"other"}))}}case"filesystem__search_files":{let n=t.pattern,r=t.cwd?Ae(t.cwd):process.cwd(),a=await po(n,{cwd:r,nodir:!0,maxDepth:10});return{success:!0,result:{files:a.slice(0,100),total:a.length,truncated:a.length>100}}}case"filesystem__get_file_info":{let n=Ae(t.path),r=await Fe.stat(n);return{success:!0,result:{path:n,type:r.isDirectory()?"directory":r.isFile()?"file":"other",size:r.size,created:r.birthtime.toISOString(),modified:r.mtime.toISOString(),accessed:r.atime.toISOString(),mode:r.mode.toString(8)}}}case"filesystem__move_file":{let n=Ae(t.source),r=Ae(t.destination);return await Fe.mkdir(Ot.dirname(r),{recursive:!0}),await Fe.rename(n,r),{success:!0,result:{moved:{from:n,to:r}}}}case"filesystem__execute_command":{let n=t.command,r=t.cwd?Ae(t.cwd):process.cwd(),a=Math.min(t.timeout||3e4,3e5);if(!uo.existsSync(r))return{success:!1,error:`Working directory does not exist: ${r}`};let{stdout:c,stderr:p}=await mo(n,{cwd:r,timeout:a,maxBuffer:10*1024*1024});return{success:!0,result:{stdout:yt(c,5e4),stderr:yt(p,5e4)}}}default:return{success:!1,error:`Unknown tool: ${e}`}}}catch(n){return{success:!1,error:n instanceof Error?n.message:String(n)}}}function Ut(e){return e.startsWith("filesystem__")}function fn(){return[un()]}function xt(){return fn().flatMap(e=>e.tools)}function wt(){return fn().map(e=>e.systemPrompt).filter(Boolean).join(`
30
+
31
+ `)}function Be(e){return Ut(e)}async function Tt(e,t){return Ut(e)?dn(e,t):{success:!1,error:`Unknown client tool: ${e}`}}import{Box as he,Text as B,useInput as tn}from"ink";import nn from"ink-spinner";import{useCallback as on,useEffect as Et,useRef as no,useState as tr}from"react";import{Box as kt,Text as st}from"ink";import{jsx as Ct,jsxs as it}from"react/jsx-runtime";function pn(e,t){return e.length<=t?e:t<=3?".".repeat(t):e.slice(0,t-3)+"..."}function mn({items:e,activeIndex:t,selectedIds:n,multiSelect:r=!1,visible:a,title:c,pageSize:p=10}){if(!a||e.length===0)return null;let h=process.stdout.columns??80,y=r?4:0,g=Math.max(20,h-2-2-y),O=Math.max(1,p),$=Math.floor(t/O)*O,v=Math.min(e.length,$+O),Y=e.slice($,v);return it(kt,{flexDirection:"column",marginBottom:1,children:[Ct(st,{bold:!0,color:"cyan",children:c}),Ct(kt,{borderStyle:"single",borderColor:"gray",flexDirection:"column",children:Y.map((T,b)=>{let A=$+b===t,W=n?.has(T.id),Z=pn(T.name,g),j=T.description?pn(T.description,Math.max(0,g-y)):"",K=r?" ".repeat(y):"";return it(kt,{paddingX:1,flexDirection:"column",children:[it(kt,{children:[r&&Ct(st,{color:W?"green":"gray",children:W?"[\u2713] ":"[ ] "}),Ct(st,{backgroundColor:A?"cyan":void 0,color:A?"black":W?"green":"white",bold:!0,children:Z})]}),j&&it(st,{dimColor:!0,children:[K,"\xB7 ",j]})]},T.id)})}),it(st,{dimColor:!0,children:[r?"\u2191\u2193 Navigate \xB7 Space Toggle \xB7 a All \xB7 n None \xB7 Enter Confirm \xB7 Esc Cancel":"\u2191\u2193 Navigate \xB7 Enter Select \xB7 Esc Cancel",e.length>O?` \xB7 Showing ${$+1}-${v} of ${e.length}`:""]})]})}import{Box as jt,Text as lt}from"ink";import{jsx as at,jsxs as Wt}from"react/jsx-runtime";function gn({suggestions:e,activeIndex:t,visible:n}){return!n||e.length===0?null:Wt(jt,{flexDirection:"column",marginBottom:1,children:[at(jt,{borderStyle:"single",borderColor:"gray",flexDirection:"column",children:e.map((r,a)=>{let c=a===t,p=r.aliases.length>0?` (${r.aliases.join(", ")})`:"";return Wt(jt,{paddingX:1,children:[Wt(lt,{backgroundColor:c?"cyan":void 0,color:c?"black":"cyan",bold:c,children:["/",r.name]}),at(lt,{dimColor:!0,children:p}),at(lt,{children:" - "}),at(lt,{color:c?"white":"gray",children:r.description})]},r.name)})}),at(lt,{dimColor:!0,children:"\u2191\u2193 Navigate \xB7 Tab/Enter Select \xB7 Esc Cancel"})]})}import{Box as yo,Text as hn,useInput as xo,useStdout as wo}from"ink";import{useCallback as yn,useEffect as xn,useMemo as Mt,useRef as wn,useState as Tn}from"react";import{jsx as Ht}from"react/jsx-runtime";function bt(e,t){return e<0?0:e>t?t:e}function Gt(e){return Array.from(e)}function $t(e){return/\s/.test(e)}function qt(e,t){let n=t;for(;n>0&&$t(e[n-1]??"");)n-=1;for(;n>0&&!$t(e[n-1]??"");)n-=1;return n}function kn(e,t){let n=t;for(;n<e.length&&$t(e[n]??"");)n+=1;for(;n<e.length&&!$t(e[n]??"");)n+=1;return n}function To(e){let t=[],n=[],r=[],a=0;n.push(0),e.forEach((p,h)=>{if(p===`
32
+ `){t.push(r),r=[],a=h+1,n.push(a);return}r.push(p)}),t.push(r);let c=t.map(p=>p.length);return{lines:t,lineStarts:n,lineLengths:c}}function Cn(e,t,n){for(let a=0;a<t.length;a+=1){let c=t[a]??0,p=n[a]??0,h=c+p;if(e<=h)return{row:a,col:e-c}}let r=Math.max(0,t.length-1);return{row:r,col:n[r]??0}}var ko=2;function bn({value:e,onChange:t,onSubmit:n,onPaste:r,focus:a=!0,leadingOffset:c=0,multiline:p=!1}){let[h,y]=Tn(()=>Gt(e).length),g=wn(null),[O,$]=Tn(0),v=wn(null),{stdout:Y}=wo(),T=Mt(()=>Gt(e),[e]),{lines:b,lineStarts:E,lineLengths:A}=Mt(()=>To(T),[T]),{row:W,col:Z}=Mt(()=>Cn(h,E,A),[h,E,A]),j=Math.max(1,(Y?.columns??80)-c);xn(()=>{g.current!==e?(y(T.length),v.current=null):y(l=>bt(l,T.length)),g.current=e},[e,T.length]),xn(()=>{$(l=>{let d=l;Z<d?d=Z:Z>=d+j&&(d=Z-j+1);let P=A[W]??0,U=Z===P?P+1:P,C=Math.max(0,U-j);return d>C&&(d=C),d<0&&(d=0),d})},[j,Z,W,A]);let K=yn((l,d)=>{g.current=l,t(l),y(d),v.current=null},[t]),le=yn(async(l,d)=>{if(!a)return;let{row:P,col:U}=Cn(h,E,A),C=b[P]??[],fe=A[P]??0,te=b.length>1;if(p&&(d.meta&&d.return||d.ctrl&&l==="j"||d.shift&&d.return)){let w=[...T.slice(0,h),`
33
+ `,...T.slice(h)].join("");K(w,h+1);return}if(d.return){n(e);return}if(d.leftArrow){d.ctrl||d.meta?(U===0&&P>0?y(E[P]-1):y(E[P]+qt(C,U)),v.current=null):(U===0&&P>0?y(E[P]-1):y(w=>bt(w-1,T.length)),v.current=null);return}if(d.rightArrow){d.ctrl||d.meta?(U>=fe&&P<b.length-1?y(E[P+1]):y(E[P]+kn(C,U)),v.current=null):(U>=fe&&P<b.length-1?y(E[P+1]):y(w=>bt(w+1,T.length)),v.current=null);return}if(p&&te&&d.upArrow){let w=v.current??U,L=Math.max(0,P-1),D=Math.min(w,A[L]??0);y((E[L]??0)+D),v.current=w;return}if(p&&te&&d.downArrow){let w=v.current??U,L=Math.min(b.length-1,P+1),D=Math.min(w,A[L]??0);y((E[L]??0)+D),v.current=w;return}if(d.ctrl){if(l==="a"){y(E[P]??0),v.current=null;return}if(l==="e"){y((E[P]??0)+fe),v.current=null;return}if(l==="u"){if(U>0){let w=E[P]??0,L=[...T.slice(0,w),...T.slice(h)].join("");K(L,w)}return}if(l==="k"){if(U<fe){let w=(E[P]??0)+fe,L=[...T.slice(0,h),...T.slice(w)].join("");K(L,h)}return}if(l==="w"){if(U===0&&P>0){let L=[...T.slice(0,h-1),...T.slice(h)].join("");K(L,h-1);return}let w=qt(C,U);if(w!==U){let L=(E[P]??0)+w,D=[...T.slice(0,L),...T.slice(h)].join("");K(D,L)}return}if(l==="d"){if(h<T.length){let w=[...T.slice(0,h),...T.slice(h+1)].join("");K(w,h)}return}return}if(d.meta){l==="b"?(U===0&&P>0?y(E[P]-1):y(E[P]+qt(C,U)),v.current=null):l==="f"&&(U>=fe&&P<b.length-1?y(E[P+1]):y(E[P]+kn(C,U)),v.current=null);return}if(d.backspace||d.delete){if(h<=0)return;let w=[...T.slice(0,h-1),...T.slice(h)].join("");K(w,h-1);return}if(!(d.tab||d.escape)&&l.length>0){let w=p?l.replace(/\r\n/g,`
34
+ `).replace(/\r/g,`
35
+ `):l.replace(/\r?\n/g,"");if(!w||(w=w.replace(/^\x1b?\[200~/,"").replace(/\x1b?\[201~$/,""),!w))return;if((w.length>=ko||w.includes(`
36
+ `))&&r){let Q=!1,ee={text:w,preventDefault:()=>{Q=!0}};if(await Promise.resolve(r(ee)),Q)return}let D=Gt(w),M=[...T.slice(0,h),...D,...T.slice(h)].join("");K(M,h+D.length)}},[T,h,a,A,E,b,p,r,n,K,e]);return xo(le,{isActive:a}),Ht(yo,{flexDirection:"column",children:b.map((l,d)=>{let P=d===W,C=(P&&Z===l.length?[...l," "]:l).slice(O,O+j),fe=C.join("");if(!P)return Ht(hn,{children:fe||" "},d);let te=bt(Z-O,Math.max(0,C.length-1)),w=C.slice(0,te).join(""),L=C[te]??" ",D=C.slice(te+1).join(""),ee=`${w}\x1B[7m${L}\x1B[27m${D}`;return Ht(hn,{children:ee},d)})})}import{Box as De,Text as Me}from"ink";import Vt from"react";import{Text as $e}from"ink";import Co from"react";import{Fragment as Io,jsx as Pe,jsxs as vn}from"react/jsx-runtime";var Jt=2,Yt=1,Kt=2,bo=1,$n=3,In=4,$o=({text:e,defaultColor:t,linkColor:n,codeColor:r})=>{let a=t;if(!/[*_~`<[https?:]/.test(e))return Pe($e,{color:a,children:e});let c=[],p=0,h=/(\*\*.*?\*\*|\*.*?\*|_.*?_|~~.*?~~|\[.*?\]\(.*?\)|`+.+?`+|<u>.*?<\/u>|https?:\/\/\S+)/g,y;for(;(y=h.exec(e))!==null;){y.index>p&&c.push(Pe($e,{color:a,children:e.slice(p,y.index)},`t-${p}`));let g=y[0],O=null,$=`m-${y.index}`;try{if(g.startsWith("**")&&g.endsWith("**")&&g.length>Jt*2)O=Pe($e,{bold:!0,color:a,children:g.slice(Jt,-Jt)},$);else if(g.length>Yt*2&&(g.startsWith("*")&&g.endsWith("*")||g.startsWith("_")&&g.endsWith("_"))&&!/\w/.test(e.substring(y.index-1,y.index))&&!/\w/.test(e.substring(h.lastIndex,h.lastIndex+1))&&!/\S[./\\]/.test(e.substring(y.index-2,y.index))&&!/[./\\]\S/.test(e.substring(h.lastIndex,h.lastIndex+2)))O=Pe($e,{italic:!0,color:a,children:g.slice(Yt,-Yt)},$);else if(g.startsWith("~~")&&g.endsWith("~~")&&g.length>Kt*2)O=Pe($e,{strikethrough:!0,color:a,children:g.slice(Kt,-Kt)},$);else if(g.startsWith("`")&&g.endsWith("`")&&g.length>bo){let v=g.match(/^(`+)(.+?)\1$/s);v&&v[2]&&(O=Pe($e,{color:r,children:v[2]},$))}else if(g.startsWith("[")&&g.includes("](")&&g.endsWith(")")){let v=g.match(/\[(.*?)\]\((.*?)\)/);if(v){let Y=v[1],T=v[2];O=vn($e,{color:a,children:[Y,vn($e,{color:n,children:[" (",T,")"]})]},$)}}else g.startsWith("<u>")&&g.endsWith("</u>")&&g.length>$n+In-1?O=Pe($e,{underline:!0,color:a,children:g.slice($n,-In)},$):g.match(/^https?:\/\//)&&(O=Pe($e,{color:n,children:g},$))}catch{O=null}c.push(O??Pe($e,{color:a,children:g},$)),p=h.lastIndex}return p<e.length&&c.push(Pe($e,{color:a,children:e.slice(p)},`t-${p}`)),Pe(Io,{children:c.filter(g=>g!==null)})},ct=Co.memo($o);import{Fragment as Ao,jsx as ae,jsxs as En}from"react/jsx-runtime";var vo=1,_n=1,So=1,Po=1,_o=({content:e})=>{let t=e.join(`
37
+ `);return ae(De,{paddingLeft:_n,flexDirection:"column",children:ae(Me,{color:"yellow",children:t})})},Sn=Vt.memo(_o),Eo=({itemText:e,type:t,marker:n,leadingWhitespace:r=""})=>{let a=t==="ol"?`${n}. `:`${n} `,c=a.length,p=r.length;return En(De,{paddingLeft:p+So,flexDirection:"row",children:[ae(De,{width:c,children:ae(Me,{children:a})}),ae(De,{flexGrow:Po,children:ae(Me,{wrap:"wrap",children:ae(ct,{text:e,defaultColor:void 0,linkColor:"cyan",codeColor:"yellow"})})})]})},Pn=Vt.memo(Eo),No=({text:e,renderMarkdown:t=!0})=>{if(!e)return null;if(!t)return ae(De,{paddingLeft:_n,flexDirection:"column",children:ae(Me,{wrap:"wrap",children:e})});let n=e.split(/\r?\n/),r=/^ *(#{1,4}) +(.*)/,a=/^ *(`{3,}|~{3,}) *(\w*?) *$/,c=/^([ \t]*)([-*+]) +(.*)/,p=/^([ \t]*)(\d+)\. +(.*)/,h=/^ *([-*_] *){3,} *$/,y=/^ *> ?(.*)/,g=[],O=!1,$=!0,v=[],Y="";function T(b){b&&(g.push(b),$=!1)}return n.forEach((b,E)=>{let A=`line-${E}`;if(O){let d=b.match(a);d&&d[1].startsWith(Y[0])&&d[1].length>=Y.length?(T(ae(Sn,{content:v},A)),O=!1,v=[],Y=""):v.push(b);return}let W=b.match(a),Z=b.match(r),j=b.match(c),K=b.match(p),le=b.match(h),l=b.match(y);if(W)O=!0,Y=W[1];else if(le)T(ae(De,{children:ae(Me,{dimColor:!0,children:"---"})},A));else if(Z){let d=Z[1].length,P=Z[2],U=d<=2?"cyan":"blue";T(ae(De,{children:ae(Me,{color:U,...(d===4?"italic":"bold")==="italic"?{italic:!0}:{bold:!0},children:ae(ct,{text:P,defaultColor:U,linkColor:"cyan",codeColor:"yellow"})})},A))}else if(l){let d=l[1];T(ae(De,{paddingLeft:1,children:En(Me,{dimColor:!0,children:["> ",ae(ct,{text:d,defaultColor:"gray",linkColor:"cyan",codeColor:"yellow"})]})},A))}else if(j){let d=j[1],P=j[2],U=j[3];T(ae(Pn,{itemText:U,type:"ul",marker:P,leadingWhitespace:d},A))}else if(K){let d=K[1],P=K[2],U=K[3];T(ae(Pn,{itemText:U,type:"ol",marker:P,leadingWhitespace:d},A))}else b.trim().length===0?$||(g.push(ae(De,{height:vo},`spacer-${E}`)),$=!0):T(ae(De,{children:ae(Me,{wrap:"wrap",children:ae(ct,{text:b,defaultColor:void 0,linkColor:"cyan",codeColor:"yellow"})})},A))}),O&&T(ae(Sn,{content:v},"line-eof")),ae(Ao,{children:g})},zt=Vt.memo(No);import{execFile as Do}from"child_process";import Ro from"fs";import Qe from"fs/promises";import Nn from"os";import vt from"path";import{promisify as Lo}from"util";var It=Lo(Do);async function Fo(){let e=vt.join(Nn.tmpdir(),`entrydesk-clipboard-${Date.now()}.png`);try{let t=`
38
+ set imageData to the clipboard as "PNGf"
39
+ set fileRef to open for access POSIX file "${e}" with write permission
40
+ set eof fileRef to 0
41
+ write imageData to fileRef
42
+ close access fileRef
43
+ `;return await It("osascript",["-e",t]),(await Qe.stat(e)).size===0?void 0:{buffer:await Qe.readFile(e),mime:"image/png"}}catch{return}finally{try{Ro.existsSync(e)&&await Qe.unlink(e)}catch{}}}async function Bo(){try{let e=`
44
+ Add-Type -AssemblyName System.Windows.Forms
45
+ $img = [System.Windows.Forms.Clipboard]::GetImage()
46
+ if ($img) {
47
+ $ms = New-Object System.IO.MemoryStream
48
+ $img.Save($ms, [System.Drawing.Imaging.ImageFormat]::Png)
49
+ [System.Convert]::ToBase64String($ms.ToArray())
50
+ }
51
+ `,{stdout:t}=await It("powershell.exe",["-command",e]),n=t.trim();if(!n)return;let r=Buffer.from(n,"base64");return r.length===0?void 0:{buffer:r,mime:"image/png"}}catch{return}}async function Oo(){try{let{stdout:e}=await It("wl-paste",["-t","image/png"],{encoding:"buffer",maxBuffer:52428800});if(e&&e.length>0)return{buffer:e,mime:"image/png"}}catch{}try{let{stdout:e}=await It("xclip",["-selection","clipboard","-t","image/png","-o"],{encoding:"buffer",maxBuffer:52428800});if(e&&e.length>0)return{buffer:e,mime:"image/png"}}catch{}}async function An(){let e=Nn.platform();if(e==="darwin")return Fo();if(e==="win32")return Bo();if(e==="linux")return Oo()}var Uo=new Set([".png",".jpg",".jpeg",".gif",".webp",".bmp",".ico",".heic",".heif",".pdf",".txt",".md",".rtf",".csv",".doc",".docx",".xls",".xlsx",".ppt",".pptx",".key",".pages",".numbers",".odt",".ods",".odp",".json",".xml",".yaml",".yml"]);function Dn(e){let t=vt.extname(e).toLowerCase();return Uo.has(t)}function jo(e){let t=vt.extname(e).toLowerCase();return{".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".webp":"image/webp",".bmp":"image/bmp",".ico":"image/x-icon",".heic":"image/heic",".heif":"image/heif",".txt":"text/plain",".md":"text/markdown",".pdf":"application/pdf",".csv":"text/csv",".rtf":"application/rtf",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".key":"application/vnd.apple.keynote",".pages":"application/vnd.apple.pages",".numbers":"application/vnd.apple.numbers",".odt":"application/vnd.oasis.opendocument.text",".ods":"application/vnd.oasis.opendocument.spreadsheet",".odp":"application/vnd.oasis.opendocument.presentation",".json":"application/json",".xml":"application/xml",".yaml":"text/yaml",".yml":"text/yaml"}[t]||"application/octet-stream"}function St(e){let t=e.trim();return t.startsWith("file://")&&(t=decodeURIComponent(t.slice(7))),(t.startsWith("'")&&t.endsWith("'")||t.startsWith('"')&&t.endsWith('"'))&&(t=t.slice(1,-1)),t=t.replace(/\\(.)/g,"$1"),t}async function Rn(e){let t=St(e);if(/^https?:\/\//.test(t))return!1;try{return await Qe.access(t),!0}catch{return!1}}async function Ln(e){let t=St(e);try{if(!(await Qe.stat(t)).isFile())return;let r=await Qe.readFile(t),a=jo(t),c=vt.basename(t);return{buffer:r,mimeType:a,filename:c}}catch{return}}var Ie="\x1B[2m",X="\x1B[0m",ge="\x1B[36m",Ze="\x1B[32m",Fn="\x1B[31m",Ye="\x1B[38;2;59;91;204m",Xt="\x1B[38;2;126;200;248m",Qt="\x1B[38;2;244;196;78m";import{useState as Oe}from"react";import{v4 as Bn}from"uuid";function On(e,t){let[n,r]=Oe({status:"loading"}),[a,c]=Oe([]),[p,h]=Oe(""),[y,g]=Oe(()=>e||Bn()),[O,$]=Oe(t),[v,Y]=Oe(!!e),[T,b]=Oe(null),[E,A]=Oe(""),[W,Z]=Oe(!1),j=le=>{c(l=>[...l,{role:"system",content:le}])};return{state:n,setState:r,messages:a,setMessages:c,input:p,setInput:h,taskId:y,setTaskId:g,currentTaskTitle:O,setCurrentTaskTitle:$,hasPersistedTask:v,setHasPersistedTask:Y,credentials:T,setCredentials:b,currentResponse:E,setCurrentResponse:A,fullOutput:W,setFullOutput:Z,addSystemMessage:j,startNewTask:le=>{let l=Bn();g(l),$(void 0),Y(!1),c([]),le&&j(le)}}}import{useEffect as Wo,useState as Un}from"react";function jn(e){let[t,n]=Un(null),[r,a]=Un(!0);return Wo(()=>{let c=!1;async function p(){try{let h=await We();if(c)return;n({accessToken:h.accessToken,workspaceId:h.workspaceId}),a(!1)}catch(h){if(c)return;if(h instanceof Je){if(h.code==="not-logged-in"){e({status:"not-logged-in"}),a(!1);return}if(h.code==="no-workspace"){e({status:"no-workspace"}),a(!1);return}}let y=h instanceof Error?h.message:"Failed to authenticate";e({status:"error",message:y}),a(!1)}}return p(),()=>{c=!0}},[e]),{credentials:t,loading:r}}import{useEffect as Mo,useState as ut}from"react";function Wn(e){let[t,n]=ut([]),[r,a]=ut([]),[c,p]=ut([]),[h,y]=ut([]),[g,O]=ut(!1);return Mo(()=>{if(!e)return;let $=!1;O(!0);async function v(){if(e)try{let Y=new pe,[T,b,E,A]=await Promise.all([Y.getConnectors(e.accessToken,e.workspaceId),Y.getModels(e.accessToken,e.workspaceId),Y.getAgents(e.accessToken,e.workspaceId),Y.getModelProviders(e.accessToken,e.workspaceId)]);if($)return;n(T.connectors),a(b.models),p(E.agents),y(A.providers??[])}catch{}finally{$||O(!1)}}return v(),()=>{$=!0}},[e]),{availableConnectors:t,availableModels:r,availableAgents:c,modelProviders:h,loading:g}}import et from"fs";import Gn from"path";import{useCallback as Go}from"react";import{v4 as qo}from"uuid";function Mn(e,t){if(!e)return"(no result)";if(typeof e!="object"){let a=String(e);return t||a.length<=200?a:a.slice(0,200)+"..."}let n=e;if("structuredContent"in n&&n.structuredContent){let a=n.structuredContent;if(a.stdout&&typeof a.stdout=="string"){let c=a.stdout.trim();return t||c.length<=200?c:c.slice(0,200)+"..."}}if("content"in n&&Array.isArray(n.content)){let a=n.content.filter(c=>c.type==="text"&&c.text).map(c=>c.text).join(`
52
+ `);return a?t||a.length<=200?a:a.slice(0,200)+"...":"(result)"}let r=JSON.stringify(e,null,t?2:void 0);return t||r.length<=200?r:r.slice(0,200)+"..."}function Ke(e,t=!1){let n=[];for(let r of e)if(r.type==="text"&&r.text)n.push(r.text);else if(r.type==="reasoning"&&r.text)t?n.push(`${Ie}[Thinking]
53
+ ${r.text}${X}`):n.push(`${Ie}[Thinking...]${X}`);else if(r.type==="tool-call"&&r.toolName){let a=[];if(a.push(`${ge}\u250C\u2500 Tool: ${r.toolName}${X}`),r.args){let c=JSON.stringify(r.args,null,t?2:void 0),p=t||c.length<=100?c:c.slice(0,100)+"...";a.push(`${Ie}\u2502 Args: ${p}${X}`)}r.result!==void 0?(a.push(`${Ze}\u2502 Result: ${Mn(r.result,t)}${X}`),a.push(`${ge}\u2514\u2500 completed${X}`)):a.push(`${ge}\u2514\u2500${X}`),n.push(a.join(`
54
+ `))}else if(r.type.startsWith("tool-")&&r.type!=="tool-call"){let a=r.title||r.type.slice(5).replace(/__/g," "),c=[];if(c.push(`${ge}\u250C\u2500 Tool: ${a}${X}`),r.input){let p=JSON.stringify(r.input,null,t?2:void 0),h=t||p.length<=100?p:p.slice(0,100)+"...";c.push(`${Ie}\u2502 Input: ${h}${X}`)}r.output!==void 0&&r.state==="output-available"?(c.push(`${Ze}\u2502 Output: ${Mn(r.output,t)}${X}`),c.push(`${ge}\u2514\u2500 completed${X}`)):r.state==="error"?c.push(`${ge}\u2514\u2500 failed${X}`):c.push(`${ge}\u2514\u2500${X}`),n.push(c.join(`
55
+ `))}return n.join(`
56
+
57
+ `).trim()}var Pt=class{pendingToolCalls=new Map;hasPending(){return this.pendingToolCalls.size>0}hasExecuting(){for(let t of this.pendingToolCalls.values())if(t.status==="executing")return!0;return!1}clear(t){this.pendingToolCalls.delete(t)}buildToolDisplay(){if(this.pendingToolCalls.size===0)return"";let t=[];for(let[,n]of this.pendingToolCalls){let r=n.toolName.replace(/__/g," "),a=`
58
+
59
+ ${ge}\u250C\u2500 Tool: ${r}${X}`;if(n.args){let c=n.args.length>100?n.args.slice(0,100)+"...":n.args;a+=`
60
+ ${Ie}\u2502 Input: ${c}${X}`}if(n.output){let c=n.output.length>150?n.output.slice(0,150)+"...":n.output;a+=`
61
+ ${Ze}\u2502 Output: ${c}${X}`}else if(n.status==="executing"){let c=n.startedAt??Date.now(),p=Math.floor((Date.now()-c)/1e3);a+=`
62
+ ${ge}\u2502${X} (executing... ${p}s)`}else n.status==="preparing"&&(a+=`
63
+ ${ge}\u2502${X} (preparing...)`);t.push(a)}return t.join("")}flushPending(t){if(this.pendingToolCalls.size===0)return t;for(let[n,r]of this.pendingToolCalls){let a=r.toolName.replace(/__/g," "),c=typeof r.args=="string"&&r.args.length>100?r.args.slice(0,100)+"...":r.args||"";t+=`
64
+
65
+ ${ge}\u250C\u2500 Tool: ${a}${X}`,c&&(t+=`
66
+ ${Ie}\u2502 Input: ${c}${X}`),t+=`
67
+ ${ge}\u2514\u2500 completed${X}
68
+ `,this.pendingToolCalls.delete(n)}return t}handleToolInputStart(t){return t.toolCallId&&t.toolName?(this.pendingToolCalls.set(t.toolCallId,{toolName:t.toolName,args:"",status:"preparing"}),this.buildToolDisplay()):null}handleToolInputDelta(t){if(t.toolCallId&&t.inputTextDelta){let n=this.pendingToolCalls.get(t.toolCallId);if(n)return n.args=(n.args||"")+t.inputTextDelta,n.status="executing",n.startedAt??=Date.now(),this.buildToolDisplay()}return null}handleToolOutputStart(t){if(t.toolCallId){let n=this.pendingToolCalls.get(t.toolCallId);if(n)return n.output="",n.status="output",this.buildToolDisplay()}return null}handleToolOutputDelta(t){if(t.toolCallId&&t.outputTextDelta){let n=this.pendingToolCalls.get(t.toolCallId);if(n)return n.output=(n.output||"")+t.outputTextDelta,this.buildToolDisplay()}return null}handleToolOutputEnd(t,n){if(!t.toolCallId)return null;let r=this.pendingToolCalls.get(t.toolCallId);if(!r)return null;let a=r.toolName.replace(/__/g," "),c=typeof r.args=="string"&&r.args.length>100?r.args.slice(0,100)+"...":r.args||"",p=(r.output||"").length>200?(r.output||"").slice(0,200)+"...":r.output||"";return n+=`
69
+
70
+ ${ge}\u250C\u2500 Tool: ${a}${X}`,c&&(n+=`
71
+ ${Ie}\u2502 Input: ${c}${X}`),n+=`
72
+ ${Ze}\u2502 Output: ${p}${X}`,n+=`
73
+ ${ge}\u2514\u2500 completed${X}
74
+ `,this.pendingToolCalls.delete(t.toolCallId),{fullResponse:n,toolDisplay:this.buildToolDisplay()}}handleToolError(t,n){if(!t.toolCallId)return null;let a=(this.pendingToolCalls.get(t.toolCallId)?.toolName||t.toolName||"Tool").replace(/__/g," "),c=t.errorText||"Unknown error",p=c.length>200?c.slice(0,200)+"...":c;return n+=`
75
+
76
+ ${ge}\u250C\u2500 Tool: ${a}${X}`,n+=`
77
+ ${Fn}\u2502 Error: ${p}${X}`,n+=`
78
+ ${ge}\u2514\u2500 failed${X}
79
+ `,this.pendingToolCalls.delete(t.toolCallId),{fullResponse:n,toolDisplay:this.buildToolDisplay()}}};var dt=Gn.join(process.env.HOME||"/tmp",".entrydesk","stream-debug.log");function ne(e,t){if(!process.env.DEBUG)return;let r=`[${new Date().toISOString()}] ${e}`;t!==void 0&&(r+=`
80
+ DATA: ${JSON.stringify(t,null,2)}`),r+=`
81
+ `;try{et.appendFileSync(dt,r)}catch{}}function Ho(){try{if(et.existsSync(dt)&&et.unlinkSync(dt),process.env.DEBUG){let e=Gn.dirname(dt);et.existsSync(e)||et.mkdirSync(e,{recursive:!0}),et.writeFileSync(dt,`=== Debug session started at ${new Date().toISOString()} ===
82
+ `)}}catch{}}function _t(e){if(!e)return{};if(typeof e=="string")try{return JSON.parse(e)}catch{return{}}return typeof e=="object"?e:{}}function qn({taskId:e,credentials:t,currentAgentId:n,currentModel:r,activeConnectorIds:a,localTools:c,fullOutput:p,setMessages:h,setState:y,setCurrentResponse:g,setCredentials:O,setHasPersistedTask:$,getFileIds:v,clearFiles:Y}){let T=c?xt():void 0,b=c?wt():void 0;return{sendMessage:Go(async(A,W,Z)=>{Ho(),ne("=== sendMessage called ===",{text:A,localTools:c,clientToolsCount:T?.length});let j=W||t?.accessToken,K=Z||t?.workspaceId;if(!j||!K)try{let d=await We();j=d.accessToken,K=d.workspaceId,O(d)}catch(d){if(d instanceof Je){if(d.code==="not-logged-in"){y({status:"not-logged-in"});return}if(d.code==="no-workspace"){y({status:"no-workspace"});return}}let P=d instanceof Error?d.message:"Authentication failed";y({status:"error",message:P});return}else try{let d=await ln();d!==j&&(j=d,O({accessToken:d,workspaceId:K}))}catch(d){if(d instanceof Je&&d.code==="not-logged-in"){y({status:"not-logged-in"});return}let P=d instanceof Error?d.message:"Authentication failed";y({status:"error",message:P});return}h(d=>[...d,{role:"user",content:A}]),y({status:"sending"}),g("");let le=null,l=null;try{let d=new pe,P=v?.()??[],U={id:e,message:{id:qo(),createdAt:new Date,role:"user",parts:[{type:"text",text:A}]}};P.length>0&&(U.fileIds=P),n?U.agentId=n:(r&&(U.model=r),U.connectorIds=a??[]),T&&(U.clientTools=T),b&&(U.clientToolSystemPrompt=b);let C=await d.task(j,K,U);if(!C.ok){let S=await C.text();throw new Error(`API error ${C.status}: ${S}`)}if(!C.body)throw new Error("No response body from server");le=C.body.getReader();let fe=new TextDecoder,te="",w="",L="",D="",M="",Q="",ee="",R=new Pt,H=[],V=[],oe=[],F=()=>{let S=R.hasExecuting();S&&!l?l=setInterval(()=>{if(!R.hasExecuting()){l&&(clearInterval(l),l=null);return}g(w+R.buildToolDisplay())},1e3):!S&&l&&(clearInterval(l),l=null)};for(;;){let{done:S,value:N}=await le.read();if(S)break;te+=fe.decode(N,{stream:!0});let I=te.split(`
83
+ `);te=I.pop()||"";for(let u of I)if(u.trim()!=="data: [DONE]"&&u.startsWith("data: "))try{let m=JSON.parse(u.slice(6));switch(ne(`SSE event received: ${m.type}`,m),m.type){case"reasoning-start":D=m.id||"0",L="";break;case"reasoning-delta":m.delta&&(L+=m.delta,g(`${Ie}[Thinking...]${X}
84
+ ${L}`)),m.providerMetadata?.anthropic?.signature&&(M=m.providerMetadata.anthropic.signature);break;case"reasoning-end":if(L){let _={type:"reasoning",id:D,text:L,state:"done"};M&&(_.providerMetadata={anthropic:{signature:M}}),V.push(_),ne("Added reasoning to messageParts",{reasoningLength:L.length,hasSignature:!!M,messagePartsCount:V.length})}L="",M="",g("");break;case"text-delta":m.delta&&(R.hasPending()&&(w=R.flushPending(w)),w+=m.delta,Q+=m.delta,g(w));break;case"tool-input-start":{let _=R.handleToolInputStart(m);_&&g(w+_),F();break}case"tool-input-delta":{let _=R.handleToolInputDelta(m);_&&g(w+_),F();break}case"tool-call":case"tool-input-available":{if(ne(`=== Tool event: ${m.type} ===`,{toolCallId:m.toolCallId,toolName:m.toolName,localTools:c,isClientToolResult:m.toolName?Be(m.toolName):"no toolName",args:m.args,input:m.input}),m.toolCallId&&m.toolName){let _=_t(m.args??m.input);V.push({type:m.type,toolCallId:m.toolCallId,toolName:m.toolName,args:_}),ne("Added tool to messageParts",{messagePartsCount:V.length})}if(c&&m.toolCallId&&m.toolName&&Be(m.toolName)){let _=_t(m.args??m.input);H.push({toolCallId:m.toolCallId,toolName:m.toolName,args:_}),ne("Added to pendingClientTools",{pendingCount:H.length,pendingClientTools:H}),g(w+R.buildToolDisplay()+`
85
+ [Executing ${m.toolName} locally...]`)}else ne("NOT added to pendingClientTools - conditions not met",{localTools:c,hasToolCallId:!!m.toolCallId,hasToolName:!!m.toolName,isClientTool:m.toolName?Be(m.toolName):!1});break}case"tool-output-start":{let _=R.handleToolOutputStart(m);_&&g(w+_),F();break}case"tool-output-delta":{let _=R.handleToolOutputDelta(m);_&&g(w+_),F();break}case"tool-output-end":{let _=R.handleToolOutputEnd(m,w);_&&(w=_.fullResponse,g(w+_.toolDisplay)),F();break}case"tool-input-error":case"tool-output-error":{let _=R.handleToolError(m,w);_&&(w=_.fullResponse,g(w+_.toolDisplay)),F();break}case"start":m.messageId&&(ee=m.messageId,ne("Captured messageId from start event",{messageId:ee}));break;case"start-step":case"text-start":case"text-end":case"finish-step":case"message-metadata":case"finish":break;case"error":m.errorText&&console.error("Stream error:",m.errorText);break}}catch{}}if(Q){let S=V.findIndex(I=>I.type!=="reasoning"),N=S===-1?V.length:S;V.splice(N,0,{type:"text",text:Q}),ne("Added accumulated text to messageParts",{textLength:Q.length,insertIndex:N})}for(ne("=== Initial stream ended ===",{pendingClientToolsCount:H.length,pendingClientTools:H,messagePartsCount:V.length,messageParts:V.map(S=>({type:S.type,toolCallId:S.toolCallId,toolName:S.toolName}))});H.length>0;){ne("=== Starting pending tools execution loop ===",{pendingCount:H.length});let S=[];for(let u of H){ne(`Executing tool: ${u.toolName}`,{toolCallId:u.toolCallId,args:u.args}),R.handleToolInputStart({toolCallId:u.toolCallId,toolName:u.toolName}),R.handleToolInputDelta({toolCallId:u.toolCallId,inputTextDelta:JSON.stringify(u.args)}),g(w+R.buildToolDisplay()),F();let m=await Tt(u.toolName,u.args);ne(`Tool execution result: ${u.toolName}`,{success:m.success,resultPreview:m.success?JSON.stringify(m.result).slice(0,200):m.error});let _=m.success?JSON.stringify(m.result):m.error||"Unknown error";if(S.push({toolCallId:u.toolCallId,toolName:u.toolName,content:[{type:"text",text:_}],isError:!m.success}),m.success){R.handleToolOutputStart({toolCallId:u.toolCallId}),R.handleToolOutputDelta({toolCallId:u.toolCallId,outputTextDelta:JSON.stringify(m.result).slice(0,200)});let ce=R.handleToolOutputEnd({toolCallId:u.toolCallId},w);ce&&(w=ce.fullResponse)}else{let ce=R.handleToolError({toolCallId:u.toolCallId,errorText:m.error},w);ce&&(w=ce.fullResponse)}g(w+R.buildToolDisplay()),F()}H.length=0;for(let u of S){let m=V.find(_=>(_.type==="tool-input-available"||_.type==="tool-call")&&_.toolCallId===u.toolCallId);if(m){let _=[];for(let G of u.content)G.type==="text"?_.push(G.text):G.type==="image"?_.push("[Image]"):G.type==="audio"?_.push("[Audio]"):(G.type==="resource"||G.type==="resource_link")&&_.push("[Resource]");let ce=_.join(`
86
+ `);oe.push({type:`tool-${m.toolName}`,toolName:m.toolName,toolCallId:m.toolCallId,input:m.args,output:ce,isError:u.isError})}}if(ne("=== Sending clientToolResults for continuation ===",{toolResultsCount:S.length,toolResults:S.map(u=>({toolCallId:u.toolCallId,toolName:u.toolName,isError:u.isError}))}),le)try{le.releaseLock()}catch{}let N={id:e,clientToolResults:S};n?N.agentId=n:(r&&(N.model=r),N.connectorIds=a??[]),T&&(N.clientTools=T),b&&(N.clientToolSystemPrompt=b),ne("=== Sending continuation request ===",{taskId:e,hasAgentId:!!N.agentId,hasModel:!!N.model,clientToolResultsCount:S.length});let I=await d.task(j,K,N);if(ne("=== Continuation response received ===",{ok:I.ok,status:I.status}),!I.ok){let u=await I.text();throw new Error(`Continuation failed: ${I.status}: ${u}`)}if(!I.body)break;for(ne("=== Processing continuation stream ==="),le=I.body.getReader(),V.length=0,Q="",L="",D="",M="";;){let{done:u,value:m}=await le.read();if(u){ne("=== Continuation stream done ===");break}te+=fe.decode(m,{stream:!0});let _=te.split(`
87
+ `);te=_.pop()||"";for(let ce of _)if(ce.trim()!=="data: [DONE]"&&ce.startsWith("data: "))try{let G=JSON.parse(ce.slice(6));switch(ne(`Continuation SSE: ${G.type}`,G),G.type){case"reasoning-start":D=G.id||"0",L="";break;case"reasoning-delta":G.delta&&(L+=G.delta,g(`${Ie}[Thinking...]${X}
88
+ ${L}`)),G.providerMetadata?.anthropic?.signature&&(M=G.providerMetadata.anthropic.signature);break;case"reasoning-end":if(L){let xe={type:"reasoning",id:D,text:L,state:"done"};M&&(xe.providerMetadata={anthropic:{signature:M}}),V.push(xe),ne("Continuation: Added reasoning to messageParts",{reasoningLength:L.length,hasSignature:!!M,messagePartsCount:V.length})}L="",M="",g(w);break;case"text-delta":G.delta&&(w+=G.delta,Q+=G.delta,g(w));break;case"tool-call":case"tool-input-available":if(G.toolCallId&&G.toolName){let xe=_t(G.args??G.input);V.push({type:G.type,toolCallId:G.toolCallId,toolName:G.toolName,args:xe})}if(c&&G.toolCallId&&G.toolName&&Be(G.toolName)){let xe=_t(G.args??G.input);H.push({toolCallId:G.toolCallId,toolName:G.toolName,args:xe}),ne("Continuation: Added to pendingClientTools",{pendingCount:H.length})}break;case"finish":ne("Continuation finish event",G);break}}catch{}}if(Q){let u=V.findIndex(_=>_.type!=="reasoning"),m=u===-1?V.length:u;V.splice(m,0,{type:"text",text:Q})}ne("=== Continuation stream processing complete ===",{pendingClientToolsCount:H.length,messagePartsCount:V.length,fullResponseLength:w.length})}if(c&&T&&T.length>0){let S=[];for(let I of oe)S.push({type:String(I.type),title:String(I.toolName).replace(/__/g," "),input:I.input,output:I.output,state:I.isError?"error":"output-available"});for(let I of V)I.type==="text"&&I.text&&S.push({type:"text",text:I.text});let N=Ke(S,p);ne("=== Using formatted parts for local tools ===",{executedToolsCount:oe.length,textPartsCount:V.filter(I=>I.type==="text").length,contentLength:N.length}),h(I=>[...I,{role:"assistant",content:N,parts:S}])}else{ne("=== Fetching message from API ===",{fullResponseLength:w.length,fullResponsePreview:w.slice(0,200)});try{let{messages:S}=await d.getMessages(j,K,e,10);ne("=== API messages received ===",{count:S.length,roles:S.map(I=>I.role)});let N=S.find(I=>I.role==="assistant");if(N){let I=N.parts,u=Ke(I,p);ne("=== Setting message from API ===",{partsCount:I.length,partTypes:I.map(m=>m.type),contentLength:u.length,contentPreview:u.slice(0,200)}),h(m=>[...m,{role:"assistant",content:u,parts:I}])}else ne("=== No assistant message found, using fallback ==="),h(I=>[...I,{role:"assistant",content:w}])}catch(S){ne("=== API fetch failed, using fallback ===",{error:S instanceof Error?S.message:String(S)}),h(N=>[...N,{role:"assistant",content:w}])}}ne("=== Message handling complete ==="),g(""),y({status:"ready"}),$(!0),P.length>0&&Y?.()}catch(d){ne("=== ERROR ===",{message:d instanceof Error?d.message:String(d),stack:d instanceof Error?d.stack:void 0});let P=d instanceof Error?d.message:"Failed to send message";y({status:"error",message:P})}finally{if(l&&(clearInterval(l),l=null),le)try{le.releaseLock()}catch{}}},[t,e,n,r,a,c,T,b,p,h,y,g,O,$,v,Y])}}import{useState as Jo}from"react";var Hn=new Map([["sandbox","Sandbox"],["web_search","Web Search"],["image_generation","Image Generation"],["chart","Chart"],["file_system","FileSystem"]]);function Jn(e){let[t,n]=Jo(e);return{fileSystem:t,setFileSystem:n,capabilityLabelMap:Hn}}import{useEffect as Yo,useState as Ko}from"react";function Yn(e,t){let[n,r]=Ko(null);return Yo(()=>{let a=!1;async function c(){if(!e||!t){r(null);return}try{let h=await new pe().getAgent(t.accessToken,t.workspaceId,e);a||r(h)}catch{a||r(null)}}return c(),()=>{a=!0}},[e,t]),{currentAgentDetails:n}}import{useState as Zt}from"react";function Kn(e,t,n){let[r,a]=Zt(e),[c,p]=Zt(t),[h,y]=Zt(n);return{currentModel:r,setCurrentModel:a,currentAgentId:c,setCurrentAgentId:p,activeConnectorIds:h,setActiveConnectorIds:y}}import{useApp as zo,useInput as Xo}from"ink";import{useCallback as Ue,useRef as Qo,useState as Te}from"react";import{spawn as Vo}from"child_process";function Vn(e){return new Promise((t,n)=>{let r,a;process.platform==="darwin"?(r="open",a=[e]):process.platform==="win32"?(r="cmd",a=["/c","start","",e]):(r="xdg-open",a=[e]);let c=Vo(r,a,{stdio:"ignore",detached:!0});c.once("error",p=>{n(p)}),c.once("spawn",()=>{c.unref(),t()})})}var zn=[{name:"help",aliases:["h","?"],description:"Show available commands"},{name:"clear",aliases:["cls","new"],description:"Start a new task"},{name:"model",aliases:["m"],description:"Show/switch model",hasArgs:!0},{name:"agent",aliases:["a"],description:"Show/switch agent",hasArgs:!0},{name:"skills",aliases:["sk"],description:"List skills",hasArgs:!0},{name:"schedules",aliases:["sch"],description:"List schedules",hasArgs:!0},{name:"connectors",aliases:["conn"],description:"Select connectors"},{name:"capabilities",aliases:["cap"],description:"Toggle client capabilities"},{name:"tasks",aliases:["c"],description:"Switch to another task"},{name:"workspace",aliases:["ws"],description:"List/switch workspace",hasArgs:!0},{name:"budget",aliases:["bg"],description:"View/set workspace budget",hasArgs:!0},{name:"usage",aliases:["u"],description:"View current month usage"},{name:"status",aliases:["s"],description:"Show session status"},{name:"profile",aliases:["p"],description:"Manage profiles",hasArgs:!0},{name:"open-in-browser",aliases:[],description:"Open current task in browser"},{name:"share",aliases:[],description:"Get share link for current task"},{name:"delete",aliases:["del"],description:"Delete current task"},{name:"quit",aliases:["exit","q"],description:"Exit task"}];function Xn(e){if(!e.startsWith("/"))return[];let t=e.slice(1).toLowerCase();return t?zn.filter(n=>n.name.startsWith(t)||n.aliases.some(r=>r.startsWith(t))):zn}function Qn(e){let t=e.trim();if(!t.startsWith("/"))return null;let n=t.slice(1).split(/\s+/),r=n[0]?.toLowerCase(),a=n.slice(1).join(" ");switch(r){case"help":case"h":case"?":return{type:"help"};case"clear":case"cls":case"new":return{type:"clear"};case"model":case"m":return{type:"model",value:a||void 0};case"agent":case"a":return{type:"agent",value:a||void 0};case"skills":case"sk":return{type:"skills",value:a||void 0};case"schedules":case"sch":return{type:"schedules",value:a||void 0};case"connectors":case"conn":return{type:"connectors"};case"capabilities":case"cap":return{type:"capabilities"};case"tasks":case"c":return{type:"tasks"};case"workspace":case"ws":return{type:"workspace",value:a||void 0};case"budget":case"bg":return{type:"budget",value:a||void 0};case"usage":case"u":return{type:"usage"};case"status":case"s":return{type:"status"};case"profile":case"p":return{type:"profile",value:a||void 0};case"open-in-browser":return{type:"open-in-browser"};case"share":return{type:"share"};case"delete":case"del":return{type:"delete"};case"quit":case"exit":case"q":return{type:"quit"};default:return{type:"unknown",input:t}}}var Zn=`Available commands:
89
+ /help, /h, /? Show this help message
90
+ /clear, /cls, /new Start a new task
91
+ /model [name], /m Show current model or switch to [name]
92
+ /agent [name], /a Show current agent or switch to [name]
93
+ /skills [name], /sk List skills or show details for [name]
94
+ /schedules [id], /sch List schedules or show details for [id]
95
+ /connectors, /conn Select active connectors
96
+ /capabilities, /cap Toggle client capabilities (FileSystem)
97
+ /tasks, /c Switch to another task
98
+ /workspace [id], /ws List or switch workspace
99
+ /budget [amount], /bg View or set workspace budget
100
+ /usage, /u View current month usage (top 10 by cost)
101
+ /status, /s Show current session status
102
+ /profile [args], /p Manage profiles (list/show/use/create/delete/rename/clone)
103
+ /open-in-browser Open current task in browser
104
+ /share Get share link for current task
105
+ /delete, /del Delete current task
106
+ /quit, /exit, /q Exit interactive mode
107
+
108
+ Note: For detailed usage with sorting/limits, use: entrydesk usage --help
109
+
110
+ Keyboard shortcuts:
111
+ Ctrl+O Toggle full output mode
112
+ Ctrl+C Exit`;function en(e){if(e.type==="no-repeat")return"No repeat";let{interval:t}=e;switch(t.unit){case"minutes":return`Every ${t.every} min`;case"hours":return`Every ${t.every} hr`;case"days":return`Every ${t.every} day at ${String(t.time.hour).padStart(2,"0")}:${String(t.time.minute).padStart(2,"0")}`;case"weeks":return`Every ${t.every} week`;case"months":return`Every ${t.every} month`;default:return"Unknown"}}function eo({input:e,setInput:t,taskId:n,setTaskId:r,currentTaskTitle:a,setCurrentTaskTitle:c,currentModel:p,setCurrentModel:h,currentAgentId:y,setCurrentAgentId:g,currentAgentDetails:O,setCurrentAgentDetails:$,activeConnectorIds:v,setActiveConnectorIds:Y,fileSystem:T,setFileSystem:b,availableModels:E,availableAgents:A,availableConnectors:W,messages:Z,hasPersistedTask:j,setHasPersistedTask:K,setMessages:le,addSystemMessage:l,startNewTask:d,sendMessage:P,setFullOutput:U,credentials:C,setCredentials:fe,setState:te,defaultCapabilities:w,capabilityLabelMap:L,hasUploadingFiles:D=!1}){let{exit:M}=zo(),[Q,ee]=Te([]),[R,H]=Te(0),[V,oe]=Te(!1),[F,S]=Te(null),[N,I]=Te([]),[u,m]=Te(0),[_,ce]=Te(new Set),[G,xe]=Te(new Set),[sn,pt]=Te([]),[_e,Lt]=Te([]),[ve,mt]=Te([]),[Re,gt]=Te([]),[Ee,je]=Te(null),[Ft,nt]=Te(""),Ve=Qo(!1),[Le,ye]=Te(!1),ze=Ue(async()=>{if(!C)return[];let k=new pe,f=[],o;do{let s=await k.listAvailableSkills(C.accessToken,C.workspaceId,{limit:100,nextKey:o});f.push(...s.skills),o=s.nextKey}while(o);return Lt(f),f},[C]),Xe=Ue(async()=>{if(!C)return[];let k=new pe,f=[],o;do{let s=await k.getSchedules(C.accessToken,C.workspaceId,{limit:100,nextKey:o});f.push(...s.schedules),o=s.nextKey}while(o);return mt(f),f},[C]),we=Ue(async k=>{if(k==="model"){if(E.length===0){l("No models available.");return}let f=E.map(s=>({id:s.id,name:s.name,description:s.description}));I(f);let o=p?f.findIndex(s=>s.id===p):-1;m(Math.max(o,0)),S("model")}else if(k==="agent"){if(A.length===0){l("No agents available.");return}let f=A.map(s=>({id:s.id,name:s.name,description:s.description}));I(f);let o=y?f.findIndex(s=>s.id===y):-1;m(Math.max(o,0)),S("agent")}else if(k==="skills"){let f=_e;if(f.length===0)try{f=await ze()}catch{l("Failed to load skills.");return}if(f.length===0){l("No skills available.");return}let o=f.map(s=>({id:s.id,name:s.name,description:s.description}));I(o),m(0),S("skills")}else if(k==="schedules"){let f=ve;if(f.length===0)try{f=await Xe()}catch{l("Failed to load schedules.");return}if(f.length===0){l("No schedules found.");return}let o=f.map(s=>({id:s.id,name:s.name,description:`${s.agent.name} - ${s.isActive?"Active":"Paused"}`}));I(o),m(0),S("schedules")}else if(k==="connectors"){if(W.length===0){l("No connectors available.");return}let f=W.map(o=>({id:o.id,name:o.name}));I(f),m(0),ce(new Set(v??[])),S("connectors")}else if(k==="capabilities"){I([{id:"fileSystem",name:"FileSystem",description:"Local file operations"}]),m(0);let o=new Set;T&&o.add("fileSystem"),xe(o),S("capabilities")}else if(k==="tasks"){if(!C){l("Not authenticated.");return}try{let f=new pe,{tasks:o}=await f.getTasks(C.accessToken,C.workspaceId,20);if(o.length===0){l("No tasks available.");return}pt(o);let s=o.map(x=>({id:x.id,name:x.title||"Untitled",description:new Date(x.createdAt).toLocaleDateString()}));I(s);let i=s.findIndex(x=>x.id===n);m(Math.max(i,0)),S("tasks")}catch{l("Failed to load tasks.")}}else if(k==="profile"){let f=ie.getProfileNames(),o=ie.getCurrentProfileName(),s=f.map(x=>({id:x,name:x,description:x===o?"(current)":void 0}));I(s);let i=s.findIndex(x=>x.id===o);m(Math.max(i,0)),S("profile")}oe(!1),ee([])},[E,A,_e,ve,W,v,p,y,T,ze,Xe,C,n,l]),Se=Ue(k=>{let f=de.getAll(k);h(f.model?.default),g(void 0),$(null);let o=f.connectors?.defaults;Y(o&&o.length>0?o:void 0);let s=f.localTools;b(s?.fileSystem??w.fileSystem)},[h,g,$,Y,b,w]),Ne=Ue(async()=>{try{let k=await We();fe({accessToken:k.accessToken,workspaceId:k.workspaceId}),te({status:"ready"})}catch(k){if(fe(null),k instanceof Je){if(k.code==="not-logged-in"){te({status:"not-logged-in"});return}if(k.code==="no-workspace"){te({status:"no-workspace"});return}}let f=k instanceof Error?k.message:"Failed to authenticate";te({status:"error",message:f})}},[fe,te]),Ge=Ue(async k=>{switch(k.type){case"help":return l(Zn),!0;case"clear":return d("Started a new task."),!0;case"model":{if(k.value){let f=k.value.toLowerCase(),o=E.find(s=>s.id.toLowerCase()===f||s.name.toLowerCase().includes(f));if(o)y?d(`Switched to model: ${o.name} (new task)`):l(`Switched to model: ${o.name}`),h(o.id),g(void 0),$(null),de.setDefaultModel(o.id);else{let s=E.map(i=>i.name).join(", ");l(`Model "${k.value}" not found.
113
+ Available: ${s||"none"}`)}}else{let f=E.find(o=>o.id===p)?.name||p;l(p?`Current model: ${f}`:"No model selected. Using agent mode.")}return!0}case"agent":{if(!k.value)return A.length===0?(l("No agents available."),!0):(we("agent"),!0);let f=k.value.toLowerCase(),o=A.find(s=>s.id.toLowerCase()===f||s.name.toLowerCase().includes(f));if(o)o.id!==y?d(`Switched to agent: ${o.name} (new task)`):l(`Switched to agent: ${o.name}`),g(o.id),h(void 0);else{let s=A.map(i=>i.name).join(", ");l(`Agent "${k.value}" not found.
114
+ Available: ${s||"none"}`)}return!0}case"skills":{if(!k.value)return we("skills"),!0;let f=k.value.toLowerCase();return(_e.length>0?Promise.resolve(_e):ze().catch(()=>[])).then(s=>{let i=s.find(x=>x.id.toLowerCase()===f||x.name.toLowerCase().includes(f));l(i?`Skill: ${i.name}
115
+ ${i.description}
116
+ Provider: ${i.provider}
117
+ Author: ${i.author.name}
118
+ ID: ${i.id}`:`Skill "${k.value}" not found.`)}),!0}case"schedules":{if(!k.value)return we("schedules"),!0;let f=k.value.toLowerCase();return(ve.length>0?Promise.resolve(ve):Xe().catch(()=>[])).then(s=>{let i=s.find(x=>x.id.toLowerCase()===f||x.name.toLowerCase().includes(f));if(i){let x=i.nextRunAt?new Date(i.nextRunAt).toLocaleString():"-";l(`Schedule: ${i.name}
119
+ Agent: ${i.agent.name}
120
+ Status: ${i.isActive?"Active":"Paused"}
121
+ Repeat: ${en(i.config)}
122
+ Next Run: ${x}
123
+ ID: ${i.id}`)}else l(`Schedule "${k.value}" not found.`)}),!0}case"connectors":{if(y){let o=O?.connectors??[];if(o.length===0)l("No agent connectors.");else{let s=o.map(i=>` - ${i.name}`).join(`
124
+ `);l(`Agent connectors:
125
+ ${s}`)}return!0}let f=W.filter(o=>v?.includes(o.id));if(f.length===0)l("No active connectors.");else{let o=f.map(s=>` - ${s.name}`).join(`
126
+ `);l(`Active connectors:
127
+ ${o}`)}return!0}case"capabilities":{if(y){let s=(O?.capabilities??[]).map(i=>L.get(i)??i);return l(s.length>0?`Agent capabilities:
128
+ ${s.map(i=>` - ${i}`).join(`
129
+ `)}`:"No agent capabilities."),!0}let f=[];return T&&f.push("FileSystem"),l(f.length>0?`Active capabilities:
130
+ ${f.map(o=>` - ${o}`).join(`
131
+ `)}`:"No capabilities enabled."),!0}case"tasks":return l(a?`Current task: ${a}`:`Current task: ${n.slice(0,8)}...`),!0;case"workspace":{if(!C)return l("Not authenticated."),!0;let f=new pe;if(!k.value){try{let{workspaces:s}=await f.getWorkspaces(C.accessToken);if(s.length===0)l("No workspaces found.");else{let i=s.map(x=>` ${x.id===C.workspaceId?"* ":" "}${x.name}
132
+ ID: ${x.id}`);l(`Workspaces:
133
+ ${i.join(`
134
+ `)}`)}}catch(s){l(`Failed to load workspaces: ${s instanceof Error?s.message:"Unknown error"}`)}return!0}let o=k.value;try{let{workspaces:s}=await f.getWorkspaces(C.accessToken),i=s.find(x=>x.id===o);if(!i)return l(`Workspace not found: ${o}`),!0;await rt.saveWorkspaceId(o),l(`Switched to workspace: ${i.name}`),l("Please restart the task to apply changes.")}catch(s){l(`Failed to switch workspace: ${s instanceof Error?s.message:"Unknown error"}`)}return!0}case"budget":{if(!C)return l("Not authenticated."),!0;let f=new pe;if(!k.value){try{let i=await f.getBudget(C.accessToken,C.workspaceId);i.budget===null?l("No budget set for this workspace."):l(`Current budget: $${i.budget}`)}catch(i){l(`Failed to get budget: ${i instanceof Error?i.message:"Unknown error"}`)}return!0}let o=k.value.toLowerCase();if(o==="clear"||o==="null"){try{await f.updateBudget(C.accessToken,C.workspaceId,null),l("Budget cleared.")}catch(i){l(`Failed to clear budget: ${i instanceof Error?i.message:"Unknown error"}`)}return!0}let s=parseFloat(o);if(isNaN(s)||s<0)return l("Invalid budget amount. Must be a positive number."),!0;try{await f.updateBudget(C.accessToken,C.workspaceId,o),l(`Budget set to: $${o}`)}catch(i){l(`Failed to set budget: ${i instanceof Error?i.message:"Unknown error"}`)}return!0}case"usage":{if(!C)return l("Not authenticated."),!0;let f=new pe;try{let o=[],s,i=0,x=10;do{let me=await f.getMonthlyUsages(C.accessToken,C.workspaceId,{nextKey:s,limit:20});if(o.push(...me.monthlyUsages),s=me.nextKey,i++,i>=x){l(`Warning: Showing first ${o.length} entries (pagination limit reached)`);break}}while(s);if(o.length===0)return l("No usage data found for this workspace."),!0;let J=0,re=0;for(let me of o)J+=parseFloat(me.totalCost),re+=me.operationCount;let be=[...o].toSorted((me,He)=>parseFloat(He.totalCost)-parseFloat(me.totalCost)),z=10,ue=be.slice(0,z),Ce=[`Total Cost: $${J.toFixed(2)}`,`Total Operations: ${re.toLocaleString()}`,`Users: ${o.length}`,"",`Top ${ue.length} Users by Cost:`,...ue.map(me=>` ${me.user.name}: $${parseFloat(me.totalCost).toFixed(2)} (${me.operationCount.toLocaleString()} ops)`)];o.length>z&&(Ce.push("",`... and ${o.length-z} more users`),Ce.push("Use CLI command for full list: entrydesk usage --limit <n> --sort-by <cost|operations>")),l(Ce.join(`
135
+ `))}catch(o){l(`Failed to get usage: ${o instanceof Error?o.message:"Unknown error"}`)}return!0}case"status":{let f=ie.getCurrentProfileName(),o=p?E.find(J=>J.id===p)?.name||p:null,s=y?A.find(J=>J.id===y)?.name||y:null,i=v?W.filter(J=>v.includes(J.id)).map(J=>J.name):[],x=[];return T&&x.push("FileSystem"),rt.getEmail().then(J=>{let re=[`Profile: ${f}${f!=="default"?" (non-default)":""}`,J?`Logged in as: ${J}`:"Not logged in",C?.workspaceId?`Workspace: ${C.workspaceId}`:null,j?`Task ID: ${n}`:null,o?`Model: ${o}`:null,s?`Agent: ${s}`:null,`Connectors: ${i.length>0?i.join(", "):"none"}`,`Capabilities: ${x.length>0?x.join(", "):"none"}`].filter(Boolean);l(re.join(`
136
+ `))}).catch(()=>{let J=[`Profile: ${f}`,"Not logged in",j?`Task ID: ${n}`:null,o?`Model: ${o}`:null,s?`Agent: ${s}`:null,`Connectors: ${i.length>0?i.join(", "):"none"}`,`Capabilities: ${x.length>0?x.join(", "):"none"}`].filter(Boolean);l(J.join(`
137
+ `))}),!0}case"profile":{let f=k.value?k.value.split(/\s+/).filter(Boolean):[];if(f.length===0)return we("profile"),!0;let o=f[0]?.toLowerCase()||"list",s=f[1],i=f[2],x=ie.getProfileNames(),J=ie.getCurrentProfileName(),re=ie.getOverrideProfile(),be=(z,ue=!1)=>{if(z)return z;if(ue&&x.length===1)return x[0];throw new Error("Profile name is required when multiple profiles exist.")};try{if(o==="list"){let z=[`Profiles (${x.length}):`];for(let ue of x){let Ce=ue===J?" (current)":"";z.push(` ${ue}${Ce}`)}return l(z.join(`
138
+ `)),!0}if(o==="current")return l(`Current profile: ${J}`),!0;if(o==="show"){let z=be(s,!0),ue=de.getAll(z),Ce=await rt.getAll(z),me=!!Ce?.accessToken,He=ue.connectors?.defaults&&ue.connectors.defaults.length>0?ue.connectors.defaults.join(", "):"unset",ao=[`Profile: ${z}${z===J?" (current)":""}`,`API URL: ${ue.apiUrl??"default"}`,`Hub URL: ${ue.hubUrl??"default"}`,`Model: ${ue.model?.default??"unset"}`,`Connectors: ${He}`,me?`Logged in as: ${Ce?.email??"unknown"}`:"Not logged in",me&&Ce?.workspaceId?`Workspace ID: ${Ce.workspaceId}`:null].filter(Boolean);return l(ao.join(`
139
+ `)),!0}if(o==="create"){let z=s||ie.DEFAULT_PROFILE;return ie.createProfile(z),l(`Profile created: ${z}`),!0}if(o==="use"||o==="switch"){let z=be(s,!0);return ie.setOverrideProfile(z),ie.setCurrentProfile(z),Se(z),await Ne(),d(`Switched to profile: ${z} (new task)`),!0}if(o==="delete"||o==="remove"||o==="rm"){let z=be(s,!0),ue=z===J,Ce=ie.deleteProfile(z),me=`Profile deleted: ${z}`;if(ue)ie.setOverrideProfile(Ce.currentProfile),Se(Ce.currentProfile),await Ne(),d(`${me}
140
+ Switched to profile: ${Ce.currentProfile} (new task)`);else if(re===z){let He=ie.getCurrentProfileName();ie.setOverrideProfile(He),Se(He),await Ne(),d(`${me}
141
+ Switched to profile: ${He} (new task)`)}else l(me);return!0}if(o==="rename"||o==="move"||o==="mv"){let z=be(s,!0);if(!i)throw new Error("New profile name is required.");let ue=ie.renameProfile(z,i);return l(`Profile renamed: ${z} -> ${i}`),re===z?(ie.setOverrideProfile(i),Se(i)):ue.currentProfile===i&&Se(i),!0}if(o==="clone"||o==="copy"){let z=be(s,!0);if(!i)throw new Error("Target profile name is required.");let ue=de.getAll(z);return ie.createProfile(i),de.setAll(ue,i),await rt.clear(i),l(`Profile cloned: ${z} -> ${i}`),!0}l(`Unknown profile command: ${o}`)}catch(z){let ue=z instanceof Error?z.message:"Unknown error";l(`Profile error: ${ue}`)}return!0}case"open-in-browser":{let f=Bt().hubUrl.replace(/\/$/,""),o=j||Z.some(re=>re.role!=="system"),s=C?`/${C.workspaceId}`:"",i=o?`${s}/task/${n}`:`${s}/task/new`,x=y?`?agentId=${encodeURIComponent(y)}`:"",J=`${f}${i}${x}`;try{await Vn(J),l(`Opened in browser: ${J}`)}catch(re){l(`Failed to open browser: ${re instanceof Error?re.message:"Unknown error"}
142
+ URL: ${J}`)}return!0}case"share":{if(!C)return l("Not authenticated."),!0;if(!(j||Z.some(o=>o.role!=="system")))return l("No conversation to share. Start a task first."),!0;try{let s=await new pe().createTaskShare(C.accessToken,C.workspaceId,n,"public"),x=`${Bt().hubUrl.replace(/\/$/,"")}/share/${s.id}`;l(`Share link: ${x}`)}catch(o){l(`Failed to create share link: ${o instanceof Error?o.message:"Unknown error"}`)}return!0}case"delete":return C?j?(ye(!0),l("Delete this task? (y/N)"),!0):(l("No task to delete."),!0):(l("Not authenticated."),!0);case"quit":return M(),!0;case"unknown":return l(`Unknown command: ${k.input}
143
+ Type /help for available commands.`),!0;default:return!1}},[l,E,A,W,_e,ve,p,y,v,T,n,a,M,we,d,L,O,j,Z,ze,Xe,le,h,g,$,h,Se,Ne]),ht=Ue(k=>{if(Ve.current=!1,Le){(k===""||k.startsWith("/"))&&(t(k),k.startsWith("/")&&ye(!1));return}if(t(k),nt(k),Ee!==null&&je(null),F&&(S(null),I([])),k.startsWith("/")&&!k.includes(" ")){let f=Xn(k);ee(f),H(0),oe(f.length>0)}else oe(!1),ee([])},[F,Ee,Le,t]),ot=Ue((k,f=!1)=>{if(k>=0&&k<Q.length){let o=Q[k];oe(!1),ee([]),o.name==="model"?(t("/model "),we("model")):o.name==="agent"?(t("/agent "),we("agent")):o.name==="skills"?(t("/skills "),we("skills")):o.name==="schedules"?(t("/schedules "),we("schedules")):o.name==="connectors"?(t("/connectors "),we("connectors")):o.name==="capabilities"?(t("/capabilities "),we("capabilities")):o.name==="tasks"?(t("/tasks "),we("tasks")):o.name==="profile"?(t("/profile "),we("profile")):f?(t(""),Ge({type:o.name})):t(`/${o.name}`)}},[Q,we,t,Ge]),qe=Ue(async k=>{Ve.current=!1;let f=k.trim();if(!f||Le)return;if(F==="model"&&N.length>0){let s=N[u];s&&(y?d(`Switched to model: ${s.name} (new task)`):l(`Switched to model: ${s.name}`),h(s.id),g(void 0),$(null)),S(null),I([]),t("");return}if(F==="agent"&&N.length>0){let s=N[u];s&&(s.id!==y?d(`Switched to agent: ${s.name} (new task)`):l(`Switched to agent: ${s.name}`),g(s.id),h(void 0)),S(null),I([]),t("");return}if(F==="skills"&&N.length>0){let s=N[u];if(s){let i=_e.find(x=>x.id===s.id);i&&l(`Skill: ${i.name}
144
+ ${i.description}
145
+ Provider: ${i.provider}
146
+ Author: ${i.author.name}
147
+ ID: ${i.id}`)}S(null),I([]),t("");return}if(F==="schedules"&&N.length>0){let s=N[u];if(s){let i=ve.find(x=>x.id===s.id);if(i){let x=i.nextRunAt?new Date(i.nextRunAt).toLocaleString():"-";l(`Schedule: ${i.name}
148
+ Agent: ${i.agent.name}
149
+ Status: ${i.isActive?"Active":"Paused"}
150
+ Repeat: ${en(i.config)}
151
+ Next Run: ${x}
152
+ ID: ${i.id}`)}}S(null),I([]),t("");return}if(F==="connectors"){let s=Array.from(_);Y(s.length>0?s:void 0),de.setDefaultConnectorIds(s);let i=W.filter(x=>_.has(x.id)).map(x=>x.name);l(i.length>0?`Active connectors: ${i.join(", ")}`:"All connectors disabled."),S(null),I([]),t("");return}if(F==="capabilities"){let s=G.has("fileSystem");b(s),de.setLocalTools({fileSystem:s});let i=[];s&&i.push("FileSystem"),l(i.length>0?`Active capabilities: ${i.join(", ")}`:"All capabilities disabled."),S(null),I([]),t("");return}if(F==="profile"&&N.length>0){let s=N[u];if(s){let i=ie.getCurrentProfileName();s.id!==i?(ie.setOverrideProfile(s.id),ie.setCurrentProfile(s.id),Se(s.id),Ne(),d(`Switched to profile: ${s.name}`)):l(`Already using profile: ${s.name}`)}S(null),I([]),t("");return}if(V&&Q.length>0){ot(R,!0);return}je(null),nt(""),gt(s=>s.length>0&&s.at(-1)===f?s:[...s,f]);let o=Qn(f);if(o){await Ge(o),t(""),oe(!1);return}if(D){l("Please wait for file uploads to complete.");return}t(""),oe(!1),P(f)},[P,Ge,V,Q,R,ot,F,N,u,_,G,W,_e,ve,l,t,y,d,h,g,$,Y,b,D,Se,Ne,Le,C,j,n]);return Xo((k,f)=>{if(f.ctrl&&k==="c"){if(e.length>0){ht(""),Ve.current=!0,l("Press Ctrl+C again to exit.");return}if(Ve.current){M();return}M();return}if(f.ctrl&&k==="o"){U(o=>!o);return}if(Le){if(f.escape||f.return||k==="n"||k==="N"){ye(!1),t(""),l("Task deletion cancelled.");return}if(k==="y"||k==="Y"){ye(!1),t(""),C&&j&&new pe().deleteTask(C.accessToken,C.workspaceId,n).then(()=>{d("Task deleted. Started a new task.")}).catch(s=>{l(`Failed to delete task: ${s.message||"Unknown error"}`)});return}return}if(F&&N.length>0){if(f.upArrow){m(o=>o<=0?N.length-1:o-1);return}if(f.downArrow){m(o=>o>=N.length-1?0:o+1);return}if(f.escape){S(null),I([]),t("");return}if(f.return){if(F==="model"){let o=N[u];o&&(y?d(`Switched to model: ${o.name} (new task)`):l(`Switched to model: ${o.name}`),h(o.id),g(void 0),$(null),de.setDefaultModel(o.id))}else if(F==="agent"){let o=N[u];o&&(o.id!==y?d(`Switched to agent: ${o.name} (new task)`):l(`Switched to agent: ${o.name}`),g(o.id),h(void 0))}else if(F==="skills"){let o=N[u];if(o){let s=_e.find(i=>i.id===o.id);s&&l(`Skill: ${s.name}
153
+ ${s.description}
154
+ Provider: ${s.provider}
155
+ Author: ${s.author.name}
156
+ ID: ${s.id}`)}}else if(F==="schedules"){let o=N[u];if(o){let s=ve.find(i=>i.id===o.id);if(s){let i=s.nextRunAt?new Date(s.nextRunAt).toLocaleString():"-";l(`Schedule: ${s.name}
157
+ Agent: ${s.agent.name}
158
+ Status: ${s.isActive?"Active":"Paused"}
159
+ Repeat: ${en(s.config)}
160
+ Next Run: ${i}
161
+ ID: ${s.id}`)}}}else if(F==="connectors"){let o=Array.from(_);Y(o.length>0?o:void 0),de.setDefaultConnectorIds(o);let s=W.filter(i=>_.has(i.id)).map(i=>i.name);l(s.length>0?`Active connectors: ${s.join(", ")}`:"All connectors disabled.")}else if(F==="capabilities"){let o=G.has("fileSystem");b(o),de.setLocalTools({fileSystem:o});let s=[];o&&s.push("FileSystem"),l(s.length>0?`Active capabilities: ${s.join(", ")}`:"All capabilities disabled.")}else if(F==="tasks"){let o=N[u];if(o){let s=sn.find(i=>i.id===o.id);s&&C&&(r(s.id),c(s.title||void 0),K(!0),new pe().getMessages(C.accessToken,C.workspaceId,s.id,20).then(({messages:x})=>{let J=x.filter(re=>re.role==="user"||re.role==="assistant").map(re=>({role:re.role,content:Ke(re.parts,!1),parts:re.parts})).filter(re=>re.content).toReversed();le(J),l(`Switched to: ${s.title||"Untitled"}`)}).catch(()=>{l("Failed to load task messages.")}))}}else if(F==="profile"){let o=N[u];if(o){let s=ie.getCurrentProfileName();o.id!==s?(ie.setOverrideProfile(o.id),ie.setCurrentProfile(o.id),Se(o.id),Ne(),d(`Switched to profile: ${o.name}`)):l(`Already using profile: ${o.name}`)}}S(null),I([]),t("");return}if(k===" "&&(F==="connectors"||F==="capabilities")){let o=N[u];o&&(F==="connectors"?ce:xe)(i=>{let x=new Set(i);return x.has(o.id)?x.delete(o.id):x.add(o.id),x});return}if(k==="a"&&(F==="connectors"||F==="capabilities")){(F==="connectors"?ce:xe)(new Set(N.map(s=>s.id)));return}if(k==="n"&&(F==="connectors"||F==="capabilities")){(F==="connectors"?ce:xe)(new Set);return}return}if(V&&Q.length>0){if(f.upArrow){H(o=>o<=0?Q.length-1:o-1);return}if(f.downArrow){H(o=>o>=Q.length-1?0:o+1);return}if(f.escape){oe(!1),ee([]);return}if(f.tab){ot(R);return}}if(f.upArrow){if(e.includes(`
162
+ `)||Re.length===0)return;if(Ee===null){nt(e);let s=Re.length-1;je(s),t(Re[s]);return}let o=Math.max(0,Ee-1);je(o),t(Re[o]);return}if(f.downArrow){if(e.includes(`
163
+ `)||Ee===null)return;if(Ee>=Re.length-1){je(null),t(Ft);return}let o=Ee+1;je(o),t(Re[o])}}),{suggestions:Q,suggestionIndex:R,showSuggestions:V,argMode:F,argItems:N,argIndex:u,selectedConnectorIds:_,selectedCapabilities:G,deleteConfirmMode:Le,handleInputChange:ht,handleSubmit:qe}}import{useCallback as ft,useRef as Zo,useState as er}from"react";function to({credentials:e,currentModel:t,modelProviders:n,onUploadSuccess:r,onUploadError:a}){let[c,p]=er([]),h=Zo(0),y=ft(b=>{if(!(!Array.isArray(n)||n.length===0)){for(let E of n)if(E.models.some(W=>W.id===b))return E.id;return n[0]?.id}},[n]),g=ft(async b=>{if(!e){a?.(b.filename,"Not logged in");return}if(!Array.isArray(n)||n.length===0){a?.(b.filename,"Model providers not loaded yet. Please wait and try again.");return}let E=t?y(t):n[0]?.id;if(!E){a?.(b.filename,"No model provider available");return}let A=`file-${++h.current}`;p(W=>[...W,{id:A,filename:b.filename,mimeType:b.mimeType,status:"uploading"}]);try{let Z=await new pe().uploadFile(e.accessToken,e.workspaceId,b,E);p(j=>j.map(K=>K.id===A?{...K,status:"uploaded",fileId:Z.id}:K)),r?.(b.filename)}catch(W){let Z=W instanceof Error?W.message:"Upload failed";p(j=>j.map(K=>K.id===A?{...K,status:"error",error:Z}:K)),a?.(b.filename,Z)}},[e,t,y,n,r,a]),O=ft(b=>{p(E=>E.filter(A=>A.id!==b))},[]),$=ft(()=>{p([])},[]),v=ft(()=>c.filter(b=>b.status==="uploaded"&&b.fileId).map(b=>b.fileId),[c]),Y=c.some(b=>b.status==="uploading"),T=c.length>0;return{pendingFiles:c,addFile:g,removeFile:O,clearFiles:$,getUploadedFileIds:v,hasUploadingFiles:Y,hasFiles:T}}import{jsx as q,jsxs as se}from"react/jsx-runtime";var nr=[" ______ _ ____ _","| ____| | | | _ \\ | |","| |__ _ __ | |_ _ __ _ _ | | | | ___ ___| | __","| __| | '_ \\| __| '__| | | || | | |/ _ \\/ __| |/ /","| |____| | | | |_| | | |_| || |_| | __/\\__ \\ <","|______|_| |_|\\__|_| \\__, ||____/ \\___||___/_|\\_\\"," __/ |"," |___/"],or=[Qt,Qt,Xt,Xt,Ye,Ye,Ye,Ye],oo=nr.map((e,t)=>`${or[t]??Ye}${e}${X}`).join(`
164
+ `),rr=`${Ye}EntryDesk${X}`,sr=500;function ir(e){let t="",n=0;for(;n<e.length;){if(e.charCodeAt(n)===27&&e[n+1]==="["){for(n+=2;n<e.length;){let r=e.charCodeAt(n);if(r>=64&&r<=126){n+=1;break}n+=1}continue}t+=e[n],n+=1}return t}function lr(e){let t=ir(e);return Math.max(...t.split(`
165
+ `).map(n=>n.length))}function ar(e){let t=lr(oo);return e>=t?oo:rr}function ro({agentId:e,model:t,message:n,taskId:r,taskTitle:a,connectorIds:c,enableFileSystem:p=!0}){let h=process.stdout.columns??80,y=ar(h),g=no(null),O=On(r,a),{state:$,setState:v,messages:Y,setMessages:T,input:b,setInput:E,taskId:A,setTaskId:W,currentTaskTitle:Z,setCurrentTaskTitle:j,hasPersistedTask:K,setHasPersistedTask:le,credentials:l,setCredentials:d,currentResponse:P,setCurrentResponse:U,fullOutput:C,setFullOutput:fe,addSystemMessage:te,startNewTask:w}=O,{credentials:L}=jn(v);Et(()=>{L&&!l&&d(L)},[L,l,d]);let{availableConnectors:D,availableModels:M,availableAgents:Q,modelProviders:ee,loading:R}=Wn(l),{currentModel:H,setCurrentModel:V,currentAgentId:oe,setCurrentAgentId:F,activeConnectorIds:S,setActiveConnectorIds:N}=Kn(t,e,c),I=no(!1);Et(()=>{if(!I.current){if(I.current=!0,!t&&!e){let i=de.getDefaultModel();i&&V(i)}if(!c&&!e){let i=de.getDefaultConnectorIds();i&&N(i.length>0?i:void 0)}}},[t,e,c,V,N]);let{currentAgentDetails:u}=Yn(oe,l),{fileSystem:m,setFileSystem:_,capabilityLabelMap:ce}=Jn(p),{pendingFiles:G,addFile:xe,removeFile:sn,clearFiles:pt,getUploadedFileIds:_e,hasUploadingFiles:Lt,hasFiles:ve}=to({credentials:l,currentModel:H,modelProviders:ee,onUploadSuccess:i=>{te(`\u2713 Attached: ${i}`)},onUploadError:(i,x)=>{te(`\u2717 Failed to upload ${i}: ${x}`)}}),{sendMessage:mt}=qn({taskId:A,credentials:l,currentAgentId:oe,currentModel:H,activeConnectorIds:S,localTools:m,fullOutput:C,setMessages:T,setState:v,setCurrentResponse:U,setCredentials:d,setHasPersistedTask:le,getFileIds:_e,clearFiles:pt}),Re=on(i=>{w(i),U("")},[w]),[gt,Ee]=tr(!1),je=on(async i=>{let x=i.text.trim(),J=St(x);if(/^https?:\/\//.test(J))return;if(await Rn(x)&&Dn(J)){let be=await Ln(x);be&&(i.preventDefault(),await xe(be))}},[xe]),Ft=on(async()=>{if(!(gt||$.status!=="ready")){if(R||ee.length===0){te("Please wait for resources to load before pasting images.");return}te("Reading clipboard..."),Ee(!0);try{let i=await An();if(i){let x=`clipboard-${Date.now()}.png`;te(`Uploading: ${x} (${Math.round(i.buffer.length/1024)}KB)`),await xe({buffer:i.buffer,filename:x,mimeType:i.mime})}else te("No image found in clipboard. Copy an image first.")}catch(i){let x=i instanceof Error?i.message:"Failed to read clipboard";te(`Clipboard error: ${x}`)}finally{Ee(!1)}}},[xe,te,gt,$.status,R,ee.length]),{suggestions:nt,suggestionIndex:Ve,showSuggestions:Le,argMode:ye,argItems:ze,argIndex:Xe,selectedConnectorIds:we,selectedCapabilities:Se,deleteConfirmMode:Ne,handleInputChange:Ge,handleSubmit:ht}=eo({input:b,setInput:E,taskId:A,setTaskId:W,currentTaskTitle:Z,setCurrentTaskTitle:j,currentModel:H,setCurrentModel:V,currentAgentId:oe,setCurrentAgentId:F,currentAgentDetails:u,setCurrentAgentDetails:()=>{},activeConnectorIds:S,setActiveConnectorIds:N,fileSystem:m,setFileSystem:_,availableModels:M,availableAgents:Q,availableConnectors:D,messages:Y,hasPersistedTask:K,setHasPersistedTask:le,setMessages:T,addSystemMessage:te,startNewTask:Re,sendMessage:mt,setFullOutput:fe,credentials:l,setCredentials:d,setState:v,defaultCapabilities:{fileSystem:p},capabilityLabelMap:ce,hasUploadingFiles:Lt});if(tn((i,x)=>{(x.ctrl||x.meta)&&i==="v"&&Ft()},{isActive:$.status==="ready"&&!ye}),tn((i,x)=>{if(!x.escape)return;let J=Date.now(),re=g.current;g.current=J,!(!re||J-re>sr)&&(ye||Le||(g.current=null,ve&&pt(),b.length>0&&Ge("")))},{isActive:$.status==="ready"}),tn((i,x)=>{x.return&&(Re("Started a new task."),v({status:"ready"}))},{isActive:$.status==="error"}),Et(()=>{if(l&&!R&&$.status==="loading")if(!H&&!oe){let i=de.getDefaultModel(),x=i&&M.some(re=>re.id===i),J=x?i:M[0]?.id;J?(x||de.setDefaultModel(J),V(J),v({status:"ready"})):Q.length===0?v({status:"no-model"}):v({status:"ready"})}else v({status:"ready"})},[l,R,H,oe,M,Q,$.status,V,v]),Et(()=>{n&&l&&$.status==="ready"&&mt(n)},[l,n]),$.status==="loading")return se(he,{flexDirection:"column",children:[q(B,{children:y}),se(he,{children:[q(B,{color:"cyan",children:q(nn,{type:"dots"})}),q(B,{children:" Initializing task..."})]})]});if($.status==="not-logged-in")return se(he,{flexDirection:"column",children:[q(B,{children:y}),q(B,{color:"yellow",children:"Not logged in"}),q(B,{dimColor:!0,children:"Run `entrydesk login` to authenticate first."})]});if($.status==="no-workspace")return se(he,{flexDirection:"column",children:[q(B,{children:y}),q(B,{color:"yellow",children:"No workspace selected"}),q(B,{dimColor:!0,children:"Run `entrydesk workspaces` to select a workspace first."})]});if($.status==="no-model")return se(he,{flexDirection:"column",children:[q(B,{children:y}),q(B,{color:"yellow",children:"No model or agent specified"}),r&&q(B,{dimColor:!0,children:"Could not determine the model used in this task."}),q(B,{dimColor:!0,children:"Please specify a model with --model or use an agent with -a."}),q(B,{dimColor:!0,children:"Example: entrydesk task -c 1 -i --model gemini-2.5-flash-lite"})]});if($.status==="error")return se(he,{flexDirection:"column",children:[q(B,{children:y}),se(B,{color:"red",children:["Error: ",$.message]}),q(B,{dimColor:!0,children:"Press Enter to start a new task, or Ctrl+C to exit"})]});let ot=oe?u?u.connectors&&u.connectors.length>0?u.connectors.map(i=>i.name).join(", "):"none":"loading...":S&&S.length>0?D.filter(i=>S.includes(i.id)).map(i=>i.name).join(", ")||`${S.length} connector(s)`:"none",qe=[];if(oe)if(u?.capabilities)for(let i of u.capabilities)qe.push(ce.get(i)??i);else qe.push("loading...");m&&qe.push("FileSystem");let k=ie.getCurrentProfileName(),f=k!=="default",o=(()=>{switch(ye){case"model":return"Select model:";case"agent":return"Select agent:";case"skills":return"Select skill:";case"connectors":return"Select connectors:";case"capabilities":return"Select capabilities:";default:return"Select task:"}})(),s=(()=>{if(ye==="connectors")return we;if(ye==="capabilities")return Se})();return se(he,{flexDirection:"column",children:[se(he,{marginBottom:1,flexDirection:"column",children:[q(B,{children:y}),se(he,{children:[q(B,{bold:!0,color:"cyan",children:Z?`Continuing: ${Z}`:"EntryDesk CLI"}),se(B,{dimColor:!0,children:[" v","1.12.4"]}),f&&se(B,{color:"magenta",children:[" [",k,"]"]}),q(B,{dimColor:!0,children:" (type /help for commands)"})]})]}),Y.map((i,x)=>{let J=i.parts&&C?Ke(i.parts,!0):i.content,re=i.role==="user"?"green":i.role==="system"?"yellow":"blue",be=i.role==="user"?"You":i.role==="system"?"System":"Assistant";return se(he,{flexDirection:"column",marginBottom:1,children:[se(B,{bold:!0,color:re,children:[be,":"]}),q(zt,{text:J})]},x)}),P&&se(he,{flexDirection:"column",marginBottom:1,children:[q(B,{bold:!0,color:"blue",children:"Assistant:"}),q(zt,{text:P})]}),$.status==="ready"&&q(gn,{suggestions:nt,activeIndex:Ve,visible:Le}),$.status==="ready"&&ye&&q(mn,{items:ze,activeIndex:Xe,pageSize:ye==="agent"||ye==="skills"||ye==="model"?5:10,selectedIds:s,multiSelect:ye==="connectors"||ye==="capabilities",visible:!0,title:o}),$.status==="sending"&&!P?se(he,{children:[q(B,{color:"cyan",children:q(nn,{type:"dots"})}),q(B,{children:" Thinking..."})]}):$.status==="ready"&&!ye?se(he,{flexDirection:"column",children:[Ne&&q(he,{marginBottom:1,children:q(B,{color:"yellow",children:"\u26A0\uFE0F Delete this task? (y/N) "})}),ve&&!Ne&&se(he,{marginBottom:1,flexDirection:"row",gap:1,children:[q(B,{dimColor:!0,children:"Attachments:"}),G.map((i,x)=>se(B,{children:[i.status==="uploading"?se(B,{color:"yellow",children:[q(nn,{type:"dots"})," ",i.filename]}):i.status==="error"?se(B,{color:"red",children:["\u2717 ",i.filename]}):se(B,{color:"green",children:["\u2713 ",i.filename]}),x<G.length-1&&q(B,{children:", "})]},i.id))]}),se(he,{children:[q(B,{color:"green",children:"> "}),q(bn,{value:b,onChange:Ge,onSubmit:ht,onPaste:je,leadingOffset:2,multiline:!0})]})]}):null,se(he,{marginTop:1,flexDirection:"column",children:[se(he,{gap:2,children:[se(B,{children:[q(B,{dimColor:!0,children:"Model: "}),q(B,{color:"magenta",children:oe?u?.model?.name||"loading...":M.find(i=>i.id===H)?.name||H||"none"})]}),se(B,{children:[q(B,{dimColor:!0,children:"Connectors: "}),q(B,{color:"cyan",children:ot})]}),se(B,{children:[q(B,{dimColor:!0,children:"Capabilities: "}),q(B,{color:"green",children:qe.length>0?qe.join(", "):"none"})]})]}),se(B,{dimColor:!0,children:["Esc Esc: Clear input & attachments | Ctrl+V: Paste image | Ctrl+O: Toggle full output ",C?"(ON)":"(OFF)"," | Ctrl+C: Exit"]})]})]})}import{jsx as mr}from"react/jsx-runtime";async function ur(){let e=[];for await(let t of process.stdin)e.push(t);return Buffer.concat(e).toString("utf8").trim()}async function dr(e,t,n,r){if(r<1)return console.error("Task number must be 1 or greater"),null;let{tasks:a}=await e.getTasks(t,n,20);if(a.length===0)return console.error("No tasks found. Start a new task first."),null;if(r>a.length)return console.error(`Task number ${r} not found. You have ${a.length} recent tasks.`),console.error("Use `entrydesk tasks` to see available tasks."),null;let c=a[r-1],p;if(!c.agentId){let{messages:h}=await e.getMessages(t,n,c.id,10);p=h.find(g=>g.role==="assistant"&&g.modelId)?.modelId}return{task:c,modelId:p}}var tt="\x1B[2m",ke="\x1B[0m",rn="\x1B[36m",lo="\x1B[33m",At="\x1B[32m",so="stream-json";function fr(e,t,n,r){e&&t&&(console.error(`Error: Cannot use both ${n} and ${r}`),process.exit(1))}function Dt(e,t){let n=t===void 0?{event:e}:{event:e,data:t};process.stdout.write(`${JSON.stringify(n)}
166
+ `)}function Rt(e,t){if(t)return e;let n=e.split(`
167
+ `);if(n.length<=20)return e;let r=n.slice(0,5),a=n.slice(-5),c=n.length-10;return[...r,`${tt}... (${c} lines omitted, use --full-output to see all) ...${ke}`,...a].join(`
168
+ `)}function pr(e){try{return JSON.stringify(e,null,2)}catch{return String(e)}}function io(e,t){if(!e)return"(no result)";if(typeof e!="object")return Rt(String(e),t);let n=e;if("structuredContent"in n&&n.structuredContent){let r=n.structuredContent,a=[];if(r.stdout&&typeof r.stdout=="string"&&r.stdout.trim()&&a.push(r.stdout.trim()),r.stderr&&typeof r.stderr=="string"&&r.stderr.trim()&&a.push(`${lo}[stderr]${ke} ${r.stderr.trim()}`),r.urls&&Array.isArray(r.urls)){let c=r.urls;for(let p of c)p.path&&p.url&&a.push(`${p.path}: ${p.url}`)}return a.length===0&&a.push(JSON.stringify(r,null,2)),Rt(a.join(`
169
+ `),t)}if("content"in n&&Array.isArray(n.content)){let a=n.content.filter(c=>c.type==="text"&&c.text).map(c=>c.text).join(`
170
+ `);return Rt(a||JSON.stringify(e,null,2),t)}return Rt(JSON.stringify(e,null,2),t)}async function _i(e){let t,n;try{let D=await We();t=D.accessToken,n=D.workspaceId}catch(D){an(D)}let r=e.output===so;e.output&&!r&&(console.error(`Invalid --output value. Supported: ${so}`),process.exit(1));let a=!r&&(e.plain||!process.stdout.isTTY),c=de.getDefaultModel(),p=e.message;!p&&!process.stdin.isTTY&&(p=await ur());let h=new pe;async function y(){if(!c)try{let{models:D}=await h.getModels(t,n),M=D[0]?.id;if(!M)return;de.setDefaultModel(M),c=M}catch{}}let g,O,$,v;if(e.continue){let D=await dr(h,t,n,e.continue);D||process.exit(1),g=D.task.id,O=D.task.title??void 0,$=D.task.agentId??void 0,v=D.modelId;let M=e.agentId||e.model||$||v||c;!M&&!e.interactive&&(await y(),M=e.agentId||e.model||$||v||c),!M&&!e.interactive&&(a||console.log(`Continuing task: ${D.task.title||"Untitled"}`),console.error(`
171
+ Could not determine model for this task. Please specify --model or -a.`),console.error('Example: entrydesk task -c 1 -m "message" --model gemini-2.5-flash-lite'),process.exit(1)),!a&&!e.interactive&&console.log(`Continuing task: ${D.task.title||"Untitled"}
172
+ `)}let Y=e.agentId||$,T=e.model||v||c||void 0;!Y&&!T&&(await y(),T=e.model||v||c||void 0),fr(e.fileSystem,e.noFileSystem,"--file-system","--no-file-system");let b=de.getDefaultConnectorIds(),E=e.connectors??b??void 0,A=de.getLocalTools(),W=e.noFileSystem?!1:e.fileSystem?!0:A?.fileSystem??!0;if(e.interactive){cr(mr(ro,{agentId:Y,model:T,message:e.message,taskId:g,taskTitle:O??void 0,connectorIds:E,enableFileSystem:W}),{exitOnCtrlC:!1});return}let Z=!e.continue&&!T&&!Y;(!p||Z)&&(console.error("Usage: entrydesk task -m <message> --model <model>"),console.error(" entrydesk task -m <message> -a <agent>"),console.error(" entrydesk task -c <number> -m <message>"),console.error(' echo "message" | entrydesk task --model <model>'),console.error(" entrydesk task -i (interactive mode)"),console.error(""),console.error("Options:"),console.error(" -m, --message Message to send (or pipe via stdin)"),console.error(" --model Model ID to use (required if no agent and no default)"),console.error(" -a, --agent Agent ID to use (required if no model)"),console.error(" -c, --continue Continue recent task by number (1 = most recent)"),console.error(" -i Interactive mode"),console.error(" --plain Plain text output (no colors/formatting)"),console.error(" --output stream-json Stream JSON events (for scripting)"),console.error(" --full-output Show full tool results without truncation"),console.error(" --dangerously-auto-approve-tools"),console.error(" Auto-approve all server-side tool calls (required for"),console.error(" non-interactive use with connectors/MCP tools)"),console.error(""),console.error("List available models: entrydesk models"),console.error("List available agents: entrydesk agents"),console.error("List recent tasks: entrydesk tasks"),process.exit(1));let j=e.fullOutput??!1,K=e.dangerouslyAutoApproveTools??!1,le=g||Nt(),l=W?xt():void 0,d=W?wt():void 0,P=[],U=Nt(),C=(D,M,Q)=>{let ee={id:le,...K&&{toolApprovalMode:"allow_always"}};return D&&(ee.message={id:D.id,createdAt:new Date,role:"user",parts:[{type:"text",text:D.text}]}),Y?ee.agentId=Y:(T&&(ee.model=T),ee.connectorIds=E??[]),l&&(ee.clientTools=l),d&&(ee.clientToolSystemPrompt=d),M&&M.length>0&&(ee.clientToolResults=M),Q&&Q.length>0&&(ee.previousMessages=Q),ee},fe=async D=>{if(!D.body)throw new Error("No response body");let M=D.body.getReader(),Q=new TextDecoder,ee="",R=new Map,H=[],V=[];for(;;){let{done:oe,value:F}=await M.read();if(oe)break;ee+=Q.decode(F,{stream:!0});let S=ee.split(`
173
+ `);ee=S.pop()||"";for(let N of S){let I=N.trimEnd();if(I==="data: [DONE]"){r&&Dt("done");continue}if(I.startsWith("data: "))try{let u=JSON.parse(I.slice(6));if(u.type&&V.push(u),r){u.type==="text-delta"&&u.delta!==void 0?Dt("text-delta",u.delta):u.type==="reasoning-delta"&&u.delta!==void 0?Dt("reasoning-delta",u.delta):Dt(u.type||"event",u);continue}if(a){if(u.type==="text-delta"&&u.delta&&process.stdout.write(u.delta),W&&(u.type==="tool-input-available"||u.type==="tool-call")&&u.toolCallId&&u.toolName&&Be(u.toolName)){let m=u.args||u.input||{};H.push({toolCallId:u.toolCallId,toolName:u.toolName,args:m})}continue}switch(u.type){case"reasoning-delta":u.delta&&process.stdout.write(`${tt}${u.delta}${ke}`);break;case"reasoning-end":process.stdout.write(`
174
+
175
+ `);break;case"text-delta":u.delta&&process.stdout.write(u.delta);break;case"tool-call-streaming-start":case"tool-input-start":if(u.toolCallId&&u.toolName){R.set(u.toolCallId,{toolName:u.toolName});let _=W&&Be(u.toolName)?`${At}[LOCAL]${ke} `:"";console.log(`
176
+ ${rn}\u250C\u2500 ${_}Tool Call: ${u.toolName}${ke}`)}break;case"tool-call":case"tool-input-available":if(u.toolCallId&&u.toolName){let m=u.args||u.input||{},_=pr(m);console.log(`${lo}\u2502 Arguments:${ke}`);for(let ce of _.split(`
177
+ `))console.log(`${tt}\u2502 ${ce}${ke}`);W&&Be(u.toolName)&&(R.set(u.toolCallId,{toolName:u.toolName,args:m}),H.push({toolCallId:u.toolCallId,toolName:u.toolName,args:m}))}break;case"tool-result":if(u.toolCallId){let m=R.get(u.toolCallId),_=io(u.result,j);console.log(`${At}\u2502 Result:${ke}`);for(let ce of _.split(`
178
+ `))console.log(`${tt}\u2502 ${ce}${ke}`);console.log(`${rn}\u2514\u2500 ${m?.toolName||"Tool"} completed${ke}
179
+ `),R.delete(u.toolCallId)}break;case"error":u.errorText&&console.error(`${tt}Error: ${u.errorText}${ke}`);break}}catch{}}}return{pendingClientTools:H,messageParts:V}},te=C({id:Nt(),text:p}),w=await h.task(t,n,te),L=await fe(w);for(P=L.messageParts;L.pendingClientTools.length>0;){let D=[];for(let R of L.pendingClientTools){!a&&!r&&console.log(`${At}\u2502 Executing locally...${ke}`);let H=await Tt(R.toolName,R.args),V=H.success?JSON.stringify(H.result):H.error||"Unknown error";if(D.push({toolCallId:R.toolCallId,toolName:R.toolName,content:[{type:"text",text:V}],isError:!H.success}),!a&&!r){let oe=io(H.success?H.result:{error:H.error},j);console.log(`${At}\u2502 Result:${ke}`);for(let F of oe.split(`
180
+ `))console.log(`${tt}\u2502 ${F}${ke}`);console.log(`${rn}\u2514\u2500 ${R.toolName} completed${ke}
181
+ `)}}let M=P.map(R=>{if(R.type==="tool-call"){let H=D.find(oe=>oe.toolCallId===R.toolCallId),V=H?.content.filter(oe=>oe.type==="text").map(oe=>oe.text).join(`
182
+ `);return{type:"tool-invocation",toolCallId:R.toolCallId,toolName:R.toolName,args:R.args,state:H?.isError?"output-error":"output-available",output:V}}return R}),Q=[{id:U,role:"assistant",parts:M}];U=Nt();let ee=C(void 0,D,Q);w=await h.task(t,n,ee),L=await fe(w),P=L.messageParts}r||console.log("")}export{_i as runTask};
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{h as A,n as I,o as b,q as O}from"./chunk-HHCG7UQG.js";var $="\x1B[2m",a="\x1B[0m",d="\x1B[36m",w="\x1B[33m",R="\x1B[32m",v="stream-json";function f(e,s){let o=s===void 0?{event:e}:{event:e,data:s};process.stdout.write(`${JSON.stringify(o)}
2
+ import{h as A,n as I,o as b,q as O}from"./chunk-QD5PQJFR.js";var $="\x1B[2m",a="\x1B[0m",d="\x1B[36m",w="\x1B[33m",R="\x1B[32m",v="stream-json";function f(e,s){let o=s===void 0?{event:e}:{event:e,data:s};process.stdout.write(`${JSON.stringify(o)}
3
3
  `)}function S(e){let s=new Date(e),t=new Date().getTime()-s.getTime(),n=Math.floor(t/(1e3*60*60*24));return n===0?s.toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit"}):n===1?"Yesterday":n<7?`${n} days ago`:s.toLocaleDateString("en-US",{month:"short",day:"numeric"})}function y(e,s){if(s)return e;let o=e.split(`
4
4
  `);if(o.length<=15)return e;let t=o.slice(0,6),n=o.slice(-4),i=o.length-10;return[...t,`... (${i} lines omitted, use --full-output to see all) ...`,...n].join(`
5
5
  `)}function N(e){if(!e||typeof e!="object")return e;if(Array.isArray(e))return e.map(N);let s={};for(let[o,t]of Object.entries(e))typeof t=="string"&&t.length>200?s[o]=t.slice(0,150)+"... (truncated)":typeof t=="object"&&t!==null?s[o]=N(t):s[o]=t;return s}function j(e){if(!e||typeof e!="object")return String(e);try{return JSON.stringify(e,null,2)}catch{return String(e)}}function E(e,s){if(!e)return"(no result)";if(typeof e!="object")return y(String(e),s);let o=s?e:N(e);if("structuredContent"in o&&o.structuredContent){let t=o.structuredContent,n=[];if(t.stdout&&typeof t.stdout=="string"&&t.stdout.trim()&&n.push(t.stdout.trim()),t.stderr&&typeof t.stderr=="string"&&t.stderr.trim()&&n.push(`${w}[stderr]${a} ${t.stderr.trim()}`),t.urls&&Array.isArray(t.urls)){let i=t.urls;for(let r of i)r.path&&r.url&&n.push(`${r.path}: ${r.url}`)}return n.length===0&&n.push(JSON.stringify(t,null,2)),y(n.join(`
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{c as S,o as _}from"./chunk-HHCG7UQG.js";import B from"fs";import{Client as L}from"@modelcontextprotocol/sdk/client/index.js";import{StreamableHTTPClientTransport as x}from"@modelcontextprotocol/sdk/client/streamableHttp.js";async function A(e={}){let t=e.apiUrl,n=e.accessToken,o=e.workspaceId;if(!n||!o){let l=await _();n=n||l.accessToken,o=o||l.workspaceId}t||(t=S().apiUrl);let i=new L({name:"entrydesk-cli",version:"1.0.0"}),s=new URL(`${t}/v1/workspaces/${o}/mcp`),r=new x(s,{requestInit:{headers:{Authorization:`Bearer ${n}`}}});return await i.connect(r),i}async function T(){return A()}import h from"fs/promises";import v from"os";import d from"path";var y=!process.env.NO_COLOR&&!!process.stdout.isTTY,p={green:y?"\x1B[32m":"",yellow:y?"\x1B[33m":"",reset:y?"\x1B[0m":""},D=10*1024,O=8*1024,I=2*1024,P=100,b=100;function M(){return d.join(v.homedir(),".entrydesk","tool-results")}function F(e){let t=e.trim().replace(/[/\\:*?"<>|\s]/g,"_").replace(/_+/g,"_").replace(/^[._]+|[._]+$/g,"").slice(0,P);return!t||t==="."||t===".."?"unnamed_tool":t}function J(e){try{return JSON.stringify(e,(t,n)=>typeof n=="bigint"?`${n}n`:typeof n=="function"?"[Function]":typeof n=="symbol"?n.toString():n,2)}catch{return String(e)}}function U(e){let t=new Date,n=[t.getFullYear(),String(t.getMonth()+1).padStart(2,"0"),String(t.getDate()).padStart(2,"0")].join("-")+"_"+[String(t.getHours()).padStart(2,"0"),String(t.getMinutes()).padStart(2,"0"),String(t.getSeconds()).padStart(2,"0")].join("-"),o=F(e);return`${n}_${o}.json`}async function N(e,t){try{return await h.writeFile(e,t,{encoding:"utf8",flag:"wx"}),!0}catch(n){if(n instanceof Error&&"code"in n&&n.code==="EEXIST")return!1;throw n}}async function C(e,t){try{let n=M();await h.mkdir(n,{recursive:!0});let o=U(e),i=d.extname(o),s=o.slice(0,-i.length),r=J(t),l=d.join(n,o);if(await N(l,r))return l;for(let c=1;c<=b;c++){let w=d.join(n,`${s}-${c}${i}`);if(await N(w,r))return w}let u=Math.random().toString(36).slice(2,10),a=d.join(n,`${s}-${u}${i}`);return await h.writeFile(a,r,{encoding:"utf8",flag:"wx"}),a}catch(n){let o=n instanceof Error?n.message:"unknown error";return console.error(`${p.yellow}Warning: Could not save result to file: ${o}${p.reset}`),null}}function k(e,t){let n=Buffer.byteLength(e,"utf8");if(n<=D)return e;let o=e.slice(0,O),i=e.slice(-I),r=((n-O-I)/1024).toFixed(1),l=(n/1024).toFixed(1),u=` ... (skipped ${r}KB of ${l}KB) ...`;return t&&(u+=`
2
+ import{c as S,o as _}from"./chunk-QD5PQJFR.js";import B from"fs";import{Client as L}from"@modelcontextprotocol/sdk/client/index.js";import{StreamableHTTPClientTransport as x}from"@modelcontextprotocol/sdk/client/streamableHttp.js";async function A(e={}){let t=e.apiUrl,n=e.accessToken,o=e.workspaceId;if(!n||!o){let l=await _();n=n||l.accessToken,o=o||l.workspaceId}t||(t=S().apiUrl);let i=new L({name:"entrydesk-cli",version:"1.0.0"}),s=new URL(`${t}/v1/workspaces/${o}/mcp`),r=new x(s,{requestInit:{headers:{Authorization:`Bearer ${n}`}}});return await i.connect(r),i}async function T(){return A()}import h from"fs/promises";import v from"os";import d from"path";var y=!process.env.NO_COLOR&&!!process.stdout.isTTY,p={green:y?"\x1B[32m":"",yellow:y?"\x1B[33m":"",reset:y?"\x1B[0m":""},D=10*1024,O=8*1024,I=2*1024,P=100,b=100;function M(){return d.join(v.homedir(),".entrydesk","tool-results")}function F(e){let t=e.trim().replace(/[/\\:*?"<>|\s]/g,"_").replace(/_+/g,"_").replace(/^[._]+|[._]+$/g,"").slice(0,P);return!t||t==="."||t===".."?"unnamed_tool":t}function J(e){try{return JSON.stringify(e,(t,n)=>typeof n=="bigint"?`${n}n`:typeof n=="function"?"[Function]":typeof n=="symbol"?n.toString():n,2)}catch{return String(e)}}function U(e){let t=new Date,n=[t.getFullYear(),String(t.getMonth()+1).padStart(2,"0"),String(t.getDate()).padStart(2,"0")].join("-")+"_"+[String(t.getHours()).padStart(2,"0"),String(t.getMinutes()).padStart(2,"0"),String(t.getSeconds()).padStart(2,"0")].join("-"),o=F(e);return`${n}_${o}.json`}async function N(e,t){try{return await h.writeFile(e,t,{encoding:"utf8",flag:"wx"}),!0}catch(n){if(n instanceof Error&&"code"in n&&n.code==="EEXIST")return!1;throw n}}async function C(e,t){try{let n=M();await h.mkdir(n,{recursive:!0});let o=U(e),i=d.extname(o),s=o.slice(0,-i.length),r=J(t),l=d.join(n,o);if(await N(l,r))return l;for(let c=1;c<=b;c++){let w=d.join(n,`${s}-${c}${i}`);if(await N(w,r))return w}let u=Math.random().toString(36).slice(2,10),a=d.join(n,`${s}-${u}${i}`);return await h.writeFile(a,r,{encoding:"utf8",flag:"wx"}),a}catch(n){let o=n instanceof Error?n.message:"unknown error";return console.error(`${p.yellow}Warning: Could not save result to file: ${o}${p.reset}`),null}}function k(e,t){let n=Buffer.byteLength(e,"utf8");if(n<=D)return e;let o=e.slice(0,O),i=e.slice(-I),r=((n-O-I)/1024).toFixed(1),l=(n/1024).toFixed(1),u=` ... (skipped ${r}KB of ${l}KB) ...`;return t&&(u+=`
3
3
  Tip: jq -r '.structuredContent.field' <file> | grep/head/tail`),`${o}
4
4
 
5
5
  ${u}
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{h as d,o as f}from"./chunk-HHCG7UQG.js";function U(){console.log(`
2
+ import{h as d,o as f}from"./chunk-QD5PQJFR.js";function U(){console.log(`
3
3
  Usage: entrydesk usage [options]
4
4
 
5
5
  Options:
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ function n(){console.log("entrydesk 1.12.4")}export{n as printVersion};
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{g as a,h as w,n as k}from"./chunk-HHCG7UQG.js";function l(){console.log(`
2
+ import{g as a,h as w,n as k}from"./chunk-QD5PQJFR.js";function l(){console.log(`
3
3
  Usage: entrydesk workspaces [list|switch|use] [options]
4
4
 
5
5
  Commands:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entrydesk/cli",
3
- "version": "1.12.3",
3
+ "version": "1.12.4",
4
4
  "description": "EntryDesk CLI - Interact with EntryDesk from your terminal",
5
5
  "type": "module",
6
6
  "bin": {
@@ -19,7 +19,7 @@
19
19
  "ink-spinner": "^5.0.0",
20
20
  "jose": "^6.1.3",
21
21
  "ky": "^1.14.3",
22
- "react": "^19.2.5",
22
+ "react": "^19.2.6",
23
23
  "uuid": "^13.0.0"
24
24
  },
25
25
  "devDependencies": {
@@ -28,7 +28,7 @@
28
28
  "@types/adm-zip": "^0.5.8",
29
29
  "@types/archiver": "^7.0.0",
30
30
  "@types/node": "^24.12.1",
31
- "@types/react": "^19.2.9",
31
+ "@types/react": "^19.2.14",
32
32
  "@vitest/coverage-v8": "^4.1.1",
33
33
  "happy-dom": "^20.8.9",
34
34
  "oxlint": "^1.60.0",
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a as t,b as u,g as m,p as f,q as d}from"./chunk-HHCG7UQG.js";function h(){console.log(`
3
- Usage: entrydesk profile [list|show|current|create|use|delete|rename|clone] [args]
4
-
5
- Commands:
6
- list List profiles (default)
7
- show <name> Show profile details
8
- current Show active profile
9
- create <name> Create a profile (default name: default)
10
- use <name> Switch active profile
11
- delete <name> Delete a profile
12
- rename <from> <to> Rename a profile
13
- clone <from> <to> Clone config defaults (no credentials)
14
-
15
- Flags:
16
- --json Output JSON
17
- `)}function a(r,o){if(r)return r;if(o&&t.getProfileCount()===1)return t.getProfileNames()[0];throw new f("Profile name is required when multiple profiles exist.")}function P(r){if(!r)return"none";let o=[];return r.sandbox&&o.push("sandbox"),r.webSearch&&o.push("webSearch"),r.imageGeneration&&o.push("imageGeneration"),r.chart&&o.push("chart"),o.length>0?o.join(", "):"none"}async function b(r){try{let o=r.action||"list",i=t.getCurrentProfileName(),c=r.name??r.profile,l=r.value;if(r.help||o==="help"){h();return}if(o==="list"){let e=t.getProfileNames();if(r.json){console.log(JSON.stringify({currentProfile:i,profiles:e.map(n=>({name:n,isCurrent:n===i}))}));return}console.log(`Profiles (${e.length}):`);for(let n of e)console.log(` ${n}${n===i?" (current)":""}`);return}if(o==="current"){if(r.json){console.log(JSON.stringify({name:i,isCurrent:!0}));return}console.log(`Current profile: ${i}`);return}if(o==="show"){let e=a(c,!0),n=u.getAll(e),s=await m.getAll(e),g=!!s?.accessToken;if(r.json){console.log(JSON.stringify({name:e,isCurrent:e===i,config:n,auth:g?{loggedIn:!0,email:s?.email??null,workspaceId:s?.workspaceId??null}:{loggedIn:!1}}));return}console.log(`Profile: ${e}${e===i?" (current)":""}`),console.log(` API URL: ${n.apiUrl??"default"}`),console.log(` Hub URL: ${n.hubUrl??"default"}`),console.log(` Model: ${n.model?.default??"unset"}`);let p=n.connectors?.defaults&&n.connectors.defaults.length>0?n.connectors.defaults.join(", "):"unset";console.log(` Connectors: ${p}`),console.log(` Capabilities: ${P(n.capabilities)}`),console.log(g?` Logged in as: ${s?.email??"unknown"}`:" Not logged in"),g&&s?.workspaceId&&console.log(` Workspace ID: ${s.workspaceId}`);return}if(o==="create"){let e=c||t.DEFAULT_PROFILE;if(t.createProfile(e),r.json){console.log(JSON.stringify({name:e,created:!0}));return}console.log(`Profile created: ${e}`);return}if(o==="use"||o==="switch"){let e=a(c,!0);if(t.setCurrentProfile(e),r.json){console.log(JSON.stringify({name:e,current:!0}));return}console.log(`Switched to profile: ${e}`);return}if(o==="delete"||o==="remove"||o==="rm"){let e=a(c,!0),n=t.deleteProfile(e);if(r.json){console.log(JSON.stringify({deleted:e,currentProfile:n.currentProfile}));return}console.log(`Profile deleted: ${e}`),console.log(`Current profile: ${n.currentProfile}`);return}if(o==="rename"||o==="move"||o==="mv"){let e=a(c,!0);if(!l)throw new f("New profile name is required.");let n=t.renameProfile(e,l);if(r.json){console.log(JSON.stringify({renamed:e,name:l,currentProfile:n.currentProfile}));return}console.log(`Profile renamed: ${e} -> ${l}`),console.log(`Current profile: ${n.currentProfile}`);return}if(o==="clone"||o==="copy"){let e=a(c,!0);if(!l)throw new f("Target profile name is required.");let n=u.getAll(e);if(t.createProfile(l),u.setAll(n,l),await m.clear(l),r.json){console.log(JSON.stringify({source:e,name:l,cloned:!0}));return}console.log(`Profile cloned: ${e} -> ${l}`);return}throw new f(`Unknown profile command: ${o}`)}catch(o){d(o)}}export{b as runProfile};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a as i,b as r,g as c,h as a,k as g,n as f,q as p}from"./chunk-HHCG7UQG.js";async function A(s){try{let o=i.getEffectiveProfileName(),e=await c.getAll(),n={model:r.getDefaultModel(),connectors:r.getDefaultConnectorIds(),capabilities:r.getCapabilities()};if(!e){s.json?console.log(JSON.stringify({loggedIn:!1,profile:o,defaults:n})):(console.log(`Profile: ${o}`),console.log("Not logged in"),console.log("Run `entrydesk login` to authenticate"));return}let t;if(e.workspaceId)try{let l=new a,d=await f(),{workspaces:m}=await l.getWorkspaces(d);t=m.find(k=>k.id===e.workspaceId)?.name}catch(l){if(l instanceof g){s.json?console.log(JSON.stringify({loggedIn:!1,profile:o,defaults:n})):(console.log(`Profile: ${o}`),console.log("Not logged in"),console.log("Run `entrydesk login` to authenticate"));return}}s.json?console.log(JSON.stringify({loggedIn:!0,profile:o,email:e.email,workspaceId:e.workspaceId,workspaceName:t,defaults:n})):(console.log(`Profile: ${o}`),console.log(`Logged in as ${e.email}`),t&&console.log(`Workspace: ${t}`),e.workspaceId&&console.log(`Workspace ID: ${e.workspaceId}`))}catch(o){p(o)}}export{A as runStatus};