@yeaft/webchat-agent 1.0.257 → 1.0.258

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.
@@ -1 +1 @@
1
- {"version":"1.0.257"}
1
+ {"version":"1.0.258"}
@@ -5187,7 +5187,7 @@ ${String(e||"").trim()}
5187
5187
  </div>
5188
5188
  `,directives:{"click-outside":{mounted(e,t){e._clickOutside=s=>{e.contains(s.target)||t.value()},document.addEventListener("click",e._clickOutside)},unmounted(e){document.removeEventListener("click",e._clickOutside)}}},data(){return{loading:!1,loadError:null,localProviders:[],providerModelsText:[],localPrimaryModel:null,localFastModel:null,isDirty:!1,saving:!1,openDropdown:null,showApiKey:{},showPresetPicker:!1,discoveringModels:!1,modelDiscoveryWarning:null,modelDiscoveryError:null,saveRefreshWarning:null}},computed:{chatStore(){return Pinia.useChatStore()},effectiveAgentId(){return this.chatStore.currentAgent},agentOnline(){let e=this.effectiveAgentId;if(!e)return!1;if(this.context==="yeaft")return!0;let t=this.chatStore.agents.find(s=>s.id===e);return t?t.online:!1},currentConfig(){let e=this.effectiveAgentId;return e&&this.chatStore.llmConfig[e]||null},editableProviders(){return this.localProviders},allModelRefs(){let e=this.localProviders,t=[];for(let s of e){if(!s.name)continue;let n=this.parseModelsFromProvider(s);for(let i of n)t.push(`${s.name}/${i}`)}return t}},watch:{effectiveAgentId:{handler(e,t){e!==t&&(this.cancelPendingDiscovery(),this.cancelPendingSave(),this._loadTimeout&&(clearTimeout(this._loadTimeout),this._loadTimeout=null),this.loading=!1,this.loadError=null,this.localProviders=[],this.providerModelsText=[],this.localPrimaryModel=null,this.localFastModel=null,this.isDirty=!1,this.modelDiscoveryWarning=null,this.modelDiscoveryError=null,this.saveRefreshWarning=null),e&&this.requestConfig()},immediate:!0},agentOnline(e){e&&!this.currentConfig&&this.effectiveAgentId&&this.requestConfig()},currentConfig:{handler(e){e&&e.loaded&&this.loadFromConfig(e)},deep:!0}},methods:{async copyText(e){try{await navigator.clipboard.writeText(e),this.$emit("message",this.$t("settings.msg.copiedClipboard"),!1)}catch{this.$emit("message",this.$t("settings.msg.copyFailed"),!0)}},async useGitHubCopilotPreset(){let e=this.effectiveAgentId;if(!e||!this.agentOnline)return;this.cancelPendingDiscovery(),this.discoveringModels=!0,this.modelDiscoveryWarning=null,this.modelDiscoveryError=null;let t=`llm-discovery-${Date.now()}-${Math.random().toString(36).slice(2)}`;this._pendingDiscovery={agentId:e,requestId:t},this.chatStore.sendWsMessage({type:"discover_llm_models",agentId:e,requestId:t,providerType:"github-copilot"});let s=await this.waitForModelDiscovery(e,t);if(!(this._pendingDiscovery?.agentId!==e||this._pendingDiscovery?.requestId!==t||this.effectiveAgentId!==e)){if(this._pendingDiscovery=null,this.discoveringModels=!1,s.error){this.modelDiscoveryError=s.error;return}this.applyDiscoveredProvider(s),this.modelDiscoveryWarning=s.warning||null}},waitForModelDiscovery(e,t){return new Promise(s=>{let n=Date.now(),i=r=>{this._discoveryTimer&&clearInterval(this._discoveryTimer),this._discoveryTimer=null,this._resolvePendingDiscovery=null,s(r)};this._resolvePendingDiscovery=i,this._discoveryTimer=setInterval(()=>{let r=this.chatStore.llmModelDiscovery?.[e];if(r?.requestId===t){i(r);return}Date.now()-n>1e4&&i({error:"Timed out while refreshing provider models."})},100)})},cancelPendingDiscovery(){let e=this._resolvePendingDiscovery;this._discoveryTimer&&clearInterval(this._discoveryTimer),this._discoveryTimer=null,this._resolvePendingDiscovery=null,this._pendingDiscovery=null,this.discoveringModels=!1,e&&e({cancelled:!0})},cancelPendingSave(){this._saveTimeout&&(clearTimeout(this._saveTimeout),this._saveTimeout=null),this._saveUnwatch&&(this._saveUnwatch(),this._saveUnwatch=null),this._pendingSave=null,this.saving=!1},applyDiscoveredProvider(e){let t={name:e.provider?.name||"github-copilot",credentialProvider:e.provider?.credentialProvider||"github-copilot",managed:e.provider?.managed||"github-copilot",models:Array.isArray(e.providerModels)&&e.providerModels.length?e.providerModels:e.models||[]},s=[...this.localProviders],n=s.findIndex(o=>o?.name===t.name);n>=0?s[n]=t:s.push(t),this.localProviders=s,this.refreshProviderModelsText();let i=new Set(this.parseModelsFromProvider(t).map(o=>`${t.name}/${o}`)),r=i.values().next().value||null;r&&!i.has(this.localPrimaryModel)&&(this.localPrimaryModel=r),r&&this.localFastModel?.startsWith(`${t.name}/`)&&!i.has(this.localFastModel)&&(this.localFastModel=r),this.markDirty()},requestConfig(){let e=this.effectiveAgentId;if(e){if(!this.agentOnline){this.loading=!1,this.loadError=null;return}this.loading=!0,this.loadError=null,this.chatStore.sendWsMessage({type:"get_llm_config",agentId:e}),this._loadTimeout=setTimeout(()=>{this.loading&&(this.loading=!1,this.loadError="Timeout")},5e3)}},loadFromConfig(e){if(this._loadTimeout&&(clearTimeout(this._loadTimeout),this._loadTimeout=null),this.loading=!1,e.error){this.loadError=e.error;return}this.loadError=null,this.localProviders=(e.agentConfig?.providers||e.providers||[]).map(t=>this.cloneProvider(t)),this.refreshProviderModelsText(),this.localPrimaryModel=e.agentConfig?.primaryModel||e.primaryModel||null,this.localFastModel=e.agentConfig?.fastModel||e.fastModel||null,this.isDirty=!1,this.showApiKey={}},cloneProvider(e){return{type:e.type||"api-key",scope:"agent",name:e.originalName||e.name||"",baseUrl:e.baseUrl||"",apiKey:e.apiKey||"",githubToken:e.githubToken||"",protocol:e.protocol||"openai-responses",credentialProvider:e.credentialProvider||null,models:Array.isArray(e.models)?e.models.map(t=>t&&typeof t=="object"?{...t}:t):[]}},refreshProviderModelsText(){this.providerModelsText=this.editableProviders.map(e=>(e.models||[]).map(t=>this._modelId(t)).join(", "))},parseModelsFromProvider(e){return this.isManagedProvider(e)&&(!Array.isArray(e.models)||e.models.length===0)?this.fallbackCopilotModels():Array.isArray(e.models)?e.models.map(t=>this._modelId(t)).filter(t=>t):[]},_modelId(e){return typeof e=="string"?e:e&&typeof e=="object"&&typeof e.id=="string"?e.id:""},isManagedProvider(e){return e?.managed==="github-copilot"||e?.credentialProvider==="github-copilot"||e?.name==="github-copilot"},fallbackCopilotModels(){return["gpt-5.5","gpt-5.4","gpt-5.4-mini","gpt-5-mini","gpt-5.3-codex","gpt-5.2-codex","gpt-4.1","gpt-4o","gpt-4o-mini","claude-opus-4.8","claude-opus-4.7","claude-opus-4.6","claude-sonnet-4.6","claude-sonnet-4.5","claude-haiku-4.5","gemini-2.5-pro"]},addProvider(){this.editableProviders.push({name:"",baseUrl:"",apiKey:"",protocol:"openai",credentialProvider:null,models:[]}),this.providerModelsText.push(""),this.markDirty()},onPresetPick(e){if(this.showPresetPicker=!1,!e||!e.name)return;let t=new Set(this.editableProviders.map(r=>(r.name||"").trim())),s=e.name,n=2;for(;t.has(s);)s=`${e.name}-${n++}`;let i=Array.isArray(e.models)?e.models.filter(Boolean):[];this.editableProviders.push({name:s,baseUrl:e.baseUrl||"",apiKey:"",protocol:e.protocol||"openai",credentialProvider:null,models:i}),this.providerModelsText.push(i.join(", ")),this.markDirty()},removeProvider(e){this.editableProviders.splice(e,1),this.providerModelsText.splice(e,1);let t={};for(let s=0;s<this.editableProviders.length;s++)s<e?t[s]=this.showApiKey[s]:t[s]=this.showApiKey[s+1];this.showApiKey=t,this.markDirty()},onModelsTextChange(e,t){let s=t.target.value;this.providerModelsText[e]=s;let n=Array.isArray(this.editableProviders[e].models)?this.editableProviders[e].models:[],i=new Map;for(let r of n){let o=this._modelId(r);o&&i.set(o,r)}this.editableProviders[e].models=s.split(/[\n,]+/).map(r=>r.trim()).filter(r=>r).map(r=>i.has(r)?i.get(r):r),this.markDirty()},setProtocol(e,t){let s=this.editableProviders[e].protocol;if(this.editableProviders[e].protocol=t,this.markDirty(),(this.editableProviders[e].models||[]).filter(i=>i).length===0&&t!==s){let i=this._getModelPresets(t);i.length>0&&(this.editableProviders[e].models=[...i],this.providerModelsText[e]=i.join(", "))}},protocolLabel(e){return e==="anthropic"?this.$t("settings.llm.protocolAnthropic"):e==="openai-responses"?this.$t("settings.llm.protocolOpenAIResponses"):this.$t("settings.llm.protocolOpenAI")},protocolHint(e){return e==="anthropic"?this.$t("settings.llm.protocolHint.anthropic"):e==="openai-responses"?this.$t("settings.llm.protocolHint.openaiResponses"):this.$t("settings.llm.protocolHint.openai")},_getModelPresets(e){return qo[e]||qo.openai},toggleApiKeyVisibility(e){this.showApiKey={...this.showApiKey,[e]:!this.showApiKey[e]}},toggleDropdown(e){this.openDropdown=this.openDropdown===e?null:e},closeDropdown(e){this.openDropdown===e&&(this.openDropdown=null)},markDirty(){this.isDirty=!0},saveConfig(){let e=this.effectiveAgentId;if(!e||this.saving)return;this.saving=!0,this.saveRefreshWarning=null;let s={providers:this.editableProviders.filter(i=>i.name&&(this.isManagedProvider(i)||i.baseUrl)).map(i=>{if(this.isManagedProvider(i))return{name:i.name.trim()||"github-copilot",credentialProvider:"github-copilot",managed:i.managed||"github-copilot",models:(i.models||[]).filter(o=>this._modelId(o))};let r={type:i.type||"api-key",name:i.name.trim(),baseUrl:i.baseUrl.trim(),apiKey:i.apiKey||"",githubToken:i.githubToken||"",models:(i.models||[]).filter(o=>this._modelId(o))};return i.protocol&&i.protocol!=="openai"&&(r.protocol=i.protocol),i.credentialProvider&&(r.credentialProvider=i.credentialProvider,r.apiKey=""),r}),primaryModel:this.localPrimaryModel||null};this.context!=="yeaft"&&(s.fastModel=this.localFastModel||null);let n=`llm-save-${Date.now()}-${Math.random().toString(36).slice(2)}`;this.cancelPendingSave(),this.saving=!0,this._pendingSave={agentId:e,requestId:n},this.chatStore.sendWsMessage({type:"update_llm_config",agentId:e,requestId:n,config:s}),this._saveTimeout=setTimeout(()=>{this._pendingSave?.agentId!==e||this._pendingSave?.requestId!==n||(this.cancelPendingSave(),this.$emit("message",this.$t("settings.llm.saveFailed"),!0))},1e4),this._saveUnwatch=this.$watch("currentConfig",i=>{if(!(!i?.loaded||i.requestId!==n||this.effectiveAgentId!==e||this._pendingSave?.agentId!==e||this._pendingSave?.requestId!==n)){if(this.cancelPendingSave(),i.error){this.$emit("message",i.error,!0);return}this.isDirty=!1,this.saveRefreshWarning=i.statusRefreshError?this.$t("settings.llm.savedRefreshWarning",{error:i.statusRefreshError}):null,this.$emit("message",this.saveRefreshWarning||this.$t("settings.llm.saved"),!!i.statusRefreshError),this.$emit("saved",{warning:this.saveRefreshWarning})}},{deep:!0})}},beforeUnmount(){this._loadTimeout&&clearTimeout(this._loadTimeout),this.cancelPendingDiscovery(),this.cancelPendingSave()}}});function bh(){return yp+=1,`folder-picker-${Date.now()}-${yp}`}var Uo,yp,zo,wh,bp,jo=H(()=>{Uo=()=>({folderPickerOpen:!1,folderPickerPath:"",folderPickerEntries:[],folderPickerLoading:!1,folderPickerSelected:"",_folderPickerTimer:null,_folderPickerRequestId:null,_folderPickerRequestAgentId:null}),yp=0;zo={openFolderPicker(){if(!this.folderPickerAgentId||!this.chat||typeof this.chat.sendWsMessage!="function")return;this.folderPickerOpen=!0,this.folderPickerSelected="",this.folderPickerLoading=!0;let t=typeof this.folderPickerInitialDir=="function"?this.folderPickerInitialDir()||"":this.defaultWorkDir||"";this.folderPickerPath=t,this.folderPickerEntries=[],this.requestFolderPickerDir(t)},invalidateFolderPickerRequest(){this._folderPickerRequestId=null,this._folderPickerRequestAgentId=null,this._folderPickerTimer&&(clearTimeout(this._folderPickerTimer),this._folderPickerTimer=null)},closeFolderPicker(){this.folderPickerOpen=!1,this.invalidateFolderPickerRequest()},requestFolderPickerDir(e){let t=this.folderPickerAgentId;if(!t||!this.chat||typeof this.chat.sendWsMessage!="function")return;let s=bh();this._folderPickerRequestId=s,this._folderPickerRequestAgentId=t,this.chat.sendWsMessage({type:"list_directory",conversationId:"_workdir_picker",requestId:s,agentId:t,dirPath:e,workDir:this.defaultWorkDir||""}),this._folderPickerTimer&&clearTimeout(this._folderPickerTimer),this._folderPickerTimer=setTimeout(()=>{this.folderPickerLoading&&this.folderPickerOpen&&this._folderPickerRequestId===s&&this.folderPickerAgentId===t&&this.requestFolderPickerDir(e)},5e3)},loadFolderPickerDir(e){this.folderPickerLoading=!0,this.folderPickerSelected="",this.folderPickerEntries=[],this.requestFolderPickerDir(e)},folderPickerNavigateUp(){if(!this.folderPickerPath)return;let e=this.folderPickerPath.includes("\\"),t=e?"\\":"/",s=this.folderPickerPath.replace(/[/\\]$/,"").split(/[/\\]/);if(s.pop(),s.length===0)this.folderPickerPath="",this.loadFolderPickerDir("");else if(e&&s.length===1&&/^[A-Za-z]:$/.test(s[0]))this.folderPickerPath=s[0]+"\\",this.loadFolderPickerDir(this.folderPickerPath);else{let n=s.join(t);this.folderPickerPath=n,this.loadFolderPickerDir(n)}},folderPickerSelectItem(e){this.folderPickerSelected=e.name},folderPickerEnter(e){let s=this.folderPickerPath.includes("\\")||/^[A-Z]:/.test(e.name)?"\\":"/",n;this.folderPickerPath?n=this.folderPickerPath.replace(/[/\\]$/,"")+s+e.name:n=/^[A-Z]:$/.test(e.name)?e.name+"\\":"/"+e.name,this.folderPickerPath=n,this.loadFolderPickerDir(n)},confirmFolderPicker(){let e=this.folderPickerPath;if(e){if(this.folderPickerSelected){let t=e.includes("\\")?"\\":"/";e=e.replace(/[/\\]$/,"")+t+this.folderPickerSelected}typeof this.folderPickerSetWorkDir=="function"&&this.folderPickerSetWorkDir(e),this.closeFolderPicker()}},handleFolderPickerMessage(e){let t=e.detail;!t||t.type!=="directory_listing"||t.conversationId!=="_workdir_picker"||!this.folderPickerOpen||!this._folderPickerRequestId||t.requestId!==this._folderPickerRequestId||this.folderPickerAgentId!==this._folderPickerRequestAgentId||(this._folderPickerTimer&&(clearTimeout(this._folderPickerTimer),this._folderPickerTimer=null),this._folderPickerRequestId=null,this._folderPickerRequestAgentId=null,this.folderPickerLoading=!1,this.folderPickerEntries=(t.entries||[]).filter(s=>s.type==="directory").sort((s,n)=>s.name.localeCompare(n.name)),t.dirPath!=null&&(this.folderPickerPath=t.dirPath))}},wh={data(){return Uo()},methods:{...zo},mounted(){window.addEventListener("workbench-message",this.handleFolderPickerMessage)},beforeUnmount(){window.removeEventListener("workbench-message",this.handleFolderPickerMessage),this.invalidateFolderPickerRequest()}},bp=wh});function ts(e){let t=(Number(e?.actionRunOpenGeneration)||0)+1;return e&&(e.actionRunOpenGeneration=t),t}var Oi,Ko=H(()=>{pp();gp();Wo();jo();ii();$r();Ho();Zt();Oi={name:"WorkCenterPage",components:{WorkCenterActionDetail:up,WorkCenterSettingsModal:fp,LlmTab:Fi},mixins:[bp],data(){return{selectedId:null,selectedActionId:null,narrowPane:"items",actionDetailTab:"messages",actionInputSending:!1,actionInputError:"",actionInputRequestGeneration:0,actionComposerGeneration:0,actionRunOpenGeneration:0,workItemMessage:"",workItemMessageAttachments:[],workItemMessageAttachmentsUploading:!1,workItemMessageSending:!1,workItemMessageError:"",workItemComposerGeneration:0,detailLoading:!1,detailError:"",createOpen:!1,settingsOpen:!1,saving:!1,createGeneration:0,llmConfigOpen:!1,search:"",boardVpId:"",boardWorkItemType:"",boardUpdatedRange:"week",mobileBoardLane:"active",deletingWorkItemIds:{},deleteWorkItemError:"",boardQueryTimer:null,actionGuidance:"",expandedActions:{},actionsExpanded:!1,workDirTouched:!1,startTouched:!1,createAttachments:[],guidanceAttachments:[],attachmentsUploading:!1,guidanceAttachmentsUploading:!1,previewingAttachmentId:null,attachmentPreviewError:"",attachmentPreviewGeneration:0,form:{requirement:"",workDir:"",reuseMemory:!0,start:!0}}},computed:{store(){return Pinia.useChatStore()},chat(){return this.store},agentId(){return this.store.workCenterAgentId||this.store.currentAgent},agents(){return this.store.agents||[]},onlineAgents(){return this.agents.filter(e=>e?.online&&Array.isArray(e.capabilities)&&e.capabilities.includes("work_center"))},watcher(){return this.store.workCenterWatcherByAgent[this.agentId]||null},boardNextCursor(){return this.store.workCenterListPageByAgent[this.agentId]?.nextCursor||null},boardLoadingMore(){return!!this.store.workCenterListMoreLoadingByAgent[this.agentId]},settings(){return this.store.workCenterSettingsByAgent[this.agentId]||null},runtime(){return this.store.workCenterRuntimeByAgent[this.agentId]||null},workItemTypes(){return Array.isArray(this.runtime?.workItemTypes)?this.runtime.workItemTypes:[]},workItemAttachmentsSupported(){return this.runtime?.workItemAttachments===!0},createDefaultWorkDir(){return this.settings?.defaultWorkDir||this.runtime?.defaultWorkDir||""},createDefaultStart(){return this.settings?.startImmediately!==!1},folderPickerAgentId(){return this.agentId||""},defaultWorkDir(){return this.createDefaultWorkDir},items(){return this.store.workCenterItemsByAgent[this.agentId]||[]},loading(){return!!this.store.workCenterLoadingByAgent[this.agentId]},loaded(){return!!this.store.workCenterLoadedByAgent[this.agentId]},error(){return this.store.workCenterErrorByAgent[this.agentId]||null},detail(){return this.store.workCenterDetailByAgent[this.agentId]||null},selected(){return this.detail?.id===this.selectedId?this.detail:this.items.find(e=>e.id===this.selectedId)||null},selectedAction(){return(Array.isArray(this.selected?.actions)?this.selected.actions:[]).find(t=>t.id===this.selectedActionId)||null},actionRequestKey(){return this.selected?.id&&this.selectedAction?.id?Js(this.agentId,this.selected.id,this.selectedAction.id,this.selectedAction.generation):""},actionMessageKey(){return this.selected?.id&&this.selectedAction?.id?bs(this.agentId,this.selected.id,this.selectedAction.id,this.selectedAction.generation):""},actionComposerScope(){return this.selected?.id&&this.selectedAction?.id?`${this.agentId}:${this.selected.id}:${this.selectedAction.id}:${this.actionComposerGeneration}`:""},workItemComposerScope(){return this.selected?.id?`${this.agentId}:${this.selected.id}:${this.workItemComposerGeneration}`:""},coordinatorThinking(){return(this.selected?.messages||[]).some(e=>e?.role==="assistant"&&e.status==="thinking")},coordinatorReadOnly(){return["done","cancelled"].includes(this.selected?.status)},coordinatorRequestedSelectedActionInput(){return this.selected?.status!=="waiting"||this.selectedAction?.status!=="waiting"?!1:[...this.selected.messages||[]].reverse().some(e=>e?.role==="assistant"&&e.status==="completed"&&e.decision?.kind==="request_human"&&e.recovery?.actionId===this.selectedAction.id&&e.recovery?.actionGeneration===this.selectedAction.generation)},actionMessages(){let e=Array.isArray(this.selectedAction?.messages)?this.selectedAction.messages:[],t=(Array.isArray(this.selectedAction?.thread)?this.selectedAction.thread:[]).flatMap(o=>Array.isArray(o?.messages)?o.messages:[]),s=this.store.workCenterActionMessages[this.actionMessageKey]?.messages||[],n=Zs(t,s,e),i=this.selectedAction?.liveMessage,r=i&&n.some(o=>o.role==="assistant"&&o.runId!=null&&o.runId===i.runId&&(i.status==="running"?o.text===i.text:o.status!=="running"));return Zs(n,r?null:i)},actionMessagesNextCursor(){let e=this.store.workCenterActionMessages[this.actionMessageKey];return e?e.nextCursor:this.selectedAction?.messageCursor},actionMessagesLoading(){return!!this.store.workCenterActionMessagesLoading[this.actionMessageKey]},actionMessagesError(){return this.store.workCenterActionMessagesError[this.actionMessageKey]||""},orderedActions(){let e=Array.isArray(this.selected?.actions)?this.selected.actions:[],t={running:0,waiting:1,failed:2,ready:3,completed:4,done:4,superseded:5,cancelled:6};return e.map((s,n)=>({action:s,index:n})).sort((s,n)=>{let i=t[s.action?.status]??7,r=t[n.action?.status]??7;if(i!==r)return i-r;let o=Number(s.action?.sequence),a=Number(n.action?.sequence);return Number.isFinite(o)&&Number.isFinite(a)&&o!==a?o-a:s.index-n.index}).map(s=>s.action)},actionRequests(){return this.store.workCenterActionRequests[this.actionRequestKey]||[]},actionRequestDetails(){return this.actionRequestKey?Object.fromEntries(this.actionRequests.map(e=>{let t=Jt(e);return[t,this.store.workCenterActionRequestDetails[`${this.actionRequestKey}:${t}`]||null]})):{}},actionRequestDetailsLoading(){return this.actionRequestKey?Object.fromEntries(this.actionRequests.map(e=>{let t=Jt(e);return[t,!!this.store.workCenterActionRequestDetailsLoading[`${this.actionRequestKey}:${t}`]]})):{}},actionRequestDetailsError(){return this.actionRequestKey?Object.fromEntries(this.actionRequests.map(e=>{let t=Jt(e);return[t,this.store.workCenterActionRequestDetailsError[`${this.actionRequestKey}:${t}`]||""]})):{}},actionRequestsLoading(){return!!this.store.workCenterActionRequestsLoading[this.actionRequestKey]},actionRequestsError(){return this.store.workCenterActionRequestsError[this.actionRequestKey]||""},boardLanes(){return[{id:"active",title:this.tr("workCenter.board.active","Active")},{id:"needs_attention",title:this.tr("workCenter.board.needsAttention","Needs attention")},{id:"closed",title:this.tr("workCenter.board.closed","Closed")}].map(e=>({...e,items:this.items.filter(t=>t.boardLane===e.id)}))},boardExecutorOptions(){let e=new Map;for(let t of this.items)for(let s of Array.isArray(t.executors)?t.executors:[])s?.id&&e.set(s.id,s.name||s.id);return[...e.entries()].map(([t,s])=>({id:t,name:s}))},boardTypeOptions(){return[...new Set(this.items.map(e=>e.workItemType).filter(Boolean))].sort()},emptyState(){return{title:this.search.trim()?this.tr("workCenter.noMatchesTitle","No matching work items"):this.tr("workCenter.emptyTitle","No work items yet"),body:this.search.trim()?this.tr("workCenter.noMatchesBody","Try a different search or filter."):this.tr("workCenter.emptyBody","Create a persistent task when work must continue beyond one conversation turn."),canCreate:!this.search.trim()}}},watch:{agentId:{immediate:!0,handler(e,t){ts(this),this.createGeneration=(Number(this.createGeneration)||0)+1,this.saving=!1,this.selectedId=null,this.selectedActionId=null,this.resetActionComposer?.(),this.resetWorkItemComposer?.(),this.narrowPane="items",this.previewingAttachmentId=null,this.attachmentPreviewError="",this.attachmentPreviewGeneration=(Number(this.attachmentPreviewGeneration)||0)+1,t&&e!==t&&(this.closeFolderPicker(),this.resetCreateExecutionContext(e)),e&&((typeof this.boardFilters=="function"?this.store.listWorkItems(e,this.boardFilters()):this.store.listWorkItems(e)).catch(()=>{}),this.store.loadWorkCenterSettings(e).catch(()=>{}))}},createDefaultWorkDir(){this.applyCreateDefaults()},createDefaultStart(){this.applyCreateDefaults()},search(){this.scheduleBoardQuery()},boardVpId(){this.scheduleBoardQuery()},boardWorkItemType(){this.scheduleBoardQuery()},boardUpdatedRange(){this.scheduleBoardQuery()},"detail.coordinatorRevision"(){this.$nextTick(()=>{let e=this.$el?.querySelector?.(".work-center-item-message-list");e&&(e.scrollTop=e.scrollHeight)})},detail:{deep:!0,handler(e){if(!e||e.id!==this.selectedId)return;let t=Array.isArray(e.actions)?e.actions:[];if(!t.some(s=>s.id===this.selectedActionId)){let s=e.currentActionId||t[0]?.id||null;s!==this.selectedActionId&&(ts(this),this.resetActionComposer(),this.previewingAttachmentId=null,this.attachmentPreviewError="",this.attachmentPreviewGeneration=(Number(this.attachmentPreviewGeneration)||0)+1),this.selectedActionId=s}}}},beforeUnmount(){ts(this),this.boardQueryTimer&&clearTimeout(this.boardQueryTimer)},mounted(){let e=this.store.workCenterCreateDraft;e&&(this.form={requirement:e.requirement||e.goal||e.title||"",workDir:e.workDir||"",reuseMemory:!0,start:this.settings?.startImmediately!==!1},this.createOpen=!0,this.workDirTouched=!!String(e.workDir||"").trim(),this.startTouched=!1,this.applyCreateDefaults())},methods:{trackOverlayPointerDown:tt,trackOverlayPointerUp:st,clearOverlayPointerGesture:nt,closeLlmConfigFromOverlay(e){Ye(e)&&(this.llmConfigOpen=!1)},tr(e,t){let s=this.$t?this.$t(e):e;return s&&s!==e?s:t},agentName(e){return this.agents.find(s=>s.id===e)?.name||e||this.tr("workCenter.agent","Agent")},statusLabel(e){return this.tr(`workCenter.status.${e}`,String(e||"").replace("_"," "))},actionLabel(e){return this.tr(`workCenter.action.${e}`,e||"\u2014")},actionSequence(e){let t=Number(e?.sequence);if(Number.isFinite(t)&&t>0)return t;let n=(Array.isArray(this.selected?.actions)?this.selected.actions:[]).findIndex(i=>i?.id===e?.id);return n>=0?n+1:1},actionBreadcrumbDescription(e){return String(e?.brief?.objective||e?.objective||this.actionContentSummary(e)||"").trim().replace(/\s+/g," ")||this.tr("workCenter.untitledAction","Untitled Action")},itemActionProgress(e){let t=Math.max(0,Number(e?.actionCount)||0),s=Math.min(t,Math.max(0,Number(e?.completedActionCount)||0));return this.$t("workCenter.actionProgress",{completed:s,total:t})},time(e){if(!e)return"";try{return new Date(Number(e)).toLocaleString()}catch{return""}},resizeWorkItemComposer(e,t=!1){if(!e)return;e.style.height="auto";let s=t?24:Math.min(e.scrollHeight,144);e.style.height=`${s}px`,e.style.overflowY=e.scrollHeight>144?"auto":"hidden"},onWorkItemMessageInput(e){this.workItemMessage=e.target.value,this.resizeWorkItemComposer(e.target,!e.target.value)},onWorkItemMessageKeydown(e){e.key!=="Enter"||e.shiftKey||e.isComposing||(e.preventDefault(),this.sendSelectedWorkItemMessage())},boardFilters(){let e=Date.now(),t=this.boardUpdatedRange==="day"?e-1440*60*1e3:this.boardUpdatedRange==="week"?e-10080*60*1e3:this.boardUpdatedRange==="month"?e-720*60*60*1e3:null;return{keyword:this.search.trim(),vpId:this.boardVpId,workItemType:this.boardWorkItemType,updatedFrom:t,limit:200}},scheduleBoardQuery(){this.boardQueryTimer&&clearTimeout(this.boardQueryTimer),this.boardQueryTimer=setTimeout(()=>{this.boardQueryTimer=null,this.agentId&&this.refresh()},180)},refresh(){return this.store.listWorkItems(this.agentId,this.boardFilters()).catch(()=>{})},loadMoreBoardItems(){return this.store.loadMoreWorkItems(this.agentId).catch(()=>{})},boardAction(e){return e.attentionAction||e.activeAction||e.currentAction||null},boardActionCountLabel(e){let t=e.actionCounts||{},s=[];for(let n of["running","failed","waiting","ready"])Number(t[n])>0&&s.push(`${t[n]} ${this.statusLabel(n)}`);return s.join(" \xB7 ")||this.itemActionProgress(e)},boardExecutorLabel(e){let t=Array.isArray(e.executors)?e.executors:[];if(t.length>0)return t.map(n=>n.name||n.id).join(", ");let s=this.boardAction(e);return s?.assignedVp?.name||s?.assignedVp?.id||this.tr("workCenter.assignment.planned","Planned assignment")},resetActionComposer(){this.actionComposerGeneration+=1,this.actionInputRequestGeneration+=1,this.actionGuidance="",this.actionInputError="",this.guidanceAttachments=[],this.guidanceAttachmentsUploading=!1,this.actionInputSending=!1},resetWorkItemComposer(){this.workItemComposerGeneration+=1,this.workItemMessage="",this.workItemMessageAttachments=[],this.workItemMessageAttachmentsUploading=!1,this.workItemMessageError="",this.workItemMessageSending=!1},openWorkItem(e){ts(this),this.selectedId=e,this.selectedActionId=null,this.narrowPane="actions",this.resetActionComposer(),this.resetWorkItemComposer(),this.expandedActions={},this.actionsExpanded=!1,this.detailError="",this.detailLoading=!1,this.previewingAttachmentId=null,this.attachmentPreviewError="",this.attachmentPreviewGeneration=(Number(this.attachmentPreviewGeneration)||0)+1},async selectItem(e){this.openWorkItem(e.id),this.detailLoading=!0;try{let t=await this.store.getWorkItem(e.id,this.agentId);this.selectedId===e.id&&(this.selectedActionId=t?.currentActionId||t?.actions?.[0]?.id||null)}catch(t){this.selectedId===e.id&&(this.detailError=t?.message||String(t))}finally{this.selectedId===e.id&&(this.detailLoading=!1)}},selectAction(e){this.selectedActionId!==e.id&&(ts(this),this.resetActionComposer(),this.previewingAttachmentId=null,this.attachmentPreviewError="",this.attachmentPreviewGeneration=(Number(this.attachmentPreviewGeneration)||0)+1),this.selectedActionId=e.id,this.narrowPane="action",this.loadLatestActionMessages(e)},loadLatestActionMessages(e=this.selectedAction){if(!this.selected?.id||!e?.id||Array.isArray(e.messages))return null;let t=bs(this.agentId,this.selected.id,e.id,e.generation);return this.store.workCenterActionMessages[t]?null:this.store.loadWorkItemActionMessages(this.selected.id,e.id,e.generation,null,this.agentId).catch(()=>null)},showItemsPane(){this.narrowPane="items"},showActionsPane(){this.narrowPane="actions"},loadEarlierActionMessages(){return!this.selected?.id||!this.selectedAction?.id||this.actionMessagesNextCursor==null?null:this.store.loadWorkItemActionMessages(this.selected.id,this.selectedAction.id,this.selectedAction.generation,this.actionMessagesNextCursor,this.agentId).catch(()=>null)},async refreshActionRequests(){return!this.selected?.id||!this.selectedAction?.id?[]:this.store.loadWorkItemActionRequests(this.selected.id,this.selectedAction.id,this.selectedAction.generation,this.agentId).catch(()=>[])},loadActionRequest(e){return!this.selected?.id||!this.selectedAction?.id||!e?.id?null:this.store.loadWorkItemActionRequest(this.selected.id,this.selectedAction.id,this.selectedAction.generation,e.runId,e.id,this.agentId).catch(()=>null)},async openActionRun(e,t){let s=ts(this),n={agentId:this.agentId,workItemId:this.selected?.id,actionId:this.selectedAction?.id,generation:this.selectedAction?.generation,runId:e?.id},i=()=>this.actionRunOpenGeneration===s&&this.agentId===n.agentId&&this.selected?.id===n.workItemId&&this.selectedAction?.id===n.actionId&&this.selectedAction?.generation===n.generation;if(!n.workItemId||!n.actionId||!n.runId)return t?.(null);let r=await this.store.loadWorkItemActionRequests(n.workItemId,n.actionId,n.generation,n.agentId).catch(()=>[]);if(!i())return t?.(null);let o=r.find(l=>l.runId===n.runId)||null;return!o||!await this.store.loadWorkItemActionRequest(n.workItemId,n.actionId,n.generation,o.runId,o.id,n.agentId).catch(()=>null)||!i()?t?.(null):t?.(o)},actionHasDetail(e){return!!e?.brief||Array.isArray(e?.messages)&&e.messages.length>0||!!String(e?.response||"").trim()||!!String(e?.failureReason||"").trim()},actionExpanded(e){return!!this.expandedActions[e?.id]},toggleAction(e){this.actionHasDetail(e)&&(this.expandedActions={...this.expandedActions,[e.id]:!this.expandedActions[e.id]})},actionResponseText(e){return String(e?.response||"").trim()},actionExecutor(e){return e?.assignedVp?.name||e?.assignedVp?.id||e?.requiredRole||e?.assignmentPolicy?.fixedVpId||e?.assignmentPolicy?.capability||this.tr("workCenter.assignment.auto","Auto")},actionContentSummary(e){return String(e?.contentSummary||e?.response||e?.brief?.objective||"").trim()},executionStats(e){return e?.executionStats||{}},formatCount(e){return new Intl.NumberFormat().format(Math.max(0,Number(e)||0))},formatTokens(e){let t=Math.max(0,Number(e)||0);return t>=1e6?`${(t/1e6).toFixed(1)}m`:t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)},resetCreateExecutionContext(e){let t=this.workDirTouched||this.startTouched,s=this.store.workCenterCreateDraft;s&&(this.store.workCenterCreateDraft={sourceAgentId:e||null,requirement:s.requirement||s.goal||s.title||"",workDir:"",origin:null,linkedSessionIds:[]}),this.form.workDir="",this.form.start=!0,this.workDirTouched=!1,this.startTouched=!1,t&&(this.createOpen=!1),this.applyCreateDefaults()},applyCreateDefaults(){this.createOpen&&(!this.workDirTouched&&!this.form.workDir.trim()&&(this.form.workDir=this.createDefaultWorkDir),this.startTouched||(this.form.start=this.createDefaultStart))},folderPickerInitialDir(){return this.form.workDir.trim()||this.createDefaultWorkDir},folderPickerSetWorkDir(e){this.form.workDir=e,this.workDirTouched=!0},onCreateWorkDirInput(){this.workDirTouched=!0},onCreateStartInput(){this.startTouched=!0},async onCreateAttachmentInput(e){if(!this.workItemAttachmentsSupported)throw e.target.value="",new Error(this.tr("workCenter.attachmentsUnsupported","The selected Agent does not support Work Item attachments."));let t=Array.from(e.target.files||[]);if(e.target.value="",t.length===0)return;let s=Math.max(0,10-this.createAttachments.length),n=t.slice(0,s);if(n.length!==0){this.attachmentsUploading=!0;try{let i=new FormData;for(let d of n)i.append("files",d,d.name||"attachment");let r=Pinia.useAuthStore(),o=r.getActiveToken?.()||r.token||null,a=o?{Authorization:`Bearer ${o}`}:{},l=await fetch("/api/upload",{method:"POST",headers:a,body:i});if(!l.ok)throw new Error(this.tr("workCenter.attachmentsUploadFailed","Attachment upload failed"));let c=await l.json();this.createAttachments=[...this.createAttachments,...Array.isArray(c.files)?c.files:[]].slice(0,10)}finally{this.attachmentsUploading=!1}}},removeCreateAttachment(e){this.createAttachments=this.createAttachments.filter((t,s)=>s!==e)},async onGuidanceAttachmentInput(e){if(!this.workItemAttachmentsSupported)throw e.target.value="",new Error(this.tr("workCenter.attachmentsUnsupported","The selected Agent does not support Work Item attachments."));let t=Array.from(e.target.files||[]);if(e.target.value="",t.length===0)return;let s=this.actionComposerScope;if(!s)return;let n=Array.isArray(this.selected?.attachments)?this.selected.attachments.length:0,i=Math.max(0,10-n-this.guidanceAttachments.length),r=t.slice(0,i);if(r.length!==0){this.guidanceAttachmentsUploading=!0,this.actionInputError="";try{let o=new FormData;for(let p of r)o.append("files",p,p.name||"attachment");let a=Pinia.useAuthStore(),l=a.getActiveToken?.()||a.token||null,c=l?{Authorization:`Bearer ${l}`}:{},d=await fetch("/api/upload",{method:"POST",headers:c,body:o});if(!d.ok)throw new Error(this.tr("workCenter.attachmentsUploadFailed","Attachment upload failed"));let u=await d.json();if(this.actionComposerScope!==s)return;this.guidanceAttachments=[...this.guidanceAttachments,...Array.isArray(u.files)?u.files:[]].slice(0,Math.max(0,10-n))}catch(o){this.actionComposerScope===s&&(this.actionInputError=o?.message||String(o))}finally{this.actionComposerScope===s&&(this.guidanceAttachmentsUploading=!1)}}},removeGuidanceAttachment(e){this.guidanceAttachments=this.guidanceAttachments.filter((t,s)=>s!==e)},async onWorkItemMessageAttachmentInput(e){if(!this.workItemAttachmentsSupported){e.target.value="",this.workItemMessageError=this.tr("workCenter.attachmentsUnsupported","The selected Agent does not support Work Item attachments.");return}let t=Array.from(e.target.files||[]);if(e.target.value="",t.length===0)return;let s=this.workItemComposerScope;if(!s)return;let n=Array.isArray(this.selected?.attachments)?this.selected.attachments.length:0,i=Math.max(0,10-n-this.workItemMessageAttachments.length),r=t.slice(0,i);if(r.length!==0){this.workItemMessageAttachmentsUploading=!0,this.workItemMessageError="";try{let o=new FormData;for(let p of r)o.append("files",p,p.name||"attachment");let a=Pinia.useAuthStore(),l=a.getActiveToken?.()||a.token||null,c=l?{Authorization:`Bearer ${l}`}:{},d=await fetch("/api/upload",{method:"POST",headers:c,body:o});if(!d.ok)throw new Error(this.tr("workCenter.attachmentsUploadFailed","Attachment upload failed"));let u=await d.json();if(this.workItemComposerScope!==s)return;this.workItemMessageAttachments=[...this.workItemMessageAttachments,...Array.isArray(u.files)?u.files:[]].slice(0,Math.max(0,10-n))}catch(o){this.workItemComposerScope===s&&(this.workItemMessageError=o?.message||String(o))}finally{this.workItemComposerScope===s&&(this.workItemMessageAttachmentsUploading=!1)}}},removeWorkItemMessageAttachment(e){this.workItemMessageAttachments=this.workItemMessageAttachments.filter((t,s)=>s!==e)},async previewAttachment(e,t=null){if(!this.selected?.id||!e?.id||this.previewingAttachmentId)return;let s=this.agentId,n=this.selected.id,i=this.selectedActionId||"",r=`${s}:${n}:${i}`,o=(Number(this.attachmentPreviewGeneration)||0)+1;this.attachmentPreviewGeneration=o;let a=()=>this.attachmentPreviewGeneration===o&&`${this.agentId}:${this.selected?.id||""}:${this.selectedActionId||""}`===r,l=e.isImage?null:window.open("","_blank");if(!e.isImage&&!l){this.attachmentPreviewError=this.tr("workCenter.attachmentOpenBlocked","The browser blocked the attachment window. Allow pop-ups and try again.");return}l&&(l.opener=null),this.previewingAttachmentId=e.id,this.attachmentPreviewError="";try{let c=await this.store.previewWorkItemAttachment(n,e.id,s);if(!a()){l?.close();return}c?.preview&&c.attachment?.isImage?Is(c.preview,{alt:e.name||this.tr("workCenter.previewAttachment","Open attachment"),closeLabel:this.tr("common.close","Close"),trigger:t}):c?.preview&&l?l.location.replace(c.preview):l?.close()}catch(c){l?.close(),a()&&(this.attachmentPreviewError=c?.message||this.tr("workCenter.attachmentPreviewFailed","Could not open the attachment. Try again."))}finally{a()&&(this.previewingAttachmentId=null)}},formatAttachmentSize(e){let t=Math.max(0,Number(e)||0);return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/1024/1024).toFixed(1)} MB`},openCreate(){this.createOpen=!0,this.workDirTouched=!1,this.startTouched=!1,this.applyCreateDefaults()},closeCreate(){this.saving||(this.closeFolderPicker(),this.createOpen=!1,this.store.workCenterCreateDraft=null)},onLlmConfigSaved(){let e=this.agentId;if(e)return this.store.refreshWorkCenterRuntime(e).catch(()=>{})},async submitCreate(){let e=String(this.form.requirement||this.form.goal||this.form.title||"").trim();if(!e||!this.form.workDir.trim())return;let t=this.agentId,s=(Number(this.createGeneration)||0)+1;this.createGeneration=s,this.saving=!0;try{let n=this.store.workCenterCreateDraft,i=n?.sourceAgentId===t,r=await this.store.createWorkItem({requirement:e,title:e,goal:e,acceptanceCriteria:[],workItemType:"auto",workDir:this.form.workDir.trim(),origin:i&&n.origin||null,linkedSessionIds:i?n.linkedSessionIds||[]:[],attachments:this.workItemAttachmentsSupported?(this.createAttachments||[]).map(o=>({fileId:o.fileId,name:o.name,mimeType:o.mimeType,size:o.size})):[],reuseMemory:this.form.reuseMemory,start:this.form.start},t);if(this.agentId!==t||this.createGeneration!==s)return;this.openWorkItem(r.id),this.selectedActionId=r.currentActionId||r.actions?.[0]?.id||null,this.form={requirement:"",workDir:"",reuseMemory:!0,start:this.settings?.startImmediately!==!1},this.store.workCenterCreateDraft=null,this.createAttachments=[],this.workDirTouched=!1,this.startTouched=!1,this.createOpen=!1}finally{this.agentId===t&&this.createGeneration===s&&(this.saving=!1)}},async startSelected(){this.selected&&await this.store.startWorkItem(this.selected.id,this.agentId)},async sendSelectedWorkItemMessage(){if(!this.selected||!this.workItemMessage.trim()&&this.workItemMessageAttachments.length===0||this.workItemMessageSending||this.workItemMessageAttachmentsUploading||this.coordinatorThinking||this.coordinatorReadOnly)return;let e=this.workItemComposerScope,t=this.selected.id,s=this.selected.revision,n=this.workItemMessage.trim(),i=this.workItemMessageAttachments.map(r=>({fileId:r.fileId,name:r.name,mimeType:r.mimeType,size:r.size}));this.workItemMessageSending=!0,this.workItemMessageError="";try{await this.store.sendWorkItemMessage(t,n,s,i,this.agentId,{planRevision:this.selected.planRevision,ledgerRevision:this.selected.ledgerRevision,coordinatorRevision:this.selected.coordinatorRevision}),this.workItemComposerScope===e&&this.workItemMessage.trim()===n&&(this.workItemMessage="",this.workItemMessageAttachments=[],this.$nextTick(()=>this.resizeWorkItemComposer(this.$refs.workItemComposerInput,!0)))}catch(r){this.workItemComposerScope===e&&(this.workItemMessageError=r?.message||String(r))}finally{this.workItemComposerScope===e&&(this.workItemMessageSending=!1)}},async retrySelectedAction(){if(!this.selected||this.selectedAction?.status!=="failed"||this.actionInputSending)return;let e=this.actionComposerScope;this.actionInputSending=!0,this.actionInputError="";try{await this.store.retryWorkItemAction(this.selected.id,this.selectedAction.id,this.selected.revision,this.selectedAction.generation,this.agentId)}catch(t){this.actionComposerScope===e&&(this.actionInputError=t?.message||String(t))}finally{this.actionComposerScope===e&&(this.actionInputSending=!1)}},async guideSelectedAction(){if(!this.selected||!this.selectedAction||!this.actionGuidance.trim()&&this.guidanceAttachments.length===0||!["ready","running","waiting","failed"].includes(this.selectedAction.status))return;let e=this.actionComposerScope,t=this.selected.id,s=this.selectedAction.id,n=this.selected.revision,i=this.actionGuidance.trim(),r=this.guidanceAttachments.map(a=>({fileId:a.fileId,name:a.name,mimeType:a.mimeType,size:a.size})),o=(Number(this.actionInputRequestGeneration)||0)+1;this.actionInputRequestGeneration=o,this.actionGuidance="",this.guidanceAttachments=[],this.actionInputSending=!0,this.actionInputError="";try{let a=await this.store.sendWorkItemActionInput(t,i,s,n,this.selectedAction.generation,r,this.agentId);if(this.selected?.id!==t||this.actionInputRequestGeneration!==o)return;let l=a?.id===t&&a?.actions?.some(d=>d?.id===s);if(this.guidanceAttachments=[],this.$nextTick(()=>{let d=this.$el?.querySelector?.(".work-center-action-input-wrapper textarea");d&&(d.style.height="24px",d.style.overflowY="hidden")}),a?.accepted&&a?.routedTo==="coordinator")return;let c=l?s:a?.currentActionId||this.selectedActionId;c!==this.selectedActionId&&(this.resetActionComposer(),this.previewingAttachmentId=null,this.attachmentPreviewError="",this.attachmentPreviewGeneration=(Number(this.attachmentPreviewGeneration)||0)+1),this.selectedActionId=c}catch(a){this.actionInputRequestGeneration===o&&(this.actionGuidance||(this.actionGuidance=i),this.guidanceAttachments.length===0&&(this.guidanceAttachments=r.map(l=>({...l}))),this.actionInputError=a?.message||String(a))}finally{this.actionInputRequestGeneration===o&&(this.actionInputSending=!1)}},workItemCanDelete(e){return["done","cancelled","draft","needs_attention"].includes(e?.status)},workItemDeleting(e){return!!this.deletingWorkItemIds[e?.id]},async deleteWorkItem(e){if(!e||this.workItemDeleting(e))return;let t=this.tr("workCenter.deleteConfirm","Permanently delete this Work Item, its execution history, and attachments?");if(!(typeof confirm=="function"&&!confirm(t))){this.deleteWorkItemError="",this.deletingWorkItemIds={...this.deletingWorkItemIds,[e.id]:!0};try{let s=await this.store.deleteWorkItem(e.id,e.revision,this.agentId);s?.cleanupWarning&&(this.deleteWorkItemError=s.cleanupWarning),this.selectedId===e.id&&(ts(this),this.selectedId=null,this.selectedActionId=null,this.narrowPane="items",this.resetActionComposer(),this.resetWorkItemComposer())}catch(s){this.deleteWorkItemError=s?.message||String(s)}finally{let s={...this.deletingWorkItemIds};delete s[e.id],this.deletingWorkItemIds=s}}},async cancelSelected(){if(!this.selected||["done","cancelled"].includes(this.selected.status))return;let e=this.tr("workCenter.cancelConfirm","Stop this work item and its unfinished Actions?");typeof confirm=="function"&&!confirm(e)||await this.store.cancelWorkItem(this.selected.id,this.agentId)},async resumeSelected(){!this.selected||this.selected.status!=="cancelled"||await this.store.resumeWorkItem(this.selected.id,this.selected.revision,this.agentId)}},template:`
5189
5189
  <main class="work-center-main" :class="{ 'workbench-maximized': store.workbenchMaximized && store.workbenchExpanded }">
5190
- <div class="work-center-shell">
5190
+ <div class="work-center-shell" :class="{ 'showing-detail': narrowPane !== 'items' }">
5191
5191
  <header class="work-center-header">
5192
5192
  <div class="work-center-heading">
5193
5193
  <button class="work-center-sidebar-toggle" type="button" @click="store.toggleSessionSidebar()"
Binary file
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
6
6
  <title>Yeaft</title>
7
7
  <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect width='32' height='32' rx='8' fill='%232c2c2c'/><path d='M16 22V13M16 13L10 8M16 13L22 8' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' fill='none'/><circle cx='10' cy='8' r='2.4' fill='white'/><circle cx='22' cy='8' r='2.4' fill='white'/><circle cx='16' cy='22' r='2.4' fill='white'/></svg>">
8
- <link rel="stylesheet" href="style.bundle.css?v=dbdf9491">
8
+ <link rel="stylesheet" href="style.bundle.css?v=5b29d83d">
9
9
  <script src="vendor.bundle.js?v=103fd8e7"></script>
10
10
  <script defer src="jszip.min.js"></script>
11
11
  <script defer src="docx-preview.min.js"></script>
@@ -16,6 +16,6 @@
16
16
  </head>
17
17
  <body>
18
18
  <div id="app"></div>
19
- <script type="module" src="app.bundle.js?v=519751d9"></script>
19
+ <script type="module" src="app.bundle.js?v=3760af34"></script>
20
20
  </body>
21
21
  </html>