@zinley/orion 1.2.31 → 1.2.32

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 (2) hide show
  1. package/dist/index.js +2 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2558,7 +2558,7 @@ if pdfData is not missing value then
2558
2558
  else
2559
2559
  return "error:No PDF in clipboard"
2560
2560
  end if
2561
- `;Oe.writeFileSync(t,n);let s;try{s=si(`osascript "${t}"`,{encoding:"utf8",timeout:1e4,stdio:["pipe","pipe","pipe"]}).trim()}finally{try{Oe.unlinkSync(t)}catch{}}if(s.startsWith("error:"))return{data:null,size:0,fileName:"",mimeType:"",error:s.replace("error:","")};if(!Oe.existsSync(e))return{data:null,size:0,fileName:"",mimeType:"",error:"Failed to save clipboard document"};let r=Oe.readFileSync(e),o=r.length,c=`data:application/pdf;base64,${r.toString("base64")}`,l=`clipboard-${i}.pdf`;try{Oe.unlinkSync(e)}catch{}return{data:c,size:o,fileName:l,mimeType:"application/pdf"}}catch(n){try{Oe.existsSync(e)&&Oe.unlinkSync(e),Oe.existsSync(t)&&Oe.unlinkSync(t)}catch{}return{data:null,size:0,fileName:"",mimeType:"",error:n.message||"Failed to read clipboard document"}}}ke();Rt();import vn from"axios";var Kt=class i{static instance;authService;deviceRegistration;baseURL="https://snowx.ai/api-beta/api";constructor(){this.authService=Z.getInstance(),this.deviceRegistration=Ne.getInstance()}static getInstance(){return i.instance||(i.instance=new i),i.instance}async getAuthHeaders(){let e=await this.authService.getAccessToken();if(!e)throw new Error('Not authenticated. Run "orion auth login" first.');return{Authorization:`Bearer ${e}`,"Content-Type":"application/json"}}async getDeviceId(){if(!this.authService.getUserId())throw new Error('Not authenticated. Run "orion auth login" first.');let t=this.deviceRegistration.getCurrentDeviceId();if(!t)throw new Error("Device not registered. Please wait a moment and try again.");return t}generateDiscordInviteUrl(e){return`https://discord.com/api/oauth2/authorize?client_id=${e}&permissions=274877975552&scope=bot%20applications.commands`}validateDiscordToken(e){return/^[A-Za-z0-9_-]{24,}\.[A-Za-z0-9_-]{6}\.[A-Za-z0-9_-]{27,}$/.test(e.trim())}async connectDiscord(e){try{let t=await this.getAuthHeaders(),n=await this.getDeviceId(),s=await vn.post(`${this.baseURL}/integrations/discord`,{bot_token:e.botToken,device_id:n,owner_user_ids:e.ownerUserIds.join(","),guest_user_ids:e.guestUserIds?.join(",")||"",allow_guild_chat:e.allowGuildChat||!1},{headers:t});return{success:!0,botUsername:s.data.botUsername,botId:s.data.botId,webhookUrl:s.data.webhookUrl}}catch(t){return{success:!1,error:t.response?.data?.error||t.message}}}async getDiscordStatus(){try{let e=await this.getAuthHeaders(),t=await this.getDeviceId(),n=this.authService.getUserId(),s=await vn.get(`${this.baseURL}/integrations/discord/status`,{headers:e,params:{device_id:t,user_id:n}});return{connected:s.data.connected||!1,botUsername:s.data.bot_username,botId:s.data.bot_id,ownerUserIds:s.data.owner_user_ids||[],guestUserIds:s.data.guest_user_ids||[],allowGuildChat:s.data.allow_guild_chat||!1,webhookUrl:s.data.webhook_url,botTokenHash:s.data.bot_token_hash}}catch{return{connected:!1}}}async updateDiscord(e){try{let t=await this.getAuthHeaders(),s={device_id:await this.getDeviceId()};return e.ownerUserIds&&(s.owner_user_ids=e.ownerUserIds.join(",")),e.guestUserIds!==void 0&&(s.guest_user_ids=e.guestUserIds.join(",")),e.allowGuildChat!==void 0&&(s.allow_guild_chat=e.allowGuildChat),await vn.patch(`${this.baseURL}/integrations/discord`,s,{headers:t}),{success:!0}}catch(t){return{success:!1,error:t.response?.data?.error||t.message}}}async disconnectDiscord(){try{let e=await this.getAuthHeaders(),t=await this.getDeviceId(),n=this.authService.getUserId();return await vn.delete(`${this.baseURL}/integrations/discord`,{headers:e,data:{device_id:t,user_id:n}}),!0}catch{return!1}}validateTelegramToken(e){return/^\d{6,15}:[A-Za-z0-9_-]{35,50}$/.test(e.trim())}getTelegramChatUrl(e){return`https://t.me/${e.replace(/^@/,"")}`}async connectTelegram(e){try{let t=await this.getAuthHeaders(),n=await this.getDeviceId();return{success:!0,botUsername:(await vn.post(`${this.baseURL}/integrations/telegram`,{bot_token:e.botToken,device_id:n,owner_usernames:e.ownerUsernames.join(","),guest_usernames:e.guestUsernames?.join(",")||"",allow_group_chat:e.allowGroupChat||!1,route_to_dm:e.routeToDM||!1},{headers:t})).data.botUsername}}catch(t){return{success:!1,error:t.response?.data?.error||t.message}}}async getTelegramStatus(){try{let e=await this.getAuthHeaders(),t=await this.getDeviceId(),n=this.authService.getUserId(),s=await vn.get(`${this.baseURL}/integrations/telegram/status`,{headers:e,params:{device_id:t,user_id:n}});return{connected:s.data.connected||!1,botUsername:s.data.bot_username,ownerUsernames:s.data.owner_usernames||[],guestUsernames:s.data.guest_usernames||[],allowGroupChat:s.data.allow_group_chat||!1,routeToDM:s.data.route_to_dm||!1}}catch{return{connected:!1}}}async updateTelegram(e){try{let t=await this.getAuthHeaders(),s={device_id:await this.getDeviceId()};return e.ownerUsernames&&(s.owner_usernames=e.ownerUsernames.join(",")),e.guestUsernames!==void 0&&(s.guest_usernames=e.guestUsernames.join(",")),e.allowGroupChat!==void 0&&(s.allow_group_chat=e.allowGroupChat),e.routeToDM!==void 0&&(s.route_to_dm=e.routeToDM),await vn.patch(`${this.baseURL}/integrations/telegram`,s,{headers:t}),{success:!0}}catch(t){return{success:!1,error:t.response?.data?.error||t.message}}}async disconnectTelegram(){try{let e=await this.getAuthHeaders(),t=await this.getDeviceId(),n=this.authService.getUserId();return await vn.delete(`${this.baseURL}/integrations/telegram`,{headers:e,data:{device_id:t,user_id:n}}),!0}catch{return!1}}};ke();V();import{EventEmitter as Zv}from"events";import eS from"axios";var tS="https://snowx.ai/api-beta/api/users/me/quota",kg=50,nS=300*1e3,Sc=class i extends Zv{static instance;authService;cachedQuota=null;lastFetchTime=0;pollTimer=null;constructor(){super(),this.authService=Z.getInstance()}static getInstance(){return i.instance||(i.instance=new i),i.instance}async fetchQuotaStatus(e=!1){let t=Date.now();if(!e&&this.cachedQuota&&t-this.lastFetchTime<6e4)return this.cachedQuota;try{let n=this.authService.getAccessToken();if(n||(n=await this.authService.getAccessTokenFromStorage()),!n)return u.debug("[QuotaService] No auth token available"),null;let s=await eS.get(tS,{headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},timeout:1e4});return s.data.success&&s.data.data?(this.cachedQuota=s.data.data,this.lastFetchTime=t,this.emit("quotaUpdated",this.cachedQuota),this.cachedQuota):(s.data.error&&u.debug("[QuotaService] API error:",s.data.error),null)}catch(n){return u.debug("[QuotaService] Fetch error:",n),null}}async getUsageDisplayData(){let e=await this.fetchQuotaStatus();if(!e?.token)return null;let{weekly:t,hourly:n}=e.token;return t?.percentUsed>=kg?{percent:Math.round(t.percentUsed),type:"weekly",resetsAt:t.resetsAt,resetsInSeconds:t.resetsInSeconds}:n?.percentUsed>=kg?{percent:Math.round(n.percentUsed),type:"hourly",resetsAt:n.resetsAt,resetsInSeconds:n.resetsInSeconds}:null}getCachedQuota(){return this.cachedQuota}startPolling(){this.pollTimer||(this.fetchQuotaStatus(),this.pollTimer=setInterval(()=>{this.fetchQuotaStatus(!0)},nS))}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}clearCache(){this.cachedQuota=null,this.lastFetchTime=0}},vr=Sc.getInstance();function Pg(i){return i>=95?"critical":i>=90?"high":i>=70?"warning":i>=50?"notice":"normal"}function Sr(i,e){if(!i&&(!e||e<=0))return"";let t=i?new Date(i):new Date(Date.now()+e*1e3),n=Date.now(),s=t.getTime()-n,r=Math.floor(s/(1e3*60*60)),o=Math.floor(s%(1e3*60*60)/(1e3*60));return s<0?"now":r<24?r>0?`${r}h ${o}m`:`${o}m`:t.toLocaleDateString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}import wc from"os";import wr from"path";function ai(){let{exit:i}=sS(),e=Hn(),t=It(),n=Gn(),s=qt(),r=zn(),o=Ag(c=>c.startsWith("/"),[]);return{handleCommand:Ag(async c=>{if(!c.startsWith("/"))return{handled:!1};let l=c.toLowerCase().trim();if(l==="/history"||l==="/hist")return s.showConversationList(),r.clearInput(),{handled:!0,clearInput:!0};if(l==="/help"||l==="/?")return s.showCommandMenu(),r.clearInput(),{handled:!0,clearInput:!0};if(l==="/model")return s.showModelMenu(),r.clearInput(),{handled:!0,clearInput:!0};if(l==="/clear"||l==="/new")return t.clearChat(),r.clearInput(),s.hideConversationList(),{handled:!0,clearInput:!0};if(l==="/vision")return s.toggleVision(),r.clearInput(),{handled:!0,clearInput:!0};if(l==="/exit"||l==="/quit")return i(),{handled:!0};if(l==="/stop")return t.stopStreaming(),r.clearInput(),{handled:!0,clearInput:!0};if(l==="/attachments"||l==="/att"){let{attachmentManager:d}=n,g=d.getImages(),m=d.getDocuments(),p=d.getTotalCount(),h=d.getMaxAllowed();if(p===0)return t.addSystemMessage("[i] No attachments. Use /img (clipboard), /doc (PDF), or /file <path>"),r.clearInput(),{handled:!0,clearInput:!0};let f=`Attachments (${p}/${h}):
2561
+ `;Oe.writeFileSync(t,n);let s;try{s=si(`osascript "${t}"`,{encoding:"utf8",timeout:1e4,stdio:["pipe","pipe","pipe"]}).trim()}finally{try{Oe.unlinkSync(t)}catch{}}if(s.startsWith("error:"))return{data:null,size:0,fileName:"",mimeType:"",error:s.replace("error:","")};if(!Oe.existsSync(e))return{data:null,size:0,fileName:"",mimeType:"",error:"Failed to save clipboard document"};let r=Oe.readFileSync(e),o=r.length,c=`data:application/pdf;base64,${r.toString("base64")}`,l=`clipboard-${i}.pdf`;try{Oe.unlinkSync(e)}catch{}return{data:c,size:o,fileName:l,mimeType:"application/pdf"}}catch(n){try{Oe.existsSync(e)&&Oe.unlinkSync(e),Oe.existsSync(t)&&Oe.unlinkSync(t)}catch{}return{data:null,size:0,fileName:"",mimeType:"",error:n.message||"Failed to read clipboard document"}}}ke();Rt();import vn from"axios";var Kt=class i{static instance;authService;deviceRegistration;baseURL="https://snowx.ai/api-beta/api";constructor(){this.authService=Z.getInstance(),this.deviceRegistration=Ne.getInstance()}static getInstance(){return i.instance||(i.instance=new i),i.instance}async getAuthHeaders(){let e=await this.authService.getAccessToken();if(!e)throw new Error('Not authenticated. Run "orion auth login" first.');return{Authorization:`Bearer ${e}`,"Content-Type":"application/json"}}async getDeviceId(){if(!this.authService.getUserId())throw new Error('Not authenticated. Run "orion auth login" first.');let t=this.deviceRegistration.getCurrentDeviceId();if(!t)throw new Error("Device not registered. Please wait a moment and try again.");return t}generateDiscordInviteUrl(e){return`https://discord.com/api/oauth2/authorize?client_id=${e}&permissions=274877975552&scope=bot%20applications.commands`}validateDiscordToken(e){return/^[A-Za-z0-9_-]{24,}\.[A-Za-z0-9_-]{6}\.[A-Za-z0-9_-]{27,}$/.test(e.trim())}async connectDiscord(e){try{let t=await this.getAuthHeaders(),n=await this.getDeviceId(),s=await vn.post(`${this.baseURL}/integrations/discord`,{bot_token:e.botToken,device_id:n,owner_user_ids:e.ownerUserIds.join(","),guest_user_ids:e.guestUserIds?.join(",")||"",allow_guild_chat:e.allowGuildChat||!1},{headers:t});return{success:!0,botUsername:s.data.botUsername,botId:s.data.botId,webhookUrl:s.data.webhookUrl}}catch(t){return{success:!1,error:t.response?.data?.error||t.message}}}async getDiscordStatus(){try{let e=await this.getAuthHeaders(),t=await this.getDeviceId(),n=this.authService.getUserId(),s=await vn.get(`${this.baseURL}/integrations/discord/status`,{headers:e,params:{device_id:t,user_id:n}});return{connected:s.data.connected||!1,botUsername:s.data.bot_username,botId:s.data.bot_id,ownerUserIds:s.data.owner_user_ids||[],guestUserIds:s.data.guest_user_ids||[],allowGuildChat:s.data.allow_guild_chat||!1,webhookUrl:s.data.webhook_url,botTokenHash:s.data.bot_token_hash}}catch{return{connected:!1}}}async updateDiscord(e){try{let t=await this.getAuthHeaders(),s={device_id:await this.getDeviceId()};return e.ownerUserIds&&(s.owner_user_ids=e.ownerUserIds.join(",")),e.guestUserIds!==void 0&&(s.guest_user_ids=e.guestUserIds.join(",")),e.allowGuildChat!==void 0&&(s.allow_guild_chat=e.allowGuildChat),await vn.patch(`${this.baseURL}/integrations/discord`,s,{headers:t}),{success:!0}}catch(t){return{success:!1,error:t.response?.data?.error||t.message}}}async disconnectDiscord(){try{let e=await this.getAuthHeaders(),t=await this.getDeviceId(),n=this.authService.getUserId();return await vn.delete(`${this.baseURL}/integrations/discord`,{headers:e,data:{device_id:t,user_id:n}}),!0}catch{return!1}}validateTelegramToken(e){return/^\d{6,15}:[A-Za-z0-9_-]{35,50}$/.test(e.trim())}getTelegramChatUrl(e){return`https://t.me/${e.replace(/^@/,"")}`}async connectTelegram(e){try{let t=await this.getAuthHeaders(),n=await this.getDeviceId();return{success:!0,botUsername:(await vn.post(`${this.baseURL}/integrations/telegram`,{bot_token:e.botToken,device_id:n,owner_usernames:e.ownerUsernames.join(","),guest_usernames:e.guestUsernames?.join(",")||"",allow_group_chat:e.allowGroupChat||!1,route_to_dm:e.routeToDM||!1},{headers:t})).data.botUsername}}catch(t){return{success:!1,error:t.response?.data?.error||t.message}}}async getTelegramStatus(){try{let e=await this.getAuthHeaders(),t=await this.getDeviceId(),n=this.authService.getUserId(),s=await vn.get(`${this.baseURL}/integrations/telegram/status`,{headers:e,params:{device_id:t,user_id:n}});return{connected:s.data.connected||!1,botUsername:s.data.bot_username,ownerUsernames:s.data.owner_usernames||[],guestUsernames:s.data.guest_usernames||[],allowGroupChat:s.data.allow_group_chat||!1,routeToDM:s.data.route_to_dm||!1}}catch{return{connected:!1}}}async updateTelegram(e){try{let t=await this.getAuthHeaders(),s={device_id:await this.getDeviceId()};return e.ownerUsernames&&(s.owner_usernames=e.ownerUsernames.join(",")),e.guestUsernames!==void 0&&(s.guest_usernames=e.guestUsernames.join(",")),e.allowGroupChat!==void 0&&(s.allow_group_chat=e.allowGroupChat),e.routeToDM!==void 0&&(s.route_to_dm=e.routeToDM),await vn.patch(`${this.baseURL}/integrations/telegram`,s,{headers:t}),{success:!0}}catch(t){return{success:!1,error:t.response?.data?.error||t.message}}}async disconnectTelegram(){try{let e=await this.getAuthHeaders(),t=await this.getDeviceId(),n=this.authService.getUserId();return await vn.delete(`${this.baseURL}/integrations/telegram`,{headers:e,data:{device_id:t,user_id:n}}),!0}catch{return!1}}};ke();V();import{EventEmitter as Zv}from"events";import eS from"axios";var tS="https://snowx.ai/api-beta/api/users/me/quota",kg=50,nS=300*1e3,Sc=class i extends Zv{static instance;authService;cachedQuota=null;lastFetchTime=0;pollTimer=null;constructor(){super(),this.authService=Z.getInstance()}static getInstance(){return i.instance||(i.instance=new i),i.instance}async fetchQuotaStatus(e=!1){let t=Date.now();if(!e&&this.cachedQuota&&t-this.lastFetchTime<6e4)return this.cachedQuota;try{let n=this.authService.getAccessToken();if(n||(n=await this.authService.getAccessTokenFromStorage()),!n)return u.debug("[QuotaService] No auth token available"),null;let s=await eS.get(tS,{headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},timeout:1e4});return s.data.success&&s.data.data?(this.cachedQuota=s.data.data,this.lastFetchTime=t,this.emit("quotaUpdated",this.cachedQuota),this.cachedQuota):(s.data.error&&u.debug("[QuotaService] API error:",s.data.error),null)}catch(n){return u.debug("[QuotaService] Fetch error:",n),null}}async getUsageDisplayData(){let e=await this.fetchQuotaStatus();if(!e?.token)return null;let{weekly:t,hourly:n}=e.token;return t?.percentUsed>=kg?{percent:Math.round(t.percentUsed),type:"weekly",resetsAt:t.resetsAt,resetsInSeconds:t.resetsInSeconds}:n?.percentUsed>=kg?{percent:Math.round(n.percentUsed),type:"hourly",resetsAt:n.resetsAt,resetsInSeconds:n.resetsInSeconds}:null}getCachedQuota(){return this.cachedQuota}startPolling(){this.pollTimer||(this.fetchQuotaStatus(),this.pollTimer=setInterval(()=>{this.fetchQuotaStatus(!0)},nS))}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}clearCache(){this.cachedQuota=null,this.lastFetchTime=0}},vr=Sc.getInstance();function Pg(i){return i>=95?"critical":i>=90?"high":i>=70?"warning":i>=50?"notice":"normal"}function Sr(i,e){if(!i&&(!e||e<=0))return"";let t=i?new Date(i):new Date(Date.now()+e*1e3),n=Intl.DateTimeFormat().resolvedOptions().timeZone;return new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit",timeZoneName:"short",timeZone:n}).format(t)}import wc from"os";import wr from"path";function ai(){let{exit:i}=sS(),e=Hn(),t=It(),n=Gn(),s=qt(),r=zn(),o=Ag(c=>c.startsWith("/"),[]);return{handleCommand:Ag(async c=>{if(!c.startsWith("/"))return{handled:!1};let l=c.toLowerCase().trim();if(l==="/history"||l==="/hist")return s.showConversationList(),r.clearInput(),{handled:!0,clearInput:!0};if(l==="/help"||l==="/?")return s.showCommandMenu(),r.clearInput(),{handled:!0,clearInput:!0};if(l==="/model")return s.showModelMenu(),r.clearInput(),{handled:!0,clearInput:!0};if(l==="/clear"||l==="/new")return t.clearChat(),r.clearInput(),s.hideConversationList(),{handled:!0,clearInput:!0};if(l==="/vision")return s.toggleVision(),r.clearInput(),{handled:!0,clearInput:!0};if(l==="/exit"||l==="/quit")return i(),{handled:!0};if(l==="/stop")return t.stopStreaming(),r.clearInput(),{handled:!0,clearInput:!0};if(l==="/attachments"||l==="/att"){let{attachmentManager:d}=n,g=d.getImages(),m=d.getDocuments(),p=d.getTotalCount(),h=d.getMaxAllowed();if(p===0)return t.addSystemMessage("[i] No attachments. Use /img (clipboard), /doc (PDF), or /file <path>"),r.clearInput(),{handled:!0,clearInput:!0};let f=`Attachments (${p}/${h}):
2562
2562
  `;return g.forEach((y,v)=>{let T=(y.size/1024/1024).toFixed(2),x=y.source==="clipboard"?"clipboard image":"image";f+=` ${v+1}. [IMG] ${x} (${T}MB)
2563
2563
  `}),m.forEach((y,v)=>{let T=(y.size/1024/1024).toFixed(2),x=y.fileName.split(".").pop()?.toUpperCase()||"FILE";f+=` ${g.length+v+1}. [${x}] ${y.fileName} (${T}MB)
2564
2564
  `}),f+=`
@@ -2606,7 +2606,7 @@ Commands: /ask, /new, /clear`),C&&y(C)}else t.addSystemMessage(`✗ Discord setu
2606
2606
  Bot: @${P.botUsername}
2607
2607
  Chat: ${C}
2608
2608
 
2609
- Send /new to start`),y(C)}else t.addSystemMessage(`✗ Telegram setup failed: ${P.error}`)}}catch(P){t.addSystemMessage(`✗ Connection error: ${P.message}`)}e.resetWizard()},[i,m,t,y,e]);uw(()=>{(i==="discord"&&n.step===5||i==="telegram"&&n.step===6)&&!c&&(l(!0),x(n.data))},[n.step,n.data,i,c,x]);let I=()=>{let S=Math.min(n.step,f),P="━".repeat(S),C="─".repeat(f-S);return ie.createElement(Ze,null,ie.createElement(He,{color:me.brand},P),ie.createElement(He,{color:me.dim},C),ie.createElement(He,{color:me.muted}," ",S,"/",f))},E=()=>h?h.type==="loading"?ie.createElement(Ze,{flexDirection:"column",paddingY:1},ie.createElement(Ze,null,ie.createElement(He,{color:me.brand},ie.createElement(mw,{type:"dots"})),ie.createElement(He,{color:me.muted}," Connecting to ",i==="discord"?"Discord":"Telegram","..."))):h.type==="input"?ie.createElement(Ze,{flexDirection:"column"},ie.createElement(He,{color:me.text},h.help),ie.createElement(He,{color:me.dim},h.hint),ie.createElement(Ze,{marginTop:1,flexDirection:"column"},ie.createElement(Ze,{paddingX:1,borderStyle:"round",borderColor:o?me.error:me.brand},ie.createElement(He,{color:s?me.text:me.dim},s||h.placeholder||"Type here..."),ie.createElement(He,{color:me.brand},"▎")),o&&ie.createElement(Ze,{marginTop:1},ie.createElement(He,{color:me.error},"✗ ",o)))):h.type==="confirm"?ie.createElement(Ze,{flexDirection:"column"},ie.createElement(He,{color:me.text},h.help),ie.createElement(He,{color:me.dim},h.hint),ie.createElement(Ze,{marginTop:1,gap:2},ie.createElement(Ze,{paddingX:2,borderStyle:"round",borderColor:d===0?me.brand:me.border},ie.createElement(He,{color:d===0?me.brand:me.muted},"No")),ie.createElement(Ze,{paddingX:2,borderStyle:"round",borderColor:d===1?me.brand:me.border},ie.createElement(He,{color:d===1?me.brand:me.muted},"Yes")))):null:null,w=i==="discord"?"Discord Setup":"Telegram Setup";return ie.createElement(Ze,{flexDirection:"column",borderStyle:"round",borderColor:me.border,paddingX:2,paddingY:1,width:60},ie.createElement(Ze,{marginBottom:1,justifyContent:"space-between"},ie.createElement(He,{bold:!0,color:me.brand},w),I()),ie.createElement(Ze,{marginBottom:1},ie.createElement(He,{bold:!0,color:me.text},h?.title)),E(),ie.createElement(Ze,{marginTop:1,borderStyle:"single",borderTop:!0,borderColor:me.border,paddingTop:1},ie.createElement(He,{color:me.dim},h?.type==="confirm"?"← → or y/n to select • enter to confirm • esc to cancel":h?.type==="loading"?"Please wait...":"enter to continue • esc to cancel")))}var im=dw(bw);import Fe,{memo as yw,useMemo as mi}from"react";import{Box as Tn,Text as xn}from"@jrichman/ink";var am=(i,e=60)=>i.length>e?i.substring(0,e)+"...":i;function vw({regularQueuedMessages:i,crossDeviceTasks:e}){let t=mi(()=>i.length===0?null:i.map((o,a)=>Fe.createElement(Tn,{key:o.id,borderStyle:"round",borderColor:"#3F3F46",paddingX:2,paddingY:0,marginBottom:1},Fe.createElement(Tn,null,Fe.createElement(xn,{color:"whiteBright",bold:!0},a+1),Fe.createElement(xn,{color:"#6B7280"}," • "),Fe.createElement(xn,{color:"#9CA3AF"},am(o.content))))),[i]),n=mi(()=>e.length===0?null:e.map((o,a)=>Fe.createElement(Tn,{key:`cross-${o.id}`,borderStyle:"round",borderColor:"#0E7490",paddingX:2,paddingY:0,marginBottom:1},Fe.createElement(Tn,null,Fe.createElement(xn,{color:"#22D3EE",bold:!0},"[M] ",a+1),Fe.createElement(xn,{color:"#6B7280"}," - "),Fe.createElement(xn,{color:"#9CA3AF"},am(o.content))))),[e]),s=mi(()=>{let o=i.length;return`${o} message${o>1?"s":""} queued`},[i.length]),r=mi(()=>{let o=e.length;return`${o} cross-device task${o>1?"s":""} waiting`},[e.length]);return Fe.createElement(Fe.Fragment,null,t&&Fe.createElement(Tn,{flexDirection:"column",paddingX:2,marginBottom:1},t,Fe.createElement(Tn,null,Fe.createElement(xn,{color:"#9CA3AF"},s))),n&&Fe.createElement(Tn,{flexDirection:"column",paddingX:2,marginBottom:1},n,Fe.createElement(Tn,null,Fe.createElement(xn,{color:"#22D3EE"},r))))}var cm=yw(vw,(i,e)=>i.regularQueuedMessages.length===e.regularQueuedMessages.length&&i.crossDeviceTasks.length===e.crossDeviceTasks.length&&i.regularQueuedMessages.every((t,n)=>t.id===e.regularQueuedMessages[n]?.id)&&i.crossDeviceTasks.every((t,n)=>t.id===e.crossDeviceTasks[n]?.id));import At,{memo as Sw,useState as ww}from"react";import{Box as pi,Text as Vn,useInput as Tw}from"@jrichman/ink";function xw(i){let e=Date.now()-new Date(i).getTime(),t=Math.floor(e/6e4),n=Math.floor(e/36e5),s=Math.floor(e/864e5);return s>0?`${s}d ago`:n>0?`${n}h ago`:t>0?`${t}m ago`:"just now"}function Cw({conversations:i,currentConversationId:e,onSelect:t,onClose:n}){let s=[...i].sort((a,c)=>new Date(c.updatedAt).getTime()-new Date(a.updatedAt).getTime()).slice(0,20),[r,o]=ww(()=>{let a=s.findIndex(c=>c.id===e);return a>=0?a:0});return Tw((a,c)=>{if(c.upArrow){o(l=>Math.max(0,l-1));return}if(c.downArrow){o(l=>Math.min(s.length-1,l+1));return}if(c.return&&s[r]){t(s[r].id),n();return}if(c.escape||a==="q"){n();return}}),s.length===0?At.createElement(pi,{borderStyle:"round",borderColor:k.border.default,paddingX:2,paddingY:1},At.createElement(Vn,{color:k.ui.muted},"No past conversations")):At.createElement(pi,{flexDirection:"column",borderStyle:"round",borderColor:k.border.focused,paddingX:1,paddingY:0},At.createElement(pi,{marginBottom:1,paddingX:1},At.createElement(Vn,{color:k.text.primary,bold:!0},"Conversations "),At.createElement(Vn,{color:k.ui.muted},"↑↓ navigate Enter switch Esc close")),s.map((a,c)=>{let l=c===r,d=a.id===e,g=a.title||"Untitled",m=g.length>50?g.substring(0,47)+"...":g;return At.createElement(pi,{key:a.id,paddingX:1},At.createElement(Vn,{color:l?k.text.accent:k.ui.muted},l?"▶ ":" "),At.createElement(Vn,{color:l?k.text.primary:k.text.secondary,bold:d},m),d&&At.createElement(Vn,{color:k.status.success}," ●"),At.createElement(Vn,{color:k.ui.muted}," ",xw(a.updatedAt)))}))}var lm=Sw(Cw);import K,{memo as Ew,useMemo as Rc}from"react";import{Box as Ge,Text as ae}from"@jrichman/ink";import dm from"path";import at,{memo as hi}from"react";import{Box as kr,Text as Yt}from"@jrichman/ink";var fi={normal:{symbol:"",label:"",color:k.text.primary,description:"Normal mode"},yolo:{symbol:"*",label:"YOLO",color:k.status.error,description:"Auto-approve all actions"},plan:{symbol:">",label:"PLAN",color:k.status.success,description:"Planning mode - no execution"},shell:{symbol:"!",label:"SHELL",color:k.status.warning,description:"Shell command mode"},auto:{symbol:">",label:"AUTO",color:k.status.warning,description:"Auto-accept suggestions"}},eB=hi(function({mode:e,showLabel:t=!1,size:n="normal"}){if(e==="normal")return null;let s=fi[e];return n==="compact"?at.createElement(Yt,{color:s.color,bold:!0},s.symbol):at.createElement(kr,{flexDirection:"row",alignItems:"center"},at.createElement(Yt,{color:s.color,bold:!0},s.symbol),t&&at.createElement(kr,{marginLeft:1},at.createElement(Yt,{color:s.color,bold:!0},s.label)))}),tB=hi(function({mode:e,isActive:t=!0}){if(e==="normal")return null;let n=fi[e],s=t?n.color:k.ui.muted;return at.createElement(Yt,{color:s,bold:t},"[",n.label,"]")}),nB=hi(function({selectedMode:e,availableModes:t=["normal","yolo","plan","auto"],isFocused:n=!1}){return at.createElement(kr,{flexDirection:"row",alignItems:"center"},at.createElement(Yt,{color:k.text.secondary},"Mode: "),t.map((s,r)=>{let o=fi[s],a=s===e,c=s==="normal"?"NORMAL":o.label;return at.createElement(kr,{key:s,flexDirection:"row"},r>0&&at.createElement(Yt,{color:k.ui.muted}," | "),at.createElement(Yt,{color:a?o.color:k.ui.muted,bold:a,inverse:a&&n},c))}))}),um=hi(function({mode:e,promptSymbol:t="❯",isFocused:n=!0}){let s=fi[e],r=e!=="normal",o=r?s.color:n?k.text.accent:k.ui.muted;return at.createElement(kr,{flexDirection:"row",alignItems:"center"},r&&at.createElement(Yt,{color:s.color,bold:!0},s.symbol),at.createElement(Yt,{color:o},t))});var Iw=" Type your message or @path/to/file";function kw({input:i,isLoading:e,pastedTexts:t,cursorPosition:n,suggestion:s,mode:r="normal",attachmentCount:o}){let{attachmentManager:a}=Gn(),{hasContent:c,ghostText:l}=Rc(()=>{let m=i.length>0||t.length>0||a.hasAttachments(),p=s&&s.toLowerCase().startsWith(i.toLowerCase())&&i.length>0?s.slice(i.length):null;return{hasContent:m,ghostText:p}},[i,t.length,s,o]),d=Rc(()=>{let m=a.getImages(),p=a.getDocuments();if(m.length===0&&p.length===0)return null;let h=[];for(let v of m){let T=v.source==="clipboard"?"CLIPBOARD":"IMG",x=` ${Bt(v.size)}`;h.push(K.createElement(Ge,{key:v.id},K.createElement(ae,{color:k.status.info}," ","[",T,"] "),K.createElement(ae,{color:k.text.secondary},"Image"),K.createElement(ae,{color:k.ui.muted},x)))}for(let v of p){let T=v.fileName.split(".").pop()?.toUpperCase()||"FILE",x=` ${Bt(v.size)}`;h.push(K.createElement(Ge,{key:v.id},K.createElement(ae,{color:k.status.info}," ","[",T,"] "),K.createElement(ae,{color:k.text.secondary},Xo(v.fileName)),K.createElement(ae,{color:k.ui.muted},x)))}let f=m.length+p.length,y=a.getMaxAllowed();return h.push(K.createElement(Ge,{key:"summary"},K.createElement(ae,{color:k.ui.muted}," Attachments: ",f,"/",y))),h},[o]),g=Rc(()=>t.length===0?null:t.map((m,p)=>{if(m.type==="clipboard_image"){let y=m.fileSize?` ${Bt(m.fileSize)}`:"",v=!!m.error;return K.createElement(Ge,{key:`pasted-${m.id}`,flexDirection:"column"},K.createElement(Ge,null,K.createElement(ae,{color:v?k.status.error:k.status.info}," ","[CLIPBOARD] "),K.createElement(ae,{color:v?k.status.error:k.text.secondary},"Image"),y&&K.createElement(ae,{color:k.ui.muted},y)),v&&K.createElement(Ge,{marginLeft:4},K.createElement(ae,{color:k.status.error,dimColor:!0},"[!] ",m.error)))}if(m.type==="image_path"&&m.filePath){let y=Xo(dm.basename(m.filePath)),v=m.fileSize?` ${Bt(m.fileSize)}`:"",T=!!m.error;return K.createElement(Ge,{key:`pasted-${m.id}`,flexDirection:"column"},K.createElement(Ge,null,K.createElement(ae,{color:T?k.status.error:k.status.info}," ","[IMG] "),K.createElement(ae,{color:T?k.status.error:k.text.secondary},y),v&&K.createElement(ae,{color:k.ui.muted},v)),T&&K.createElement(Ge,{marginLeft:4},K.createElement(ae,{color:k.status.error,dimColor:!0},"[!] ",m.error)))}if(m.type==="file_path"&&m.filePath){let y=Xo(dm.basename(m.filePath)),v=m.fileSize?` ${Bt(m.fileSize)}`:"",T=!!m.error;return K.createElement(Ge,{key:`pasted-${m.id}`,flexDirection:"column"},K.createElement(Ge,null,K.createElement(ae,{color:T?k.status.error:k.status.info}," ","[FILE] "),K.createElement(ae,{color:T?k.status.error:k.text.secondary},y),v&&K.createElement(ae,{color:k.ui.muted},v)),T&&K.createElement(Ge,{marginLeft:4},K.createElement(ae,{color:k.status.error,dimColor:!0},"[!] ",m.error)))}let h=m.lineCount-1,f=h>0?`+${h} lines`:"1 line";return K.createElement(Ge,{key:`pasted-${m.id}`},K.createElement(ae,{color:k.ui.muted}," ","[TEXT] "),K.createElement(ae,{color:k.text.secondary},"Pasted text #",p+1),K.createElement(ae,{color:k.ui.muted}," (",f,")"))}),[t]);return K.createElement(Ge,{borderStyle:"round",borderColor:c?k.border.focused:k.border.default,paddingX:2,paddingY:0,flexDirection:"column",width:"100%"},d&&K.createElement(Ge,{flexDirection:"column",marginBottom:0},d),g&&K.createElement(Ge,{flexDirection:"column",marginBottom:0},g),K.createElement(Ge,null,K.createElement(um,{mode:r,isFocused:!e}),K.createElement(ae,null," "),i.length===0&&!e?s?K.createElement(ae,null,K.createElement(ae,{inverse:!0}," "),K.createElement(ae,{color:k.ui.muted},s),K.createElement(ae,{color:k.ui.muted,dimColor:!0}," (Tab to accept)")):K.createElement(ae,{color:k.ui.muted},Iw):K.createElement(ae,null,K.createElement(ae,{color:k.text.primary},i.slice(0,n)),!e&&K.createElement(ae,{inverse:!0}," "),K.createElement(ae,{color:k.text.primary},i.slice(n)),l&&K.createElement(ae,{color:k.ui.muted},l))))}var gm=Ew(kw,(i,e)=>i.input===e.input&&i.isLoading===e.isLoading&&i.cursorPosition===e.cursorPosition&&i.suggestion===e.suggestion&&i.mode===e.mode&&i.pastedTexts.length===e.pastedTexts.length&&i.pastedTexts.every((t,n)=>t.id===e.pastedTexts[n]?.id));import Pr,{useState as Pw,useEffect as Aw,useRef as Dw,memo as Mw}from"react";import{Box as Rw,Text as Nc}from"@jrichman/ink";import Nw from"ink-spinner";function Ow(i){if(i<60)return`${i}s`;let e=Math.floor(i/60),t=i%60;return`${e}m ${t}s`}function _w({isLoading:i,phrase:e="Processing",startTime:t}){let[n,s]=Pw(0),r=Dw(null);return Aw(()=>{if(r.current&&(clearInterval(r.current),r.current=null),!i){s(0);return}let o=t||Date.now();return s(Math.floor((Date.now()-o)/1e3)),r.current=setInterval(()=>{let a=Date.now(),c=Math.floor((a-o)/1e3);s(c)},1e3),()=>{r.current&&(clearInterval(r.current),r.current=null)}},[i,t]),i?Pr.createElement(Rw,{flexDirection:"row",alignItems:"center",paddingX:2,marginBottom:1,flexShrink:0},Pr.createElement(Nc,{color:k.text.accent},Pr.createElement(Nw,{type:"dots"})),Pr.createElement(Nc,{color:k.text.primary}," ",e,"... "),Pr.createElement(Nc,{color:k.text.secondary},"(esc to cancel",n>0?`, ${Ow(n)}`:"",")")):null}var mm=Mw(_w);import Ee,{memo as Gw,useMemo as wm}from"react";import{Box as Rs,Text as lt}from"@jrichman/ink";import{useState as pm,useEffect as hm,useCallback as $w,useRef as fm}from"react";import{useStdout as Fw}from"@jrichman/ink";var Ds=80,Ms=24,Lw=100;function bi(i){let{debounceMs:e=Lw}=i||{},{stdout:t}=Fw(),[n,s]=pm({width:t?.columns||Ds,height:t?.rows||Ms,rows:t?.rows||Ms,columns:t?.columns||Ds}),[r,o]=pm(!1),a=fm(null),c=fm(null);hm(()=>{function d(){o(!0),a.current&&clearTimeout(a.current),c.current&&clearTimeout(c.current),a.current=setTimeout(()=>{let g=process.stdout.columns||Ds,m=process.stdout.rows||Ms;s(p=>p.width!==g||p.height!==m?{width:g,height:m,rows:m,columns:g}:p),c.current=setTimeout(()=>{o(!1)},50)},e)}return process.stdout.on("resize",d),()=>{process.stdout.off("resize",d),a.current&&clearTimeout(a.current),c.current&&clearTimeout(c.current)}},[e]),hm(()=>{if(t){let d=t.columns||Ds,g=t.rows||Ms;(d!==n.width||g!==n.height)&&s({width:d,height:g,rows:g,columns:d})}},[t?.columns,t?.rows]);let l=$w(()=>{s({width:process.stdout.columns||Ds,height:process.stdout.rows||Ms,rows:process.stdout.rows||Ms,columns:process.stdout.columns||Ds})},[]);return{...n,isResizing:r,refresh:l}}$o();import{useState as Cn,useEffect as bm,useRef as Uw,useCallback as Bw}from"react";function ym(i=1e4){let[e,t]=Cn("not-ready"),[n,s]=Cn(!1),[r,o]=Cn(!1),[a,c]=Cn(0),[l,d]=Cn(5),[g,m]=Cn(0),[p,h]=Cn(!1),[f,y]=Cn(!1),v=Uw(!1),T=Bw(x=>{x.isInitializing||x.initState==="initializing"?t("initializing"):x.isRunning&&x.isInitialized?t("ready"):t("not-ready"),s(x.hasBrowser??!1),o(x.multiAgentMode??!1),c(x.runningAgentCount??0),d(x.maxConcurrentAgents??5),m(x.tabCount??0),h(x.isExecuting??!1),y(x.hasActiveSession??!1)},[]);return bm(()=>{let x=re.onStatusChange(I=>{T(I)});return()=>x()},[T]),bm(()=>{let x=()=>{let E=re.getStatus();E.initState==="idle"&&!v.current&&(v.current=!0,re.initialize().catch(w=>{console.debug("[useBrowserStatus] Auto-init failed:",w.message)}),E=re.getStatus()),T(E)};x();let I=setInterval(x,i);return()=>clearInterval(I)},[i,T]),{status:e,hasBrowser:n,multiAgentMode:r,runningAgentCount:a,maxConcurrentAgents:l,tabCount:g,isExecuting:p,hasActiveSession:f}}import{useState as yi,useEffect as Ww,useCallback as vm}from"react";var Hw=300*1e3;function Sm(){let[i,e]=yi(null),[t,n]=yi(null),[s,r]=yi(!1),[o,a]=yi(null),c=vm(async(m=!1)=>{r(!0),a(null);try{let p=await vr.fetchQuotaStatus(m);e(p);let h=await vr.getUsageDisplayData();n(h)}catch(p){a(p instanceof Error?p.message:"Failed to fetch quota")}finally{r(!1)}},[]),l=vm(async()=>{await c(!0)},[c]);Ww(()=>{c();let m=setInterval(()=>{c(!0)},Hw);return()=>clearInterval(m)},[c]);let d=t?Pg(t.percent):"normal",g=t?Sr(t.resetsAt,t.resetsInSeconds):"";return{quota:i,usageDisplay:t,severity:d,resetTimeDisplay:g,isLoading:s,error:o,refresh:l}}Pn();import{createRequire as jw}from"module";import{join as zw}from"path";var Tm=jw(import.meta.url),Oc="0.0.0";try{Oc=Tm("../../../package.json").version}catch{try{Oc=Tm(zw(process.cwd(),"package.json")).version}catch{}}var qw={3:"#FFD700",2:"#A78BFA",1:"#60A5FA",0:k.ui.muted},Kw={ready:"#10B981",initializing:"#F59E0B","not-ready":"#F97316"},Vw={normal:k.ui.muted,notice:"#60A5FA",warning:"#FBBF24",high:"#F97316",critical:"#EF4444"};function Xw(i){let e=process.env.HOME||process.env.USERPROFILE||"";return e&&i.startsWith(e)?"~"+i.slice(e.length):i}function Yw(i,e){if(i.length<=e)return i;let t=i.split("/");if(t.length<=2)return i.slice(0,e-3)+"...";let n=t[0]+"/.../"+t[t.length-1];return n.length>e&&(n=".../"+t[t.length-1]),n.length>e&&(n=n.slice(0,e-3)+"..."),n}function Qw({cwd:i,selectedModel:e,showScrollHint:t=!1,tier:n=0}){let{width:s}=bi(),{status:r}=ym(),{usageDisplay:o,severity:a,resetTimeDisplay:c}=Sm(),l=Pe.getDisplayName(n),d=qw[n]||k.ui.muted,{displayPath:g,shortcuts:m}=wm(()=>{let h=`${e.displayName} /model`,f=" ● browser",y=t?"? help · Shift+↑↓ scroll":"? help",T=h.length+f.length+y.length+" ".length*2+4,x=Math.max(15,Math.floor((s-T)*.4));return{displayPath:Yw(Xw(i),x),shortcuts:y}},[i,e.displayName,t,s]),p=wm(()=>{if(!o)return null;let{percent:h,type:f}=o,y=f==="weekly"?"weekly":"5-hour";return h>=100?`You've hit your ${y} limit`:h>=90?`${h}% of ${y} limit used`:`${h}% ${y} usage`},[o]);return Ee.createElement(Rs,{flexDirection:"column",width:"100%"},o&&Ee.createElement(Rs,{paddingX:2,justifyContent:"center"},Ee.createElement(lt,{color:Vw[a]},p),c&&Ee.createElement(Ee.Fragment,null,Ee.createElement(lt,{color:k.ui.muted}," · "),Ee.createElement(lt,{color:k.ui.muted},"Resets in ",c))),Ee.createElement(Rs,{paddingX:2,paddingY:0,width:"100%",justifyContent:"space-between",flexDirection:"row"},Ee.createElement(Rs,null,Ee.createElement(lt,{color:k.text.link},g),Ee.createElement(lt,{color:k.ui.muted}," v",Oc),Ee.createElement(lt,{color:k.ui.muted}," · "),Ee.createElement(lt,{color:d,bold:!0},l)),Ee.createElement(Rs,null,Ee.createElement(lt,{color:k.text.accent},e.displayName),Ee.createElement(lt,{color:k.text.secondary}," /model"),Ee.createElement(lt,{color:k.text.secondary}," "),Ee.createElement(lt,{color:Kw[r]},"●"),Ee.createElement(lt,{color:k.text.secondary}," browser")),Ee.createElement(Rs,null,Ee.createElement(lt,{color:k.text.secondary},m))))}var xm=Gw(Qw);import Wc,{memo as Hc}from"react";import{Box as PT}from"@jrichman/ink";import de,{memo as TT,useMemo as Om}from"react";import{Box as gt,Text as St}from"@jrichman/ink";import Ns,{memo as Jw,useState as Zw}from"react";import{Box as _c,Text as $c,useInput as eT}from"@jrichman/ink";function tT({suggestions:i,onSelect:e,isActive:t=!1}){let n=i.flatMap(o=>o.options),[s,r]=Zw(0);return eT((o,a)=>{if(!t||!e||n.length===0)return;if(o===" "||a.rightArrow||a.downArrow){r(l=>(l+1)%n.length);return}if(a.leftArrow||a.upArrow){r(l=>(l-1+n.length)%n.length);return}if(a.return){e(n[s]??"");return}let c=parseInt(o,10);!isNaN(c)&&c>=1&&c<=n.length&&e(n[c-1]??"")},{isActive:t&&!!e}),n.length===0?null:Ns.createElement(_c,{flexDirection:"column",marginTop:1},Ns.createElement(_c,{flexDirection:"row",flexWrap:"wrap",gap:1},n.map((o,a)=>{let c=a===s,l=a<9?`${a+1}`:null;return Ns.createElement(_c,{key:`sug-${a}`,borderStyle:"round",borderColor:c?k.text.accent:k.border.default,paddingX:1,paddingY:0},l&&Ns.createElement($c,{color:c?k.text.accent:k.ui.muted},l,". "),Ns.createElement($c,{color:c?k.text.accent:k.text.secondary},o))})),e&&Ns.createElement($c,{color:k.ui.muted},n.length===1?"Enter to use Tab to dismiss":`Tab/↑↓ to navigate Enter or 1-${Math.min(n.length,9)} to select`))}var Cm=Jw(tT,(i,e)=>i.suggestions===e.suggestions&&i.isActive===e.isActive?!0:i.suggestions.length!==e.suggestions.length?!1:i.suggestions.every((t,n)=>{let s=e.suggestions[n];return t.options.length===s.options.length&&t.options.every((r,o)=>r===s.options[o])}));import Xn,{memo as nT}from"react";import{Box as vi,Text as Fc}from"@jrichman/ink";function sT({workingFiles:i}){return i.length===0?null:Xn.createElement(vi,{flexDirection:"column",marginTop:1,width:"100%"},Xn.createElement(vi,{marginBottom:0,width:"100%"},Xn.createElement(Fc,{color:"#9CA3AF",bold:!0},"Working Files"),Xn.createElement(Fc,{color:"#6B7280"}," (",i.length,")")),Xn.createElement(vi,{flexDirection:"row",flexWrap:"wrap",gap:1,width:"100%"},i.map(e=>Xn.createElement(vi,{key:`wf-${e.path}`,borderStyle:"round",borderColor:"#3F3F46",paddingX:1,paddingY:0},Xn.createElement(Fc,{color:"white"},e.name)))))}var Em=nT(sT,(i,e)=>i.workingFiles===e.workingFiles?!0:i.workingFiles.length!==e.workingFiles.length?!1:i.workingFiles.every((t,n)=>t.path===e.workingFiles[n].path));import ut,{memo as rT,useMemo as oT,useState as iT}from"react";import{Box as Ar,Text as En}from"@jrichman/ink";var Lc=5;function aT({conversationHistory:i,onSelect:e}){let[t,n]=iT(!1),{displayedItems:s,hiddenCount:r}=oT(()=>i.length<=Lc||t?{displayedItems:i,hiddenCount:0}:{displayedItems:i.slice(0,Lc),hiddenCount:i.length-Lc},[i,t]);return i.length===0?null:ut.createElement(Ar,{flexDirection:"column",marginTop:1},ut.createElement(Ar,{marginBottom:0},ut.createElement(En,{color:k.text.secondary},"💬 "),ut.createElement(En,{color:k.text.secondary,bold:!0},i.length," conversation",i.length!==1?"s":""," found")),ut.createElement(Ar,{flexDirection:"column",paddingLeft:2},s.map((o,a)=>ut.createElement(Ar,{key:`conv-${o.id}-${a}`},ut.createElement(En,{color:k.ui.muted},"• "),ut.createElement(En,{color:k.text.primary},o.title),ut.createElement(En,{color:k.ui.muted}," ("),ut.createElement(En,{color:k.text.link},cT(o.id)),ut.createElement(En,{color:k.ui.muted},")"))),r>0&&ut.createElement(Ar,{marginTop:0},ut.createElement(En,{color:k.text.accent},"+",r," more conversation",r!==1?"s":""))))}function cT(i,e=20){return i.length<=e?i:i.slice(0,e-3)+"..."}var Im=rT(aT);import Q,{memo as lT,useMemo as uT}from"react";import{Box as dt,Text as le}from"@jrichman/ink";Pn();import{createRequire as dT}from"module";import{join as gT}from"path";var km=dT(import.meta.url),Uc="0.0.0";try{Uc=km("../../../package.json").version}catch{try{Uc=km(gT(process.cwd(),"package.json")).version}catch{}}function mT(i){switch(i){case 3:return"#FFD700";case 2:return"#A78BFA";case 1:return"#60A5FA";default:return k.ui.muted}}function pT(i){let e=process.env.HOME||process.env.USERPROFILE||"";return e&&i.startsWith(e)?"~"+i.slice(e.length):i}function hT(){let i="#E8B4B8",e="#B8E4E8",t="#4A4A4A";return Q.createElement(dt,{flexDirection:"column"},Q.createElement(dt,null,Q.createElement(le,{color:i},"██"),Q.createElement(le,null," "),Q.createElement(le,{color:i},"██"),Q.createElement(le,null," "),Q.createElement(le,{color:i},"██")),Q.createElement(dt,null,Q.createElement(le,{color:i},"██████████")),Q.createElement(dt,null,Q.createElement(le,{color:i},"██"),Q.createElement(le,{color:e},"██████"),Q.createElement(le,{color:i},"██")),Q.createElement(dt,null,Q.createElement(le,{color:i},"██"),Q.createElement(le,{color:t},"██"),Q.createElement(le,{color:e},"██"),Q.createElement(le,{color:t},"██"),Q.createElement(le,{color:i},"██")),Q.createElement(dt,null,Q.createElement(le,{color:i},"██"),Q.createElement(le,{color:e},"██████"),Q.createElement(le,{color:i},"██")),Q.createElement(dt,null,Q.createElement(le,{color:i},"████"),Q.createElement(le,{color:t},"██"),Q.createElement(le,{color:i},"████")),Q.createElement(dt,null,Q.createElement(le,{color:i}," ██████ ")))}function fT({projectPath:i,variant:e="main",tier:t=0}){let n=uT(()=>i?pT(i):null,[i]),s=Pe.getDisplayName(t),r=mT(t);return e==="main"?Q.createElement(dt,{flexDirection:"row",paddingX:1,marginY:1,gap:2},Q.createElement(hT,null),Q.createElement(dt,{flexDirection:"column",justifyContent:"center"},Q.createElement(dt,null,Q.createElement(le,{color:k.colors.AccentPurple,bold:!0},"Orion"),Q.createElement(le,{color:k.ui.muted}," v",Uc),Q.createElement(le,{color:k.ui.muted}," · "),Q.createElement(le,{color:r,bold:!0},"Orion ",s)),Q.createElement(le,{color:k.text.secondary},"Your partner in getting things done."),Q.createElement(le,{color:k.text.secondary,dimColor:!0},"More done, more sleep."),n&&Q.createElement(dt,{marginTop:1},Q.createElement(le,{color:k.ui.muted},n)))):Q.createElement(dt,{paddingX:1,marginY:1},Q.createElement(le,{color:k.colors.AccentPurple},"● "),e==="fresh"&&Q.createElement(le,{color:k.text.secondary},"Ready when you are."),e==="continue"&&Q.createElement(le,{color:k.text.secondary},"Picking up where we left off."),e==="new"&&Q.createElement(le,{color:k.text.secondary},"New conversation started."))}var Pm=lT(fT);function Am(i){return i.includes("Orion ready")||i.includes("Fresh start")||i.includes("Welcome back")||i.includes("New conversation")||i.includes("Conversation cleared")}function Dm(i){let e=i.match(/📁\s*(.+)/),t=e?e[1].trim():void 0;return i.includes("Fresh start")||i.includes("Conversation cleared")?{variant:"fresh",projectPath:t}:i.includes("Welcome back")?{variant:"continue",projectPath:t}:i.includes("New conversation")?{variant:"new",projectPath:t}:{variant:"main",projectPath:t}}import et,{memo as Si,useMemo as bT}from"react";import{Box as Os,Text as Yn}from"@jrichman/ink";var ve={javascript:{keywords:["const","let","var","function","return","if","else","for","while","do","switch","case","break","continue","try","catch","finally","throw","new","class","extends","import","export","default","from","async","await","yield","static","get","set","typeof","instanceof","in","of","delete","void","this","super","with","debugger"],types:["Array","Object","String","Number","Boolean","Function","Promise","Map","Set","Date","RegExp","Error","Symbol","BigInt","null","undefined","true","false","NaN","Infinity"],stringDelimiters:["'",'"',"`"],commentSingle:"//",commentMultiStart:"/*",commentMultiEnd:"*/"},typescript:{keywords:["const","let","var","function","return","if","else","for","while","do","switch","case","break","continue","try","catch","finally","throw","new","class","extends","import","export","default","from","async","await","yield","static","get","set","typeof","instanceof","in","of","delete","void","this","super","type","interface","enum","namespace","module","declare","abstract","implements","private","protected","public","readonly","as","is","keyof","infer","never","unknown","any"],types:["Array","Object","String","Number","Boolean","Function","Promise","Map","Set","Date","RegExp","Error","Symbol","BigInt","null","undefined","true","false","void","Partial","Required","Readonly","Record","Pick","Omit","Exclude","Extract","NonNullable","ReturnType","InstanceType","Parameters"],stringDelimiters:["'",'"',"`"],commentSingle:"//",commentMultiStart:"/*",commentMultiEnd:"*/"},python:{keywords:["def","class","return","if","elif","else","for","while","break","continue","try","except","finally","raise","import","from","as","with","assert","yield","lambda","pass","del","global","nonlocal","and","or","not","in","is","async","await","match","case"],types:["None","True","False","int","float","str","list","dict","tuple","set","bool","bytes","object","type","Exception"],builtins:["print","len","range","enumerate","zip","map","filter","sorted","reversed","sum","min","max","abs","round","open","input","isinstance","hasattr","getattr","setattr","super","property","staticmethod","classmethod"],stringDelimiters:["'",'"',"'''",'"""'],commentSingle:"#"},bash:{keywords:["if","then","else","elif","fi","for","while","do","done","case","esac","in","function","return","exit","break","continue","export","local","readonly","declare","unset","shift","source","eval","exec","trap","set","shopt"],builtins:["echo","cd","pwd","ls","cat","grep","sed","awk","find","xargs","sort","uniq","head","tail","wc","cut","tr","mkdir","rm","cp","mv","touch","chmod","chown","curl","wget","git","npm","yarn","pnpm","node","python","pip"],stringDelimiters:["'",'"'],commentSingle:"#"},rust:{keywords:["fn","let","mut","const","static","if","else","match","for","while","loop","break","continue","return","struct","enum","impl","trait","type","where","use","mod","pub","crate","self","super","as","in","ref","move","async","await","dyn","unsafe","extern"],types:["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","bool","char","str","String","Vec","Option","Result","Box","Rc","Arc","Cell","RefCell","true","false","Some","None","Ok","Err","Self"],stringDelimiters:['"'],commentSingle:"//",commentMultiStart:"/*",commentMultiEnd:"*/"},go:{keywords:["func","return","if","else","for","range","switch","case","default","break","continue","goto","fallthrough","defer","go","select","chan","var","const","type","struct","interface","map","package","import"],types:["int","int8","int16","int32","int64","uint","uint8","uint16","uint32","uint64","uintptr","float32","float64","complex64","complex128","bool","byte","rune","string","error","nil","true","false","iota"],builtins:["make","new","len","cap","append","copy","delete","close","panic","recover","print","println"],stringDelimiters:['"',"'","`"],commentSingle:"//",commentMultiStart:"/*",commentMultiEnd:"*/"},json:{keywords:[],types:["true","false","null"],stringDelimiters:['"']},yaml:{keywords:[],types:["true","false","null","yes","no","on","off"],stringDelimiters:["'",'"'],commentSingle:"#"},sql:{keywords:["SELECT","FROM","WHERE","AND","OR","NOT","IN","LIKE","BETWEEN","IS","NULL","ORDER","BY","ASC","DESC","LIMIT","OFFSET","JOIN","LEFT","RIGHT","INNER","OUTER","ON","AS","GROUP","HAVING","DISTINCT","COUNT","SUM","AVG","MIN","MAX","INSERT","INTO","VALUES","UPDATE","SET","DELETE","CREATE","TABLE","DROP","ALTER","INDEX","PRIMARY","KEY","FOREIGN","REFERENCES","CONSTRAINT","UNIQUE","DEFAULT","CASCADE","UNION","ALL","EXISTS","CASE","WHEN","THEN","ELSE","END","COALESCE","NULLIF","CAST"],types:["INT","INTEGER","VARCHAR","TEXT","BOOLEAN","DATE","TIMESTAMP","FLOAT","DOUBLE","DECIMAL","BIGINT","SMALLINT","CHAR","BLOB","JSON","UUID"],stringDelimiters:["'"],commentSingle:"--",commentMultiStart:"/*",commentMultiEnd:"*/"}};ve.ts=ve.typescript;ve.js=ve.javascript;ve.jsx=ve.javascript;ve.tsx=ve.typescript;ve.py=ve.python;ve.sh=ve.bash;ve.shell=ve.bash;ve.zsh=ve.bash;ve.rs=ve.rust;ve.golang=ve.go;ve.yml=ve.yaml;function yT(i,e){let t=[],n=0;for(;n<i.length;){if(e.commentSingle&&i.slice(n).startsWith(e.commentSingle)){t.push({type:"comment",value:i.slice(n)});break}let s=!1;for(let c of e.stringDelimiters)if(i.slice(n).startsWith(c)){let l=i.indexOf(c,n+c.length);if(l!==-1){t.push({type:"string",value:i.slice(n,l+c.length)}),n=l+c.length,s=!0;break}else{t.push({type:"string",value:i.slice(n)}),n=i.length,s=!0;break}}if(s)continue;let r=i.slice(n).match(/^-?\d+(\.\d+)?([eE][+-]?\d+)?/);if(r&&(n===0||/[\s\(\[\{,;:=<>!&|+\-*/%]/.test(i[n-1]))){t.push({type:"number",value:r[0]}),n+=r[0].length;continue}let o=i.slice(n).match(/^[a-zA-Z_$][a-zA-Z0-9_$]*/);if(o){let c=o[0],l="plain";e.keywords.includes(c)?l="keyword":e.types?.includes(c)?l="type":(e.builtins?.includes(c)||i[n+c.length]==="(")&&(l="function"),t.push({type:l,value:c}),n+=c.length;continue}let a=i.slice(n).match(/^(===|!==|==|!=|<=|>=|=>|->|&&|\|\||<<|>>|\+\+|--|[+\-*/%=<>!&|^~?:])/);if(a){t.push({type:"operator",value:a[0]}),n+=a[0].length;continue}if(/^[(){}\[\];,.]/.test(i[n])){t.push({type:"punctuation",value:i[n]}),n++;continue}t.push({type:"plain",value:i[n]}),n++}return t}var vT={keyword:k.status.warning,string:k.status.success,comment:k.ui.comment,number:k.text.link,function:k.text.link,operator:k.text.primary,punctuation:k.ui.muted,type:k.status.info,plain:k.text.primary},ST=Si(function({line:e,language:t}){if(!t)return et.createElement(Yn,{color:k.text.primary},e);let n=yT(e,t);return et.createElement(Yn,null,n.map((s,r)=>et.createElement(Yn,{key:r,color:vT[s.type]},s.value)))}),wT=Si(function({code:e,language:t,showLineNumbers:n=!1,startLineNumber:s=1,maxLines:r}){let{lines:o,langDef:a,truncated:c}=bT(()=>{let d=e.split(`
2609
+ Send /new to start`),y(C)}else t.addSystemMessage(`✗ Telegram setup failed: ${P.error}`)}}catch(P){t.addSystemMessage(`✗ Connection error: ${P.message}`)}e.resetWizard()},[i,m,t,y,e]);uw(()=>{(i==="discord"&&n.step===5||i==="telegram"&&n.step===6)&&!c&&(l(!0),x(n.data))},[n.step,n.data,i,c,x]);let I=()=>{let S=Math.min(n.step,f),P="━".repeat(S),C="─".repeat(f-S);return ie.createElement(Ze,null,ie.createElement(He,{color:me.brand},P),ie.createElement(He,{color:me.dim},C),ie.createElement(He,{color:me.muted}," ",S,"/",f))},E=()=>h?h.type==="loading"?ie.createElement(Ze,{flexDirection:"column",paddingY:1},ie.createElement(Ze,null,ie.createElement(He,{color:me.brand},ie.createElement(mw,{type:"dots"})),ie.createElement(He,{color:me.muted}," Connecting to ",i==="discord"?"Discord":"Telegram","..."))):h.type==="input"?ie.createElement(Ze,{flexDirection:"column"},ie.createElement(He,{color:me.text},h.help),ie.createElement(He,{color:me.dim},h.hint),ie.createElement(Ze,{marginTop:1,flexDirection:"column"},ie.createElement(Ze,{paddingX:1,borderStyle:"round",borderColor:o?me.error:me.brand},ie.createElement(He,{color:s?me.text:me.dim},s||h.placeholder||"Type here..."),ie.createElement(He,{color:me.brand},"▎")),o&&ie.createElement(Ze,{marginTop:1},ie.createElement(He,{color:me.error},"✗ ",o)))):h.type==="confirm"?ie.createElement(Ze,{flexDirection:"column"},ie.createElement(He,{color:me.text},h.help),ie.createElement(He,{color:me.dim},h.hint),ie.createElement(Ze,{marginTop:1,gap:2},ie.createElement(Ze,{paddingX:2,borderStyle:"round",borderColor:d===0?me.brand:me.border},ie.createElement(He,{color:d===0?me.brand:me.muted},"No")),ie.createElement(Ze,{paddingX:2,borderStyle:"round",borderColor:d===1?me.brand:me.border},ie.createElement(He,{color:d===1?me.brand:me.muted},"Yes")))):null:null,w=i==="discord"?"Discord Setup":"Telegram Setup";return ie.createElement(Ze,{flexDirection:"column",borderStyle:"round",borderColor:me.border,paddingX:2,paddingY:1,width:60},ie.createElement(Ze,{marginBottom:1,justifyContent:"space-between"},ie.createElement(He,{bold:!0,color:me.brand},w),I()),ie.createElement(Ze,{marginBottom:1},ie.createElement(He,{bold:!0,color:me.text},h?.title)),E(),ie.createElement(Ze,{marginTop:1,borderStyle:"single",borderTop:!0,borderColor:me.border,paddingTop:1},ie.createElement(He,{color:me.dim},h?.type==="confirm"?"← → or y/n to select • enter to confirm • esc to cancel":h?.type==="loading"?"Please wait...":"enter to continue • esc to cancel")))}var im=dw(bw);import Fe,{memo as yw,useMemo as mi}from"react";import{Box as Tn,Text as xn}from"@jrichman/ink";var am=(i,e=60)=>i.length>e?i.substring(0,e)+"...":i;function vw({regularQueuedMessages:i,crossDeviceTasks:e}){let t=mi(()=>i.length===0?null:i.map((o,a)=>Fe.createElement(Tn,{key:o.id,borderStyle:"round",borderColor:"#3F3F46",paddingX:2,paddingY:0,marginBottom:1},Fe.createElement(Tn,null,Fe.createElement(xn,{color:"whiteBright",bold:!0},a+1),Fe.createElement(xn,{color:"#6B7280"}," • "),Fe.createElement(xn,{color:"#9CA3AF"},am(o.content))))),[i]),n=mi(()=>e.length===0?null:e.map((o,a)=>Fe.createElement(Tn,{key:`cross-${o.id}`,borderStyle:"round",borderColor:"#0E7490",paddingX:2,paddingY:0,marginBottom:1},Fe.createElement(Tn,null,Fe.createElement(xn,{color:"#22D3EE",bold:!0},"[M] ",a+1),Fe.createElement(xn,{color:"#6B7280"}," - "),Fe.createElement(xn,{color:"#9CA3AF"},am(o.content))))),[e]),s=mi(()=>{let o=i.length;return`${o} message${o>1?"s":""} queued`},[i.length]),r=mi(()=>{let o=e.length;return`${o} cross-device task${o>1?"s":""} waiting`},[e.length]);return Fe.createElement(Fe.Fragment,null,t&&Fe.createElement(Tn,{flexDirection:"column",paddingX:2,marginBottom:1},t,Fe.createElement(Tn,null,Fe.createElement(xn,{color:"#9CA3AF"},s))),n&&Fe.createElement(Tn,{flexDirection:"column",paddingX:2,marginBottom:1},n,Fe.createElement(Tn,null,Fe.createElement(xn,{color:"#22D3EE"},r))))}var cm=yw(vw,(i,e)=>i.regularQueuedMessages.length===e.regularQueuedMessages.length&&i.crossDeviceTasks.length===e.crossDeviceTasks.length&&i.regularQueuedMessages.every((t,n)=>t.id===e.regularQueuedMessages[n]?.id)&&i.crossDeviceTasks.every((t,n)=>t.id===e.crossDeviceTasks[n]?.id));import At,{memo as Sw,useState as ww}from"react";import{Box as pi,Text as Vn,useInput as Tw}from"@jrichman/ink";function xw(i){let e=Date.now()-new Date(i).getTime(),t=Math.floor(e/6e4),n=Math.floor(e/36e5),s=Math.floor(e/864e5);return s>0?`${s}d ago`:n>0?`${n}h ago`:t>0?`${t}m ago`:"just now"}function Cw({conversations:i,currentConversationId:e,onSelect:t,onClose:n}){let s=[...i].sort((a,c)=>new Date(c.updatedAt).getTime()-new Date(a.updatedAt).getTime()).slice(0,20),[r,o]=ww(()=>{let a=s.findIndex(c=>c.id===e);return a>=0?a:0});return Tw((a,c)=>{if(c.upArrow){o(l=>Math.max(0,l-1));return}if(c.downArrow){o(l=>Math.min(s.length-1,l+1));return}if(c.return&&s[r]){t(s[r].id),n();return}if(c.escape||a==="q"){n();return}}),s.length===0?At.createElement(pi,{borderStyle:"round",borderColor:k.border.default,paddingX:2,paddingY:1},At.createElement(Vn,{color:k.ui.muted},"No past conversations")):At.createElement(pi,{flexDirection:"column",borderStyle:"round",borderColor:k.border.focused,paddingX:1,paddingY:0},At.createElement(pi,{marginBottom:1,paddingX:1},At.createElement(Vn,{color:k.text.primary,bold:!0},"Conversations "),At.createElement(Vn,{color:k.ui.muted},"↑↓ navigate Enter switch Esc close")),s.map((a,c)=>{let l=c===r,d=a.id===e,g=a.title||"Untitled",m=g.length>50?g.substring(0,47)+"...":g;return At.createElement(pi,{key:a.id,paddingX:1},At.createElement(Vn,{color:l?k.text.accent:k.ui.muted},l?"▶ ":" "),At.createElement(Vn,{color:l?k.text.primary:k.text.secondary,bold:d},m),d&&At.createElement(Vn,{color:k.status.success}," ●"),At.createElement(Vn,{color:k.ui.muted}," ",xw(a.updatedAt)))}))}var lm=Sw(Cw);import K,{memo as Ew,useMemo as Rc}from"react";import{Box as Ge,Text as ae}from"@jrichman/ink";import dm from"path";import at,{memo as hi}from"react";import{Box as kr,Text as Yt}from"@jrichman/ink";var fi={normal:{symbol:"",label:"",color:k.text.primary,description:"Normal mode"},yolo:{symbol:"*",label:"YOLO",color:k.status.error,description:"Auto-approve all actions"},plan:{symbol:">",label:"PLAN",color:k.status.success,description:"Planning mode - no execution"},shell:{symbol:"!",label:"SHELL",color:k.status.warning,description:"Shell command mode"},auto:{symbol:">",label:"AUTO",color:k.status.warning,description:"Auto-accept suggestions"}},eB=hi(function({mode:e,showLabel:t=!1,size:n="normal"}){if(e==="normal")return null;let s=fi[e];return n==="compact"?at.createElement(Yt,{color:s.color,bold:!0},s.symbol):at.createElement(kr,{flexDirection:"row",alignItems:"center"},at.createElement(Yt,{color:s.color,bold:!0},s.symbol),t&&at.createElement(kr,{marginLeft:1},at.createElement(Yt,{color:s.color,bold:!0},s.label)))}),tB=hi(function({mode:e,isActive:t=!0}){if(e==="normal")return null;let n=fi[e],s=t?n.color:k.ui.muted;return at.createElement(Yt,{color:s,bold:t},"[",n.label,"]")}),nB=hi(function({selectedMode:e,availableModes:t=["normal","yolo","plan","auto"],isFocused:n=!1}){return at.createElement(kr,{flexDirection:"row",alignItems:"center"},at.createElement(Yt,{color:k.text.secondary},"Mode: "),t.map((s,r)=>{let o=fi[s],a=s===e,c=s==="normal"?"NORMAL":o.label;return at.createElement(kr,{key:s,flexDirection:"row"},r>0&&at.createElement(Yt,{color:k.ui.muted}," | "),at.createElement(Yt,{color:a?o.color:k.ui.muted,bold:a,inverse:a&&n},c))}))}),um=hi(function({mode:e,promptSymbol:t="❯",isFocused:n=!0}){let s=fi[e],r=e!=="normal",o=r?s.color:n?k.text.accent:k.ui.muted;return at.createElement(kr,{flexDirection:"row",alignItems:"center"},r&&at.createElement(Yt,{color:s.color,bold:!0},s.symbol),at.createElement(Yt,{color:o},t))});var Iw=" Type your message or @path/to/file";function kw({input:i,isLoading:e,pastedTexts:t,cursorPosition:n,suggestion:s,mode:r="normal",attachmentCount:o}){let{attachmentManager:a}=Gn(),{hasContent:c,ghostText:l}=Rc(()=>{let m=i.length>0||t.length>0||a.hasAttachments(),p=s&&s.toLowerCase().startsWith(i.toLowerCase())&&i.length>0?s.slice(i.length):null;return{hasContent:m,ghostText:p}},[i,t.length,s,o]),d=Rc(()=>{let m=a.getImages(),p=a.getDocuments();if(m.length===0&&p.length===0)return null;let h=[];for(let v of m){let T=v.source==="clipboard"?"CLIPBOARD":"IMG",x=` ${Bt(v.size)}`;h.push(K.createElement(Ge,{key:v.id},K.createElement(ae,{color:k.status.info}," ","[",T,"] "),K.createElement(ae,{color:k.text.secondary},"Image"),K.createElement(ae,{color:k.ui.muted},x)))}for(let v of p){let T=v.fileName.split(".").pop()?.toUpperCase()||"FILE",x=` ${Bt(v.size)}`;h.push(K.createElement(Ge,{key:v.id},K.createElement(ae,{color:k.status.info}," ","[",T,"] "),K.createElement(ae,{color:k.text.secondary},Xo(v.fileName)),K.createElement(ae,{color:k.ui.muted},x)))}let f=m.length+p.length,y=a.getMaxAllowed();return h.push(K.createElement(Ge,{key:"summary"},K.createElement(ae,{color:k.ui.muted}," Attachments: ",f,"/",y))),h},[o]),g=Rc(()=>t.length===0?null:t.map((m,p)=>{if(m.type==="clipboard_image"){let y=m.fileSize?` ${Bt(m.fileSize)}`:"",v=!!m.error;return K.createElement(Ge,{key:`pasted-${m.id}`,flexDirection:"column"},K.createElement(Ge,null,K.createElement(ae,{color:v?k.status.error:k.status.info}," ","[CLIPBOARD] "),K.createElement(ae,{color:v?k.status.error:k.text.secondary},"Image"),y&&K.createElement(ae,{color:k.ui.muted},y)),v&&K.createElement(Ge,{marginLeft:4},K.createElement(ae,{color:k.status.error,dimColor:!0},"[!] ",m.error)))}if(m.type==="image_path"&&m.filePath){let y=Xo(dm.basename(m.filePath)),v=m.fileSize?` ${Bt(m.fileSize)}`:"",T=!!m.error;return K.createElement(Ge,{key:`pasted-${m.id}`,flexDirection:"column"},K.createElement(Ge,null,K.createElement(ae,{color:T?k.status.error:k.status.info}," ","[IMG] "),K.createElement(ae,{color:T?k.status.error:k.text.secondary},y),v&&K.createElement(ae,{color:k.ui.muted},v)),T&&K.createElement(Ge,{marginLeft:4},K.createElement(ae,{color:k.status.error,dimColor:!0},"[!] ",m.error)))}if(m.type==="file_path"&&m.filePath){let y=Xo(dm.basename(m.filePath)),v=m.fileSize?` ${Bt(m.fileSize)}`:"",T=!!m.error;return K.createElement(Ge,{key:`pasted-${m.id}`,flexDirection:"column"},K.createElement(Ge,null,K.createElement(ae,{color:T?k.status.error:k.status.info}," ","[FILE] "),K.createElement(ae,{color:T?k.status.error:k.text.secondary},y),v&&K.createElement(ae,{color:k.ui.muted},v)),T&&K.createElement(Ge,{marginLeft:4},K.createElement(ae,{color:k.status.error,dimColor:!0},"[!] ",m.error)))}let h=m.lineCount-1,f=h>0?`+${h} lines`:"1 line";return K.createElement(Ge,{key:`pasted-${m.id}`},K.createElement(ae,{color:k.ui.muted}," ","[TEXT] "),K.createElement(ae,{color:k.text.secondary},"Pasted text #",p+1),K.createElement(ae,{color:k.ui.muted}," (",f,")"))}),[t]);return K.createElement(Ge,{borderStyle:"round",borderColor:c?k.border.focused:k.border.default,paddingX:2,paddingY:0,flexDirection:"column",width:"100%"},d&&K.createElement(Ge,{flexDirection:"column",marginBottom:0},d),g&&K.createElement(Ge,{flexDirection:"column",marginBottom:0},g),K.createElement(Ge,null,K.createElement(um,{mode:r,isFocused:!e}),K.createElement(ae,null," "),i.length===0&&!e?s?K.createElement(ae,null,K.createElement(ae,{inverse:!0}," "),K.createElement(ae,{color:k.ui.muted},s),K.createElement(ae,{color:k.ui.muted,dimColor:!0}," (Tab to accept)")):K.createElement(ae,{color:k.ui.muted},Iw):K.createElement(ae,null,K.createElement(ae,{color:k.text.primary},i.slice(0,n)),!e&&K.createElement(ae,{inverse:!0}," "),K.createElement(ae,{color:k.text.primary},i.slice(n)),l&&K.createElement(ae,{color:k.ui.muted},l))))}var gm=Ew(kw,(i,e)=>i.input===e.input&&i.isLoading===e.isLoading&&i.cursorPosition===e.cursorPosition&&i.suggestion===e.suggestion&&i.mode===e.mode&&i.pastedTexts.length===e.pastedTexts.length&&i.pastedTexts.every((t,n)=>t.id===e.pastedTexts[n]?.id));import Pr,{useState as Pw,useEffect as Aw,useRef as Dw,memo as Mw}from"react";import{Box as Rw,Text as Nc}from"@jrichman/ink";import Nw from"ink-spinner";function Ow(i){if(i<60)return`${i}s`;let e=Math.floor(i/60),t=i%60;return`${e}m ${t}s`}function _w({isLoading:i,phrase:e="Processing",startTime:t}){let[n,s]=Pw(0),r=Dw(null);return Aw(()=>{if(r.current&&(clearInterval(r.current),r.current=null),!i){s(0);return}let o=t||Date.now();return s(Math.floor((Date.now()-o)/1e3)),r.current=setInterval(()=>{let a=Date.now(),c=Math.floor((a-o)/1e3);s(c)},1e3),()=>{r.current&&(clearInterval(r.current),r.current=null)}},[i,t]),i?Pr.createElement(Rw,{flexDirection:"row",alignItems:"center",paddingX:2,marginBottom:1,flexShrink:0},Pr.createElement(Nc,{color:k.text.accent},Pr.createElement(Nw,{type:"dots"})),Pr.createElement(Nc,{color:k.text.primary}," ",e,"... "),Pr.createElement(Nc,{color:k.text.secondary},"(esc to cancel",n>0?`, ${Ow(n)}`:"",")")):null}var mm=Mw(_w);import Ee,{memo as Gw,useMemo as wm}from"react";import{Box as Rs,Text as lt}from"@jrichman/ink";import{useState as pm,useEffect as hm,useCallback as $w,useRef as fm}from"react";import{useStdout as Fw}from"@jrichman/ink";var Ds=80,Ms=24,Lw=100;function bi(i){let{debounceMs:e=Lw}=i||{},{stdout:t}=Fw(),[n,s]=pm({width:t?.columns||Ds,height:t?.rows||Ms,rows:t?.rows||Ms,columns:t?.columns||Ds}),[r,o]=pm(!1),a=fm(null),c=fm(null);hm(()=>{function d(){o(!0),a.current&&clearTimeout(a.current),c.current&&clearTimeout(c.current),a.current=setTimeout(()=>{let g=process.stdout.columns||Ds,m=process.stdout.rows||Ms;s(p=>p.width!==g||p.height!==m?{width:g,height:m,rows:m,columns:g}:p),c.current=setTimeout(()=>{o(!1)},50)},e)}return process.stdout.on("resize",d),()=>{process.stdout.off("resize",d),a.current&&clearTimeout(a.current),c.current&&clearTimeout(c.current)}},[e]),hm(()=>{if(t){let d=t.columns||Ds,g=t.rows||Ms;(d!==n.width||g!==n.height)&&s({width:d,height:g,rows:g,columns:d})}},[t?.columns,t?.rows]);let l=$w(()=>{s({width:process.stdout.columns||Ds,height:process.stdout.rows||Ms,rows:process.stdout.rows||Ms,columns:process.stdout.columns||Ds})},[]);return{...n,isResizing:r,refresh:l}}$o();import{useState as Cn,useEffect as bm,useRef as Uw,useCallback as Bw}from"react";function ym(i=1e4){let[e,t]=Cn("not-ready"),[n,s]=Cn(!1),[r,o]=Cn(!1),[a,c]=Cn(0),[l,d]=Cn(5),[g,m]=Cn(0),[p,h]=Cn(!1),[f,y]=Cn(!1),v=Uw(!1),T=Bw(x=>{x.isInitializing||x.initState==="initializing"?t("initializing"):x.isRunning&&x.isInitialized?t("ready"):t("not-ready"),s(x.hasBrowser??!1),o(x.multiAgentMode??!1),c(x.runningAgentCount??0),d(x.maxConcurrentAgents??5),m(x.tabCount??0),h(x.isExecuting??!1),y(x.hasActiveSession??!1)},[]);return bm(()=>{let x=re.onStatusChange(I=>{T(I)});return()=>x()},[T]),bm(()=>{let x=()=>{let E=re.getStatus();E.initState==="idle"&&!v.current&&(v.current=!0,re.initialize().catch(w=>{console.debug("[useBrowserStatus] Auto-init failed:",w.message)}),E=re.getStatus()),T(E)};x();let I=setInterval(x,i);return()=>clearInterval(I)},[i,T]),{status:e,hasBrowser:n,multiAgentMode:r,runningAgentCount:a,maxConcurrentAgents:l,tabCount:g,isExecuting:p,hasActiveSession:f}}import{useState as yi,useEffect as Ww,useCallback as vm}from"react";var Hw=300*1e3;function Sm(){let[i,e]=yi(null),[t,n]=yi(null),[s,r]=yi(!1),[o,a]=yi(null),c=vm(async(m=!1)=>{r(!0),a(null);try{let p=await vr.fetchQuotaStatus(m);e(p);let h=await vr.getUsageDisplayData();n(h)}catch(p){a(p instanceof Error?p.message:"Failed to fetch quota")}finally{r(!1)}},[]),l=vm(async()=>{await c(!0)},[c]);Ww(()=>{c();let m=setInterval(()=>{c(!0)},Hw);return()=>clearInterval(m)},[c]);let d=t?Pg(t.percent):"normal",g=t?Sr(t.resetsAt,t.resetsInSeconds):"";return{quota:i,usageDisplay:t,severity:d,resetTimeDisplay:g,isLoading:s,error:o,refresh:l}}Pn();import{createRequire as jw}from"module";import{join as zw}from"path";var Tm=jw(import.meta.url),Oc="0.0.0";try{Oc=Tm("../../../package.json").version}catch{try{Oc=Tm(zw(process.cwd(),"package.json")).version}catch{}}var qw={3:"#FFD700",2:"#A78BFA",1:"#60A5FA",0:k.ui.muted},Kw={ready:"#10B981",initializing:"#F59E0B","not-ready":"#F97316"},Vw={normal:k.ui.muted,notice:"#60A5FA",warning:"#FBBF24",high:"#F97316",critical:"#EF4444"};function Xw(i){let e=process.env.HOME||process.env.USERPROFILE||"";return e&&i.startsWith(e)?"~"+i.slice(e.length):i}function Yw(i,e){if(i.length<=e)return i;let t=i.split("/");if(t.length<=2)return i.slice(0,e-3)+"...";let n=t[0]+"/.../"+t[t.length-1];return n.length>e&&(n=".../"+t[t.length-1]),n.length>e&&(n=n.slice(0,e-3)+"..."),n}function Qw({cwd:i,selectedModel:e,showScrollHint:t=!1,tier:n=0}){let{width:s}=bi(),{status:r}=ym(),{usageDisplay:o,severity:a,resetTimeDisplay:c}=Sm(),l=Pe.getDisplayName(n),d=qw[n]||k.ui.muted,{displayPath:g,shortcuts:m}=wm(()=>{let h=`${e.displayName} /model`,f=" ● browser",y=t?"? help · Shift+↑↓ scroll":"? help",T=h.length+f.length+y.length+" ".length*2+4,x=Math.max(15,Math.floor((s-T)*.4));return{displayPath:Yw(Xw(i),x),shortcuts:y}},[i,e.displayName,t,s]),p=wm(()=>{if(!o)return null;let{percent:h,type:f}=o,y=f==="weekly"?"weekly":"5-hour";return h>=100?`You've hit your ${y} limit`:h>=90?`${h}% of ${y} limit used`:`${h}% ${y} usage`},[o]);return Ee.createElement(Rs,{flexDirection:"column",width:"100%"},o&&Ee.createElement(Rs,{paddingX:2,justifyContent:"center"},Ee.createElement(lt,{color:Vw[a]},p),c&&Ee.createElement(Ee.Fragment,null,Ee.createElement(lt,{color:k.ui.muted}," · "),Ee.createElement(lt,{color:k.ui.muted},"resets ",c))),Ee.createElement(Rs,{paddingX:2,paddingY:0,width:"100%",justifyContent:"space-between",flexDirection:"row"},Ee.createElement(Rs,null,Ee.createElement(lt,{color:k.text.link},g),Ee.createElement(lt,{color:k.ui.muted}," v",Oc),Ee.createElement(lt,{color:k.ui.muted}," · "),Ee.createElement(lt,{color:d,bold:!0},l)),Ee.createElement(Rs,null,Ee.createElement(lt,{color:k.text.accent},e.displayName),Ee.createElement(lt,{color:k.text.secondary}," /model"),Ee.createElement(lt,{color:k.text.secondary}," "),Ee.createElement(lt,{color:Kw[r]},"●"),Ee.createElement(lt,{color:k.text.secondary}," browser")),Ee.createElement(Rs,null,Ee.createElement(lt,{color:k.text.secondary},m))))}var xm=Gw(Qw);import Wc,{memo as Hc}from"react";import{Box as PT}from"@jrichman/ink";import de,{memo as TT,useMemo as Om}from"react";import{Box as gt,Text as St}from"@jrichman/ink";import Ns,{memo as Jw,useState as Zw}from"react";import{Box as _c,Text as $c,useInput as eT}from"@jrichman/ink";function tT({suggestions:i,onSelect:e,isActive:t=!1}){let n=i.flatMap(o=>o.options),[s,r]=Zw(0);return eT((o,a)=>{if(!t||!e||n.length===0)return;if(o===" "||a.rightArrow||a.downArrow){r(l=>(l+1)%n.length);return}if(a.leftArrow||a.upArrow){r(l=>(l-1+n.length)%n.length);return}if(a.return){e(n[s]??"");return}let c=parseInt(o,10);!isNaN(c)&&c>=1&&c<=n.length&&e(n[c-1]??"")},{isActive:t&&!!e}),n.length===0?null:Ns.createElement(_c,{flexDirection:"column",marginTop:1},Ns.createElement(_c,{flexDirection:"row",flexWrap:"wrap",gap:1},n.map((o,a)=>{let c=a===s,l=a<9?`${a+1}`:null;return Ns.createElement(_c,{key:`sug-${a}`,borderStyle:"round",borderColor:c?k.text.accent:k.border.default,paddingX:1,paddingY:0},l&&Ns.createElement($c,{color:c?k.text.accent:k.ui.muted},l,". "),Ns.createElement($c,{color:c?k.text.accent:k.text.secondary},o))})),e&&Ns.createElement($c,{color:k.ui.muted},n.length===1?"Enter to use Tab to dismiss":`Tab/↑↓ to navigate Enter or 1-${Math.min(n.length,9)} to select`))}var Cm=Jw(tT,(i,e)=>i.suggestions===e.suggestions&&i.isActive===e.isActive?!0:i.suggestions.length!==e.suggestions.length?!1:i.suggestions.every((t,n)=>{let s=e.suggestions[n];return t.options.length===s.options.length&&t.options.every((r,o)=>r===s.options[o])}));import Xn,{memo as nT}from"react";import{Box as vi,Text as Fc}from"@jrichman/ink";function sT({workingFiles:i}){return i.length===0?null:Xn.createElement(vi,{flexDirection:"column",marginTop:1,width:"100%"},Xn.createElement(vi,{marginBottom:0,width:"100%"},Xn.createElement(Fc,{color:"#9CA3AF",bold:!0},"Working Files"),Xn.createElement(Fc,{color:"#6B7280"}," (",i.length,")")),Xn.createElement(vi,{flexDirection:"row",flexWrap:"wrap",gap:1,width:"100%"},i.map(e=>Xn.createElement(vi,{key:`wf-${e.path}`,borderStyle:"round",borderColor:"#3F3F46",paddingX:1,paddingY:0},Xn.createElement(Fc,{color:"white"},e.name)))))}var Em=nT(sT,(i,e)=>i.workingFiles===e.workingFiles?!0:i.workingFiles.length!==e.workingFiles.length?!1:i.workingFiles.every((t,n)=>t.path===e.workingFiles[n].path));import ut,{memo as rT,useMemo as oT,useState as iT}from"react";import{Box as Ar,Text as En}from"@jrichman/ink";var Lc=5;function aT({conversationHistory:i,onSelect:e}){let[t,n]=iT(!1),{displayedItems:s,hiddenCount:r}=oT(()=>i.length<=Lc||t?{displayedItems:i,hiddenCount:0}:{displayedItems:i.slice(0,Lc),hiddenCount:i.length-Lc},[i,t]);return i.length===0?null:ut.createElement(Ar,{flexDirection:"column",marginTop:1},ut.createElement(Ar,{marginBottom:0},ut.createElement(En,{color:k.text.secondary},"💬 "),ut.createElement(En,{color:k.text.secondary,bold:!0},i.length," conversation",i.length!==1?"s":""," found")),ut.createElement(Ar,{flexDirection:"column",paddingLeft:2},s.map((o,a)=>ut.createElement(Ar,{key:`conv-${o.id}-${a}`},ut.createElement(En,{color:k.ui.muted},"• "),ut.createElement(En,{color:k.text.primary},o.title),ut.createElement(En,{color:k.ui.muted}," ("),ut.createElement(En,{color:k.text.link},cT(o.id)),ut.createElement(En,{color:k.ui.muted},")"))),r>0&&ut.createElement(Ar,{marginTop:0},ut.createElement(En,{color:k.text.accent},"+",r," more conversation",r!==1?"s":""))))}function cT(i,e=20){return i.length<=e?i:i.slice(0,e-3)+"..."}var Im=rT(aT);import Q,{memo as lT,useMemo as uT}from"react";import{Box as dt,Text as le}from"@jrichman/ink";Pn();import{createRequire as dT}from"module";import{join as gT}from"path";var km=dT(import.meta.url),Uc="0.0.0";try{Uc=km("../../../package.json").version}catch{try{Uc=km(gT(process.cwd(),"package.json")).version}catch{}}function mT(i){switch(i){case 3:return"#FFD700";case 2:return"#A78BFA";case 1:return"#60A5FA";default:return k.ui.muted}}function pT(i){let e=process.env.HOME||process.env.USERPROFILE||"";return e&&i.startsWith(e)?"~"+i.slice(e.length):i}function hT(){let i="#E8B4B8",e="#B8E4E8",t="#4A4A4A";return Q.createElement(dt,{flexDirection:"column"},Q.createElement(dt,null,Q.createElement(le,{color:i},"██"),Q.createElement(le,null," "),Q.createElement(le,{color:i},"██"),Q.createElement(le,null," "),Q.createElement(le,{color:i},"██")),Q.createElement(dt,null,Q.createElement(le,{color:i},"██████████")),Q.createElement(dt,null,Q.createElement(le,{color:i},"██"),Q.createElement(le,{color:e},"██████"),Q.createElement(le,{color:i},"██")),Q.createElement(dt,null,Q.createElement(le,{color:i},"██"),Q.createElement(le,{color:t},"██"),Q.createElement(le,{color:e},"██"),Q.createElement(le,{color:t},"██"),Q.createElement(le,{color:i},"██")),Q.createElement(dt,null,Q.createElement(le,{color:i},"██"),Q.createElement(le,{color:e},"██████"),Q.createElement(le,{color:i},"██")),Q.createElement(dt,null,Q.createElement(le,{color:i},"████"),Q.createElement(le,{color:t},"██"),Q.createElement(le,{color:i},"████")),Q.createElement(dt,null,Q.createElement(le,{color:i}," ██████ ")))}function fT({projectPath:i,variant:e="main",tier:t=0}){let n=uT(()=>i?pT(i):null,[i]),s=Pe.getDisplayName(t),r=mT(t);return e==="main"?Q.createElement(dt,{flexDirection:"row",paddingX:1,marginY:1,gap:2},Q.createElement(hT,null),Q.createElement(dt,{flexDirection:"column",justifyContent:"center"},Q.createElement(dt,null,Q.createElement(le,{color:k.colors.AccentPurple,bold:!0},"Orion"),Q.createElement(le,{color:k.ui.muted}," v",Uc),Q.createElement(le,{color:k.ui.muted}," · "),Q.createElement(le,{color:r,bold:!0},"Orion ",s)),Q.createElement(le,{color:k.text.secondary},"Your partner in getting things done."),Q.createElement(le,{color:k.text.secondary,dimColor:!0},"More done, more sleep."),n&&Q.createElement(dt,{marginTop:1},Q.createElement(le,{color:k.ui.muted},n)))):Q.createElement(dt,{paddingX:1,marginY:1},Q.createElement(le,{color:k.colors.AccentPurple},"● "),e==="fresh"&&Q.createElement(le,{color:k.text.secondary},"Ready when you are."),e==="continue"&&Q.createElement(le,{color:k.text.secondary},"Picking up where we left off."),e==="new"&&Q.createElement(le,{color:k.text.secondary},"New conversation started."))}var Pm=lT(fT);function Am(i){return i.includes("Orion ready")||i.includes("Fresh start")||i.includes("Welcome back")||i.includes("New conversation")||i.includes("Conversation cleared")}function Dm(i){let e=i.match(/📁\s*(.+)/),t=e?e[1].trim():void 0;return i.includes("Fresh start")||i.includes("Conversation cleared")?{variant:"fresh",projectPath:t}:i.includes("Welcome back")?{variant:"continue",projectPath:t}:i.includes("New conversation")?{variant:"new",projectPath:t}:{variant:"main",projectPath:t}}import et,{memo as Si,useMemo as bT}from"react";import{Box as Os,Text as Yn}from"@jrichman/ink";var ve={javascript:{keywords:["const","let","var","function","return","if","else","for","while","do","switch","case","break","continue","try","catch","finally","throw","new","class","extends","import","export","default","from","async","await","yield","static","get","set","typeof","instanceof","in","of","delete","void","this","super","with","debugger"],types:["Array","Object","String","Number","Boolean","Function","Promise","Map","Set","Date","RegExp","Error","Symbol","BigInt","null","undefined","true","false","NaN","Infinity"],stringDelimiters:["'",'"',"`"],commentSingle:"//",commentMultiStart:"/*",commentMultiEnd:"*/"},typescript:{keywords:["const","let","var","function","return","if","else","for","while","do","switch","case","break","continue","try","catch","finally","throw","new","class","extends","import","export","default","from","async","await","yield","static","get","set","typeof","instanceof","in","of","delete","void","this","super","type","interface","enum","namespace","module","declare","abstract","implements","private","protected","public","readonly","as","is","keyof","infer","never","unknown","any"],types:["Array","Object","String","Number","Boolean","Function","Promise","Map","Set","Date","RegExp","Error","Symbol","BigInt","null","undefined","true","false","void","Partial","Required","Readonly","Record","Pick","Omit","Exclude","Extract","NonNullable","ReturnType","InstanceType","Parameters"],stringDelimiters:["'",'"',"`"],commentSingle:"//",commentMultiStart:"/*",commentMultiEnd:"*/"},python:{keywords:["def","class","return","if","elif","else","for","while","break","continue","try","except","finally","raise","import","from","as","with","assert","yield","lambda","pass","del","global","nonlocal","and","or","not","in","is","async","await","match","case"],types:["None","True","False","int","float","str","list","dict","tuple","set","bool","bytes","object","type","Exception"],builtins:["print","len","range","enumerate","zip","map","filter","sorted","reversed","sum","min","max","abs","round","open","input","isinstance","hasattr","getattr","setattr","super","property","staticmethod","classmethod"],stringDelimiters:["'",'"',"'''",'"""'],commentSingle:"#"},bash:{keywords:["if","then","else","elif","fi","for","while","do","done","case","esac","in","function","return","exit","break","continue","export","local","readonly","declare","unset","shift","source","eval","exec","trap","set","shopt"],builtins:["echo","cd","pwd","ls","cat","grep","sed","awk","find","xargs","sort","uniq","head","tail","wc","cut","tr","mkdir","rm","cp","mv","touch","chmod","chown","curl","wget","git","npm","yarn","pnpm","node","python","pip"],stringDelimiters:["'",'"'],commentSingle:"#"},rust:{keywords:["fn","let","mut","const","static","if","else","match","for","while","loop","break","continue","return","struct","enum","impl","trait","type","where","use","mod","pub","crate","self","super","as","in","ref","move","async","await","dyn","unsafe","extern"],types:["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","bool","char","str","String","Vec","Option","Result","Box","Rc","Arc","Cell","RefCell","true","false","Some","None","Ok","Err","Self"],stringDelimiters:['"'],commentSingle:"//",commentMultiStart:"/*",commentMultiEnd:"*/"},go:{keywords:["func","return","if","else","for","range","switch","case","default","break","continue","goto","fallthrough","defer","go","select","chan","var","const","type","struct","interface","map","package","import"],types:["int","int8","int16","int32","int64","uint","uint8","uint16","uint32","uint64","uintptr","float32","float64","complex64","complex128","bool","byte","rune","string","error","nil","true","false","iota"],builtins:["make","new","len","cap","append","copy","delete","close","panic","recover","print","println"],stringDelimiters:['"',"'","`"],commentSingle:"//",commentMultiStart:"/*",commentMultiEnd:"*/"},json:{keywords:[],types:["true","false","null"],stringDelimiters:['"']},yaml:{keywords:[],types:["true","false","null","yes","no","on","off"],stringDelimiters:["'",'"'],commentSingle:"#"},sql:{keywords:["SELECT","FROM","WHERE","AND","OR","NOT","IN","LIKE","BETWEEN","IS","NULL","ORDER","BY","ASC","DESC","LIMIT","OFFSET","JOIN","LEFT","RIGHT","INNER","OUTER","ON","AS","GROUP","HAVING","DISTINCT","COUNT","SUM","AVG","MIN","MAX","INSERT","INTO","VALUES","UPDATE","SET","DELETE","CREATE","TABLE","DROP","ALTER","INDEX","PRIMARY","KEY","FOREIGN","REFERENCES","CONSTRAINT","UNIQUE","DEFAULT","CASCADE","UNION","ALL","EXISTS","CASE","WHEN","THEN","ELSE","END","COALESCE","NULLIF","CAST"],types:["INT","INTEGER","VARCHAR","TEXT","BOOLEAN","DATE","TIMESTAMP","FLOAT","DOUBLE","DECIMAL","BIGINT","SMALLINT","CHAR","BLOB","JSON","UUID"],stringDelimiters:["'"],commentSingle:"--",commentMultiStart:"/*",commentMultiEnd:"*/"}};ve.ts=ve.typescript;ve.js=ve.javascript;ve.jsx=ve.javascript;ve.tsx=ve.typescript;ve.py=ve.python;ve.sh=ve.bash;ve.shell=ve.bash;ve.zsh=ve.bash;ve.rs=ve.rust;ve.golang=ve.go;ve.yml=ve.yaml;function yT(i,e){let t=[],n=0;for(;n<i.length;){if(e.commentSingle&&i.slice(n).startsWith(e.commentSingle)){t.push({type:"comment",value:i.slice(n)});break}let s=!1;for(let c of e.stringDelimiters)if(i.slice(n).startsWith(c)){let l=i.indexOf(c,n+c.length);if(l!==-1){t.push({type:"string",value:i.slice(n,l+c.length)}),n=l+c.length,s=!0;break}else{t.push({type:"string",value:i.slice(n)}),n=i.length,s=!0;break}}if(s)continue;let r=i.slice(n).match(/^-?\d+(\.\d+)?([eE][+-]?\d+)?/);if(r&&(n===0||/[\s\(\[\{,;:=<>!&|+\-*/%]/.test(i[n-1]))){t.push({type:"number",value:r[0]}),n+=r[0].length;continue}let o=i.slice(n).match(/^[a-zA-Z_$][a-zA-Z0-9_$]*/);if(o){let c=o[0],l="plain";e.keywords.includes(c)?l="keyword":e.types?.includes(c)?l="type":(e.builtins?.includes(c)||i[n+c.length]==="(")&&(l="function"),t.push({type:l,value:c}),n+=c.length;continue}let a=i.slice(n).match(/^(===|!==|==|!=|<=|>=|=>|->|&&|\|\||<<|>>|\+\+|--|[+\-*/%=<>!&|^~?:])/);if(a){t.push({type:"operator",value:a[0]}),n+=a[0].length;continue}if(/^[(){}\[\];,.]/.test(i[n])){t.push({type:"punctuation",value:i[n]}),n++;continue}t.push({type:"plain",value:i[n]}),n++}return t}var vT={keyword:k.status.warning,string:k.status.success,comment:k.ui.comment,number:k.text.link,function:k.text.link,operator:k.text.primary,punctuation:k.ui.muted,type:k.status.info,plain:k.text.primary},ST=Si(function({line:e,language:t}){if(!t)return et.createElement(Yn,{color:k.text.primary},e);let n=yT(e,t);return et.createElement(Yn,null,n.map((s,r)=>et.createElement(Yn,{key:r,color:vT[s.type]},s.value)))}),wT=Si(function({code:e,language:t,showLineNumbers:n=!1,startLineNumber:s=1,maxLines:r}){let{lines:o,langDef:a,truncated:c}=bT(()=>{let d=e.split(`
2610
2610
  `),g=t?ve[t.toLowerCase()]:void 0;return r&&d.length>r?{lines:d.slice(0,r),langDef:g,truncated:d.length-r}:{lines:d,langDef:g,truncated:0}},[e,t,r]),l=n?String(s+o.length-1).length:0;return et.createElement(Os,{flexDirection:"column"},o.map((d,g)=>et.createElement(Os,{key:g,flexDirection:"row"},n&&et.createElement(Os,{width:l+2,flexShrink:0},et.createElement(Yn,{color:k.ui.muted},String(s+g).padStart(l," ")," │")),et.createElement(Os,{flexGrow:1},et.createElement(ST,{line:d,language:a})))),c>0&&et.createElement(Yn,{color:k.ui.muted}," ... ",c," more lines"))}),Mm=Si(function({code:e,language:t,showLanguageLabel:n=!0,showLineNumbers:s=!1,maxLines:r,showBorder:o=!0}){let a=t?.toLowerCase(),c=a&&ve[a]?a:void 0;return et.createElement(Os,{flexDirection:"column",borderStyle:o?"round":void 0,borderColor:o?k.border.default:void 0,paddingX:o?1:0},n&&c&&et.createElement(Os,{marginBottom:0},et.createElement(Yn,{color:k.ui.muted,dimColor:!0},c)),et.createElement(wT,{code:e,language:c,showLineNumbers:s,maxLines:r}))}),l1=Si(function({children:e}){return et.createElement(Yn,{color:k.status.warning,bold:!1},"`",e,"`")});function Rm(i){let e=[],t=/```(\w*)\n?([\s\S]*?)```/g,n=0,s;for(;(s=t.exec(i))!==null;)s.index>n&&e.push({type:"text",content:i.slice(n,s.index)}),e.push({type:"code",content:s[2].trim(),language:s[1]||void 0}),n=s.index+s[0].length;return n<i.length&&e.push({type:"text",content:i.slice(n)}),e}function Nm(i){return/```[\s\S]*?```/.test(i)}var xT=500;function _m(i,e){return i.length<=e?{lines:i,truncated:!1}:{lines:i.slice(0,e),truncated:!0}}function CT({message:i,onSuggestionClick:e,maxLines:t=xT,isSuggestionsActive:n=!1}){let{role:s,content:r}=i,{userTier:o}=hr(),a=Om(()=>{if(s!=="assistant")return null;let{suggestions:l,cleanedContent:d}=Or(r),{workingFiles:g,cleanedContent:m}=Jc(d),{conversationHistory:p,cleanedContent:h}=Zc(m),y=el(h).split(`
2611
2611
  `),{lines:v,truncated:T}=_m(y,t);return{suggestions:l,workingFiles:g,conversationHistory:p,lines:v,truncated:T,totalLines:y.length}},[r,s,t]),c=Om(()=>{if(s==="assistant")return null;let l=r.split(`
2612
2612
  `);return _m(l,t)},[r,s,t]);if(s==="system"&&c){if(Am(r)){let{variant:m,projectPath:p}=Dm(r);return de.createElement(Pm,{variant:m,projectPath:p,tier:o})}let{lines:l,truncated:d}=c,g=r.split(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zinley/orion",
3
- "version": "1.2.31",
3
+ "version": "1.2.32",
4
4
  "description": "Autonomous AI agent for your terminal. Excels at coding, debugging, DevOps, data science, and asset processing (images, videos). Handles complex tasks on your computer with speed and precision comparable to Claude Code.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",