@robota-sdk/agent-transport 3.0.0-beta.64 → 3.0.0-beta.65
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.
- package/dist/node/headless/index.cjs +1 -1
- package/dist/node/{headless-CsZFelG9.cjs → headless-DJ5pnxM6.cjs} +1 -1
- package/dist/node/http/index.cjs +1 -1
- package/dist/node/{http-CM3TJhrF.cjs → http-CuQE6V6t.cjs} +1 -1
- package/dist/node/{index-CAr3ioVh.d.ts → index-CSgNoyPK.d.ts} +23 -2
- package/dist/node/index-CSgNoyPK.d.ts.map +1 -0
- package/dist/node/{index--Ti9NzQX.d.ts → index-_dNm-2J3.d.ts} +23 -2
- package/dist/node/index-_dNm-2J3.d.ts.map +1 -0
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.js +1 -1
- package/dist/node/mcp/index.cjs +1 -1
- package/dist/node/{mcp-DcHuGokt.cjs → mcp-BiJsIywJ.cjs} +1 -1
- package/dist/node/tui/index.cjs +1 -1
- package/dist/node/tui/index.d.ts +2 -2
- package/dist/node/tui/index.js +1 -1
- package/dist/node/tui-BIpIcT7-.cjs +24 -0
- package/dist/node/tui-DBLn1T15.js +25 -0
- package/dist/node/tui-DBLn1T15.js.map +1 -0
- package/dist/node/ws/index.cjs +1 -1
- package/dist/node/{ws-COnIgnmn.cjs → ws-XRTSFZOK.cjs} +1 -1
- package/package.json +5 -5
- package/src/tui/App.tsx +3 -0
- package/src/tui/InputArea.tsx +64 -5
- package/src/tui/SlashAutocomplete.tsx +2 -3
- package/src/tui/__tests__/input-area-flow.test.ts +19 -0
- package/src/tui/command-interaction.ts +35 -0
- package/src/tui/flows/input-area-flow.ts +8 -1
- package/src/tui/index.ts +8 -0
- package/src/tui/interactions/CommandConfirm.tsx +35 -0
- package/src/tui/interactions/CommandPicker.tsx +76 -0
- package/src/tui/render.tsx +2 -0
- package/dist/node/index--Ti9NzQX.d.ts.map +0 -1
- package/dist/node/index-CAr3ioVh.d.ts.map +0 -1
- package/dist/node/tui-CeD_6rSo.cjs +0 -24
- package/dist/node/tui-zmDTPk4b.js +0 -25
- package/dist/node/tui-zmDTPk4b.js.map +0 -1
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`react`),l=s(c,1);c=s(c);let u=require(`ink`),d=require(`@robota-sdk/agent-framework`),f=require(`@robota-sdk/agent-core`),p=require(`marked`),m=require(`marked-terminal`);m=s(m,1);let h=require(`react/jsx-runtime`),g=require(`chalk`);g=s(g);let _=require(`string-width`);_=s(_,1);function v(e,t,n,r,i){return(0,l.useCallback)(async a=>{if(!a.startsWith(`/`)){await e.submit(a),n.setPendingPrompt(e.getPendingPrompt());return}let o=a.slice(1).split(/\s+/),s=o[0]?.toLowerCase()??``,c=o.slice(1).join(` `),l=await e.executeCommand(s,c);if(l){if(l.effects?.some(e=>e.type===`session-execution-started`)){n.setPendingPrompt(e.getPendingPrompt());return}y(l,e,t,n,r,i);return}n.addEntry((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Unknown command "/${s}". Type /help for help.`)))},[e,t,n,r,i])}function y(e,t,n,r,i,a){let o=b(e.effects,n,r,a);if(r.addEntry((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(e.message))),e.interaction!==void 0&&i.enqueueInteraction(e.interaction),o.length>0&&i.enqueueEffects(o),t.isInitialized){let e=t.getContextState();r.setContextState({percentage:e.usedPercentage,usedTokens:e.usedTokens,maxTokens:e.maxTokens})}}function b(e,t,n,r){if(e===void 0||e.length===0)return[];let i=[];for(let a of e){if(a.type===`conversation-history-cleared`){n.clearHistory();continue}if(a.type===`plugin-registry-reload-requested`){r?.(t);continue}i.push(a)}return i}function x(){let[e,t]=(0,l.useState)(null),n=(0,l.useRef)([]),r=(0,l.useRef)(!1),i=(0,l.useCallback)(()=>{if(r.current)return;let e=n.current[0];if(!e){t(null);return}r.current=!0,t({toolName:e.toolName,toolArgs:e.toolArgs,resolve:a=>{n.current.shift(),r.current=!1,t(null),e.resolve(a),setTimeout(()=>i(),0)}})},[]);return{permissionHandler:(0,l.useCallback)((e,t)=>new Promise(r=>{n.current.push({toolName:e,toolArgs:t,resolve:r}),i()}),[i]),permissionRequest:e}}function S(e,t){let n=null;return{schedule(){n||=setTimeout(()=>{n=null,e()},t)},flush(){n&&=(clearTimeout(n),null)}}}var C=class{history=[];streamingText=``;activeTools=[];isThinking=!1;isAborting=!1;pendingPrompt=null;contextState={percentage:0,usedTokens:0,maxTokens:0};executionWorkspaceSnapshot=null;selectedExecutionEntryId;onChange=null;streamBuf=``;debouncedStreamNotify=S(()=>this.notify(),300);notify(){this.onChange?.()}onTextDelta=e=>{this.streamBuf+=e,this.streamingText=this.streamBuf,this.debouncedStreamNotify.schedule()};onToolStart=e=>{this.activeTools=[...this.activeTools,e],this.notify()};onToolEnd=e=>{let t=this.activeTools.findLastIndex(t=>t.toolName===e.toolName&&t.isRunning);if(t!==-1){let n=[...this.activeTools];n[t]=e,this.activeTools=n}this.notify()};onThinking=e=>{this.isThinking=e,e?(this.debouncedStreamNotify.flush(),this.streamBuf=``,this.streamingText=``,this.activeTools=[]):this.isAborting=!1,this.notify()};onComplete=e=>{this.debouncedStreamNotify.flush(),this.streamBuf=``,this.streamingText=``,this.activeTools=[],this.contextState={percentage:e.contextState.usedPercentage,usedTokens:e.contextState.usedTokens,maxTokens:e.contextState.maxTokens},this.notify()};onInterrupted=()=>{this.debouncedStreamNotify.flush(),this.streamBuf=``,this.streamingText=``,this.activeTools=[],this.notify()};onError=()=>{this.debouncedStreamNotify.flush(),this.streamBuf=``,this.streamingText=``,this.activeTools=[],this.notify()};onContextUpdate=e=>{this.setContextState({percentage:e.usedPercentage,usedTokens:e.usedTokens,maxTokens:e.maxTokens})};syncHistory(e){e.length!==0&&(this.history=e.length>100?e.slice(-100):[...e],this.notify())}addEntry(e){let t=[...this.history,e];this.history=t.length>100?t.slice(-100):t,this.notify()}clearHistory(){this.history=[],this.debouncedStreamNotify.flush(),this.streamBuf=``,this.streamingText=``,this.activeTools=[],this.notify()}setPendingPrompt(e){this.pendingPrompt=e,this.notify()}setAborting(e){this.isAborting=e,this.notify()}setContextState(e){this.contextState=e,this.notify()}syncExecutionWorkspaceSnapshot(e){let t=this.selectedExecutionEntryId,n=t!==void 0&&e.entries.some(e=>e.id===t)?t:e.selectedEntryId??e.entries[0]?.id;this.executionWorkspaceSnapshot={...e,...n?{selectedEntryId:n}:{}},this.selectedExecutionEntryId=n,this.notify()}selectExecutionWorkspaceEntry(e){this.executionWorkspaceSnapshot?.entries.some(t=>t.id===e)&&(this.selectedExecutionEntryId=e,this.executionWorkspaceSnapshot={...this.executionWorkspaceSnapshot,selectedEntryId:e},this.notify())}},w=class{queue=[];enqueueInteraction(e){this.queue.push({type:`interaction`,interaction:e})}enqueueEffects(e){e.length!==0&&this.queue.push({type:`effects`,effects:[...e]})}drain(){return this.queue.shift()}clear(){this.queue.length=0}};function T(e,t){let n=new d.InteractiveSession({cwd:e.cwd,provider:e.provider,permissionMode:e.permissionMode,maxTurns:e.maxTurns,permissionHandler:t,sessionStore:e.sessionStore,resumeSessionId:e.resumeSessionId,forkSession:e.forkSession,sessionName:e.sessionName,backgroundTaskRunners:e.backgroundTaskRunners,subagentRunnerFactory:e.subagentRunnerFactory,commandModules:e.commandModules,commandHostAdapters:e.commandHostAdapters,shellExec:e.shellExec,language:e.language,agentName:e.agentName}),r=new d.CommandRegistry;for(let t of e.commandModules??[])r.addModule(t);return e.reloadPluginCommandSource?.(r),{interactiveSession:n,registry:r,manager:new C,commandEffectQueue:new w}}function E(e,t){t.syncHistory(e.getFullHistory())}function D(e,t){t.syncHistory(e.getFullHistory())}function O(e,t){try{t.syncExecutionWorkspaceSnapshot(e.getExecutionWorkspaceSnapshot({selectedEntryId:t.selectedExecutionEntryId}))}catch{}}function k(e){let[,t]=(0,l.useState)(0),[n,r]=(0,l.useState)(!1),{permissionHandler:i,permissionRequest:a}=x(),[o]=(0,l.useState)(()=>T(e,i)),{interactiveSession:s,registry:c,manager:u,commandEffectQueue:d}=o;if(u.onChange=()=>t(e=>e+1),u.history.length===0){let e=s.getFullHistory();e.length>0&&u.syncHistory(e)}(0,l.useEffect)(()=>{if(!e.transportRegistry)return;let t=e.transportRegistry;return t.startAll(s).catch(()=>void 0),()=>{t.stopAll().catch(()=>void 0)}},[s,e.transportRegistry]),(0,l.useEffect)(()=>{let e=()=>E(s,u),t=()=>D(s,u),n=e=>u.syncExecutionWorkspaceSnapshot(e.snapshot);s.on(`text_delta`,u.onTextDelta),s.on(`tool_start`,u.onToolStart),s.on(`tool_end`,u.onToolEnd),s.on(`thinking`,u.onThinking),s.on(`complete`,u.onComplete),s.on(`interrupted`,u.onInterrupted),s.on(`error`,u.onError),s.on(`context_update`,u.onContextUpdate),s.on(`compact`,e),s.on(`skill_activation`,t),s.on(`execution_workspace_event`,n);let r=setInterval(()=>{try{let e=s.getContextState();u.setContextState({percentage:e.usedPercentage,usedTokens:e.usedTokens,maxTokens:e.maxTokens});let t=s.getFullHistory();t.length>0&&u.syncHistory(t),O(s,u),clearInterval(r)}catch{}},200);return()=>{clearInterval(r),s.off(`text_delta`,u.onTextDelta),s.off(`tool_start`,u.onToolStart),s.off(`tool_end`,u.onToolEnd),s.off(`thinking`,u.onThinking),s.off(`complete`,u.onComplete),s.off(`interrupted`,u.onInterrupted),s.off(`error`,u.onError),s.off(`context_update`,u.onContextUpdate),s.off(`compact`,e),s.off(`skill_activation`,t),s.off(`execution_workspace_event`,n)}},[s,u]),(0,l.useEffect)(()=>{u.syncHistory(s.getFullHistory()),O(s,u),u.isThinking||u.setPendingPrompt(s.getPendingPrompt())},[u.isThinking,s,u]);let p=v(s,c,u,d,e.reloadPluginCommandSource),m=(0,l.useCallback)(()=>{u.setAborting(!0),s.abort()},[s,u]),h=(0,l.useCallback)(()=>{s.cancelQueue(),u.setPendingPrompt(null)},[s,u]),g=(0,l.useCallback)(async(e=`prompt_input_exit`)=>{n||(r(!0),u.addEntry((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Shutting down...`))),await s.shutdown({reason:e,message:`CLI shutdown`}))},[s,u,n]),_=(0,l.useCallback)(e=>u.selectExecutionWorkspaceEntry(e),[u]),y=(0,l.useCallback)(e=>s.readExecutionWorkspaceDetail(e),[s]);return{interactiveSession:s,registry:c,commandEffectQueue:d,history:u.history,addEntry:e=>u.addEntry(e),streamingText:u.streamingText,activeTools:u.activeTools,isThinking:u.isThinking,isAborting:u.isAborting,isShuttingDown:n,pendingPrompt:u.pendingPrompt,executionWorkspaceSnapshot:u.executionWorkspaceSnapshot,selectedExecutionEntryId:u.selectedExecutionEntryId,permissionRequest:a,contextState:u.contextState,handleSubmit:p,handleAbort:m,handleCancelQueue:h,handleShutdown:g,selectExecutionWorkspaceEntry:_,readExecutionWorkspaceDetail:y}}function A(){return{listInstalled:async()=>[],listAvailablePlugins:async()=>[],install:async()=>void 0,uninstall:async()=>void 0,enable:async()=>void 0,disable:async()=>void 0,marketplaceAdd:async()=>``,marketplaceRemove:async()=>void 0,marketplaceUpdate:async()=>void 0,marketplaceList:async()=>[],reloadPlugins:async()=>({loadedPluginCount:0})}}function ee(e){return(0,l.useMemo)(()=>A(),[])}function j(e,t){for(let n of e){if(n.type===`model-change-requested`)return t.requestModelChange(n.modelId),!0;if(n.type===`language-change-requested`)return M(n.language,t),!0;if(n.type===`settings-reset-requested`)return N(t),!0;if(n.type===`session-exit-requested`)return t.requestShutdown(n.reason??`prompt_input_exit`,n.message??`User requested exit`),!0;if(n.type===`session-restart-requested`)return t.requestShutdown(n.reason,n.message),!0;if(n.type===`plugin-tui-requested`)return t.openPluginTUI(),!0;if(n.type===`settings-tui-requested`)return t.openTransportTUI(),!0;if(n.type===`agent-switcher-requested`)return t.openAgentSwitcher(),!0;if(n.type===`session-picker-requested`)return t.openSessionPicker(),!0;if(n.type===`session-renamed`)return t.renameSession(n.name),!0;if(n.type===`statusline-settings-patch`&&(0,d.isStatusLineCommandSettingsPatch)(n.patch))return t.applyStatusLinePatch(n.patch)}return!1}function M(e,t){let n=t.cliAdapter.getUserSettingsPath(),r=t.cliAdapter.readSettings(n);r.language=e,t.cliAdapter.writeSettings(n,r),t.addEntry((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Language set to "${e}". Restarting...`))),t.requestShutdown(`other`,`Language change restart`)}function N(e){let t=e.cliAdapter.getUserSettingsPath();e.cliAdapter.deleteSettings(t)?e.addEntry((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Deleted ${t}. Exiting...`))):e.addEntry((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`No user settings found.`))),e.requestShutdown(`other`,`Reset settings restart`)}const P=(0,c.createContext)(null),te=P.Provider;function F(){let e=(0,c.useContext)(P);if(!e)throw Error(`TuiCliAdapterContext not provided`);return e}function ne(e){return`Change model to ${(0,f.getModelName)(e)}? This will exit the current session so the next session uses it.`}function I(e){return`Model changed to ${(0,f.getModelName)(e)}. Exiting so the next session uses it.`}function L(e){let t=e.applyModelChange;if(!t){e.addEntry((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Model change unavailable: no adapter provided.`)));return}let n=e.providerOverride===void 0?void 0:{providerOverride:e.providerOverride};try{t(e.cwd,e.modelId,n),e.addEntry((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(I(e.modelId)))),e.requestShutdown(`other`,`Model change applied`)}catch(t){e.addEntry((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Failed: ${t instanceof Error?t.message:String(t)}`)))}}function R(e){e((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Model change cancelled.`)))}function re({cwd:e,providerOverride:t,interactiveSession:n,commandEffectQueue:r,addEntry:i,baseHandleSubmit:a,setSessionName:o,setStatusLineSettings:s,showSessionPickerOnStart:c,openAgentSwitcher:d}){let{exit:p}=(0,u.useApp)(),m=F(),[h,g]=(0,l.useState)(null),_=(0,l.useRef)(null),[v,y]=(0,l.useState)(null),b=(0,l.useRef)(null),[x,S]=(0,l.useState)(!1),[C,w]=(0,l.useState)(c??!1),[T,E]=(0,l.useState)(!1),D=(0,l.useCallback)((e,t)=>{i((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Shutting down...`))),setTimeout(()=>{n.shutdown({reason:e,message:t}).finally(()=>p())},500)},[n,i,p]),O=(0,l.useCallback)(e=>j(e,{addEntry:i,requestShutdown:D,requestModelChange:e=>{_.current=e,g(e)},openPluginTUI:()=>S(!0),openSessionPicker:()=>w(!0),openTransportTUI:()=>E(!0),openAgentSwitcher:()=>d?.(),renameSession:e=>{n.setName(e),o(e)},applyStatusLinePatch:e=>(s(m.applyStatusLineSettings(m.getUserSettingsPath(),e)),!0),cliAdapter:m}),[i,m,n,D,o,s]),k=(0,l.useCallback)(e=>{if(e.message.length>0&&i((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(e.message))),e.interaction!==void 0){b.current=e.interaction,y(e.interaction.prompt);return}b.current=null,y(null),e.effects!==void 0&&e.effects.length>0&&O(e.effects)},[i,O]),A=(0,l.useCallback)(()=>{let e=r.drain();if(e===void 0)return!1;if(e.type===`interaction`){let{interaction:t}=e;return b.current=t,y(t.prompt),!0}return O(e.effects)},[O,r]);return{handleSubmit:(0,l.useCallback)(async e=>{await a(e),A()},[a,A]),pendingModelId:h,pendingInteractionPrompt:v,showPluginTUI:x,showSessionPicker:C,showTransportTUI:T,setPendingModelId:g,setShowPluginTUI:S,setShowSessionPicker:w,setShowTransportTUI:E,handleModelConfirm:(0,l.useCallback)(n=>{let r=_.current;g(null),_.current=null,n===0&&r?L({cwd:e,modelId:r,providerOverride:t,addEntry:i,requestShutdown:D,applyModelChange:(e,t,n)=>(m.applyActiveModelChange(e,t,n),{applied:!0})}):R(i)},[e,t,i,m,D]),handleInteractionSubmit:(0,l.useCallback)(async e=>{let t=b.current;if(t===null){y(null);return}try{k(await t.submit(e))}catch(e){b.current=null,y(null),i((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Failed: ${e instanceof Error?e.message:String(e)}`)))}},[i,k]),handleInteractionCancel:(0,l.useCallback)(()=>{let e=b.current;if(b.current=null,y(null),e?.cancel===void 0){i((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Command interaction cancelled.`)));return}Promise.resolve(e.cancel()).then(e=>k(e)).catch(e=>{i((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Failed: ${e instanceof Error?e.message:String(e)}`)))})},[i,k])}}function ie(e){let t={...d.DEFAULT_STATUS_LINE_COMMAND_SETTINGS},n=e.statusline;return z(n)?{enabled:typeof n.enabled==`boolean`?n.enabled:t.enabled,gitBranch:typeof n.gitBranch==`boolean`?n.gitBranch:t.gitBranch}:t}function z(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Date)}function ae(){let e=F();return(0,l.useState)(()=>ie(e.readSettings(e.getUserSettingsPath())))}const B=`\x1B[0m`,V=` `,oe=m.default;function se(e){return e===void 0?process.env.NO_COLOR||process.env.FORCE_COLOR===`0`?!1:process.env.FORCE_COLOR?!0:!!process.stdout.isTTY:e}function ce(e){return e?.trim().toLowerCase()===`diff`}function le(e,t,n){let r=`${V}${e}`.padEnd(t);return n?e.startsWith(`+`)?`[48;5;22m[38;5;120m${r}${B}`:e.startsWith(`-`)?`[48;5;52m[38;5;210m${r}${B}`:r.trimEnd():r.trimEnd()}function H(e,t,n){if(e.startsWith(`+`)||e.startsWith(`-`))return le(e,n,t);let r=`${V}${e}`;return t?e.startsWith(`@@`)?`[36m${r}${B}`:e.startsWith(`diff `)||e.startsWith(`index `)?`[2m${r}${B}`:r:r}function ue(e,t){let n=e.reduce((e,t)=>Math.max(e,4+t.length),0);return t===void 0?n:Math.max(n,t)}function de(e,t,n){let r=e.split(`
|
|
2
|
-
`),i=ue(r,n);return`${r.map(e=>H(e,t,i)).join(`
|
|
3
|
-
`)}\n\n`}function U(e,t){let n=new oe(void 0,{ignoreIllegals:!0}),r=n.code.bind(n);return n.code=(n,i,a)=>ce(i)?de(n,e,t):r(n,i,a),n}function W(e,t={}){let n=p.marked.parse(e,{renderer:U(se(t.color),t.codeBlockWidth)});return typeof n==`string`?n.trimEnd():e}function G(e){let t=e.lines.length>12?fe(e.lines):e.lines,n=Math.max(...t.map(e=>e.lineNumber),0).toString().length,r=t.map(e=>K(e,n)),i=e.lines.length>12;return{file:e.file,markdown:["```diff",...r,"```"].join(`
|
|
4
|
-
`),truncated:i,remainingLineCount:i?e.lines.length-t.length:0}}function K(e,t){if(e.type===`hunk`)return e.text;let n=e.lineNumber.toString().padStart(t,` `);return e.type===`remove`?`- ${n} | ${e.text}`:e.type===`add`?`+ ${n} | ${e.text}`:` ${n} | ${e.text}`}function fe(e){let t=pe(e),n=[];for(let e of t){if(n.length===0&&e.length>10)return e.slice(0,10);if(n.length+e.length>10)break;n.push(...e)}return n.length>0?n:e.slice(0,10)}function pe(e){let t=[],n=[];for(let r of e){if(r.type===`hunk`&&n.length>0){t.push(n),n=[r];continue}n.push(r)}return n.length>0&&t.push(n),t}function q({file:e,lines:t}){let n=G({file:e,lines:t});return(0,h.jsxs)(u.Box,{flexDirection:`column`,marginLeft:4,children:[n.file&&(0,h.jsxs)(u.Text,{color:`white`,dimColor:!0,children:[`│ `,n.file]}),(0,h.jsx)(u.Text,{children:W(n.markdown)}),n.truncated&&(0,h.jsxs)(u.Text,{color:`white`,dimColor:!0,children:[`│ ... and `,n.remainingLineCount,` more lines`]})]})}function me({entry:e}){let t=e.data;if(!t)return(0,h.jsx)(h.Fragment,{});let n=t.promptTokens===void 0?`?`:J(t.promptTokens),r=t.completionTokens===void 0?`?`:J(t.completionTokens),i=J(t.totalTokens),a=`${Math.round(t.contextUsedPercentage)}% (${(0,f.formatTokenCount)(t.contextUsedTokens)}/${(0,f.formatTokenCount)(t.contextMaxTokens)})`,o=t.costStatus===`unknown`?`cost unknown`:`cost ${t.costStatus}`;return(0,h.jsx)(u.Box,{flexDirection:`column`,marginBottom:1,children:(0,h.jsxs)(u.Box,{children:[(0,h.jsxs)(u.Text,{color:`white`,bold:!0,children:[`Usage:`,` `]}),(0,h.jsxs)(u.Text,{dimColor:!0,children:[t.kind,` `,i,` tokens (in `,n,` / out `,r,`) · Context `,a,` ·`,` `,o]})]})})}function J(e){return e<1e3?e.toLocaleString():(0,f.formatTokenCount)(e)}const he=new Set([`Bash`,`BackgroundProcess`]);function Y(e){if(!he.has(e.toolName)||!e.toolResultData)return;let t=ge(e.toolResultData),n=Se(t,`exitCode`),r=Ce(t,`success`),i=ye(X(_e(e.toolResultData,t))),a=i.slice(0,4),o=Math.max(0,i.length-a.length),s=e.result===`error`||r===!1||n!==void 0&&n!==0;return{status:s?`error`:`success`,statusLabel:ve(s,n),previewLines:a,omittedLineCount:o,transcriptHint:o>0?`... +${o} lines (full output in session transcript)`:void 0}}function ge(e){try{return JSON.parse(e)}catch{return e}}function _e(e,t){if(!Z(t))return e;let n=xe(t,`output`);if(n!==void 0)return n;let r=xe(t,`stdout`),i=xe(t,`stderr`),a=xe(t,`error`),o=[];return r&&o.push(r),i&&o.push(be(i,`[stderr] `)),!r&&!i&&a&&o.push(a),o.join(`
|
|
5
|
-
`)}function ve(e,t){return t!==void 0&&t!==0?`exit ${t}`:e?`error`:`ok`}function X(e){return e?e.replace(/\r\n/g,`
|
|
6
|
-
`).split(`
|
|
7
|
-
`):[]}function ye(e){let t=e.length;for(;t>0&&e[t-1].trim().length===0;)--t;return e.slice(0,t)}function be(e,t){return X(e).map(e=>`${t}${e}`).join(`
|
|
8
|
-
`)}function Z(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Date)}function xe(e,t){if(!Z(e))return;let n=e[t];return typeof n==`string`?n:void 0}function Se(e,t){if(!Z(e))return;let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:void 0}function Ce(e,t){if(!Z(e))return;let n=e[t];return typeof n==`boolean`?n:void 0}function we({tool:e}){let t=Y(e);if(!t||t.statusLabel===`ok`&&t.previewLines.length===0&&!t.transcriptHint)return null;let n=t.status===`error`?`red`:`white`;return(0,h.jsxs)(u.Box,{flexDirection:`column`,marginLeft:4,children:[t.statusLabel!==`ok`&&(0,h.jsx)(u.Text,{color:n,dimColor:!0,children:t.statusLabel}),t.previewLines.map((e,t)=>(0,h.jsx)(u.Text,{color:n,dimColor:!0,children:e},`${e}-${t}`)),t.transcriptHint&&(0,h.jsx)(u.Text,{dimColor:!0,children:t.transcriptHint})]})}function Te(e){return Y(e)?.status===`error`?`✗`:e.isRunning?`⟳`:e.result===`error`?`✗`:e.result===`denied`?`⊘`:`✓`}function Ee(e){return Y(e)?.status===`error`||e.result===`error`?`red`:e.isRunning||e.result===`denied`?`yellow`:`green`}function De(e){return`${Te(e)} ${e.toolName}${e.firstArg?`(${e.firstArg})`:``}`}function Oe({role:e}){switch(e){case`user`:return(0,h.jsxs)(u.Text,{color:`green`,bold:!0,children:[`You:`,` `]});case`assistant`:return(0,h.jsxs)(u.Text,{color:`cyan`,bold:!0,children:[`Robota:`,` `]});case`system`:return(0,h.jsxs)(u.Text,{color:`yellow`,bold:!0,children:[`System:`,` `]});case`tool`:return(0,h.jsxs)(u.Text,{color:`white`,bold:!0,children:[`Tool:`,` `]})}}function ke({message:e}){if(!(0,f.isToolMessage)(e))return(0,h.jsx)(h.Fragment,{});let t=e.name,n=e.content,r=null;try{let e=JSON.parse(n);Array.isArray(e)&&e.length>0&&typeof e[0].line==`string`&&(r=e)}catch{}if(r)return(0,h.jsxs)(u.Box,{flexDirection:`column`,marginBottom:1,children:[(0,h.jsxs)(u.Box,{children:[(0,h.jsxs)(u.Text,{color:`white`,bold:!0,children:[`Tool:`,` `]}),t&&(0,h.jsxs)(u.Text,{color:`white`,dimColor:!0,children:[`[`,t,`]`]})]}),(0,h.jsx)(u.Text,{children:` `}),r.map((e,t)=>(0,h.jsxs)(u.Box,{flexDirection:`column`,children:[(0,h.jsxs)(u.Text,{color:`green`,children:[` `,`✓`,` `,e.line]}),e.diffLines&&e.diffLines.length>0&&(0,h.jsx)(q,{file:e.diffFile,lines:e.diffLines})]},t))]});let i=n.split(`
|
|
9
|
-
`).filter(e=>e.trim());return(0,h.jsxs)(u.Box,{flexDirection:`column`,marginBottom:1,children:[(0,h.jsxs)(u.Box,{children:[(0,h.jsxs)(u.Text,{color:`white`,bold:!0,children:[`Tool:`,` `]}),t&&(0,h.jsxs)(u.Text,{color:`white`,dimColor:!0,children:[`[`,t,`]`]})]}),(0,h.jsx)(u.Text,{children:` `}),i.map((e,t)=>(0,h.jsxs)(u.Text,{color:`green`,children:[` `,`✓`,` `,e]},t))]})}const Ae=c.default.memo(function({message:e}){if((0,f.isToolMessage)(e))return(0,h.jsx)(ke,{message:e});let t=e.content??``,n=e.state===`interrupted`;return(0,h.jsxs)(u.Box,{flexDirection:`column`,marginBottom:1,children:[(0,h.jsx)(u.Box,{children:(0,h.jsx)(Oe,{role:e.role})}),(0,h.jsx)(u.Text,{children:` `}),(0,h.jsx)(u.Box,{marginLeft:2,children:(0,h.jsx)(u.Text,{wrap:`wrap`,children:(0,f.isAssistantMessage)(e)?W(t+(n?`
|
|
10
|
-
|
|
11
|
-
_(interrupted)_`:``)):t})})]})});function je({entry:e}){let t=e.data,n=t?.tools,r=t?.summary?.split(`
|
|
12
|
-
`)??[];return n&&n.length>0?(0,h.jsxs)(u.Box,{flexDirection:`column`,marginBottom:1,children:[(0,h.jsx)(u.Box,{children:(0,h.jsxs)(u.Text,{color:`white`,bold:!0,children:[`Tool:`,` `]})}),(0,h.jsx)(u.Text,{children:` `}),n.map((e,t)=>(0,h.jsxs)(u.Box,{flexDirection:`column`,children:[(0,h.jsxs)(u.Text,{color:Ee(e),children:[` `,De(e)]}),(0,h.jsx)(we,{tool:e}),e.diffLines&&e.diffLines.length>0&&(0,h.jsx)(q,{file:e.diffFile,lines:e.diffLines})]},t))]}):(0,h.jsxs)(u.Box,{flexDirection:`column`,marginBottom:1,children:[(0,h.jsx)(u.Box,{children:(0,h.jsxs)(u.Text,{color:`white`,bold:!0,children:[`Tool:`,` `]})}),(0,h.jsx)(u.Text,{children:` `}),r.map((e,t)=>(0,h.jsxs)(u.Text,{color:`green`,children:[` `,e]},t))]})}function Me({entry:e}){let t=e.data,n=typeof t?.message==`string`?t.message:typeof t?.content==`string`?t.content:e.type;return(0,h.jsxs)(u.Box,{flexDirection:`column`,marginBottom:1,children:[(0,h.jsx)(u.Box,{children:(0,h.jsxs)(u.Text,{color:`yellow`,bold:!0,children:[`System:`,` `]})}),(0,h.jsx)(u.Text,{children:` `}),(0,h.jsx)(u.Box,{marginLeft:2,children:(0,h.jsx)(u.Text,{wrap:`wrap`,children:n})})]})}function Ne({entry:e}){if(e.category===`chat`){let t=e.data;return(0,h.jsx)(Ae,{message:t})}return e.type===`tool-summary`?(0,h.jsx)(je,{entry:e}):e.type===`usage-summary`?(0,h.jsx)(me,{entry:e}):e.type===`tool-start`||e.type===`tool-end`?(0,h.jsx)(h.Fragment,{}):(0,h.jsx)(Me,{entry:e})}function Pe({history:e}){return(0,h.jsx)(u.Box,{flexDirection:`column`,children:e.map(e=>(0,h.jsx)(Ne,{entry:e},e.id))})}function Fe(e){let t=Ie(e),n=e.hasPendingPrompt&&t.kind!==`queued`?[`queued`]:[],r=[t.label,...n].join(` · `);return{...t,segments:n,text:r}}function Ie(e){return e.activeToolCount>0?{kind:`tools`,label:`Tools x${e.activeToolCount}`,color:`cyan`}:e.isThinking?{kind:`thinking`,label:`Thinking`,color:`yellow`}:e.activeBackgroundTaskCount>0?{kind:`background`,label:`Background x${e.activeBackgroundTaskCount}`,color:`cyan`}:e.hasPendingPrompt?{kind:`queued`,label:`Queued`,color:`yellow`}:{kind:`idle`,label:`Idle`,color:`gray`}}function Le(e){return e>=90?`red`:e>=70?`yellow`:`green`}function Re({isThinking:e,activeToolCount:t,activeBackgroundTaskCount:n,hasPendingPrompt:r}){let i=Fe({isThinking:e,activeToolCount:t,activeBackgroundTaskCount:n,hasPendingPrompt:r});return(0,h.jsx)(u.Text,{color:i.color,bold:i.kind!==`idle`,children:i.text})}function ze({percentage:e,usedTokens:t,maxTokens:n}){return(0,h.jsxs)(u.Text,{color:Le(e),children:[`Context: `,Math.round(e),`% (`,(0,f.formatTokenCount)(t),`/`,(0,f.formatTokenCount)(n),`)`]})}function Be({permissionMode:e}){return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(u.Text,{color:`cyan`,bold:!0,children:`Mode:`}),` `,(0,h.jsx)(u.Text,{children:e})]})}function Ve(e){return e!==`default`}function He({modelName:e,providerDisplayName:t}){return t===void 0?(0,h.jsx)(u.Text,{dimColor:!0,children:e}):(0,h.jsxs)(u.Text,{dimColor:!0,children:[t,` `,e]})}function Ue(e){let t=e.showGitBranch&&e.gitBranch!==void 0&&e.gitBranch.length>0,n=Ve(e.permissionMode);return(0,h.jsxs)(u.Text,{children:[(0,h.jsx)(Re,{isThinking:e.isThinking,activeToolCount:e.activeToolCount,activeBackgroundTaskCount:e.activeBackgroundTaskCount,hasPendingPrompt:e.hasPendingPrompt}),n&&(0,h.jsxs)(h.Fragment,{children:[` | `,(0,h.jsx)(Be,{permissionMode:e.permissionMode})]}),e.sessionName&&(0,h.jsxs)(h.Fragment,{children:[` | `,(0,h.jsx)(u.Text,{color:`magenta`,children:e.sessionName})]}),t&&(0,h.jsxs)(h.Fragment,{children:[` | `,(0,h.jsxs)(u.Text,{dimColor:!0,children:[`git: `,e.gitBranch]})]}),` | `,(0,h.jsx)(He,{modelName:e.modelName,providerDisplayName:e.providerDisplayName}),` | `,(0,h.jsx)(ze,{percentage:e.contextPercentage,usedTokens:e.contextUsedTokens,maxTokens:e.contextMaxTokens})]})}function We({permissionMode:e,modelName:t,providerDisplayName:n,sessionId:r,isThinking:i,activeToolCount:a=0,activeBackgroundTaskCount:o=0,hasPendingPrompt:s=!1,contextPercentage:c,contextUsedTokens:l,contextMaxTokens:d,sessionName:f,gitBranch:p,showGitBranch:m=!0,activeAgentLabel:g}){return(0,h.jsxs)(u.Box,{borderStyle:`single`,borderColor:`gray`,paddingLeft:1,paddingRight:1,justifyContent:`space-between`,children:[(0,h.jsx)(Ue,{permissionMode:e,modelName:t,providerDisplayName:n,isThinking:i,activeToolCount:a,activeBackgroundTaskCount:o,hasPendingPrompt:s,contextPercentage:c,contextUsedTokens:l,contextMaxTokens:d,sessionName:f,gitBranch:p,showGitBranch:m}),g!==void 0&&(0,h.jsxs)(u.Text,{color:`yellow`,bold:!0,children:[`[`,g,`]`]})]})}function Ge({cwd:e,permissionMode:t,modelId:n,providerType:r,sessionId:i,isThinking:a,activeToolCount:o,activeBackgroundTaskCount:s,hasPendingPrompt:l,contextState:u,sessionName:d,settings:f,activeAgentLabel:p}){let m=F(),g=(0,c.useMemo)(()=>m.getGitBranch(e),[m,e]),_=(0,c.useMemo)(()=>r===void 0?void 0:m.getProviderDisplayName(r),[m,r]);return f.enabled?(0,h.jsx)(We,{permissionMode:t,modelName:n??``,providerDisplayName:_,sessionId:i,isThinking:a,activeToolCount:o,activeBackgroundTaskCount:s,hasPendingPrompt:l,contextPercentage:u.percentage,contextUsedTokens:u.usedTokens,contextMaxTokens:u.maxTokens,sessionName:d,gitBranch:g,showGitBranch:f.gitBranch,activeAgentLabel:p}):null}const Ke=`[200~`,qe=`[201~`;function Je(e){return{value:e,cursor:e.length,isPasting:!1,pasteBuffer:``}}function Ye(e,t,n){return t===e.value?e:{...e,value:t,cursor:n==null?t.length:Math.min(n,t.length)}}function Xe(e,t,n,r){let i=Qe(e,t,r);if(i!==void 0)return i;let a=$e(e,t,n,r);if(a!==void 0)return a;let o=et(e,n,r);return o===void 0?ut(e,t):o}function Ze(e,t,n){let r=t.replace(/\r\n?/g,`
|
|
13
|
-
`);return r.length===0?{state:e,effect:{type:`none`}}:r.includes(`
|
|
14
|
-
`)&&n.canPaste?{state:e,effect:{type:`paste`,text:r,cursor:e.cursor}}:ut(e,r)}function Qe(e,t,n){if(t===Ke||t.startsWith(Ke))return at(e,t);if(e.isPasting)return ot(e,t,n)}function $e(e,t,n,r){if(n.ctrl===!0&&t===`c`||n.tab===!0)return{state:e,effect:{type:`none`}};if(n.return===!0)return{state:e,effect:{type:`submit`,value:e.value}};if(t.length>1&&(t.includes(`
|
|
15
|
-
`)||t.includes(`\r`))&&r.canPaste)return{state:e,effect:{type:`paste`,text:t.replace(/\r\n?/g,`
|
|
16
|
-
`),cursor:e.cursor}}}function et(e,t,n){if(t.upArrow===!0||t.downArrow===!0)return n.enableVerticalNavigation===!1?{state:e,effect:{type:`none`}}:st(e,t.upArrow===!0?`up`:`down`,n.availableWidth);if(t.leftArrow===!0)return ct(e,`left`);if(t.rightArrow===!0)return ct(e,`right`);if(t.backspace===!0||t.delete===!0)return lt(e)}function tt(e){if(!e||e.length===0)return``;let t=``;for(let n of e){let e=n.charCodeAt(0);e>31&&e!==127&&(t+=n)}return t}function nt(e,t,n){return{value:e.slice(0,t)+n+e.slice(t),cursor:t+n.length}}function rt(e,t,n){let r=0;for(let i=0;i<t&&i<e.length;i++){let t=(0,_.default)(e[i]),a=r%n;a+t>n&&(r+=n-a),r+=t}return r}function it(e,t,n){let r=0;for(let i=0;i<e.length;i++){if(r>=t)return i;let a=(0,_.default)(e[i]),o=r%n;o+a>n&&(r+=n-o),r+=a}return e.length}function at(e,t){return{state:{...e,isPasting:!0,pasteBuffer:t.slice(5)},effect:{type:`none`}}}function ot(e,t,n){if(t!==qe&&!t.includes(qe))return{state:{...e,pasteBuffer:e.pasteBuffer+t},effect:{type:`none`}};let r=t.split(qe)[0]??``;return Ze({...e,isPasting:!1,pasteBuffer:``},e.pasteBuffer+r,n)}function st(e,t,n){if(!n||n<=0)return{state:e,effect:{type:`none`}};let r=[...e.value],i=rt(r,e.cursor,n),a=t===`up`?i-n:i+n;if(a<0)return{state:e,effect:{type:`none`}};let o=it(r,a,n);return o===e.cursor?{state:e,effect:{type:`none`}}:{state:{...e,cursor:o},effect:{type:`render`}}}function ct(e,t){return t===`left`&&e.cursor>0?{state:{...e,cursor:e.cursor-1},effect:{type:`render`}}:t===`right`&&e.cursor<e.value.length?{state:{...e,cursor:e.cursor+1},effect:{type:`render`}}:{state:e,effect:{type:`none`}}}function lt(e){if(e.cursor===0)return{state:e,effect:{type:`none`}};let t=e.value.slice(0,e.cursor-1)+e.value.slice(e.cursor);return{state:{...e,value:t,cursor:e.cursor-1},effect:{type:`change`,value:t}}}function ut(e,t){let n=tt(t);if(n.length===0)return{state:e,effect:{type:`none`}};let r=nt(e.value,e.cursor,n);return{state:{...e,value:r.value,cursor:r.cursor},effect:{type:`change`,value:r.value}}}function dt({value:e,onChange:t,onSubmit:n,onPaste:r,placeholder:i=``,focus:a=!0,showCursor:o=!0,availableWidth:s,cursorHint:l=null,enableVerticalNavigation:d=!0}){let f=(0,c.useRef)(Je(e)),[,p]=(0,c.useState)(0);return f.current=Ye(f.current,e,l),ft({stateRef:f,onChange:t,onSubmit:n,onPaste:r,availableWidth:s,focus:a,enableVerticalNavigation:d,forceRender:p}),(0,h.jsx)(u.Text,{children:gt(f.current.value,f.current.cursor,i,o&&a)})}function ft(e){(0,u.usePaste)(t=>{mt(e,()=>Ze(e.stateRef.current,t,pt(e)))},{isActive:e.focus}),(0,u.useInput)((t,n)=>{mt(e,()=>Xe(e.stateRef.current,t,n,pt(e)))},{isActive:e.focus})}function pt(e){return{availableWidth:e.availableWidth,canPaste:e.onPaste!==void 0,enableVerticalNavigation:e.enableVerticalNavigation}}function mt(e,t){try{let n=t();e.stateRef.current=n.state,ht(n.effect,e.onChange,e.onSubmit,e.onPaste,e.forceRender)}catch{}}function ht(e,t,n,r,i){e.type===`change`?t(e.value):e.type===`submit`?n?.(e.value):e.type===`paste`?r?.(e.text,e.cursor):e.type===`render`&&i(e=>e+1)}function gt(e,t,n,r){if(!r)return e.length>0?e:n?g.default.gray(n):``;if(e.length===0)return n.length>0?g.default.inverse(n[0])+g.default.gray(n.slice(1)):g.default.inverse(` `);let i=[...e],a=``;for(let e=0;e<i.length;e++){let n=i[e]??``;a+=e===t?g.default.inverse(n):n}return t>=i.length&&(a+=g.default.inverse(` `)),a}const _t=[`#666666`,`#888888`,`#aaaaaa`,`#888888`];function vt({text:e}){let[t,n]=(0,c.useState)(0);return(0,c.useEffect)(()=>{let e=setInterval(()=>{n(e=>e+1)},400);return()=>clearInterval(e)},[]),(0,h.jsx)(u.Text,{children:[...e].map((e,n)=>(0,h.jsx)(u.Text,{color:_t[(t+Math.floor(n/4))%_t.length],children:e},n))})}function yt(){let{stdout:e}=(0,u.useStdout)(),t=()=>Math.max(40,(e.columns??80)-4),[n,r]=(0,c.useState)(t);return(0,c.useEffect)(()=>{let n=()=>r(t());return e.on(`resize`,n),()=>{e.off(`resize`,n)}},[e]),n}function bt(e,t){return e.length>t?`${e.slice(0,t-1)}…`:e.padEnd(t)}function xt(e){let{cmd:t,isSelected:n,showSlash:r,rowWidth:i,nameColWidth:a}=e,o=n?`▸ `:` `,s=n?`cyan`:void 0,c=!n,l=bt(t.displayName??t.name,a);return(0,h.jsx)(u.Box,{width:i,children:(0,h.jsx)(u.Text,{color:s,dimColor:c,wrap:`truncate-end`,children:r?`${o}/${l} ${t.description??``}`:`${o}${l} ${t.description??``}`})})}function St({commands:e,selectedIndex:t,visible:n,isSubcommandMode:r}){let i=yt();if(!n||e.length===0)return null;let a=Ct(t,e.length),o=e.slice(a,a+8),s=Math.min(20,Math.max(...o.map(e=>(e.displayName??e.name).length)));return(0,h.jsx)(u.Box,{flexDirection:`column`,borderStyle:`round`,borderColor:`gray`,paddingX:1,children:o.map((e,n)=>(0,h.jsx)(xt,{cmd:e,isSelected:a+n===t,showSlash:!r,rowWidth:i,nameColWidth:s},e.name))})}function Ct(e,t){if(t<=8||e<8)return 0;let n=t-8;return Math.min(e-8+1,n)}const wt=/\[Pasted text #(\d+)(?: \+\d+ lines)?\]/g;function Tt(e,t){return e.replace(wt,(e,n)=>t.get(Number(n))??``)}function Et(e){if(!e.startsWith(`/`))return{isSlash:!1,parentCommand:``,filter:``};let t=e.slice(1),n=t.indexOf(` `);return n===-1?{isSlash:!0,parentCommand:``,filter:t}:{isSlash:!0,parentCommand:t.slice(0,n),filter:t.slice(n+1)}}function Dt(e,t){let[n,r]=(0,l.useState)(0),[i,a]=(0,l.useState)(!1),o=l.default.useRef(e);o.current!==e&&(o.current=e,i&&a(!1));let s=Et(e),c=s.isSlash&&s.parentCommand.length>0,u=(0,l.useMemo)(()=>{if(!t||!s.isSlash||i)return[];if(c){let e=t.getSubcommands(s.parentCommand);if(e.length===0)return[];if(!s.filter)return e;let n=s.filter.toLowerCase();return e.filter(e=>e.name.toLowerCase().startsWith(n))}return t.getCommands(s.filter)},[t,s.isSlash,s.parentCommand,s.filter,i,c]),d=s.isSlash&&u.length>0&&!i;return n>=u.length&&u.length>0&&r(u.length-1),{showPopup:d,filteredCommands:u,selectedIndex:n,setSelectedIndex:r,isSubcommandMode:c,setShowPopup:e=>{a(typeof e==`function`?t=>!e(!t):!e)}}}function Ot(e){if(e.upArrow===!0)return`previous`;if(e.downArrow===!0)return`next`;if(e.escape===!0)return`close`;if(e.tab===!0)return`complete`}function kt(e){if(e.backspace===!0||e.delete===!0)return`cancelQueue`}function At(e){if(e.upArrow===!0)return`previous`;if(e.downArrow===!0)return`next`}function jt(){return{selectedIndex:null,draft:``}}function Mt(e,t,n,r){if(t.length===0)return{value:e,cursorHint:e.length,state:n};if(r===`previous`){let r=n.selectedIndex===null?t.length-1:Math.max(0,n.selectedIndex-1),i=t[r]??e;return{value:i,cursorHint:i.length,state:{selectedIndex:r,draft:n.selectedIndex===null?e:n.draft}}}if(n.selectedIndex===null)return{value:e,cursorHint:e.length,state:n};if(n.selectedIndex<t.length-1){let r=n.selectedIndex+1,i=t[r]??e;return{value:i,cursorHint:i.length,state:{...n,selectedIndex:r}}}return{value:n.draft,cursorHint:n.draft.length,state:jt()}}function Nt(e,t){let n=t.trim();return n.length===0||e[e.length-1]===n?[...e]:[...e,n]}function Pt(e){let t=[];for(let n of e){if(n.category!==`chat`||n.type!==`user`)continue;let e=n.data;typeof e?.content==`string`&&(t=Nt(t,e.content))}return t}function Ft(e,t,n){return t===0?0:n===`previous`?e>0?e-1:t-1:e<t-1?e+1:0}function It(e,t){let n=Et(e);return n.parentCommand?{type:`insert`,value:`/${n.parentCommand} ${t.name} `}:t.subcommands&&t.subcommands.length>0?{type:`insert`,value:`/${t.name} `,selectedIndex:0}:{type:`insert`,value:`/${t.name} `}}function Lt(e,t){let n=Et(e);return n.parentCommand?{type:`submit`,value:`/${n.parentCommand} ${t.name}`}:t.subcommands&&t.subcommands.length>0?{type:`insert`,value:`/${t.name} `,selectedIndex:0}:{type:`submit`,value:`/${t.name}`}}function Rt(e,t,n,r){let i=r.split(`
|
|
17
|
-
`).length,a=`[Pasted text #${n} +${i} lines]`;return{value:e.slice(0,t)+a+e.slice(t),cursorHint:t+a.length,label:a,lineCount:i}}function zt(e){return e.trim().length>0}function Bt({onSubmit:e,onCancelQueue:t,isDisabled:n,isAborting:r,pendingPrompt:i,registry:a,sessionName:o,history:s}){let[l,d]=(0,c.useState)(``),[f,p]=(0,c.useState)(null),[m,g]=(0,c.useState)(jt),[_,v]=(0,c.useState)([]),y=(0,c.useMemo)(()=>Pt(s??[]),[s]),b=(0,c.useMemo)(()=>_.reduce((e,t)=>Nt(e,t),y),[y,_]),x=(0,c.useRef)(new Map),{columns:S}=(0,u.useWindowSize)(),C=S>0?S:80,w=Math.max(1,C-5),T=(0,c.useRef)(0),{showPopup:E,filteredCommands:D,selectedIndex:O,setSelectedIndex:k,isSubcommandMode:A,setShowPopup:ee}=Dt(l,a),j=(0,c.useCallback)((e,t)=>{T.current+=1;let n=T.current;x.current.set(n,e),d(r=>{let i=Rt(r,t,n,e);return p(i.cursorHint),i.value})},[]),M=(0,c.useCallback)(()=>{g(jt())},[]),N=(0,c.useCallback)(e=>{v(t=>Nt(t,e))},[]),P=(0,c.useCallback)(t=>{N(t),M(),e(t)},[e,N,M]),te=(0,c.useCallback)(e=>{let t=It(l,e);t.type===`insert`&&(d(t.value),t.selectedIndex!==void 0&&k(t.selectedIndex))},[l,k]),F=(0,c.useCallback)(e=>{let t=Lt(l,e);if(t.type===`insert`){d(t.value),t.selectedIndex!==void 0&&k(t.selectedIndex);return}d(``),P(t.value)},[l,P,k]),ne=(0,c.useCallback)(e=>{if(!zt(e))return;if(E&&D[O]){F(D[O]);return}let t=Tt(e.trim(),x.current);d(``),x.current.clear(),T.current=0,P(t)},[E,D,O,F,P]);(0,u.useInput)((e,t)=>{if(!E)return;let n=Ot(t);if(n===`previous`||n===`next`)k(e=>Ft(e,D.length,n));else if(n===`close`)ee(!1);else if(n===`complete`){let e=D[O];e&&te(e)}},{isActive:E&&!n}),(0,u.useInput)((e,t)=>{let n=At(t);if(!n)return;let r=Mt(l,b,m,n);d(r.value),p(r.cursorHint),g(r.state)},{isActive:!E&&!n&&!i}),(0,u.useInput)((e,n)=>{kt(n)===`cancelQueue`&&i&&t?.()},{isActive:!!i});let I=r?`yellow`:i?`cyan`:n?`gray`:`green`,L=Math.max(1,C-2),R=(()=>{if(o){let e=` "${o}" `,t=Math.max(0,L-e.length-2);return{left:`┌`+`─`.repeat(t),label:e,right:`─`.repeat(2)+`┐`}}return{left:`┌`+`─`.repeat(L),label:``,right:`┐`}})();return(0,h.jsxs)(u.Box,{flexDirection:`column`,children:[E&&(0,h.jsx)(St,{commands:D,selectedIndex:O,visible:E,isSubcommandMode:A}),(0,h.jsxs)(u.Text,{color:I,children:[R.left,R.label?(0,h.jsx)(u.Text,{backgroundColor:I,color:`black`,bold:!0,children:R.label}):null,R.right]}),(0,h.jsx)(u.Box,{borderStyle:`single`,borderTop:!1,borderColor:I,paddingLeft:1,children:r?(0,h.jsx)(u.Text,{color:`yellow`,children:` Interrupting...`}):i?(0,h.jsxs)(u.Text,{color:`cyan`,children:[` `,`Queued:`,` `,i.length>50?i.slice(0,47)+`...`:i,` `,(0,h.jsx)(u.Text,{dimColor:!0,children:`(Backspace to cancel)`})]}):n?(0,h.jsx)(vt,{text:` Waiting for response... (ESC to interrupt)`}):(0,h.jsxs)(u.Box,{children:[(0,h.jsx)(u.Text,{color:`green`,bold:!0,children:`> `}),(0,h.jsx)(dt,{value:l,onChange:e=>{d(e),M(),p(null)},onSubmit:ne,onPaste:j,placeholder:`Type a message or /help`,availableWidth:w,cursorHint:f,enableVerticalNavigation:!1})]})})]})}function Q(){return{selectedIndex:0,scrollOffset:0,resolved:!1}}function Vt(e){if(e.escape===!0)return`cancel`;if(e.upArrow===!0)return`previous`;if(e.downArrow===!0)return`next`;if(e.return===!0)return`select`}function Ht(e){if(e.escape===!0)return`cancel`;if(e.leftArrow===!0||e.upArrow===!0)return`previous`;if(e.rightArrow===!0||e.downArrow===!0)return`next`;if(e.return===!0)return`select`}function $(e,t,n){if(e.resolved)return{state:e,effect:{type:`none`}};if(t===`cancel`)return{state:{...e,resolved:!0},effect:{type:`cancel`}};if(n.enabled===!1||n.itemCount===0)return{state:e,effect:{type:`none`}};if(t===`select`){let t=Kt(e.selectedIndex,n.itemCount);return{state:{...e,selectedIndex:t,resolved:!0},effect:{type:`select`,index:t}}}let r=Wt(e.selectedIndex,t,n),i=Gt(r,e.scrollOffset,n);return{state:{...e,selectedIndex:r,scrollOffset:i},effect:{type:`none`}}}function Ut(e,t){if(t.itemCount===0)return{...e,selectedIndex:0,scrollOffset:0};let n=Kt(e.selectedIndex,t.itemCount),r=Gt(n,e.scrollOffset,t);return n===e.selectedIndex&&r===e.scrollOffset?e:{...e,selectedIndex:n,scrollOffset:r}}function Wt(e,t,n){return t===`previous`?n.wrap===!0&&e===0?n.itemCount-1:Math.max(0,e-1):n.wrap===!0&&e===n.itemCount-1?0:Math.min(n.itemCount-1,e+1)}function Gt(e,t,n){let r=n.maxVisible??n.itemCount;return r<=0?0:e<t?e:e>=t+r?e-r+1:Math.max(0,t)}function Kt(e,t){return Math.min(Math.max(e,0),t-1)}function qt(e,t,n){let r=Ht({...t,escape:!1});if(r!==void 0)return r;if(n===2&&e===`y`)return{type:`shortcut`,index:0};if(n===2&&e===`n`)return{type:`shortcut`,index:1}}function Jt(e,t,n){return e.resolved?{state:e,effect:{type:`none`}}:typeof t==`string`?$(e,t,{itemCount:n}):{state:{...e,selectedIndex:t.index,resolved:!0},effect:{type:`select`,index:t.index}}}function Yt({message:e,options:t=[`Yes`,`No`],onSelect:n}){let[r,i]=(0,c.useState)(()=>Q()),a=(0,c.useRef)(r),o=(0,c.useCallback)(e=>{let r=Jt(a.current,e,t.length);a.current=r.state,i(r.state),r.effect.type===`select`&&n(r.effect.index)},[n,t.length]);return(0,u.useInput)((e,n)=>{let r=qt(e,n,t.length);r!==void 0&&o(r)}),(0,h.jsxs)(u.Box,{flexDirection:`column`,borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:[(0,h.jsx)(u.Text,{color:`yellow`,children:e}),(0,h.jsx)(u.Box,{marginTop:1,children:t.map((e,t)=>(0,h.jsx)(u.Box,{marginRight:2,children:(0,h.jsxs)(u.Text,{color:t===r.selectedIndex?`cyan`:void 0,bold:t===r.selectedIndex,children:[t===r.selectedIndex?`> `:` `,e]})},e))}),(0,h.jsx)(u.Text,{dimColor:!0,children:` arrow keys to select, Enter to confirm`})]})}function Xt({items:e,renderItem:t,onSelect:n,onCancel:r,maxVisible:i=3}){let[a,o]=(0,c.useState)(()=>Q()),s=(0,c.useRef)(a),l=(0,c.useCallback)(t=>{let a=$(s.current,t,{itemCount:e.length,maxVisible:i});if(s.current=a.state,o(a.state),a.effect.type===`cancel`)r();else if(a.effect.type===`select`){let t=e[a.effect.index];t!==void 0&&n(t)}},[e,i,r,n]);if((0,u.useInput)((e,t)=>{let n=Vt(t);n!==void 0&&l(n)}),e.length===0)return(0,h.jsx)(u.Box,{});let d=Ut(a,{itemCount:e.length,maxVisible:i});d!==a&&(s.current=d);let{selectedIndex:f,scrollOffset:p}=d,m=e.slice(p,p+i),g=p+i<e.length;return(0,h.jsxs)(u.Box,{flexDirection:`column`,children:[p>0&&(0,h.jsxs)(u.Text,{dimColor:!0,children:[` ↑ `,p,` more above`]}),m.map((e,n)=>(0,h.jsx)(u.Box,{marginBottom:1,children:t(e,p+n===f)},p+n)),g&&(0,h.jsxs)(u.Text,{dimColor:!0,children:[` ↓ `,e.length-p-i,` more below`]})]})}function Zt(){return{value:``,resolved:!1}}function Qt(e,t){if(t.escape===!0)return{type:`cancel`};if(t.return===!0)return{type:`submit`};if(t.backspace===!0||t.delete===!0)return{type:`delete`};if(e&&t.ctrl!==!0&&t.meta!==!0)return{type:`insert`,value:e}}function $t(e,t,n){return e.resolved?{state:e,effect:{type:`none`}}:t.type===`cancel`?{state:{...e,resolved:!0},effect:{type:`cancel`}}:t.type===`delete`?{state:{...e,value:e.value.slice(0,-1),error:void 0},effect:{type:`none`}}:t.type===`insert`?{state:{...e,value:e.value+t.value,error:void 0},effect:{type:`none`}}:en(e,n)}function en(e,t){let n=e.value.trim();if(!n&&!t.allowEmpty){let r=t.validate?.(n);return{state:r?{...e,error:r}:e,effect:{type:`none`}}}let r=t.validate?.(n);return r===void 0?{state:{...e,resolved:!0},effect:{type:`submit`,value:n}}:{state:{...e,error:r},effect:{type:`none`}}}function tn({title:e,description:t,placeholder:n,onSubmit:r,onCancel:i,validate:a,allowEmpty:o=!1,masked:s=!1}){let[l,d]=(0,c.useState)(()=>Zt()),f=(0,c.useRef)(l),p=(0,c.useCallback)(e=>{let t=$t(f.current,e,{allowEmpty:o,validate:a});f.current=t.state,d(t.state),t.effect.type===`cancel`?i():t.effect.type===`submit`&&r(t.effect.value)},[o,a,i,r]);return(0,u.useInput)((e,t)=>{let n=Qt(e,t);n!==void 0&&p(n)}),(0,h.jsxs)(u.Box,{flexDirection:`column`,borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:[(0,h.jsx)(u.Text,{color:`yellow`,bold:!0,children:e}),(0,h.jsx)(nn,{description:t}),(0,h.jsxs)(u.Box,{marginTop:1,children:[(0,h.jsx)(u.Text,{color:`cyan`,children:`> `}),l.value?(0,h.jsx)(u.Text,{children:s?`*`.repeat(l.value.length):l.value}):n?(0,h.jsx)(u.Text,{dimColor:!0,children:n}):null,(0,h.jsx)(u.Text,{color:`cyan`,children:`█`})]}),l.error&&(0,h.jsx)(u.Text,{color:`red`,children:l.error}),(0,h.jsx)(u.Text,{dimColor:!0,children:` Enter Submit Esc Cancel`})]})}function nn({description:e}){return e===void 0||e.length===0?null:(0,h.jsx)(u.Text,{dimColor:!0,children:e})}function rn({prompt:e,onSubmit:t,onCancel:n}){return e.kind===`text`?(0,h.jsx)(tn,{title:e.title,description:e.description,placeholder:e.placeholder,allowEmpty:e.allowEmpty,masked:e.masked,validate:e.validate,onSubmit:t,onCancel:n},`text:${e.title}`):(0,h.jsxs)(u.Box,{flexDirection:`column`,children:[(0,h.jsx)(u.Text,{bold:!0,children:e.title}),e.description!==void 0&&e.description.length>0&&(0,h.jsx)(u.Text,{dimColor:!0,children:e.description}),(0,h.jsx)(Xt,{items:[...e.options],maxVisible:e.maxVisible,renderItem:(e,t)=>(0,h.jsxs)(u.Text,{color:t?`cyan`:void 0,children:[t?`> `:` `,e.label]}),onSelect:e=>t(e.value),onCancel:n})]})}const an=[`Allow`,`Allow always (this session)`,`Deny`];function on(e,t){let n=Ht({...t,escape:!1});if(n!==void 0)return n;if(e===`y`||e===`1`)return{type:`shortcut`,index:0};if(e===`a`||e===`2`)return{type:`shortcut`,index:1};if(e===`n`||e===`d`||e===`3`)return{type:`shortcut`,index:2}}function sn(e,t){if(e.resolved)return{state:e,effect:{type:`none`}};if(typeof t!=`string`)return ln(e,t.index);let n=$(e,t,{itemCount:an.length});return n.effect.type===`select`?{state:n.state,effect:{type:`resolve`,decision:cn(n.effect.index)}}:{state:n.state,effect:{type:`none`}}}function cn(e){return e===0?!0:e===1?`allow-session`:!1}function ln(e,t){return{state:{...e,selectedIndex:t,resolved:!0},effect:{type:`resolve`,decision:cn(t)}}}function un(e){let t=Object.entries(e);return t.length===0?`(no arguments)`:t.map(([e,t])=>`${e}: ${typeof t==`string`?t:JSON.stringify(t)}`).join(`, `)}function dn({request:e}){let[t,n]=c.default.useState(()=>Q()),r=c.default.useRef(t),i=c.default.useRef(e);if(i.current!==e){i.current=e;let t=Q();r.current=t,n(t)}let a=c.default.useCallback(t=>{let i=sn(r.current,t);r.current=i.state,n(i.state),i.effect.type===`resolve`&&e.resolve(i.effect.decision)},[e]);return(0,u.useInput)((e,t)=>{let n=on(e,t);n!==void 0&&a(n)}),(0,h.jsxs)(u.Box,{flexDirection:`column`,borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:[(0,h.jsx)(u.Text,{color:`yellow`,bold:!0,children:`[Permission Required]`}),(0,h.jsxs)(u.Text,{children:[`Tool:`,` `,(0,h.jsx)(u.Text,{color:`cyan`,bold:!0,children:e.toolName})]}),(0,h.jsxs)(u.Text,{dimColor:!0,children:[` `,un(e.toolArgs)]}),(0,h.jsx)(u.Box,{marginTop:1,children:an.map((e,n)=>(0,h.jsx)(u.Box,{marginRight:2,children:(0,h.jsxs)(u.Text,{color:n===t.selectedIndex?`cyan`:void 0,bold:n===t.selectedIndex,children:[n===t.selectedIndex?`> `:` `,e]})},e))}),(0,h.jsx)(u.Text,{dimColor:!0,children:` left/right to select, Enter to confirm`})]})}function fn(e){return e.isRunning?{color:`yellow`,icon:`⟳`,strikethrough:!1}:e.result===`error`?{color:`red`,icon:`✗`,strikethrough:!0}:e.result===`denied`?{color:`yellowBright`,icon:`⊘`,strikethrough:!0}:{color:`green`,icon:`✓`,strikethrough:!1}}function pn(e){return e?(0,h.jsx)(u.Box,{marginBottom:1,children:(0,h.jsx)(u.Text,{color:`yellow`,children:`Thinking...`})}):(0,h.jsx)(h.Fragment,{})}function mn(e){return(0,h.jsxs)(u.Box,{flexDirection:`column`,marginBottom:1,children:[(0,h.jsx)(u.Text,{color:`white`,bold:!0,children:`Tools:`}),(0,h.jsx)(u.Text,{children:` `}),e.map((e,t)=>{let{color:n,icon:r,strikethrough:i}=fn(e);return(0,h.jsxs)(u.Box,{flexDirection:`column`,children:[(0,h.jsxs)(u.Text,{color:n,strikethrough:i,children:[` `,r,` `,e.toolName,`(`,e.firstArg,`)`]}),e.diffLines&&e.diffLines.length>0&&(0,h.jsx)(q,{file:e.diffFile,lines:e.diffLines})]},`${e.toolName}-${t}`)})]})}function hn({text:e,activeTools:t,isThinking:n=!1}){let r=t.length>0,i=e.length>0;return!r&&!i?pn(n):(0,h.jsxs)(u.Box,{flexDirection:`column`,children:[r&&mn(t),i&&(0,h.jsxs)(u.Box,{flexDirection:`column`,marginBottom:1,children:[(0,h.jsx)(u.Text,{color:`cyan`,bold:!0,children:`Robota:`}),(0,h.jsx)(u.Text,{children:` `}),(0,h.jsx)(u.Box,{marginLeft:2,children:(0,h.jsx)(u.Text,{wrap:`wrap`,children:W(e)})})]})]})}function gn({title:e,items:t,onSelect:n,onBack:r,loading:i,error:a}){let[o,s]=(0,c.useState)(()=>Q()),l=(0,c.useRef)(o),d=!i&&!a,f=(0,c.useCallback)(e=>{let i=$(l.current,e,{itemCount:t.length,enabled:d});if(l.current=i.state,s(i.state),i.effect.type===`cancel`)r();else if(i.effect.type===`select`){let e=t[i.effect.index];e!==void 0&&n(e.value)}},[d,t,r,n]);(0,u.useInput)((e,t)=>{let n=Vt(t);n!==void 0&&f(n)});let p=Ut(o,{itemCount:t.length});p!==o&&(l.current=p);let m=p.selectedIndex;return(0,h.jsxs)(u.Box,{flexDirection:`column`,borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:[(0,h.jsx)(u.Text,{color:`yellow`,bold:!0,children:e}),i&&(0,h.jsx)(u.Box,{marginTop:1,children:(0,h.jsx)(u.Text,{dimColor:!0,children:`Loading...`})}),a&&(0,h.jsxs)(u.Box,{marginTop:1,flexDirection:`column`,children:[(0,h.jsx)(u.Text,{color:`red`,children:a}),(0,h.jsx)(u.Text,{dimColor:!0,children:`Press Esc to go back`})]}),!i&&!a&&(0,h.jsx)(u.Box,{flexDirection:`column`,marginTop:1,children:t.map((e,t)=>(0,h.jsxs)(u.Box,{children:[(0,h.jsxs)(u.Text,{color:t===m?`cyan`:void 0,bold:t===m,children:[t===m?`> `:` `,e.label]}),e.hint&&(0,h.jsxs)(u.Text,{dimColor:!0,children:[` `,e.hint]})]},e.value))}),(0,h.jsx)(u.Text,{dimColor:!0,children:i||a?``:` ↑↓ Navigate Enter Select Esc Back`})]})}function _n(e,t){e===`marketplace`?t.push({screen:`marketplace-list`}):e===`installed`&&t.push({screen:`installed-list`})}function vn(e,t){e===`__add__`?t.push({screen:`marketplace-add`}):t.push({screen:`marketplace-action`,context:{marketplace:e}})}function yn(e,t,n,r){e===`browse`?r.push({screen:`marketplace-browse`,context:{marketplace:t}}):e===`update`?n.marketplaceUpdate(t).then(()=>{r.notify(`Updated marketplace "${t}".`),r.pop()}).catch(e=>{r.notify(`Error: ${e instanceof Error?e.message:String(e)}`)}):e===`remove`&&r.setConfirm({message:`Remove marketplace "${t}" and all its plugins?`,onConfirm:()=>{r.setConfirm(void 0),n.marketplaceRemove(t).then(()=>{r.notify(`Removed marketplace "${t}".`),r.popN(2)}).catch(e=>{r.notify(`Error: ${e instanceof Error?e.message:String(e)}`)})},onCancel:()=>r.setConfirm(void 0)})}function bn(e,t,n,r){let i=`${e}@${t}`;n.find(t=>t.value===e)?.hint===`installed`?r.push({screen:`installed-action`,context:{pluginId:i}}):r.push({screen:`marketplace-install-scope`,context:{marketplace:t,pluginId:i}})}function xn(e,t,n,r){let i=e;n.install(t,i).then(()=>{r.notify(`Installed plugin "${t}" (${i} scope).`),r.popN(2)}).catch(e=>{r.notify(`Error: ${e instanceof Error?e.message:String(e)}`)})}function Sn(e,t,n){n.setConfirm({message:`Uninstall plugin "${e}"?`,onConfirm:()=>{n.setConfirm(void 0),t.uninstall(e).then(()=>{n.notify(`Uninstalled plugin "${e}".`),n.refresh()}).catch(e=>{n.notify(`Error: ${e instanceof Error?e.message:String(e)}`)})},onCancel:()=>n.setConfirm(void 0)})}function Cn(e,t,n,r){e===`uninstall`&&r.setConfirm({message:`Uninstall plugin "${t}"?`,onConfirm:()=>{r.setConfirm(void 0),n.uninstall(t).then(()=>{r.notify(`Uninstalled plugin "${t}".`),r.popN(2)}).catch(e=>{r.notify(`Error: ${e instanceof Error?e.message:String(e)}`)})},onCancel:()=>r.setConfirm(void 0)})}function wn(e,t,n,r,i){let[a,o]=(0,l.useState)([]),[s,c]=(0,l.useState)(!1),[u,d]=(0,l.useState)();return(0,l.useEffect)(()=>{if(o([]),d(void 0),e===`marketplace-list`)c(!0),n.marketplaceList().then(e=>{let t=[{label:`Add Marketplace`,value:`__add__`}],n=e.map(e=>({label:e.name,value:e.name,hint:e.type}));o([...t,...n]),c(!1)}).catch(e=>{d(e instanceof Error?e.message:String(e)),c(!1)});else if(e===`marketplace-browse`){let e=t??``;c(!0),n.listAvailablePlugins(e).then(e=>{o(e.map(e=>({label:e.name,value:e.name,hint:e.installed?`installed`:e.description}))),c(!1)}).catch(e=>{d(e instanceof Error?e.message:String(e)),c(!1)})}else e===`installed-list`&&(c(!0),n.listInstalled().then(e=>{o(e.map(e=>({label:e.name,value:e.name,hint:e.description}))),c(!1)}).catch(e=>{d(e instanceof Error?e.message:String(e)),c(!1)}))},[i,e,t,n,r]),{items:a,loading:s,error:u}}function Tn({callbacks:e,onClose:t,addMessage:n}){let[r,i]=(0,c.useState)([{screen:`main`}]),[a,o]=(0,c.useState)(),[s,l]=(0,c.useState)(0),u=r[r.length-1]??{screen:`main`},d=(0,c.useCallback)(e=>{i(t=>[...t,e])},[]),f=(0,c.useCallback)(()=>{i(e=>e.length<=1?(t(),e):e.slice(0,-1))},[t]),p=(0,c.useCallback)(e=>{i(n=>{let r=n.slice(0,Math.max(1,n.length-e));return r.length===0?(t(),n):r})},[t]),m=(0,c.useCallback)(e=>{n?.({role:`system`,content:e})},[n]),g=(0,c.useCallback)(()=>{l(e=>e+1)},[]),_=(0,c.useCallback)(e=>o(e),[o]),v={push:(0,c.useCallback)(e=>d({screen:e.screen,context:e.context}),[d]),pop:f,popN:p,notify:m,setConfirm:_,refresh:g},{items:y,loading:b,error:x}=wn(u.screen,u.context?.marketplace,e,s,r.length),S=(0,c.useCallback)(t=>{let n=u.screen,r=u.context;n===`main`?_n(t,v):n===`marketplace-list`?vn(t,v):n===`marketplace-action`?yn(t,r?.marketplace??``,e,v):n===`marketplace-browse`?bn(t,r?.marketplace??``,y,v):n===`marketplace-install-scope`?xn(t,r?.pluginId??``,e,v):n===`installed-list`?Sn(t,e,v):n===`installed-action`&&Cn(t,r?.pluginId??``,e,v)},[u,y,e,d,f,p,m,o,g]),C=(0,c.useCallback)(t=>{u.screen===`marketplace-add`&&e.marketplaceAdd(t).then(e=>{m(`Added marketplace "${e}" from ${t}.`),f()}).catch(e=>{m(`Error: ${e instanceof Error?e.message:String(e)}`),f()})},[u.screen,e,m,f]);if(a)return(0,h.jsx)(Yt,{message:a.message,onSelect:e=>{e===0?a.onConfirm():a.onCancel()}});let w=u.screen;return w===`marketplace-add`?(0,h.jsx)(tn,{title:`Add Marketplace Source`,placeholder:`owner/repo or git URL`,onSubmit:C,onCancel:f,validate:e=>e.includes(`/`)?void 0:`Must be owner/repo or a git URL`}):w===`marketplace-action`?(0,h.jsx)(gn,{title:`Marketplace: ${u.context?.marketplace??``}`,items:[{label:`Browse plugins`,value:`browse`},{label:`Update`,value:`update`},{label:`Remove`,value:`remove`}],onSelect:S,onBack:f},r.length):w===`marketplace-install-scope`?(0,h.jsx)(gn,{title:`Install scope for "${u.context?.pluginId??``}"`,items:[{label:`User scope`,value:`user`},{label:`Project scope`,value:`project`}],onSelect:S,onBack:f},r.length):w===`installed-action`?(0,h.jsx)(gn,{title:`Plugin: ${u.context?.pluginId??``}`,items:[{label:`Uninstall`,value:`uninstall`}],onSelect:S,onBack:f},r.length):(0,h.jsx)(gn,{title:{main:`Plugin Management`,"marketplace-list":`Marketplace`,"marketplace-browse":`Browse: ${u.context?.marketplace??``}`,"installed-list":`Installed Plugins`}[w]??`Plugin Management`,items:{main:[{label:`Marketplace`,value:`marketplace`},{label:`Installed Plugins`,value:`installed`}]}[w]??y,onSelect:S,onBack:f,loading:b,error:x},`${w}-${r.length}-${s}`)}function En({entry:e,selected:t}){let n=e.config.enabled,r=n?`●`:`○`,i=n?`[enabled] `:`[disabled]`,a=e.config.options?.port,o=typeof a==`number`?`port: ${a}`:``;return(0,h.jsx)(u.Box,{children:(0,h.jsx)(u.Text,{color:t?`cyan`:void 0,bold:t,children:`${r} ${e.transport.name.padEnd(18)} ${i} ${o}`})})}function Dn(e,t,n,r,i,a,o,s){(0,u.useInput)((0,c.useCallback)((c,l)=>{if(!n){if(l.upArrow){i(e=>Math.max(0,e-1));return}if(l.downArrow){i(t=>Math.min(e.length-1,t+1));return}if(l.escape||l.return){o();return}if(c===` `){let n=e[t];if(!n)return;a(!0),r.setEnabled(n.transport.name,!n.config.enabled).then(()=>{s(),a(!1)}).catch(()=>a(!1))}}},[n,e,t,r,o,s,i,a]))}function On({registry:e,onClose:t}){let[n,r]=(0,c.useState)(()=>e.getAll()),[i,a]=(0,c.useState)(0),[o,s]=(0,c.useState)(!1);return Dn(n,i,o,e,a,s,t,(0,c.useCallback)(()=>{r(e.getAll())},[e])),(0,h.jsxs)(u.Box,{flexDirection:`column`,paddingX:2,paddingY:1,children:[(0,h.jsx)(u.Text,{bold:!0,children:`Settings › Transports`}),(0,h.jsx)(u.Box,{marginTop:1,flexDirection:`column`,children:n.map((e,t)=>(0,h.jsx)(En,{entry:e,selected:t===i},e.transport.name))}),(0,h.jsx)(u.Box,{marginTop:1,children:(0,h.jsx)(u.Text,{dimColor:!0,children:`↑↓ select space toggle enter/esc close`})}),o&&(0,h.jsx)(u.Box,{marginTop:1,children:(0,h.jsx)(u.Text,{color:`yellow`,children:`Saving…`})})]})}function kn({sessions:e,onSelect:t,onCancel:n}){return(0,h.jsxs)(u.Box,{flexDirection:`column`,paddingX:1,marginBottom:1,children:[(0,h.jsx)(u.Text,{bold:!0,color:`cyan`,children:`Select a session to resume (ESC to cancel):`}),(0,h.jsx)(Xt,{items:[...e],renderItem:(e,t)=>{let n=e.preview?e.preview.slice(0,60)+(e.preview.length>60?`...`:``):``;return(0,h.jsxs)(u.Text,{children:[t?`> `:` `,(0,h.jsx)(u.Text,{bold:!0,children:e.name??e.id.slice(0,8)}),` `,(0,h.jsx)(u.Text,{dimColor:!0,children:new Date(e.updatedAt).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}),` `,(0,h.jsxs)(u.Text,{dimColor:!0,children:[`msgs: `,e.messageCount]}),n?(0,h.jsxs)(h.Fragment,{children:[`
|
|
18
|
-
`,(0,h.jsx)(u.Text,{color:`gray`,children:n})]}):null]})},onSelect:e=>t(e.id),onCancel:n})]})}const An=[`active`,`queued`,`running`,`waiting_permission`,`sleeping`],jn=/\s+/g;function Mn(e){return(e?.entries??[]).filter(e=>e.kind===`background_task`&&e.visibility===`default`)}function Nn(e){return Mn(e).filter(e=>An.includes(e.status)).length}function Pn(e,t={}){let n=e.id===t.selectedEntryId,r={id:e.id,radio:n?`●`:`○`,title:In(e),subtitle:Ln(e),statusLabel:Rn(e.status),preview:Bn(e.preview??e.currentAction),color:zn(e),isSelected:n};return{...r,accessibleText:Vn(r)}}function Fn(e){let t=e.text.trim().replace(jn,` `);return t?t.length>160?`${t.slice(0,160)}...`:t:e.kind}function In(e){return e.kind===`main_thread`?e.title:e.kind===`background_group`?`${e.title} group`:e.taskKind===`agent`?`${e.title} agent`:e.taskKind===`process`?e.title||`Process`:e.taskKind===`scheduled`?e.title||`Scheduled`:e.title}function Ln(e){return e.kind===`main_thread`?e.subtitle:[e.taskKind,e.subtitle,e.attention===`none`?void 0:e.attention].filter(e=>typeof e==`string`&&e.length>0).join(` · `)||void 0}function Rn(e){return e.replace(/_/g,` `)}function zn(e){return e.attention===`failed`||e.status===`failed`?`red`:e.attention===`permission`||e.status===`waiting_permission`?`yellow`:e.status===`completed`?`green`:e.status===`cancelled`?`yellow`:An.includes(e.status)?`cyan`:`white`}function Bn(e){return e?.trim().replace(jn,` `)||void 0}function Vn(e){return[e.radio,e.title,e.statusLabel,e.subtitle,e.preview].filter(e=>typeof e==`string`&&e.length>0).join(` · `)}function Hn(e,t={}){let n=Pn(e),r=Un(e)?`□`:`■`,i=[n.statusLabel,n.subtitle].filter(e=>typeof e==`string`&&e.length>0);return{connector:t.isLast===!1?`├`:`└`,marker:r,color:n.color,label:n.title,segments:i,preview:n.preview,accessibleText:[`${t.isLast===!1?`├`:`└`} ${r} ${n.title}`,...i,n.preview].filter(e=>typeof e==`string`&&e.length>0).join(` · `)}}function Un(e){return e.status===`active`||e.status===`queued`||e.status===`running`||e.status===`waiting_permission`||e.status===`sleeping`}function Wn({entries:e}){return e.length===0?null:(0,h.jsxs)(u.Box,{flexDirection:`column`,marginBottom:1,children:[(0,h.jsx)(u.Text,{color:`cyan`,bold:!0,children:`Background work`}),e.map((t,n)=>{let r=Hn(t,{isLast:n===e.length-1});return(0,h.jsxs)(u.Text,{children:[`${r.connector} `,(0,h.jsx)(u.Text,{color:r.color,children:r.marker}),` ${r.label}`,r.segments.map((e,t)=>(0,h.jsx)(u.Text,{dimColor:!0,children:` · ${e}`},`${e}-${t}`)),r.preview?(0,h.jsx)(u.Text,{dimColor:!0,children:` · ${r.preview}`}):null]},t.id)})]})}function Gn({snapshot:e,selectedEntryId:t,onSelect:n,onClose:r}){let{normalized:i,visibleEntries:a,applyAction:o}=Kn({entries:[...e?.entries??[]],selectedEntryId:t,onSelect:n,onClose:r});return(0,u.useInput)((e,t)=>{let n=Vt(t);n!==void 0&&o(n)}),(0,h.jsxs)(u.Box,{flexDirection:`column`,borderStyle:`round`,borderColor:`cyan`,paddingX:1,children:[(0,h.jsx)(u.Text,{color:`cyan`,bold:!0,children:`Execution workspace`}),(0,h.jsx)(u.Box,{flexDirection:`column`,marginTop:1,children:a.length===0?(0,h.jsx)(u.Text,{dimColor:!0,children:`No workspace entries`}):a.map((e,n)=>(0,h.jsx)(Yn,{entry:e,isFocused:i.scrollOffset+n===i.selectedIndex,selectedEntryId:t},e.id))}),(0,h.jsx)(u.Text,{dimColor:!0,children:`Ctrl+B Close ↑↓ Navigate Enter Switch Esc Close`})]})}function Kn({entries:e,selectedEntryId:t,onSelect:n,onClose:r}){let[i,a]=(0,c.useState)(()=>Q()),o=(0,c.useRef)(i);(0,c.useEffect)(()=>{let n=Jn({selectedIndex:Math.max(0,e.findIndex(e=>e.id===t)),itemCount:e.length});o.current=n,a(n)},[e.length,t]);let s=Jn({selectedIndex:i.selectedIndex,scrollOffset:i.scrollOffset,itemCount:e.length});return s!==i&&(o.current=s),{normalized:s,visibleEntries:e.slice(s.scrollOffset,s.scrollOffset+8),applyAction:qn({entries:e,stateRef:o,setState:a,onSelect:n,onClose:r})}}function qn({entries:e,stateRef:t,setState:n,onSelect:r,onClose:i}){return a=>{let o=$(t.current,a,{itemCount:e.length,maxVisible:8}),s=o.effect.type===`select`||o.effect.type===`cancel`?{...o.state,resolved:!1}:o.state;if(t.current=s,n(s),o.effect.type===`cancel`)i();else if(o.effect.type===`select`){let t=e[o.effect.index];t&&r(t.id)}}}function Jn(e){return Ut({selectedIndex:e.selectedIndex,scrollOffset:e.scrollOffset??0,resolved:!1},{itemCount:e.itemCount,maxVisible:8})}function Yn({entry:e,isFocused:t,selectedEntryId:n}){let r=Pn(e,{selectedEntryId:n});return(0,h.jsxs)(u.Text,{children:[(0,h.jsx)(u.Text,{color:t?`cyan`:void 0,bold:t,children:t?`> `:` `}),(0,h.jsx)(u.Text,{color:r.color,children:r.radio}),(0,h.jsx)(u.Text,{color:t?`cyan`:void 0,bold:t,children:` ${r.title}`}),(0,h.jsx)(u.Text,{dimColor:!0,children:` · ${r.statusLabel}`}),r.subtitle?(0,h.jsx)(u.Text,{dimColor:!0,children:` · ${r.subtitle}`}):null,r.preview?(0,h.jsx)(u.Text,{dimColor:!0,children:` · ${r.preview}`}):null]})}function Xn({entry:e,page:t,loading:n,error:r}){let i=Pn(e,{selectedEntryId:e.id}),a=t?.records.slice(-12)??[];return(0,h.jsxs)(u.Box,{flexDirection:`column`,marginBottom:1,children:[(0,h.jsx)(u.Text,{color:`cyan`,bold:!0,children:`Viewing ${i.title}`}),(0,h.jsxs)(u.Text,{dimColor:!0,children:[i.statusLabel,i.subtitle?` · ${i.subtitle}`:``,i.preview?` · ${i.preview}`:``]}),n?(0,h.jsx)(u.Text,{dimColor:!0,children:`Loading workspace detail...`}):null,r?(0,h.jsx)(u.Text,{color:`red`,children:r}):null,!n&&!r&&a.length===0?(0,h.jsx)(u.Text,{dimColor:!0,children:`No detail yet`}):null,!n&&!r&&a.map(e=>(0,h.jsx)(u.Text,{color:Zn(e.kind),children:Fn(e)},e.id)),t?.nextCursor?(0,h.jsx)(u.Text,{dimColor:!0,children:`... more detail available`}):null]})}function Zn(e){if(e===`error`)return`red`;if(e===`result`)return`green`;if(e===`process_output`)return`white`;if(e===`group_summary`)return`cyan`}function Qn({message:e}){return(0,h.jsx)(u.Box,{paddingX:1,marginBottom:1,children:(0,h.jsx)(u.Text,{color:`yellow`,children:e})})}function $n(e){let[t,n]=(0,c.useState)(e.resumeSessionId),[r,i]=(0,c.useState)(e.showSessionPickerOnStart??!1);return(0,h.jsx)(te,{value:e.cliAdapter,children:(0,h.jsx)(er,{...e,showSessionPickerOnStart:r,resumeSessionId:t,onSessionSwitch:e=>{i(!1),n(e)}},t??`__new__`)})}function er(e){let t=e.cwd,{interactiveSession:n,registry:r,commandEffectQueue:i,history:a,addEntry:o,streamingText:s,activeTools:l,isThinking:p,isAborting:m,isShuttingDown:g,pendingPrompt:_,executionWorkspaceSnapshot:v,selectedExecutionEntryId:y,selectExecutionWorkspaceEntry:b,readExecutionWorkspaceDetail:x,permissionRequest:S,contextState:C,handleSubmit:w,handleAbort:T,handleCancelQueue:E,handleShutdown:D}=k({cwd:t,provider:e.provider,permissionMode:e.permissionMode,maxTurns:e.maxTurns,sessionStore:e.sessionStore,resumeSessionId:e.resumeSessionId,forkSession:e.forkSession,sessionName:e.sessionName,backgroundTaskRunners:e.backgroundTaskRunners,subagentRunnerFactory:e.subagentRunnerFactory,commandModules:e.commandModules,commandHostAdapters:e.commandHostAdapters,shellExec:e.shellExec,transportRegistry:e.transportRegistry,language:e.language,reloadPluginCommandSource:e.reloadPluginCommandSource,agentName:e.agentName}),O=ee(t),A=e.commandHostAdapters?.plugin??O,{exit:j}=(0,u.useApp)(),[M,N]=(0,c.useState)(e.sessionName),[P,te]=(0,c.useState)(),[F,I]=(0,c.useState)(!1),[L,R]=(0,c.useState)(null),[ie,z]=(0,c.useState)(),[B,V]=(0,c.useState)(!1),[oe,se]=ae(),ce=(0,c.useMemo)(()=>Mn(v),[v]),le=Nn(v),H=(0,c.useMemo)(()=>v?.entries.find(e=>e.id===y),[v,y]),{handleSubmit:ue,pendingModelId:de,pendingInteractionPrompt:U,showPluginTUI:W,showSessionPicker:G,showTransportTUI:K,setShowPluginTUI:fe,setShowSessionPicker:pe,setShowTransportTUI:q,handleModelConfirm:me,handleInteractionSubmit:J,handleInteractionCancel:he}=re({cwd:t,providerOverride:e.providerOverride,interactiveSession:n,commandEffectQueue:i,addEntry:o,baseHandleSubmit:w,setSessionName:N,setStatusLineSettings:se,showSessionPickerOnStart:e.showSessionPickerOnStart,openAgentSwitcher:()=>I(!0)}),Y=!H||H.kind===`main_thread`||H.controls.includes(`send`),ge=H&&H.kind!==`main_thread`?H.title:void 0,_e=(0,c.useMemo)(()=>v?.entries.find(e=>e.kind===`main_thread`)?.id,[v]),ve=(0,c.useCallback)(async e=>{H&&H.kind!==`main_thread`&&H.controls.includes(`send`)?await n.sendAgentJob(H.sourceId,e):await ue(e)},[H,ue,n]);(0,c.useEffect)(()=>{let e=n?.getName?.();e&&!M&&N(e)},[n,M]),(0,c.useEffect)(()=>{let t=!0;return e.startupUpdateNotice?.then(e=>{t&&e!==void 0&&te(e)}).catch(()=>{}),()=>{t=!1}},[e.startupUpdateNotice]),(0,c.useEffect)(()=>{let e=M?`Robota — ${M}`:`Robota`;process.stdout.write(`\x1b]0;${e}\x07`)},[M]),(0,u.useInput)((e,t)=>{!t.escape||!p||S||W||K||G||F||T()}),(0,u.useInput)((e,t)=>{!t.ctrl||e!==`b`||S||W||G||g||I(e=>!e)}),(0,u.useInput)((e,t)=>{!t.escape||p||S||W||K||G||F||H&&H.kind!==`main_thread`&&_e!==void 0&&b(_e)}),(0,u.useInput)((e,t)=>{!t.ctrl||e!==`c`||g||D(`prompt_input_exit`).finally(()=>j())}),(0,c.useEffect)(()=>{let e=()=>{g||D(`other`).finally(()=>j())};return process.once(`SIGINT`,e),process.once(`SIGTERM`,e),()=>{process.off(`SIGINT`,e),process.off(`SIGTERM`,e)}},[D,j,g]),(0,c.useEffect)(()=>{if(!H||H.kind===`main_thread`){R(null),z(void 0),V(!1);return}let e=!0;return V(!0),z(void 0),x(H.id).then(t=>{e&&(R(t),V(!1))}).catch(t=>{e&&(z(t.message),V(!1))}),()=>{e=!1}},[v,x,H]);let X=e.permissionMode??`default`,ye=``;try{let e=n.getSession();X=e.getPermissionMode(),ye=e.getSessionId()}catch{}return(0,h.jsxs)(u.Box,{flexDirection:`column`,children:[(0,h.jsxs)(u.Box,{flexDirection:`column`,paddingX:1,marginBottom:1,children:[(0,h.jsx)(u.Text,{color:`cyan`,bold:!0,children:`
|
|
19
|
-
____ ___ ____ ___ _____ _
|
|
20
|
-
| _ \\ / _ \\| __ ) / _ \\_ _|/ \\
|
|
21
|
-
| |_) | | | | _ \\| | | || | / _ \\
|
|
22
|
-
| _ <| |_| | |_) | |_| || |/ ___ \\
|
|
23
|
-
|_| \\_\\\\___/|____/ \\___/ |_/_/ \\_\\
|
|
24
|
-
`}),(0,h.jsxs)(u.Text,{dimColor:!0,children:[` v`,e.version??`0.0.0`]})]}),P&&(0,h.jsx)(Qn,{message:P}),(0,h.jsxs)(u.Box,{flexDirection:`column`,paddingX:1,flexGrow:1,children:[H&&H.kind!==`main_thread`?(0,h.jsx)(Xn,{entry:H,page:L,loading:B,error:ie}):(0,h.jsx)(Pe,{history:a}),g&&(0,h.jsx)(u.Box,{marginBottom:1,children:(0,h.jsx)(u.Text,{color:`yellow`,children:`Shutting down...`})}),(p||l.length>0)&&(0,h.jsx)(u.Box,{flexDirection:`column`,marginBottom:1,children:(0,h.jsx)(hn,{text:s,activeTools:l,isThinking:p})}),(0,h.jsx)(Wn,{entries:ce})]}),F&&(0,h.jsx)(Gn,{snapshot:v,selectedEntryId:y,onSelect:b,onClose:()=>I(!1)}),S&&(0,h.jsx)(dn,{request:S}),de&&(0,h.jsx)(Yt,{message:ne(de),onSelect:me}),U&&(0,h.jsx)(rn,{prompt:U,onSubmit:J,onCancel:he}),W&&(0,h.jsx)(Tn,{callbacks:A,onClose:()=>fe(!1),addMessage:e=>o((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(e.content)))}),K&&e.transportRegistry&&(0,h.jsx)(On,{registry:e.transportRegistry,onClose:()=>q(!1)}),G&&(0,h.jsx)(kn,{sessions:(0,d.listResumableSessionSummaries)(e.sessionStore,e.cwd),onSelect:t=>{pe(!1),e.onSessionSwitch(t)},onCancel:()=>{pe(!1),o((0,f.messageToHistoryEntry)((0,f.createSystemMessage)(`Session resume cancelled.`)))}}),(0,h.jsx)(Ge,{cwd:t,permissionMode:X,modelId:e.modelId,providerType:e.providerType,sessionId:ye,isThinking:p,activeToolCount:l.length,activeBackgroundTaskCount:le,hasPendingPrompt:_!==null,contextState:C,sessionName:M,settings:oe,activeAgentLabel:ge}),(0,h.jsx)(Bt,{onSubmit:ve,onCancelQueue:E,isDisabled:!!S||W||K||G||F||g||U!==null||p&&!!_||!Y,isAborting:m,pendingPrompt:_,registry:r,sessionName:M,history:a}),(0,h.jsx)(u.Text,{children:` `})]})}async function tr(e){process.on(`unhandledRejection`,e=>{process.stderr.write(`\n[UNHANDLED REJECTION] ${e}\n`),e instanceof Error&&process.stderr.write(`${e.stack}\n`)}),await(0,u.render)((0,h.jsx)($n,{...e}),{exitOnCtrlC:!1}).waitUntilExit()}var nr=class{name=`tui`;defaultEnabled=!0;optionsSchema={};options;constructor(e){this.options=e}attach(e){}async start(){await tr(this.options)}async stop(){}validateOptions(e){return!0}};Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return nr}});
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import e,{createContext as t,useCallback as n,useContext as r,useEffect as i,useMemo as a,useRef as o,useState as s}from"react";import{Box as c,Text as l,render as u,useApp as d,useInput as f,usePaste as p,useStdout as m,useWindowSize as h}from"ink";import{CommandRegistry as g,DEFAULT_STATUS_LINE_COMMAND_SETTINGS as _,InteractiveSession as v,isStatusLineCommandSettingsPatch as y,listResumableSessionSummaries as b}from"@robota-sdk/agent-framework";import{createSystemMessage as x,formatTokenCount as S,getModelName as C,isAssistantMessage as w,isToolMessage as T,messageToHistoryEntry as E}from"@robota-sdk/agent-core";import{marked as D}from"marked";import O from"marked-terminal";import{Fragment as k,jsx as A,jsxs as j}from"react/jsx-runtime";import M from"chalk";import N from"string-width";function P(e,t,r,i,a){return n(async n=>{if(!n.startsWith(`/`)){await e.submit(n),r.setPendingPrompt(e.getPendingPrompt());return}let o=n.slice(1).split(/\s+/),s=o[0]?.toLowerCase()??``,c=o.slice(1).join(` `),l=await e.executeCommand(s,c);if(l){if(l.effects?.some(e=>e.type===`session-execution-started`)){r.setPendingPrompt(e.getPendingPrompt());return}F(l,e,t,r,i,a);return}r.addEntry(E(x(`Unknown command "/${s}". Type /help for help.`)))},[e,t,r,i,a])}function F(e,t,n,r,i,a){let o=I(e.effects,n,r,a);if(r.addEntry(E(x(e.message))),e.interaction!==void 0&&i.enqueueInteraction(e.interaction),o.length>0&&i.enqueueEffects(o),t.isInitialized){let e=t.getContextState();r.setContextState({percentage:e.usedPercentage,usedTokens:e.usedTokens,maxTokens:e.maxTokens})}}function I(e,t,n,r){if(e===void 0||e.length===0)return[];let i=[];for(let a of e){if(a.type===`conversation-history-cleared`){n.clearHistory();continue}if(a.type===`plugin-registry-reload-requested`){r?.(t);continue}i.push(a)}return i}function ee(){let[e,t]=s(null),r=o([]),i=o(!1),a=n(()=>{if(i.current)return;let e=r.current[0];if(!e){t(null);return}i.current=!0,t({toolName:e.toolName,toolArgs:e.toolArgs,resolve:n=>{r.current.shift(),i.current=!1,t(null),e.resolve(n),setTimeout(()=>a(),0)}})},[]);return{permissionHandler:n((e,t)=>new Promise(n=>{r.current.push({toolName:e,toolArgs:t,resolve:n}),a()}),[a]),permissionRequest:e}}function L(e,t){let n=null;return{schedule(){n||=setTimeout(()=>{n=null,e()},t)},flush(){n&&=(clearTimeout(n),null)}}}var R=class{history=[];streamingText=``;activeTools=[];isThinking=!1;isAborting=!1;pendingPrompt=null;contextState={percentage:0,usedTokens:0,maxTokens:0};executionWorkspaceSnapshot=null;selectedExecutionEntryId;onChange=null;streamBuf=``;debouncedStreamNotify=L(()=>this.notify(),300);notify(){this.onChange?.()}onTextDelta=e=>{this.streamBuf+=e,this.streamingText=this.streamBuf,this.debouncedStreamNotify.schedule()};onToolStart=e=>{this.activeTools=[...this.activeTools,e],this.notify()};onToolEnd=e=>{let t=this.activeTools.findLastIndex(t=>t.toolName===e.toolName&&t.isRunning);if(t!==-1){let n=[...this.activeTools];n[t]=e,this.activeTools=n}this.notify()};onThinking=e=>{this.isThinking=e,e?(this.debouncedStreamNotify.flush(),this.streamBuf=``,this.streamingText=``,this.activeTools=[]):this.isAborting=!1,this.notify()};onComplete=e=>{this.debouncedStreamNotify.flush(),this.streamBuf=``,this.streamingText=``,this.activeTools=[],this.contextState={percentage:e.contextState.usedPercentage,usedTokens:e.contextState.usedTokens,maxTokens:e.contextState.maxTokens},this.notify()};onInterrupted=()=>{this.debouncedStreamNotify.flush(),this.streamBuf=``,this.streamingText=``,this.activeTools=[],this.notify()};onError=()=>{this.debouncedStreamNotify.flush(),this.streamBuf=``,this.streamingText=``,this.activeTools=[],this.notify()};onContextUpdate=e=>{this.setContextState({percentage:e.usedPercentage,usedTokens:e.usedTokens,maxTokens:e.maxTokens})};syncHistory(e){e.length!==0&&(this.history=e.length>100?e.slice(-100):[...e],this.notify())}addEntry(e){let t=[...this.history,e];this.history=t.length>100?t.slice(-100):t,this.notify()}clearHistory(){this.history=[],this.debouncedStreamNotify.flush(),this.streamBuf=``,this.streamingText=``,this.activeTools=[],this.notify()}setPendingPrompt(e){this.pendingPrompt=e,this.notify()}setAborting(e){this.isAborting=e,this.notify()}setContextState(e){this.contextState=e,this.notify()}syncExecutionWorkspaceSnapshot(e){let t=this.selectedExecutionEntryId,n=t!==void 0&&e.entries.some(e=>e.id===t)?t:e.selectedEntryId??e.entries[0]?.id;this.executionWorkspaceSnapshot={...e,...n?{selectedEntryId:n}:{}},this.selectedExecutionEntryId=n,this.notify()}selectExecutionWorkspaceEntry(e){this.executionWorkspaceSnapshot?.entries.some(t=>t.id===e)&&(this.selectedExecutionEntryId=e,this.executionWorkspaceSnapshot={...this.executionWorkspaceSnapshot,selectedEntryId:e},this.notify())}},z=class{queue=[];enqueueInteraction(e){this.queue.push({type:`interaction`,interaction:e})}enqueueEffects(e){e.length!==0&&this.queue.push({type:`effects`,effects:[...e]})}drain(){return this.queue.shift()}clear(){this.queue.length=0}};function B(e,t){let n=new v({cwd:e.cwd,provider:e.provider,permissionMode:e.permissionMode,maxTurns:e.maxTurns,permissionHandler:t,sessionStore:e.sessionStore,resumeSessionId:e.resumeSessionId,forkSession:e.forkSession,sessionName:e.sessionName,backgroundTaskRunners:e.backgroundTaskRunners,subagentRunnerFactory:e.subagentRunnerFactory,commandModules:e.commandModules,commandHostAdapters:e.commandHostAdapters,shellExec:e.shellExec,language:e.language,agentName:e.agentName}),r=new g;for(let t of e.commandModules??[])r.addModule(t);return e.reloadPluginCommandSource?.(r),{interactiveSession:n,registry:r,manager:new R,commandEffectQueue:new z}}function V(e,t){t.syncHistory(e.getFullHistory())}function H(e,t){t.syncHistory(e.getFullHistory())}function U(e,t){try{t.syncExecutionWorkspaceSnapshot(e.getExecutionWorkspaceSnapshot({selectedEntryId:t.selectedExecutionEntryId}))}catch{}}function te(e){let[,t]=s(0),[r,a]=s(!1),{permissionHandler:o,permissionRequest:c}=ee(),[l]=s(()=>B(e,o)),{interactiveSession:u,registry:d,manager:f,commandEffectQueue:p}=l;if(f.onChange=()=>t(e=>e+1),f.history.length===0){let e=u.getFullHistory();e.length>0&&f.syncHistory(e)}i(()=>{if(!e.transportRegistry)return;let t=e.transportRegistry;return t.startAll(u).catch(()=>void 0),()=>{t.stopAll().catch(()=>void 0)}},[u,e.transportRegistry]),i(()=>{let e=()=>V(u,f),t=()=>H(u,f),n=e=>f.syncExecutionWorkspaceSnapshot(e.snapshot);u.on(`text_delta`,f.onTextDelta),u.on(`tool_start`,f.onToolStart),u.on(`tool_end`,f.onToolEnd),u.on(`thinking`,f.onThinking),u.on(`complete`,f.onComplete),u.on(`interrupted`,f.onInterrupted),u.on(`error`,f.onError),u.on(`context_update`,f.onContextUpdate),u.on(`compact`,e),u.on(`skill_activation`,t),u.on(`execution_workspace_event`,n);let r=setInterval(()=>{try{let e=u.getContextState();f.setContextState({percentage:e.usedPercentage,usedTokens:e.usedTokens,maxTokens:e.maxTokens});let t=u.getFullHistory();t.length>0&&f.syncHistory(t),U(u,f),clearInterval(r)}catch{}},200);return()=>{clearInterval(r),u.off(`text_delta`,f.onTextDelta),u.off(`tool_start`,f.onToolStart),u.off(`tool_end`,f.onToolEnd),u.off(`thinking`,f.onThinking),u.off(`complete`,f.onComplete),u.off(`interrupted`,f.onInterrupted),u.off(`error`,f.onError),u.off(`context_update`,f.onContextUpdate),u.off(`compact`,e),u.off(`skill_activation`,t),u.off(`execution_workspace_event`,n)}},[u,f]),i(()=>{f.syncHistory(u.getFullHistory()),U(u,f),f.isThinking||f.setPendingPrompt(u.getPendingPrompt())},[f.isThinking,u,f]);let m=P(u,d,f,p,e.reloadPluginCommandSource),h=n(()=>{f.setAborting(!0),u.abort()},[u,f]),g=n(()=>{u.cancelQueue(),f.setPendingPrompt(null)},[u,f]),_=n(async(e=`prompt_input_exit`)=>{r||(a(!0),f.addEntry(E(x(`Shutting down...`))),await u.shutdown({reason:e,message:`CLI shutdown`}))},[u,f,r]),v=n(e=>f.selectExecutionWorkspaceEntry(e),[f]),y=n(e=>u.readExecutionWorkspaceDetail(e),[u]);return{interactiveSession:u,registry:d,commandEffectQueue:p,history:f.history,addEntry:e=>f.addEntry(e),streamingText:f.streamingText,activeTools:f.activeTools,isThinking:f.isThinking,isAborting:f.isAborting,isShuttingDown:r,pendingPrompt:f.pendingPrompt,executionWorkspaceSnapshot:f.executionWorkspaceSnapshot,selectedExecutionEntryId:f.selectedExecutionEntryId,permissionRequest:c,contextState:f.contextState,handleSubmit:m,handleAbort:h,handleCancelQueue:g,handleShutdown:_,selectExecutionWorkspaceEntry:v,readExecutionWorkspaceDetail:y}}function W(){return{listInstalled:async()=>[],listAvailablePlugins:async()=>[],install:async()=>void 0,uninstall:async()=>void 0,enable:async()=>void 0,disable:async()=>void 0,marketplaceAdd:async()=>``,marketplaceRemove:async()=>void 0,marketplaceUpdate:async()=>void 0,marketplaceList:async()=>[],reloadPlugins:async()=>({loadedPluginCount:0})}}function ne(e){return a(()=>W(),[])}function G(e,t){for(let n of e){if(n.type===`model-change-requested`)return t.requestModelChange(n.modelId),!0;if(n.type===`language-change-requested`)return re(n.language,t),!0;if(n.type===`settings-reset-requested`)return ie(t),!0;if(n.type===`session-exit-requested`)return t.requestShutdown(n.reason??`prompt_input_exit`,n.message??`User requested exit`),!0;if(n.type===`session-restart-requested`)return t.requestShutdown(n.reason,n.message),!0;if(n.type===`plugin-tui-requested`)return t.openPluginTUI(),!0;if(n.type===`settings-tui-requested`)return t.openTransportTUI(),!0;if(n.type===`agent-switcher-requested`)return t.openAgentSwitcher(),!0;if(n.type===`session-picker-requested`)return t.openSessionPicker(),!0;if(n.type===`session-renamed`)return t.renameSession(n.name),!0;if(n.type===`statusline-settings-patch`&&y(n.patch))return t.applyStatusLinePatch(n.patch)}return!1}function re(e,t){let n=t.cliAdapter.getUserSettingsPath(),r=t.cliAdapter.readSettings(n);r.language=e,t.cliAdapter.writeSettings(n,r),t.addEntry(E(x(`Language set to "${e}". Restarting...`))),t.requestShutdown(`other`,`Language change restart`)}function ie(e){let t=e.cliAdapter.getUserSettingsPath();e.cliAdapter.deleteSettings(t)?e.addEntry(E(x(`Deleted ${t}. Exiting...`))):e.addEntry(E(x(`No user settings found.`))),e.requestShutdown(`other`,`Reset settings restart`)}const ae=t(null),K=ae.Provider;function oe(){let e=r(ae);if(!e)throw Error(`TuiCliAdapterContext not provided`);return e}function se(e){return`Change model to ${C(e)}? This will exit the current session so the next session uses it.`}function ce(e){return`Model changed to ${C(e)}. Exiting so the next session uses it.`}function le(e){let t=e.applyModelChange;if(!t){e.addEntry(E(x(`Model change unavailable: no adapter provided.`)));return}let n=e.providerOverride===void 0?void 0:{providerOverride:e.providerOverride};try{t(e.cwd,e.modelId,n),e.addEntry(E(x(ce(e.modelId)))),e.requestShutdown(`other`,`Model change applied`)}catch(t){e.addEntry(E(x(`Failed: ${t instanceof Error?t.message:String(t)}`)))}}function ue(e){e(E(x(`Model change cancelled.`)))}function de({cwd:e,providerOverride:t,interactiveSession:r,commandEffectQueue:i,addEntry:a,baseHandleSubmit:c,setSessionName:l,setStatusLineSettings:u,showSessionPickerOnStart:f,openAgentSwitcher:p}){let{exit:m}=d(),h=oe(),[g,_]=s(null),v=o(null),[y,b]=s(null),S=o(null),[C,w]=s(!1),[T,D]=s(f??!1),[O,k]=s(!1),A=n((e,t)=>{a(E(x(`Shutting down...`))),setTimeout(()=>{r.shutdown({reason:e,message:t}).finally(()=>m())},500)},[r,a,m]),j=n(e=>G(e,{addEntry:a,requestShutdown:A,requestModelChange:e=>{v.current=e,_(e)},openPluginTUI:()=>w(!0),openSessionPicker:()=>D(!0),openTransportTUI:()=>k(!0),openAgentSwitcher:()=>p?.(),renameSession:e=>{r.setName(e),l(e)},applyStatusLinePatch:e=>(u(h.applyStatusLineSettings(h.getUserSettingsPath(),e)),!0),cliAdapter:h}),[a,h,r,A,l,u]),M=n(e=>{if(e.message.length>0&&a(E(x(e.message))),e.interaction!==void 0){S.current=e.interaction,b(e.interaction.prompt);return}S.current=null,b(null),e.effects!==void 0&&e.effects.length>0&&j(e.effects)},[a,j]),N=n(()=>{let e=i.drain();if(e===void 0)return!1;if(e.type===`interaction`){let{interaction:t}=e;return S.current=t,b(t.prompt),!0}return j(e.effects)},[j,i]);return{handleSubmit:n(async e=>{await c(e),N()},[c,N]),pendingModelId:g,pendingInteractionPrompt:y,showPluginTUI:C,showSessionPicker:T,showTransportTUI:O,setPendingModelId:_,setShowPluginTUI:w,setShowSessionPicker:D,setShowTransportTUI:k,handleModelConfirm:n(n=>{let r=v.current;_(null),v.current=null,n===0&&r?le({cwd:e,modelId:r,providerOverride:t,addEntry:a,requestShutdown:A,applyModelChange:(e,t,n)=>(h.applyActiveModelChange(e,t,n),{applied:!0})}):ue(a)},[e,t,a,h,A]),handleInteractionSubmit:n(async e=>{let t=S.current;if(t===null){b(null);return}try{M(await t.submit(e))}catch(e){S.current=null,b(null),a(E(x(`Failed: ${e instanceof Error?e.message:String(e)}`)))}},[a,M]),handleInteractionCancel:n(()=>{let e=S.current;if(S.current=null,b(null),e?.cancel===void 0){a(E(x(`Command interaction cancelled.`)));return}Promise.resolve(e.cancel()).then(e=>M(e)).catch(e=>{a(E(x(`Failed: ${e instanceof Error?e.message:String(e)}`)))})},[a,M])}}function q(e){let t={..._},n=e.statusline;return fe(n)?{enabled:typeof n.enabled==`boolean`?n.enabled:t.enabled,gitBranch:typeof n.gitBranch==`boolean`?n.gitBranch:t.gitBranch}:t}function fe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Date)}function pe(){let e=oe();return s(()=>q(e.readSettings(e.getUserSettingsPath())))}const J=`\x1B[0m`,Y=` `,X=O;function Z(e){return e===void 0?process.env.NO_COLOR||process.env.FORCE_COLOR===`0`?!1:process.env.FORCE_COLOR?!0:!!process.stdout.isTTY:e}function Q(e){return e?.trim().toLowerCase()===`diff`}function me(e,t,n){let r=`${Y}${e}`.padEnd(t);return n?e.startsWith(`+`)?`[48;5;22m[38;5;120m${r}${J}`:e.startsWith(`-`)?`[48;5;52m[38;5;210m${r}${J}`:r.trimEnd():r.trimEnd()}function he(e,t,n){if(e.startsWith(`+`)||e.startsWith(`-`))return me(e,n,t);let r=`${Y}${e}`;return t?e.startsWith(`@@`)?`[36m${r}${J}`:e.startsWith(`diff `)||e.startsWith(`index `)?`[2m${r}${J}`:r:r}function ge(e,t){let n=e.reduce((e,t)=>Math.max(e,4+t.length),0);return t===void 0?n:Math.max(n,t)}function _e(e,t,n){let r=e.split(`
|
|
2
|
-
`),i=ge(r,n);return`${r.map(e=>he(e,t,i)).join(`
|
|
3
|
-
`)}\n\n`}function ve(e,t){let n=new X(void 0,{ignoreIllegals:!0}),r=n.code.bind(n);return n.code=(n,i,a)=>Q(i)?_e(n,e,t):r(n,i,a),n}function ye(e,t={}){let n=D.parse(e,{renderer:ve(Z(t.color),t.codeBlockWidth)});return typeof n==`string`?n.trimEnd():e}function be(e){let t=e.lines.length>12?Se(e.lines):e.lines,n=Math.max(...t.map(e=>e.lineNumber),0).toString().length,r=t.map(e=>xe(e,n)),i=e.lines.length>12;return{file:e.file,markdown:["```diff",...r,"```"].join(`
|
|
4
|
-
`),truncated:i,remainingLineCount:i?e.lines.length-t.length:0}}function xe(e,t){if(e.type===`hunk`)return e.text;let n=e.lineNumber.toString().padStart(t,` `);return e.type===`remove`?`- ${n} | ${e.text}`:e.type===`add`?`+ ${n} | ${e.text}`:` ${n} | ${e.text}`}function Se(e){let t=Ce(e),n=[];for(let e of t){if(n.length===0&&e.length>10)return e.slice(0,10);if(n.length+e.length>10)break;n.push(...e)}return n.length>0?n:e.slice(0,10)}function Ce(e){let t=[],n=[];for(let r of e){if(r.type===`hunk`&&n.length>0){t.push(n),n=[r];continue}n.push(r)}return n.length>0&&t.push(n),t}function we({file:e,lines:t}){let n=be({file:e,lines:t});return j(c,{flexDirection:`column`,marginLeft:4,children:[n.file&&j(l,{color:`white`,dimColor:!0,children:[`│ `,n.file]}),A(l,{children:ye(n.markdown)}),n.truncated&&j(l,{color:`white`,dimColor:!0,children:[`│ ... and `,n.remainingLineCount,` more lines`]})]})}function Te({entry:e}){let t=e.data;if(!t)return A(k,{});let n=t.promptTokens===void 0?`?`:Ee(t.promptTokens),r=t.completionTokens===void 0?`?`:Ee(t.completionTokens),i=Ee(t.totalTokens),a=`${Math.round(t.contextUsedPercentage)}% (${S(t.contextUsedTokens)}/${S(t.contextMaxTokens)})`,o=t.costStatus===`unknown`?`cost unknown`:`cost ${t.costStatus}`;return A(c,{flexDirection:`column`,marginBottom:1,children:j(c,{children:[j(l,{color:`white`,bold:!0,children:[`Usage:`,` `]}),j(l,{dimColor:!0,children:[t.kind,` `,i,` tokens (in `,n,` / out `,r,`) · Context `,a,` ·`,` `,o]})]})})}function Ee(e){return e<1e3?e.toLocaleString():S(e)}const De=new Set([`Bash`,`BackgroundProcess`]);function Oe(e){if(!De.has(e.toolName)||!e.toolResultData)return;let t=ke(e.toolResultData),n=Le(t,`exitCode`),r=Re(t,`success`),i=Ne(Me(Ae(e.toolResultData,t))),a=i.slice(0,4),o=Math.max(0,i.length-a.length),s=e.result===`error`||r===!1||n!==void 0&&n!==0;return{status:s?`error`:`success`,statusLabel:je(s,n),previewLines:a,omittedLineCount:o,transcriptHint:o>0?`... +${o} lines (full output in session transcript)`:void 0}}function ke(e){try{return JSON.parse(e)}catch{return e}}function Ae(e,t){if(!Fe(t))return e;let n=Ie(t,`output`);if(n!==void 0)return n;let r=Ie(t,`stdout`),i=Ie(t,`stderr`),a=Ie(t,`error`),o=[];return r&&o.push(r),i&&o.push(Pe(i,`[stderr] `)),!r&&!i&&a&&o.push(a),o.join(`
|
|
5
|
-
`)}function je(e,t){return t!==void 0&&t!==0?`exit ${t}`:e?`error`:`ok`}function Me(e){return e?e.replace(/\r\n/g,`
|
|
6
|
-
`).split(`
|
|
7
|
-
`):[]}function Ne(e){let t=e.length;for(;t>0&&e[t-1].trim().length===0;)--t;return e.slice(0,t)}function Pe(e,t){return Me(e).map(e=>`${t}${e}`).join(`
|
|
8
|
-
`)}function Fe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof Date)}function Ie(e,t){if(!Fe(e))return;let n=e[t];return typeof n==`string`?n:void 0}function Le(e,t){if(!Fe(e))return;let n=e[t];return typeof n==`number`&&Number.isFinite(n)?n:void 0}function Re(e,t){if(!Fe(e))return;let n=e[t];return typeof n==`boolean`?n:void 0}function ze({tool:e}){let t=Oe(e);if(!t||t.statusLabel===`ok`&&t.previewLines.length===0&&!t.transcriptHint)return null;let n=t.status===`error`?`red`:`white`;return j(c,{flexDirection:`column`,marginLeft:4,children:[t.statusLabel!==`ok`&&A(l,{color:n,dimColor:!0,children:t.statusLabel}),t.previewLines.map((e,t)=>A(l,{color:n,dimColor:!0,children:e},`${e}-${t}`)),t.transcriptHint&&A(l,{dimColor:!0,children:t.transcriptHint})]})}function Be(e){return Oe(e)?.status===`error`?`✗`:e.isRunning?`⟳`:e.result===`error`?`✗`:e.result===`denied`?`⊘`:`✓`}function Ve(e){return Oe(e)?.status===`error`||e.result===`error`?`red`:e.isRunning||e.result===`denied`?`yellow`:`green`}function He(e){return`${Be(e)} ${e.toolName}${e.firstArg?`(${e.firstArg})`:``}`}function Ue({role:e}){switch(e){case`user`:return j(l,{color:`green`,bold:!0,children:[`You:`,` `]});case`assistant`:return j(l,{color:`cyan`,bold:!0,children:[`Robota:`,` `]});case`system`:return j(l,{color:`yellow`,bold:!0,children:[`System:`,` `]});case`tool`:return j(l,{color:`white`,bold:!0,children:[`Tool:`,` `]})}}function We({message:e}){if(!T(e))return A(k,{});let t=e.name,n=e.content,r=null;try{let e=JSON.parse(n);Array.isArray(e)&&e.length>0&&typeof e[0].line==`string`&&(r=e)}catch{}if(r)return j(c,{flexDirection:`column`,marginBottom:1,children:[j(c,{children:[j(l,{color:`white`,bold:!0,children:[`Tool:`,` `]}),t&&j(l,{color:`white`,dimColor:!0,children:[`[`,t,`]`]})]}),A(l,{children:` `}),r.map((e,t)=>j(c,{flexDirection:`column`,children:[j(l,{color:`green`,children:[` `,`✓`,` `,e.line]}),e.diffLines&&e.diffLines.length>0&&A(we,{file:e.diffFile,lines:e.diffLines})]},t))]});let i=n.split(`
|
|
9
|
-
`).filter(e=>e.trim());return j(c,{flexDirection:`column`,marginBottom:1,children:[j(c,{children:[j(l,{color:`white`,bold:!0,children:[`Tool:`,` `]}),t&&j(l,{color:`white`,dimColor:!0,children:[`[`,t,`]`]})]}),A(l,{children:` `}),i.map((e,t)=>j(l,{color:`green`,children:[` `,`✓`,` `,e]},t))]})}const Ge=e.memo(function({message:e}){if(T(e))return A(We,{message:e});let t=e.content??``,n=e.state===`interrupted`;return j(c,{flexDirection:`column`,marginBottom:1,children:[A(c,{children:A(Ue,{role:e.role})}),A(l,{children:` `}),A(c,{marginLeft:2,children:A(l,{wrap:`wrap`,children:w(e)?ye(t+(n?`
|
|
10
|
-
|
|
11
|
-
_(interrupted)_`:``)):t})})]})});function Ke({entry:e}){let t=e.data,n=t?.tools,r=t?.summary?.split(`
|
|
12
|
-
`)??[];return n&&n.length>0?j(c,{flexDirection:`column`,marginBottom:1,children:[A(c,{children:j(l,{color:`white`,bold:!0,children:[`Tool:`,` `]})}),A(l,{children:` `}),n.map((e,t)=>j(c,{flexDirection:`column`,children:[j(l,{color:Ve(e),children:[` `,He(e)]}),A(ze,{tool:e}),e.diffLines&&e.diffLines.length>0&&A(we,{file:e.diffFile,lines:e.diffLines})]},t))]}):j(c,{flexDirection:`column`,marginBottom:1,children:[A(c,{children:j(l,{color:`white`,bold:!0,children:[`Tool:`,` `]})}),A(l,{children:` `}),r.map((e,t)=>j(l,{color:`green`,children:[` `,e]},t))]})}function qe({entry:e}){let t=e.data,n=typeof t?.message==`string`?t.message:typeof t?.content==`string`?t.content:e.type;return j(c,{flexDirection:`column`,marginBottom:1,children:[A(c,{children:j(l,{color:`yellow`,bold:!0,children:[`System:`,` `]})}),A(l,{children:` `}),A(c,{marginLeft:2,children:A(l,{wrap:`wrap`,children:n})})]})}function Je({entry:e}){if(e.category===`chat`){let t=e.data;return A(Ge,{message:t})}return e.type===`tool-summary`?A(Ke,{entry:e}):e.type===`usage-summary`?A(Te,{entry:e}):e.type===`tool-start`||e.type===`tool-end`?A(k,{}):A(qe,{entry:e})}function Ye({history:e}){return A(c,{flexDirection:`column`,children:e.map(e=>A(Je,{entry:e},e.id))})}function Xe(e){let t=Ze(e),n=e.hasPendingPrompt&&t.kind!==`queued`?[`queued`]:[],r=[t.label,...n].join(` · `);return{...t,segments:n,text:r}}function Ze(e){return e.activeToolCount>0?{kind:`tools`,label:`Tools x${e.activeToolCount}`,color:`cyan`}:e.isThinking?{kind:`thinking`,label:`Thinking`,color:`yellow`}:e.activeBackgroundTaskCount>0?{kind:`background`,label:`Background x${e.activeBackgroundTaskCount}`,color:`cyan`}:e.hasPendingPrompt?{kind:`queued`,label:`Queued`,color:`yellow`}:{kind:`idle`,label:`Idle`,color:`gray`}}function Qe(e){return e>=90?`red`:e>=70?`yellow`:`green`}function $e({isThinking:e,activeToolCount:t,activeBackgroundTaskCount:n,hasPendingPrompt:r}){let i=Xe({isThinking:e,activeToolCount:t,activeBackgroundTaskCount:n,hasPendingPrompt:r});return A(l,{color:i.color,bold:i.kind!==`idle`,children:i.text})}function et({percentage:e,usedTokens:t,maxTokens:n}){return j(l,{color:Qe(e),children:[`Context: `,Math.round(e),`% (`,S(t),`/`,S(n),`)`]})}function tt({permissionMode:e}){return j(k,{children:[A(l,{color:`cyan`,bold:!0,children:`Mode:`}),` `,A(l,{children:e})]})}function nt(e){return e!==`default`}function rt({modelName:e,providerDisplayName:t}){return t===void 0?A(l,{dimColor:!0,children:e}):j(l,{dimColor:!0,children:[t,` `,e]})}function it(e){let t=e.showGitBranch&&e.gitBranch!==void 0&&e.gitBranch.length>0,n=nt(e.permissionMode);return j(l,{children:[A($e,{isThinking:e.isThinking,activeToolCount:e.activeToolCount,activeBackgroundTaskCount:e.activeBackgroundTaskCount,hasPendingPrompt:e.hasPendingPrompt}),n&&j(k,{children:[` | `,A(tt,{permissionMode:e.permissionMode})]}),e.sessionName&&j(k,{children:[` | `,A(l,{color:`magenta`,children:e.sessionName})]}),t&&j(k,{children:[` | `,j(l,{dimColor:!0,children:[`git: `,e.gitBranch]})]}),` | `,A(rt,{modelName:e.modelName,providerDisplayName:e.providerDisplayName}),` | `,A(et,{percentage:e.contextPercentage,usedTokens:e.contextUsedTokens,maxTokens:e.contextMaxTokens})]})}function at({permissionMode:e,modelName:t,providerDisplayName:n,sessionId:r,isThinking:i,activeToolCount:a=0,activeBackgroundTaskCount:o=0,hasPendingPrompt:s=!1,contextPercentage:u,contextUsedTokens:d,contextMaxTokens:f,sessionName:p,gitBranch:m,showGitBranch:h=!0,activeAgentLabel:g}){return j(c,{borderStyle:`single`,borderColor:`gray`,paddingLeft:1,paddingRight:1,justifyContent:`space-between`,children:[A(it,{permissionMode:e,modelName:t,providerDisplayName:n,isThinking:i,activeToolCount:a,activeBackgroundTaskCount:o,hasPendingPrompt:s,contextPercentage:u,contextUsedTokens:d,contextMaxTokens:f,sessionName:p,gitBranch:m,showGitBranch:h}),g!==void 0&&j(l,{color:`yellow`,bold:!0,children:[`[`,g,`]`]})]})}function ot({cwd:e,permissionMode:t,modelId:n,providerType:r,sessionId:i,isThinking:o,activeToolCount:s,activeBackgroundTaskCount:c,hasPendingPrompt:l,contextState:u,sessionName:d,settings:f,activeAgentLabel:p}){let m=oe(),h=a(()=>m.getGitBranch(e),[m,e]),g=a(()=>r===void 0?void 0:m.getProviderDisplayName(r),[m,r]);return f.enabled?A(at,{permissionMode:t,modelName:n??``,providerDisplayName:g,sessionId:i,isThinking:o,activeToolCount:s,activeBackgroundTaskCount:c,hasPendingPrompt:l,contextPercentage:u.percentage,contextUsedTokens:u.usedTokens,contextMaxTokens:u.maxTokens,sessionName:d,gitBranch:h,showGitBranch:f.gitBranch,activeAgentLabel:p}):null}const st=`[200~`,ct=`[201~`;function lt(e){return{value:e,cursor:e.length,isPasting:!1,pasteBuffer:``}}function ut(e,t,n){return t===e.value?e:{...e,value:t,cursor:n==null?t.length:Math.min(n,t.length)}}function dt(e,t,n,r){let i=pt(e,t,r);if(i!==void 0)return i;let a=mt(e,t,n,r);if(a!==void 0)return a;let o=ht(e,n,r);return o===void 0?Tt(e,t):o}function ft(e,t,n){let r=t.replace(/\r\n?/g,`
|
|
13
|
-
`);return r.length===0?{state:e,effect:{type:`none`}}:r.includes(`
|
|
14
|
-
`)&&n.canPaste?{state:e,effect:{type:`paste`,text:r,cursor:e.cursor}}:Tt(e,r)}function pt(e,t,n){if(t===st||t.startsWith(st))return bt(e,t);if(e.isPasting)return xt(e,t,n)}function mt(e,t,n,r){if(n.ctrl===!0&&t===`c`||n.tab===!0)return{state:e,effect:{type:`none`}};if(n.return===!0)return{state:e,effect:{type:`submit`,value:e.value}};if(t.length>1&&(t.includes(`
|
|
15
|
-
`)||t.includes(`\r`))&&r.canPaste)return{state:e,effect:{type:`paste`,text:t.replace(/\r\n?/g,`
|
|
16
|
-
`),cursor:e.cursor}}}function ht(e,t,n){if(t.upArrow===!0||t.downArrow===!0)return n.enableVerticalNavigation===!1?{state:e,effect:{type:`none`}}:St(e,t.upArrow===!0?`up`:`down`,n.availableWidth);if(t.leftArrow===!0)return Ct(e,`left`);if(t.rightArrow===!0)return Ct(e,`right`);if(t.backspace===!0||t.delete===!0)return wt(e)}function gt(e){if(!e||e.length===0)return``;let t=``;for(let n of e){let e=n.charCodeAt(0);e>31&&e!==127&&(t+=n)}return t}function _t(e,t,n){return{value:e.slice(0,t)+n+e.slice(t),cursor:t+n.length}}function vt(e,t,n){let r=0;for(let i=0;i<t&&i<e.length;i++){let t=N(e[i]),a=r%n;a+t>n&&(r+=n-a),r+=t}return r}function yt(e,t,n){let r=0;for(let i=0;i<e.length;i++){if(r>=t)return i;let a=N(e[i]),o=r%n;o+a>n&&(r+=n-o),r+=a}return e.length}function bt(e,t){return{state:{...e,isPasting:!0,pasteBuffer:t.slice(5)},effect:{type:`none`}}}function xt(e,t,n){if(t!==ct&&!t.includes(ct))return{state:{...e,pasteBuffer:e.pasteBuffer+t},effect:{type:`none`}};let r=t.split(ct)[0]??``;return ft({...e,isPasting:!1,pasteBuffer:``},e.pasteBuffer+r,n)}function St(e,t,n){if(!n||n<=0)return{state:e,effect:{type:`none`}};let r=[...e.value],i=vt(r,e.cursor,n),a=t===`up`?i-n:i+n;if(a<0)return{state:e,effect:{type:`none`}};let o=yt(r,a,n);return o===e.cursor?{state:e,effect:{type:`none`}}:{state:{...e,cursor:o},effect:{type:`render`}}}function Ct(e,t){return t===`left`&&e.cursor>0?{state:{...e,cursor:e.cursor-1},effect:{type:`render`}}:t===`right`&&e.cursor<e.value.length?{state:{...e,cursor:e.cursor+1},effect:{type:`render`}}:{state:e,effect:{type:`none`}}}function wt(e){if(e.cursor===0)return{state:e,effect:{type:`none`}};let t=e.value.slice(0,e.cursor-1)+e.value.slice(e.cursor);return{state:{...e,value:t,cursor:e.cursor-1},effect:{type:`change`,value:t}}}function Tt(e,t){let n=gt(t);if(n.length===0)return{state:e,effect:{type:`none`}};let r=_t(e.value,e.cursor,n);return{state:{...e,value:r.value,cursor:r.cursor},effect:{type:`change`,value:r.value}}}function Et({value:e,onChange:t,onSubmit:n,onPaste:r,placeholder:i=``,focus:a=!0,showCursor:c=!0,availableWidth:u,cursorHint:d=null,enableVerticalNavigation:f=!0}){let p=o(lt(e)),[,m]=s(0);return p.current=ut(p.current,e,d),Dt({stateRef:p,onChange:t,onSubmit:n,onPaste:r,availableWidth:u,focus:a,enableVerticalNavigation:f,forceRender:m}),A(l,{children:jt(p.current.value,p.current.cursor,i,c&&a)})}function Dt(e){p(t=>{kt(e,()=>ft(e.stateRef.current,t,Ot(e)))},{isActive:e.focus}),f((t,n)=>{kt(e,()=>dt(e.stateRef.current,t,n,Ot(e)))},{isActive:e.focus})}function Ot(e){return{availableWidth:e.availableWidth,canPaste:e.onPaste!==void 0,enableVerticalNavigation:e.enableVerticalNavigation}}function kt(e,t){try{let n=t();e.stateRef.current=n.state,At(n.effect,e.onChange,e.onSubmit,e.onPaste,e.forceRender)}catch{}}function At(e,t,n,r,i){e.type===`change`?t(e.value):e.type===`submit`?n?.(e.value):e.type===`paste`?r?.(e.text,e.cursor):e.type===`render`&&i(e=>e+1)}function jt(e,t,n,r){if(!r)return e.length>0?e:n?M.gray(n):``;if(e.length===0)return n.length>0?M.inverse(n[0])+M.gray(n.slice(1)):M.inverse(` `);let i=[...e],a=``;for(let e=0;e<i.length;e++){let n=i[e]??``;a+=e===t?M.inverse(n):n}return t>=i.length&&(a+=M.inverse(` `)),a}const Mt=[`#666666`,`#888888`,`#aaaaaa`,`#888888`];function Nt({text:e}){let[t,n]=s(0);return i(()=>{let e=setInterval(()=>{n(e=>e+1)},400);return()=>clearInterval(e)},[]),A(l,{children:[...e].map((e,n)=>A(l,{color:Mt[(t+Math.floor(n/4))%Mt.length],children:e},n))})}function Pt(){let{stdout:e}=m(),t=()=>Math.max(40,(e.columns??80)-4),[n,r]=s(t);return i(()=>{let n=()=>r(t());return e.on(`resize`,n),()=>{e.off(`resize`,n)}},[e]),n}function Ft(e,t){return e.length>t?`${e.slice(0,t-1)}…`:e.padEnd(t)}function It(e){let{cmd:t,isSelected:n,showSlash:r,rowWidth:i,nameColWidth:a}=e,o=n?`▸ `:` `,s=n?`cyan`:void 0,u=!n,d=Ft(t.displayName??t.name,a);return A(c,{width:i,children:A(l,{color:s,dimColor:u,wrap:`truncate-end`,children:r?`${o}/${d} ${t.description??``}`:`${o}${d} ${t.description??``}`})})}function Lt({commands:e,selectedIndex:t,visible:n,isSubcommandMode:r}){let i=Pt();if(!n||e.length===0)return null;let a=Rt(t,e.length),o=e.slice(a,a+8),s=Math.min(20,Math.max(...o.map(e=>(e.displayName??e.name).length)));return A(c,{flexDirection:`column`,borderStyle:`round`,borderColor:`gray`,paddingX:1,children:o.map((e,n)=>A(It,{cmd:e,isSelected:a+n===t,showSlash:!r,rowWidth:i,nameColWidth:s},e.name))})}function Rt(e,t){if(t<=8||e<8)return 0;let n=t-8;return Math.min(e-8+1,n)}const zt=/\[Pasted text #(\d+)(?: \+\d+ lines)?\]/g;function Bt(e,t){return e.replace(zt,(e,n)=>t.get(Number(n))??``)}function Vt(e){if(!e.startsWith(`/`))return{isSlash:!1,parentCommand:``,filter:``};let t=e.slice(1),n=t.indexOf(` `);return n===-1?{isSlash:!0,parentCommand:``,filter:t}:{isSlash:!0,parentCommand:t.slice(0,n),filter:t.slice(n+1)}}function Ht(t,n){let[r,i]=s(0),[o,c]=s(!1),l=e.useRef(t);l.current!==t&&(l.current=t,o&&c(!1));let u=Vt(t),d=u.isSlash&&u.parentCommand.length>0,f=a(()=>{if(!n||!u.isSlash||o)return[];if(d){let e=n.getSubcommands(u.parentCommand);if(e.length===0)return[];if(!u.filter)return e;let t=u.filter.toLowerCase();return e.filter(e=>e.name.toLowerCase().startsWith(t))}return n.getCommands(u.filter)},[n,u.isSlash,u.parentCommand,u.filter,o,d]),p=u.isSlash&&f.length>0&&!o;return r>=f.length&&f.length>0&&i(f.length-1),{showPopup:p,filteredCommands:f,selectedIndex:r,setSelectedIndex:i,isSubcommandMode:d,setShowPopup:e=>{c(typeof e==`function`?t=>!e(!t):!e)}}}function Ut(e){if(e.upArrow===!0)return`previous`;if(e.downArrow===!0)return`next`;if(e.escape===!0)return`close`;if(e.tab===!0)return`complete`}function Wt(e){if(e.backspace===!0||e.delete===!0)return`cancelQueue`}function Gt(e){if(e.upArrow===!0)return`previous`;if(e.downArrow===!0)return`next`}function Kt(){return{selectedIndex:null,draft:``}}function qt(e,t,n,r){if(t.length===0)return{value:e,cursorHint:e.length,state:n};if(r===`previous`){let r=n.selectedIndex===null?t.length-1:Math.max(0,n.selectedIndex-1),i=t[r]??e;return{value:i,cursorHint:i.length,state:{selectedIndex:r,draft:n.selectedIndex===null?e:n.draft}}}if(n.selectedIndex===null)return{value:e,cursorHint:e.length,state:n};if(n.selectedIndex<t.length-1){let r=n.selectedIndex+1,i=t[r]??e;return{value:i,cursorHint:i.length,state:{...n,selectedIndex:r}}}return{value:n.draft,cursorHint:n.draft.length,state:Kt()}}function Jt(e,t){let n=t.trim();return n.length===0||e[e.length-1]===n?[...e]:[...e,n]}function Yt(e){let t=[];for(let n of e){if(n.category!==`chat`||n.type!==`user`)continue;let e=n.data;typeof e?.content==`string`&&(t=Jt(t,e.content))}return t}function Xt(e,t,n){return t===0?0:n===`previous`?e>0?e-1:t-1:e<t-1?e+1:0}function Zt(e,t){let n=Vt(e);return n.parentCommand?{type:`insert`,value:`/${n.parentCommand} ${t.name} `}:t.subcommands&&t.subcommands.length>0?{type:`insert`,value:`/${t.name} `,selectedIndex:0}:{type:`insert`,value:`/${t.name} `}}function Qt(e,t){let n=Vt(e);return n.parentCommand?{type:`submit`,value:`/${n.parentCommand} ${t.name}`}:t.subcommands&&t.subcommands.length>0?{type:`insert`,value:`/${t.name} `,selectedIndex:0}:{type:`submit`,value:`/${t.name}`}}function $t(e,t,n,r){let i=r.split(`
|
|
17
|
-
`).length,a=`[Pasted text #${n} +${i} lines]`;return{value:e.slice(0,t)+a+e.slice(t),cursorHint:t+a.length,label:a,lineCount:i}}function en(e){return e.trim().length>0}function tn({onSubmit:e,onCancelQueue:t,isDisabled:r,isAborting:i,pendingPrompt:u,registry:d,sessionName:p,history:m}){let[g,_]=s(``),[v,y]=s(null),[b,x]=s(Kt),[S,C]=s([]),w=a(()=>Yt(m??[]),[m]),T=a(()=>S.reduce((e,t)=>Jt(e,t),w),[w,S]),E=o(new Map),{columns:D}=h(),O=D>0?D:80,k=Math.max(1,O-5),M=o(0),{showPopup:N,filteredCommands:P,selectedIndex:F,setSelectedIndex:I,isSubcommandMode:ee,setShowPopup:L}=Ht(g,d),R=n((e,t)=>{M.current+=1;let n=M.current;E.current.set(n,e),_(r=>{let i=$t(r,t,n,e);return y(i.cursorHint),i.value})},[]),z=n(()=>{x(Kt())},[]),B=n(e=>{C(t=>Jt(t,e))},[]),V=n(t=>{B(t),z(),e(t)},[e,B,z]),H=n(e=>{let t=Zt(g,e);t.type===`insert`&&(_(t.value),t.selectedIndex!==void 0&&I(t.selectedIndex))},[g,I]),U=n(e=>{let t=Qt(g,e);if(t.type===`insert`){_(t.value),t.selectedIndex!==void 0&&I(t.selectedIndex);return}_(``),V(t.value)},[g,V,I]),te=n(e=>{if(!en(e))return;if(N&&P[F]){U(P[F]);return}let t=Bt(e.trim(),E.current);_(``),E.current.clear(),M.current=0,V(t)},[N,P,F,U,V]);f((e,t)=>{if(!N)return;let n=Ut(t);if(n===`previous`||n===`next`)I(e=>Xt(e,P.length,n));else if(n===`close`)L(!1);else if(n===`complete`){let e=P[F];e&&H(e)}},{isActive:N&&!r}),f((e,t)=>{let n=Gt(t);if(!n)return;let r=qt(g,T,b,n);_(r.value),y(r.cursorHint),x(r.state)},{isActive:!N&&!r&&!u}),f((e,n)=>{Wt(n)===`cancelQueue`&&u&&t?.()},{isActive:!!u});let W=i?`yellow`:u?`cyan`:r?`gray`:`green`,ne=Math.max(1,O-2),G=(()=>{if(p){let e=` "${p}" `,t=Math.max(0,ne-e.length-2);return{left:`┌`+`─`.repeat(t),label:e,right:`─`.repeat(2)+`┐`}}return{left:`┌`+`─`.repeat(ne),label:``,right:`┐`}})();return j(c,{flexDirection:`column`,children:[N&&A(Lt,{commands:P,selectedIndex:F,visible:N,isSubcommandMode:ee}),j(l,{color:W,children:[G.left,G.label?A(l,{backgroundColor:W,color:`black`,bold:!0,children:G.label}):null,G.right]}),A(c,{borderStyle:`single`,borderTop:!1,borderColor:W,paddingLeft:1,children:i?A(l,{color:`yellow`,children:` Interrupting...`}):u?j(l,{color:`cyan`,children:[` `,`Queued:`,` `,u.length>50?u.slice(0,47)+`...`:u,` `,A(l,{dimColor:!0,children:`(Backspace to cancel)`})]}):r?A(Nt,{text:` Waiting for response... (ESC to interrupt)`}):j(c,{children:[A(l,{color:`green`,bold:!0,children:`> `}),A(Et,{value:g,onChange:e=>{_(e),z(),y(null)},onSubmit:te,onPaste:R,placeholder:`Type a message or /help`,availableWidth:k,cursorHint:v,enableVerticalNavigation:!1})]})})]})}function $(){return{selectedIndex:0,scrollOffset:0,resolved:!1}}function nn(e){if(e.escape===!0)return`cancel`;if(e.upArrow===!0)return`previous`;if(e.downArrow===!0)return`next`;if(e.return===!0)return`select`}function rn(e){if(e.escape===!0)return`cancel`;if(e.leftArrow===!0||e.upArrow===!0)return`previous`;if(e.rightArrow===!0||e.downArrow===!0)return`next`;if(e.return===!0)return`select`}function an(e,t,n){if(e.resolved)return{state:e,effect:{type:`none`}};if(t===`cancel`)return{state:{...e,resolved:!0},effect:{type:`cancel`}};if(n.enabled===!1||n.itemCount===0)return{state:e,effect:{type:`none`}};if(t===`select`){let t=ln(e.selectedIndex,n.itemCount);return{state:{...e,selectedIndex:t,resolved:!0},effect:{type:`select`,index:t}}}let r=sn(e.selectedIndex,t,n),i=cn(r,e.scrollOffset,n);return{state:{...e,selectedIndex:r,scrollOffset:i},effect:{type:`none`}}}function on(e,t){if(t.itemCount===0)return{...e,selectedIndex:0,scrollOffset:0};let n=ln(e.selectedIndex,t.itemCount),r=cn(n,e.scrollOffset,t);return n===e.selectedIndex&&r===e.scrollOffset?e:{...e,selectedIndex:n,scrollOffset:r}}function sn(e,t,n){return t===`previous`?n.wrap===!0&&e===0?n.itemCount-1:Math.max(0,e-1):n.wrap===!0&&e===n.itemCount-1?0:Math.min(n.itemCount-1,e+1)}function cn(e,t,n){let r=n.maxVisible??n.itemCount;return r<=0?0:e<t?e:e>=t+r?e-r+1:Math.max(0,t)}function ln(e,t){return Math.min(Math.max(e,0),t-1)}function un(e,t,n){let r=rn({...t,escape:!1});if(r!==void 0)return r;if(n===2&&e===`y`)return{type:`shortcut`,index:0};if(n===2&&e===`n`)return{type:`shortcut`,index:1}}function dn(e,t,n){return e.resolved?{state:e,effect:{type:`none`}}:typeof t==`string`?an(e,t,{itemCount:n}):{state:{...e,selectedIndex:t.index,resolved:!0},effect:{type:`select`,index:t.index}}}function fn({message:e,options:t=[`Yes`,`No`],onSelect:r}){let[i,a]=s(()=>$()),u=o(i),d=n(e=>{let n=dn(u.current,e,t.length);u.current=n.state,a(n.state),n.effect.type===`select`&&r(n.effect.index)},[r,t.length]);return f((e,n)=>{let r=un(e,n,t.length);r!==void 0&&d(r)}),j(c,{flexDirection:`column`,borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:[A(l,{color:`yellow`,children:e}),A(c,{marginTop:1,children:t.map((e,t)=>A(c,{marginRight:2,children:j(l,{color:t===i.selectedIndex?`cyan`:void 0,bold:t===i.selectedIndex,children:[t===i.selectedIndex?`> `:` `,e]})},e))}),A(l,{dimColor:!0,children:` arrow keys to select, Enter to confirm`})]})}function pn({items:e,renderItem:t,onSelect:r,onCancel:i,maxVisible:a=3}){let[u,d]=s(()=>$()),p=o(u),m=n(t=>{let n=an(p.current,t,{itemCount:e.length,maxVisible:a});if(p.current=n.state,d(n.state),n.effect.type===`cancel`)i();else if(n.effect.type===`select`){let t=e[n.effect.index];t!==void 0&&r(t)}},[e,a,i,r]);if(f((e,t)=>{let n=nn(t);n!==void 0&&m(n)}),e.length===0)return A(c,{});let h=on(u,{itemCount:e.length,maxVisible:a});h!==u&&(p.current=h);let{selectedIndex:g,scrollOffset:_}=h,v=e.slice(_,_+a),y=_+a<e.length;return j(c,{flexDirection:`column`,children:[_>0&&j(l,{dimColor:!0,children:[` ↑ `,_,` more above`]}),v.map((e,n)=>A(c,{marginBottom:1,children:t(e,_+n===g)},_+n)),y&&j(l,{dimColor:!0,children:[` ↓ `,e.length-_-a,` more below`]})]})}function mn(){return{value:``,resolved:!1}}function hn(e,t){if(t.escape===!0)return{type:`cancel`};if(t.return===!0)return{type:`submit`};if(t.backspace===!0||t.delete===!0)return{type:`delete`};if(e&&t.ctrl!==!0&&t.meta!==!0)return{type:`insert`,value:e}}function gn(e,t,n){return e.resolved?{state:e,effect:{type:`none`}}:t.type===`cancel`?{state:{...e,resolved:!0},effect:{type:`cancel`}}:t.type===`delete`?{state:{...e,value:e.value.slice(0,-1),error:void 0},effect:{type:`none`}}:t.type===`insert`?{state:{...e,value:e.value+t.value,error:void 0},effect:{type:`none`}}:_n(e,n)}function _n(e,t){let n=e.value.trim();if(!n&&!t.allowEmpty){let r=t.validate?.(n);return{state:r?{...e,error:r}:e,effect:{type:`none`}}}let r=t.validate?.(n);return r===void 0?{state:{...e,resolved:!0},effect:{type:`submit`,value:n}}:{state:{...e,error:r},effect:{type:`none`}}}function vn({title:e,description:t,placeholder:r,onSubmit:i,onCancel:a,validate:u,allowEmpty:d=!1,masked:p=!1}){let[m,h]=s(()=>mn()),g=o(m),_=n(e=>{let t=gn(g.current,e,{allowEmpty:d,validate:u});g.current=t.state,h(t.state),t.effect.type===`cancel`?a():t.effect.type===`submit`&&i(t.effect.value)},[d,u,a,i]);return f((e,t)=>{let n=hn(e,t);n!==void 0&&_(n)}),j(c,{flexDirection:`column`,borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:[A(l,{color:`yellow`,bold:!0,children:e}),A(yn,{description:t}),j(c,{marginTop:1,children:[A(l,{color:`cyan`,children:`> `}),m.value?A(l,{children:p?`*`.repeat(m.value.length):m.value}):r?A(l,{dimColor:!0,children:r}):null,A(l,{color:`cyan`,children:`█`})]}),m.error&&A(l,{color:`red`,children:m.error}),A(l,{dimColor:!0,children:` Enter Submit Esc Cancel`})]})}function yn({description:e}){return e===void 0||e.length===0?null:A(l,{dimColor:!0,children:e})}function bn({prompt:e,onSubmit:t,onCancel:n}){return e.kind===`text`?A(vn,{title:e.title,description:e.description,placeholder:e.placeholder,allowEmpty:e.allowEmpty,masked:e.masked,validate:e.validate,onSubmit:t,onCancel:n},`text:${e.title}`):j(c,{flexDirection:`column`,children:[A(l,{bold:!0,children:e.title}),e.description!==void 0&&e.description.length>0&&A(l,{dimColor:!0,children:e.description}),A(pn,{items:[...e.options],maxVisible:e.maxVisible,renderItem:(e,t)=>j(l,{color:t?`cyan`:void 0,children:[t?`> `:` `,e.label]}),onSelect:e=>t(e.value),onCancel:n})]})}const xn=[`Allow`,`Allow always (this session)`,`Deny`];function Sn(e,t){let n=rn({...t,escape:!1});if(n!==void 0)return n;if(e===`y`||e===`1`)return{type:`shortcut`,index:0};if(e===`a`||e===`2`)return{type:`shortcut`,index:1};if(e===`n`||e===`d`||e===`3`)return{type:`shortcut`,index:2}}function Cn(e,t){if(e.resolved)return{state:e,effect:{type:`none`}};if(typeof t!=`string`)return Tn(e,t.index);let n=an(e,t,{itemCount:xn.length});return n.effect.type===`select`?{state:n.state,effect:{type:`resolve`,decision:wn(n.effect.index)}}:{state:n.state,effect:{type:`none`}}}function wn(e){return e===0?!0:e===1?`allow-session`:!1}function Tn(e,t){return{state:{...e,selectedIndex:t,resolved:!0},effect:{type:`resolve`,decision:wn(t)}}}function En(e){let t=Object.entries(e);return t.length===0?`(no arguments)`:t.map(([e,t])=>`${e}: ${typeof t==`string`?t:JSON.stringify(t)}`).join(`, `)}function Dn({request:t}){let[n,r]=e.useState(()=>$()),i=e.useRef(n),a=e.useRef(t);if(a.current!==t){a.current=t;let e=$();i.current=e,r(e)}let o=e.useCallback(e=>{let n=Cn(i.current,e);i.current=n.state,r(n.state),n.effect.type===`resolve`&&t.resolve(n.effect.decision)},[t]);return f((e,t)=>{let n=Sn(e,t);n!==void 0&&o(n)}),j(c,{flexDirection:`column`,borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:[A(l,{color:`yellow`,bold:!0,children:`[Permission Required]`}),j(l,{children:[`Tool:`,` `,A(l,{color:`cyan`,bold:!0,children:t.toolName})]}),j(l,{dimColor:!0,children:[` `,En(t.toolArgs)]}),A(c,{marginTop:1,children:xn.map((e,t)=>A(c,{marginRight:2,children:j(l,{color:t===n.selectedIndex?`cyan`:void 0,bold:t===n.selectedIndex,children:[t===n.selectedIndex?`> `:` `,e]})},e))}),A(l,{dimColor:!0,children:` left/right to select, Enter to confirm`})]})}function On(e){return e.isRunning?{color:`yellow`,icon:`⟳`,strikethrough:!1}:e.result===`error`?{color:`red`,icon:`✗`,strikethrough:!0}:e.result===`denied`?{color:`yellowBright`,icon:`⊘`,strikethrough:!0}:{color:`green`,icon:`✓`,strikethrough:!1}}function kn(e){return e?A(c,{marginBottom:1,children:A(l,{color:`yellow`,children:`Thinking...`})}):A(k,{})}function An(e){return j(c,{flexDirection:`column`,marginBottom:1,children:[A(l,{color:`white`,bold:!0,children:`Tools:`}),A(l,{children:` `}),e.map((e,t)=>{let{color:n,icon:r,strikethrough:i}=On(e);return j(c,{flexDirection:`column`,children:[j(l,{color:n,strikethrough:i,children:[` `,r,` `,e.toolName,`(`,e.firstArg,`)`]}),e.diffLines&&e.diffLines.length>0&&A(we,{file:e.diffFile,lines:e.diffLines})]},`${e.toolName}-${t}`)})]})}function jn({text:e,activeTools:t,isThinking:n=!1}){let r=t.length>0,i=e.length>0;return!r&&!i?kn(n):j(c,{flexDirection:`column`,children:[r&&An(t),i&&j(c,{flexDirection:`column`,marginBottom:1,children:[A(l,{color:`cyan`,bold:!0,children:`Robota:`}),A(l,{children:` `}),A(c,{marginLeft:2,children:A(l,{wrap:`wrap`,children:ye(e)})})]})]})}function Mn({title:e,items:t,onSelect:r,onBack:i,loading:a,error:u}){let[d,p]=s(()=>$()),m=o(d),h=!a&&!u,g=n(e=>{let n=an(m.current,e,{itemCount:t.length,enabled:h});if(m.current=n.state,p(n.state),n.effect.type===`cancel`)i();else if(n.effect.type===`select`){let e=t[n.effect.index];e!==void 0&&r(e.value)}},[h,t,i,r]);f((e,t)=>{let n=nn(t);n!==void 0&&g(n)});let _=on(d,{itemCount:t.length});_!==d&&(m.current=_);let v=_.selectedIndex;return j(c,{flexDirection:`column`,borderStyle:`round`,borderColor:`yellow`,paddingX:1,children:[A(l,{color:`yellow`,bold:!0,children:e}),a&&A(c,{marginTop:1,children:A(l,{dimColor:!0,children:`Loading...`})}),u&&j(c,{marginTop:1,flexDirection:`column`,children:[A(l,{color:`red`,children:u}),A(l,{dimColor:!0,children:`Press Esc to go back`})]}),!a&&!u&&A(c,{flexDirection:`column`,marginTop:1,children:t.map((e,t)=>j(c,{children:[j(l,{color:t===v?`cyan`:void 0,bold:t===v,children:[t===v?`> `:` `,e.label]}),e.hint&&j(l,{dimColor:!0,children:[` `,e.hint]})]},e.value))}),A(l,{dimColor:!0,children:a||u?``:` ↑↓ Navigate Enter Select Esc Back`})]})}function Nn(e,t){e===`marketplace`?t.push({screen:`marketplace-list`}):e===`installed`&&t.push({screen:`installed-list`})}function Pn(e,t){e===`__add__`?t.push({screen:`marketplace-add`}):t.push({screen:`marketplace-action`,context:{marketplace:e}})}function Fn(e,t,n,r){e===`browse`?r.push({screen:`marketplace-browse`,context:{marketplace:t}}):e===`update`?n.marketplaceUpdate(t).then(()=>{r.notify(`Updated marketplace "${t}".`),r.pop()}).catch(e=>{r.notify(`Error: ${e instanceof Error?e.message:String(e)}`)}):e===`remove`&&r.setConfirm({message:`Remove marketplace "${t}" and all its plugins?`,onConfirm:()=>{r.setConfirm(void 0),n.marketplaceRemove(t).then(()=>{r.notify(`Removed marketplace "${t}".`),r.popN(2)}).catch(e=>{r.notify(`Error: ${e instanceof Error?e.message:String(e)}`)})},onCancel:()=>r.setConfirm(void 0)})}function In(e,t,n,r){let i=`${e}@${t}`;n.find(t=>t.value===e)?.hint===`installed`?r.push({screen:`installed-action`,context:{pluginId:i}}):r.push({screen:`marketplace-install-scope`,context:{marketplace:t,pluginId:i}})}function Ln(e,t,n,r){let i=e;n.install(t,i).then(()=>{r.notify(`Installed plugin "${t}" (${i} scope).`),r.popN(2)}).catch(e=>{r.notify(`Error: ${e instanceof Error?e.message:String(e)}`)})}function Rn(e,t,n){n.setConfirm({message:`Uninstall plugin "${e}"?`,onConfirm:()=>{n.setConfirm(void 0),t.uninstall(e).then(()=>{n.notify(`Uninstalled plugin "${e}".`),n.refresh()}).catch(e=>{n.notify(`Error: ${e instanceof Error?e.message:String(e)}`)})},onCancel:()=>n.setConfirm(void 0)})}function zn(e,t,n,r){e===`uninstall`&&r.setConfirm({message:`Uninstall plugin "${t}"?`,onConfirm:()=>{r.setConfirm(void 0),n.uninstall(t).then(()=>{r.notify(`Uninstalled plugin "${t}".`),r.popN(2)}).catch(e=>{r.notify(`Error: ${e instanceof Error?e.message:String(e)}`)})},onCancel:()=>r.setConfirm(void 0)})}function Bn(e,t,n,r,a){let[o,c]=s([]),[l,u]=s(!1),[d,f]=s();return i(()=>{if(c([]),f(void 0),e===`marketplace-list`)u(!0),n.marketplaceList().then(e=>{let t=[{label:`Add Marketplace`,value:`__add__`}],n=e.map(e=>({label:e.name,value:e.name,hint:e.type}));c([...t,...n]),u(!1)}).catch(e=>{f(e instanceof Error?e.message:String(e)),u(!1)});else if(e===`marketplace-browse`){let e=t??``;u(!0),n.listAvailablePlugins(e).then(e=>{c(e.map(e=>({label:e.name,value:e.name,hint:e.installed?`installed`:e.description}))),u(!1)}).catch(e=>{f(e instanceof Error?e.message:String(e)),u(!1)})}else e===`installed-list`&&(u(!0),n.listInstalled().then(e=>{c(e.map(e=>({label:e.name,value:e.name,hint:e.description}))),u(!1)}).catch(e=>{f(e instanceof Error?e.message:String(e)),u(!1)}))},[a,e,t,n,r]),{items:o,loading:l,error:d}}function Vn({callbacks:e,onClose:t,addMessage:r}){let[i,a]=s([{screen:`main`}]),[o,c]=s(),[l,u]=s(0),d=i[i.length-1]??{screen:`main`},f=n(e=>{a(t=>[...t,e])},[]),p=n(()=>{a(e=>e.length<=1?(t(),e):e.slice(0,-1))},[t]),m=n(e=>{a(n=>{let r=n.slice(0,Math.max(1,n.length-e));return r.length===0?(t(),n):r})},[t]),h=n(e=>{r?.({role:`system`,content:e})},[r]),g=n(()=>{u(e=>e+1)},[]),_=n(e=>c(e),[c]),v={push:n(e=>f({screen:e.screen,context:e.context}),[f]),pop:p,popN:m,notify:h,setConfirm:_,refresh:g},{items:y,loading:b,error:x}=Bn(d.screen,d.context?.marketplace,e,l,i.length),S=n(t=>{let n=d.screen,r=d.context;n===`main`?Nn(t,v):n===`marketplace-list`?Pn(t,v):n===`marketplace-action`?Fn(t,r?.marketplace??``,e,v):n===`marketplace-browse`?In(t,r?.marketplace??``,y,v):n===`marketplace-install-scope`?Ln(t,r?.pluginId??``,e,v):n===`installed-list`?Rn(t,e,v):n===`installed-action`&&zn(t,r?.pluginId??``,e,v)},[d,y,e,f,p,m,h,c,g]),C=n(t=>{d.screen===`marketplace-add`&&e.marketplaceAdd(t).then(e=>{h(`Added marketplace "${e}" from ${t}.`),p()}).catch(e=>{h(`Error: ${e instanceof Error?e.message:String(e)}`),p()})},[d.screen,e,h,p]);if(o)return A(fn,{message:o.message,onSelect:e=>{e===0?o.onConfirm():o.onCancel()}});let w=d.screen;return w===`marketplace-add`?A(vn,{title:`Add Marketplace Source`,placeholder:`owner/repo or git URL`,onSubmit:C,onCancel:p,validate:e=>e.includes(`/`)?void 0:`Must be owner/repo or a git URL`}):w===`marketplace-action`?A(Mn,{title:`Marketplace: ${d.context?.marketplace??``}`,items:[{label:`Browse plugins`,value:`browse`},{label:`Update`,value:`update`},{label:`Remove`,value:`remove`}],onSelect:S,onBack:p},i.length):w===`marketplace-install-scope`?A(Mn,{title:`Install scope for "${d.context?.pluginId??``}"`,items:[{label:`User scope`,value:`user`},{label:`Project scope`,value:`project`}],onSelect:S,onBack:p},i.length):w===`installed-action`?A(Mn,{title:`Plugin: ${d.context?.pluginId??``}`,items:[{label:`Uninstall`,value:`uninstall`}],onSelect:S,onBack:p},i.length):A(Mn,{title:{main:`Plugin Management`,"marketplace-list":`Marketplace`,"marketplace-browse":`Browse: ${d.context?.marketplace??``}`,"installed-list":`Installed Plugins`}[w]??`Plugin Management`,items:{main:[{label:`Marketplace`,value:`marketplace`},{label:`Installed Plugins`,value:`installed`}]}[w]??y,onSelect:S,onBack:p,loading:b,error:x},`${w}-${i.length}-${l}`)}function Hn({entry:e,selected:t}){let n=e.config.enabled,r=n?`●`:`○`,i=n?`[enabled] `:`[disabled]`,a=e.config.options?.port,o=typeof a==`number`?`port: ${a}`:``;return A(c,{children:A(l,{color:t?`cyan`:void 0,bold:t,children:`${r} ${e.transport.name.padEnd(18)} ${i} ${o}`})})}function Un(e,t,r,i,a,o,s,c){f(n((n,l)=>{if(!r){if(l.upArrow){a(e=>Math.max(0,e-1));return}if(l.downArrow){a(t=>Math.min(e.length-1,t+1));return}if(l.escape||l.return){s();return}if(n===` `){let n=e[t];if(!n)return;o(!0),i.setEnabled(n.transport.name,!n.config.enabled).then(()=>{c(),o(!1)}).catch(()=>o(!1))}}},[r,e,t,i,s,c,a,o]))}function Wn({registry:e,onClose:t}){let[r,i]=s(()=>e.getAll()),[a,o]=s(0),[u,d]=s(!1);return Un(r,a,u,e,o,d,t,n(()=>{i(e.getAll())},[e])),j(c,{flexDirection:`column`,paddingX:2,paddingY:1,children:[A(l,{bold:!0,children:`Settings › Transports`}),A(c,{marginTop:1,flexDirection:`column`,children:r.map((e,t)=>A(Hn,{entry:e,selected:t===a},e.transport.name))}),A(c,{marginTop:1,children:A(l,{dimColor:!0,children:`↑↓ select space toggle enter/esc close`})}),u&&A(c,{marginTop:1,children:A(l,{color:`yellow`,children:`Saving…`})})]})}function Gn({sessions:e,onSelect:t,onCancel:n}){return j(c,{flexDirection:`column`,paddingX:1,marginBottom:1,children:[A(l,{bold:!0,color:`cyan`,children:`Select a session to resume (ESC to cancel):`}),A(pn,{items:[...e],renderItem:(e,t)=>{let n=e.preview?e.preview.slice(0,60)+(e.preview.length>60?`...`:``):``;return j(l,{children:[t?`> `:` `,A(l,{bold:!0,children:e.name??e.id.slice(0,8)}),` `,A(l,{dimColor:!0,children:new Date(e.updatedAt).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}),` `,j(l,{dimColor:!0,children:[`msgs: `,e.messageCount]}),n?j(k,{children:[`
|
|
18
|
-
`,A(l,{color:`gray`,children:n})]}):null]})},onSelect:e=>t(e.id),onCancel:n})]})}const Kn=[`active`,`queued`,`running`,`waiting_permission`,`sleeping`],qn=/\s+/g;function Jn(e){return(e?.entries??[]).filter(e=>e.kind===`background_task`&&e.visibility===`default`)}function Yn(e){return Jn(e).filter(e=>Kn.includes(e.status)).length}function Xn(e,t={}){let n=e.id===t.selectedEntryId,r={id:e.id,radio:n?`●`:`○`,title:Qn(e),subtitle:$n(e),statusLabel:er(e.status),preview:nr(e.preview??e.currentAction),color:tr(e),isSelected:n};return{...r,accessibleText:rr(r)}}function Zn(e){let t=e.text.trim().replace(qn,` `);return t?t.length>160?`${t.slice(0,160)}...`:t:e.kind}function Qn(e){return e.kind===`main_thread`?e.title:e.kind===`background_group`?`${e.title} group`:e.taskKind===`agent`?`${e.title} agent`:e.taskKind===`process`?e.title||`Process`:e.taskKind===`scheduled`?e.title||`Scheduled`:e.title}function $n(e){return e.kind===`main_thread`?e.subtitle:[e.taskKind,e.subtitle,e.attention===`none`?void 0:e.attention].filter(e=>typeof e==`string`&&e.length>0).join(` · `)||void 0}function er(e){return e.replace(/_/g,` `)}function tr(e){return e.attention===`failed`||e.status===`failed`?`red`:e.attention===`permission`||e.status===`waiting_permission`?`yellow`:e.status===`completed`?`green`:e.status===`cancelled`?`yellow`:Kn.includes(e.status)?`cyan`:`white`}function nr(e){return e?.trim().replace(qn,` `)||void 0}function rr(e){return[e.radio,e.title,e.statusLabel,e.subtitle,e.preview].filter(e=>typeof e==`string`&&e.length>0).join(` · `)}function ir(e,t={}){let n=Xn(e),r=ar(e)?`□`:`■`,i=[n.statusLabel,n.subtitle].filter(e=>typeof e==`string`&&e.length>0);return{connector:t.isLast===!1?`├`:`└`,marker:r,color:n.color,label:n.title,segments:i,preview:n.preview,accessibleText:[`${t.isLast===!1?`├`:`└`} ${r} ${n.title}`,...i,n.preview].filter(e=>typeof e==`string`&&e.length>0).join(` · `)}}function ar(e){return e.status===`active`||e.status===`queued`||e.status===`running`||e.status===`waiting_permission`||e.status===`sleeping`}function or({entries:e}){return e.length===0?null:j(c,{flexDirection:`column`,marginBottom:1,children:[A(l,{color:`cyan`,bold:!0,children:`Background work`}),e.map((t,n)=>{let r=ir(t,{isLast:n===e.length-1});return j(l,{children:[`${r.connector} `,A(l,{color:r.color,children:r.marker}),` ${r.label}`,r.segments.map((e,t)=>A(l,{dimColor:!0,children:` · ${e}`},`${e}-${t}`)),r.preview?A(l,{dimColor:!0,children:` · ${r.preview}`}):null]},t.id)})]})}function sr({snapshot:e,selectedEntryId:t,onSelect:n,onClose:r}){let{normalized:i,visibleEntries:a,applyAction:o}=cr({entries:[...e?.entries??[]],selectedEntryId:t,onSelect:n,onClose:r});return f((e,t)=>{let n=nn(t);n!==void 0&&o(n)}),j(c,{flexDirection:`column`,borderStyle:`round`,borderColor:`cyan`,paddingX:1,children:[A(l,{color:`cyan`,bold:!0,children:`Execution workspace`}),A(c,{flexDirection:`column`,marginTop:1,children:a.length===0?A(l,{dimColor:!0,children:`No workspace entries`}):a.map((e,n)=>A(dr,{entry:e,isFocused:i.scrollOffset+n===i.selectedIndex,selectedEntryId:t},e.id))}),A(l,{dimColor:!0,children:`Ctrl+B Close ↑↓ Navigate Enter Switch Esc Close`})]})}function cr({entries:e,selectedEntryId:t,onSelect:n,onClose:r}){let[a,c]=s(()=>$()),l=o(a);i(()=>{let n=ur({selectedIndex:Math.max(0,e.findIndex(e=>e.id===t)),itemCount:e.length});l.current=n,c(n)},[e.length,t]);let u=ur({selectedIndex:a.selectedIndex,scrollOffset:a.scrollOffset,itemCount:e.length});return u!==a&&(l.current=u),{normalized:u,visibleEntries:e.slice(u.scrollOffset,u.scrollOffset+8),applyAction:lr({entries:e,stateRef:l,setState:c,onSelect:n,onClose:r})}}function lr({entries:e,stateRef:t,setState:n,onSelect:r,onClose:i}){return a=>{let o=an(t.current,a,{itemCount:e.length,maxVisible:8}),s=o.effect.type===`select`||o.effect.type===`cancel`?{...o.state,resolved:!1}:o.state;if(t.current=s,n(s),o.effect.type===`cancel`)i();else if(o.effect.type===`select`){let t=e[o.effect.index];t&&r(t.id)}}}function ur(e){return on({selectedIndex:e.selectedIndex,scrollOffset:e.scrollOffset??0,resolved:!1},{itemCount:e.itemCount,maxVisible:8})}function dr({entry:e,isFocused:t,selectedEntryId:n}){let r=Xn(e,{selectedEntryId:n});return j(l,{children:[A(l,{color:t?`cyan`:void 0,bold:t,children:t?`> `:` `}),A(l,{color:r.color,children:r.radio}),A(l,{color:t?`cyan`:void 0,bold:t,children:` ${r.title}`}),A(l,{dimColor:!0,children:` · ${r.statusLabel}`}),r.subtitle?A(l,{dimColor:!0,children:` · ${r.subtitle}`}):null,r.preview?A(l,{dimColor:!0,children:` · ${r.preview}`}):null]})}function fr({entry:e,page:t,loading:n,error:r}){let i=Xn(e,{selectedEntryId:e.id}),a=t?.records.slice(-12)??[];return j(c,{flexDirection:`column`,marginBottom:1,children:[A(l,{color:`cyan`,bold:!0,children:`Viewing ${i.title}`}),j(l,{dimColor:!0,children:[i.statusLabel,i.subtitle?` · ${i.subtitle}`:``,i.preview?` · ${i.preview}`:``]}),n?A(l,{dimColor:!0,children:`Loading workspace detail...`}):null,r?A(l,{color:`red`,children:r}):null,!n&&!r&&a.length===0?A(l,{dimColor:!0,children:`No detail yet`}):null,!n&&!r&&a.map(e=>A(l,{color:pr(e.kind),children:Zn(e)},e.id)),t?.nextCursor?A(l,{dimColor:!0,children:`... more detail available`}):null]})}function pr(e){if(e===`error`)return`red`;if(e===`result`)return`green`;if(e===`process_output`)return`white`;if(e===`group_summary`)return`cyan`}function mr({message:e}){return A(c,{paddingX:1,marginBottom:1,children:A(l,{color:`yellow`,children:e})})}function hr(e){let[t,n]=s(e.resumeSessionId),[r,i]=s(e.showSessionPickerOnStart??!1);return A(K,{value:e.cliAdapter,children:A(gr,{...e,showSessionPickerOnStart:r,resumeSessionId:t,onSessionSwitch:e=>{i(!1),n(e)}},t??`__new__`)})}function gr(e){let t=e.cwd,{interactiveSession:r,registry:o,commandEffectQueue:u,history:p,addEntry:m,streamingText:h,activeTools:g,isThinking:_,isAborting:v,isShuttingDown:y,pendingPrompt:S,executionWorkspaceSnapshot:C,selectedExecutionEntryId:w,selectExecutionWorkspaceEntry:T,readExecutionWorkspaceDetail:D,permissionRequest:O,contextState:k,handleSubmit:M,handleAbort:N,handleCancelQueue:P,handleShutdown:F}=te({cwd:t,provider:e.provider,permissionMode:e.permissionMode,maxTurns:e.maxTurns,sessionStore:e.sessionStore,resumeSessionId:e.resumeSessionId,forkSession:e.forkSession,sessionName:e.sessionName,backgroundTaskRunners:e.backgroundTaskRunners,subagentRunnerFactory:e.subagentRunnerFactory,commandModules:e.commandModules,commandHostAdapters:e.commandHostAdapters,shellExec:e.shellExec,transportRegistry:e.transportRegistry,language:e.language,reloadPluginCommandSource:e.reloadPluginCommandSource,agentName:e.agentName}),I=ne(t),ee=e.commandHostAdapters?.plugin??I,{exit:L}=d(),[R,z]=s(e.sessionName),[B,V]=s(),[H,U]=s(!1),[W,G]=s(null),[re,ie]=s(),[ae,K]=s(!1),[oe,ce]=pe(),le=a(()=>Jn(C),[C]),ue=Yn(C),q=a(()=>C?.entries.find(e=>e.id===w),[C,w]),{handleSubmit:fe,pendingModelId:J,pendingInteractionPrompt:Y,showPluginTUI:X,showSessionPicker:Z,showTransportTUI:Q,setShowPluginTUI:me,setShowSessionPicker:he,setShowTransportTUI:ge,handleModelConfirm:_e,handleInteractionSubmit:ve,handleInteractionCancel:ye}=de({cwd:t,providerOverride:e.providerOverride,interactiveSession:r,commandEffectQueue:u,addEntry:m,baseHandleSubmit:M,setSessionName:z,setStatusLineSettings:ce,showSessionPickerOnStart:e.showSessionPickerOnStart,openAgentSwitcher:()=>U(!0)}),be=!q||q.kind===`main_thread`||q.controls.includes(`send`),xe=q&&q.kind!==`main_thread`?q.title:void 0,Se=a(()=>C?.entries.find(e=>e.kind===`main_thread`)?.id,[C]),Ce=n(async e=>{q&&q.kind!==`main_thread`&&q.controls.includes(`send`)?await r.sendAgentJob(q.sourceId,e):await fe(e)},[q,fe,r]);i(()=>{let e=r?.getName?.();e&&!R&&z(e)},[r,R]),i(()=>{let t=!0;return e.startupUpdateNotice?.then(e=>{t&&e!==void 0&&V(e)}).catch(()=>{}),()=>{t=!1}},[e.startupUpdateNotice]),i(()=>{let e=R?`Robota — ${R}`:`Robota`;process.stdout.write(`\x1b]0;${e}\x07`)},[R]),f((e,t)=>{!t.escape||!_||O||X||Q||Z||H||N()}),f((e,t)=>{!t.ctrl||e!==`b`||O||X||Z||y||U(e=>!e)}),f((e,t)=>{!t.escape||_||O||X||Q||Z||H||q&&q.kind!==`main_thread`&&Se!==void 0&&T(Se)}),f((e,t)=>{!t.ctrl||e!==`c`||y||F(`prompt_input_exit`).finally(()=>L())}),i(()=>{let e=()=>{y||F(`other`).finally(()=>L())};return process.once(`SIGINT`,e),process.once(`SIGTERM`,e),()=>{process.off(`SIGINT`,e),process.off(`SIGTERM`,e)}},[F,L,y]),i(()=>{if(!q||q.kind===`main_thread`){G(null),ie(void 0),K(!1);return}let e=!0;return K(!0),ie(void 0),D(q.id).then(t=>{e&&(G(t),K(!1))}).catch(t=>{e&&(ie(t.message),K(!1))}),()=>{e=!1}},[C,D,q]);let we=e.permissionMode??`default`,Te=``;try{let e=r.getSession();we=e.getPermissionMode(),Te=e.getSessionId()}catch{}return j(c,{flexDirection:`column`,children:[j(c,{flexDirection:`column`,paddingX:1,marginBottom:1,children:[A(l,{color:`cyan`,bold:!0,children:`
|
|
19
|
-
____ ___ ____ ___ _____ _
|
|
20
|
-
| _ \\ / _ \\| __ ) / _ \\_ _|/ \\
|
|
21
|
-
| |_) | | | | _ \\| | | || | / _ \\
|
|
22
|
-
| _ <| |_| | |_) | |_| || |/ ___ \\
|
|
23
|
-
|_| \\_\\\\___/|____/ \\___/ |_/_/ \\_\\
|
|
24
|
-
`}),j(l,{dimColor:!0,children:[` v`,e.version??`0.0.0`]})]}),B&&A(mr,{message:B}),j(c,{flexDirection:`column`,paddingX:1,flexGrow:1,children:[q&&q.kind!==`main_thread`?A(fr,{entry:q,page:W,loading:ae,error:re}):A(Ye,{history:p}),y&&A(c,{marginBottom:1,children:A(l,{color:`yellow`,children:`Shutting down...`})}),(_||g.length>0)&&A(c,{flexDirection:`column`,marginBottom:1,children:A(jn,{text:h,activeTools:g,isThinking:_})}),A(or,{entries:le})]}),H&&A(sr,{snapshot:C,selectedEntryId:w,onSelect:T,onClose:()=>U(!1)}),O&&A(Dn,{request:O}),J&&A(fn,{message:se(J),onSelect:_e}),Y&&A(bn,{prompt:Y,onSubmit:ve,onCancel:ye}),X&&A(Vn,{callbacks:ee,onClose:()=>me(!1),addMessage:e=>m(E(x(e.content)))}),Q&&e.transportRegistry&&A(Wn,{registry:e.transportRegistry,onClose:()=>ge(!1)}),Z&&A(Gn,{sessions:b(e.sessionStore,e.cwd),onSelect:t=>{he(!1),e.onSessionSwitch(t)},onCancel:()=>{he(!1),m(E(x(`Session resume cancelled.`)))}}),A(ot,{cwd:t,permissionMode:we,modelId:e.modelId,providerType:e.providerType,sessionId:Te,isThinking:_,activeToolCount:g.length,activeBackgroundTaskCount:ue,hasPendingPrompt:S!==null,contextState:k,sessionName:R,settings:oe,activeAgentLabel:xe}),A(tn,{onSubmit:Ce,onCancelQueue:P,isDisabled:!!O||X||Q||Z||H||y||Y!==null||_&&!!S||!be,isAborting:v,pendingPrompt:S,registry:o,sessionName:R,history:p}),A(l,{children:` `})]})}async function _r(e){process.on(`unhandledRejection`,e=>{process.stderr.write(`\n[UNHANDLED REJECTION] ${e}\n`),e instanceof Error&&process.stderr.write(`${e.stack}\n`)}),await u(A(hr,{...e}),{exitOnCtrlC:!1}).waitUntilExit()}var vr=class{name=`tui`;defaultEnabled=!0;optionsSchema={};options;constructor(e){this.options=e}attach(e){}async start(){await _r(this.options)}async stop(){}validateOptions(e){return!0}};export{vr as t};
|
|
25
|
-
//# sourceMappingURL=tui-zmDTPk4b.js.map
|