@openchambery/web 1.19.6-beta.2 → 1.19.7-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/assets/{AgentAvatar-CecaXP3U.js → AgentAvatar-ziUs4sw3.js} +1 -1
  2. package/dist/assets/AssistantView-CqYrPnmi.js +1 -0
  3. package/dist/assets/{ChatContainer-Jtte7fDL.js → ChatContainer-B1oHLuxJ.js} +41 -41
  4. package/dist/assets/ContextPanel-Cv4ezsRZ.js +285 -0
  5. package/dist/assets/DiagramView-Cl70FKMi.js +1 -0
  6. package/dist/assets/FadeInOnReveal-BAlsRFJH.js +1 -0
  7. package/dist/assets/{Icon-Du1LX11Q.js → Icon-CLpn1mIz.js} +1 -1
  8. package/dist/assets/MarkdownRendererImpl-D1mBcZI0.js +7 -0
  9. package/dist/assets/MarkstreamRendererImpl-CR0fBG5w.css +1 -0
  10. package/dist/assets/MarkstreamRendererImpl-DKejWn8D.js +1 -0
  11. package/dist/assets/MobileDetailNavigation-1VCpYu63.js +1 -0
  12. package/dist/assets/MobileShareBridge-mHGdDmey.js +4 -0
  13. package/dist/assets/MobileSurface-BX3R193V.js +2 -0
  14. package/dist/assets/{MultiRunWindow-BLi408XV.js → MultiRunWindow-BErLmZWg.js} +1 -1
  15. package/dist/assets/OnboardingScreen-CJYyR54B.js +1 -0
  16. package/dist/assets/OverlayScrollbar-C-jZ8ITG.js +2 -0
  17. package/dist/assets/SettingsView-Cn1jP1mT.js +25 -0
  18. package/dist/assets/{SettingsWindow-Bwm99_EI.js → SettingsWindow-CBbZt7wX.js} +1 -1
  19. package/dist/assets/TerminalView-DX9E73SP.js +8 -0
  20. package/dist/assets/ToolOutputDialog-BZVb4Y-p.js +10 -0
  21. package/dist/assets/__vite-optional-peer-dep_mermaid_markstream-react-CQGbcmkI.js +1 -0
  22. package/dist/assets/appThemeRegistry-DtV6Rvrg.js +2 -0
  23. package/dist/assets/{button-p6vbd3r6.js → button-z0GOBtWi.js} +1 -1
  24. package/dist/assets/clipboard-Bz0Zm9VJ.js +1 -0
  25. package/dist/assets/{collapsible-Cimoz0kx.js → collapsible-D9zJRpeB.js} +1 -1
  26. package/dist/assets/d2_markstream-react-DtM9g53j.js +1 -0
  27. package/dist/assets/desktop-CfLlmafK.js +1 -0
  28. package/dist/assets/desktopHosts-C1Ns3DUu.js +1 -0
  29. package/dist/assets/desktopRelayRestore-LBt0CBOj.js +1 -0
  30. package/dist/assets/{diagram-DX_MPRs3.js → diagram-CoEqmReY.js} +1 -1
  31. package/dist/assets/{dialog-Bjnvo5pk.js → dialog-HCE4eLUW.js} +1 -1
  32. package/dist/assets/fileQueries-Dnn15WsA.js +1 -0
  33. package/dist/assets/{gitApi-BxmPop0H.js → gitApi-BG4voVWW.js} +1 -1
  34. package/dist/assets/infographic_markstream-react-C3vVus-4.js +1 -0
  35. package/dist/assets/{input-gaFVNq1P.js → input-BG3VWTIF.js} +1 -1
  36. package/dist/assets/insertionBoundaries-C0RVooi_.js +4 -0
  37. package/dist/assets/main-CfyFgSOx.js +2 -0
  38. package/dist/assets/main-DpSMLr9r.js +29 -0
  39. package/dist/assets/markdown-worker-y3ewaqAK.js +4 -0
  40. package/dist/assets/markdownHeightCache-CvUyZT4q.js +1 -0
  41. package/dist/assets/markdownTheme-TdhQOZSN.js +2 -0
  42. package/dist/assets/miniChat-C7rwl6yh.js +2 -0
  43. package/dist/assets/mobile-r2_QpF9U.js +2 -0
  44. package/dist/assets/multirun-Bzl1GRci.js +4 -0
  45. package/dist/assets/persistence-CmjKImz2.js +3 -0
  46. package/dist/assets/platform-skqcMARt.js +2 -0
  47. package/dist/assets/projectMeta-DreuW5QR.js +3 -0
  48. package/dist/assets/radio-BjFhpK38.js +1 -0
  49. package/dist/assets/renderElectronMiniChatApp-CWv8b6sX.js +2 -0
  50. package/dist/assets/renderMobileApp-DwU7nQCh.js +25 -0
  51. package/dist/assets/runtime-switch-BkpTTbEi.js +1 -0
  52. package/dist/assets/runtimeConfig-BCUCu-2N.js +2 -0
  53. package/dist/assets/runtimeEndpointReset-e8yYYEql.js +4 -0
  54. package/dist/assets/{shikiHighlight-eIaY2Kju.js → shikiHighlight-BZ2o-6R0.js} +1 -1
  55. package/dist/assets/sortable-tabs-strip-Bj8N0VWf.js +1 -0
  56. package/dist/assets/terminalApi-CNqqwjfG.js +1 -0
  57. package/dist/assets/{tooltip-D1a6rKLA.js → tooltip-CtH61mQh.js} +1 -1
  58. package/dist/assets/url-KeihbE0d.js +1 -0
  59. package/dist/assets/useAppFontEffects-BsUDFHEp.js +7 -0
  60. package/dist/assets/useAssistantUIStore-DaplPyb0.js +1 -0
  61. package/dist/assets/useDesktopWindowControlsLayout-D_OHz0jC.js +1 -0
  62. package/dist/assets/{useEffectiveDirectory-Crf7G7TX.js → useEffectiveDirectory-MPobUNu2.js} +1 -1
  63. package/dist/assets/useFontPreferences-D8emhcNv.js +1 -0
  64. package/dist/assets/useMobileNavigationStore-39gNpMJa.js +412 -0
  65. package/dist/assets/useSessionAutoCleanup-CJrCBgIe.js +1 -0
  66. package/dist/assets/useUIStore-B7KJS5G7.js +1 -0
  67. package/dist/assets/useWorkerHighlightedLines-Is3NbOjf.js +7 -0
  68. package/dist/assets/utils-CTL16t2f.js +1 -0
  69. package/dist/assets/vendor-floating-ui-core-Co1I1lFV.js +1 -0
  70. package/dist/assets/vendor-floating-ui-dom-BHhLtF5l.js +1 -0
  71. package/dist/assets/vendor-katex--B5dHUyk.js +257 -0
  72. package/dist/assets/vendor-markstream-core-Cm34iPLL.js +3 -0
  73. package/dist/assets/vendor-markstream-react-CGQrpq8a.css +1 -0
  74. package/dist/assets/vendor-markstream-react-CwvbEg9R.js +173 -0
  75. package/dist/assets/vendor-pierre-diffs-DX7XTPG3.js +2795 -0
  76. package/dist/assets/vendor-pierre-theme-D9JzKBPc.js +1 -0
  77. package/dist/assets/vendor-stream-diffs-DWy3xSmp.js +6 -0
  78. package/dist/index.html +10 -8
  79. package/dist/mini-chat.html +10 -8
  80. package/dist/mobile.html +10 -8
  81. package/package.json +1 -1
  82. package/dist/assets/AssistantView-BM7c04DP.js +0 -1
  83. package/dist/assets/ContextPanel-UeBnllm7.js +0 -285
  84. package/dist/assets/DiagramView-CSNqDPIX.js +0 -1
  85. package/dist/assets/FadeInOnReveal-Cj9ZC3Ab.js +0 -1
  86. package/dist/assets/MarkdownRendererImpl-CqoYV3gM.js +0 -7
  87. package/dist/assets/MobileDetailNavigation-xInJsFXY.js +0 -1
  88. package/dist/assets/MobileShareBridge-DgIb2q0F.js +0 -4
  89. package/dist/assets/MobileSurface-DU7wMCxP.js +0 -2
  90. package/dist/assets/OnboardingScreen-BkbprNa7.js +0 -1
  91. package/dist/assets/OverlayScrollbar-oOLMqq2s.js +0 -2
  92. package/dist/assets/SettingsView-BDbbuS5X.js +0 -25
  93. package/dist/assets/TerminalView-dV3xYXLn.js +0 -8
  94. package/dist/assets/ToolOutputDialog-C4ZGDFSf.js +0 -10
  95. package/dist/assets/appThemeRegistry-Dh0XRDtt.js +0 -2
  96. package/dist/assets/clipboard-C0bgPFn5.js +0 -1
  97. package/dist/assets/desktopHosts-DceeVBky.js +0 -1
  98. package/dist/assets/desktopRelayRestore-B0MRdR5y.js +0 -1
  99. package/dist/assets/fileQueries-BDld6h3B.js +0 -1
  100. package/dist/assets/insertionBoundaries-B9Ai1XSi.js +0 -4
  101. package/dist/assets/main-BY7YKenl.js +0 -29
  102. package/dist/assets/main-DLTKz97m.js +0 -2
  103. package/dist/assets/markdown-worker-CoO82KYF.js +0 -4
  104. package/dist/assets/markdownTheme-St8zxDvJ.js +0 -2
  105. package/dist/assets/miniChat-mvs2Sp_b.js +0 -2
  106. package/dist/assets/mobile-D3RhNnH4.js +0 -2
  107. package/dist/assets/multirun-BeRVEbVk.js +0 -4
  108. package/dist/assets/persistence-CLUawIlm.js +0 -3
  109. package/dist/assets/platform-BrncW9ab.js +0 -2
  110. package/dist/assets/projectMeta-DZyXz0Xw.js +0 -3
  111. package/dist/assets/radio-1JBzoeIY.js +0 -1
  112. package/dist/assets/renderElectronMiniChatApp-BKh4WnnX.js +0 -2
  113. package/dist/assets/renderMobileApp-DzvErHVJ.js +0 -25
  114. package/dist/assets/runtimeConfig-CSiXlqKC.js +0 -2
  115. package/dist/assets/runtimeEndpointReset-2mL6Jaq_.js +0 -4
  116. package/dist/assets/sortable-tabs-strip-oDpTDVoQ.js +0 -1
  117. package/dist/assets/terminalApi-D2OzR0I3.js +0 -1
  118. package/dist/assets/url-zwuNq3GS.js +0 -1
  119. package/dist/assets/useAppFontEffects-Khq9JCwr.js +0 -7
  120. package/dist/assets/useAssistantUIStore-D699Sbdb.js +0 -1
  121. package/dist/assets/useDesktopWindowControlsLayout-DoEucjOL.js +0 -1
  122. package/dist/assets/useFontPreferences-F2QPNE2V.js +0 -1
  123. package/dist/assets/useMobileNavigationStore-Bgj9KY7t.js +0 -412
  124. package/dist/assets/useSessionAutoCleanup-CL-VNm3p.js +0 -1
  125. package/dist/assets/useUIStore-BXjMQrel.js +0 -1
  126. package/dist/assets/useWorkerHighlightedLines-DW36Nv1v.js +0 -7
  127. package/dist/assets/utils-D94hxQYq.js +0 -1
  128. package/dist/assets/vendor-katex-CNGgSigB.js +0 -257
  129. package/dist/assets/vendor-pierre-diffs-BenIz2TM.js +0 -1418
  130. package/dist/assets/vendor-pierre-theme-F9vQJHIe.js +0 -1
@@ -0,0 +1,6 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-pierre-diffs-DX7XTPG3.js","assets/rolldown-runtime-C0FnF6B9.js","assets/vendor-base-ui-CnHfUmDN.js","assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js","assets/vendor-hast-util-to-html-B0p1k5Xa.js","assets/vendor-character-entities-legacy-Wut6vMuj.js","assets/vendor-character-entities-html4-DlN_yAFd.js","assets/vendor-ccount-CyGsA0u7.js","assets/vendor-comma-separated-tokens-B9ouxNNS.js","assets/vendor-oniguruma-to-es-CrHzjjSU.js","assets/vendor-oniguruma-parser-D2DIvhSP.js","assets/vendor-diff-Dq7CZNim.js","assets/vendor-lru_map-DpDied8H.js"])))=>i.map(i=>d[i]);
2
+ import{r as e}from"./rolldown-runtime-C0FnF6B9.js";import{o as t}from"./vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js";var n=class{chunks=[];cached=``;dirty=!1;length=0;append(e){e&&(this.chunks.push(e),this.length+=e.length,this.dirty=!0,this.chunks.length>256&&this.compact())}clear(e=``){this.chunks=e?[e]:[],this.cached=e,this.dirty=!1,this.length=e.length}toString(){return this.dirty&&=(this.cached=this.chunks.join(``),!1),this.cached}compact(){this.chunks=[this.chunks.join(``)]}};function r(e,t){e.replaceChildren();let n=document.createElement(`div`);n.className=`stream-diffs-shell`,n.style.overflow=`auto`,n.style.maxHeight=typeof t==`number`?`${t}px`:t??`none`;let r=document.createElement(`div`);return r.className=`stream-diffs-surface`,n.appendChild(r),e.appendChild(n),{shell:n,surface:r}}function i(e,t,n){return{name:e,contents:t,lang:n}}var a=class{input;container;surface;instance;diff;selectedLines=null;disposed=!1;renderListeners=new Set;visualRevision=0;visualReadyPromise=Promise.resolve(!1);resolveVisualReady;constructor(e){this.input=e}async mount(e){this.disposed=!1,this.container=e,this.surface=r(e).surface,await this.render()}async update(e){this.input=e,this.surface&&await this.render(!0)}updateFile(e,t){return this.update({kind:`file`,file:e,annotations:t,options:this.input.kind===`file`?this.input.options:void 0,workerManager:this.input.kind===`file`?this.input.workerManager:void 0})}updateDiff(e,t,n){return this.update({kind:`diff`,oldFile:e,newFile:t,annotations:n,options:l(this.input)?this.input.options:void 0,workerManager:l(this.input)?this.input.workerManager:void 0})}updateParsedDiff(e,t){return this.update({kind:`diff`,fileDiff:e,annotations:t,options:l(this.input)?this.input.options:void 0,workerManager:l(this.input)?this.input.workerManager:void 0})}updatePatch(e,t=0,n,r=0){return this.update({kind:`patch`,patch:e,patchIndex:r,fileIndex:t,annotations:n,options:this.input.kind===`patch`?this.input.options:void 0,workerManager:this.input.kind===`patch`?this.input.workerManager:void 0})}updateMergeConflict(e,t){return this.update({kind:`merge-conflict`,file:e,annotations:t,options:this.input.kind===`merge-conflict`?this.input.options:void 0,workerManager:this.input.kind===`merge-conflict`?this.input.workerManager:void 0})}setSelectedLines(e){this.selectedLines=e,this.instance?.setSelectedLines(e)}setAnnotations(e){this.instance&&(this.input.kind,this.input.annotations=e,this.instance.setLineAnnotations(this.input.annotations),this.emitRender())}setThemeType(e){this.input.options?this.input.options={...this.input.options,themeType:e}:this.input.options={themeType:e},this.instance?.setThemeType(e)}async setTheme(e){this.input.options?this.input.options={...this.input.options,theme:e}:this.input.options={theme:e},this.surface&&await this.render(!1)}async setOptions(e){this.input.options=e,this.surface&&await this.render(!1)}acceptReject(e,t){if(!l(this.input)||!this.diff)throw Error(`acceptReject() requires a diff view`);let{diffAcceptRejectHunk:n}=this.module;return this.diff=n(this.diff,e,t),this.instance.render({fileDiff:this.diff,containerWrapper:this.surface,lineAnnotations:this.input.annotations}),this.diff}resolveConflict(e,t){if(this.input.kind!==`merge-conflict`)throw Error(`resolveConflict() requires a merge-conflict view`);let n=this.instance.resolveConflict(e,t);return n&&(this.input.file=n.file,this.diff=n.fileDiff),n?.file}getResolvedFile(){if(!l(this.input)||!this.diff||this.diff.isPartial)return;let e=`newFile`in this.input?this.input.newFile:void 0;return{name:e?.name??this.diff.name,contents:this.diff.additionLines.join(``),lang:e?.lang??this.diff.lang}}getDiff(){return this.diff}getInput(){return this.input}getNativeInstance(){return this.instance}onDidRender(e){return this.renderListeners.add(e),{dispose:()=>this.renderListeners.delete(e)}}async whenVisualReady(){let e=this.visualReadyPromise;for(;;){let t=await e;if(e===this.visualReadyPromise)return t;e=this.visualReadyPromise}}dispose(){this.disposed=!0,this.invalidateVisualReady(),this.instance?.cleanUp(),this.instance=void 0,this.surface=void 0,this.container?.replaceChildren(),this.container=void 0,this.renderListeners.clear()}module;async render(e=!0){let n=this.surface;if(!n||this.disposed)return;let r=this.beginVisualRender(),i=this.module??=await t(()=>import(`./vendor-pierre-diffs-DX7XTPG3.js`).then(e=>e.h),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]));if(this.disposed||n!==this.surface)return;if(this.instance?.cleanUp(),n.replaceChildren(),this.input.kind===`file`){let e=new i.File(c(this.input.options,()=>this.markVisualReady(r)),this.input.workerManager);e.render({file:this.input.file,containerWrapper:n,lineAnnotations:this.input.annotations}),this.instance=e,e.setSelectedLines(this.selectedLines),this.diff=void 0;return}if(l(this.input)){if(e||!this.diff)if(this.input.kind===`patch`){let e=i.parsePatchFiles(this.input.patch)[this.input.patchIndex??0];if(!e)throw Error(`Patch does not contain patch index ${this.input.patchIndex??0}`);let t=e.files[this.input.fileIndex??0];if(!t)throw Error(`Patch does not contain file index ${this.input.fileIndex??0}`);this.diff=t}else this.diff=`fileDiff`in this.input?this.input.fileDiff:i.parseDiffFromFile(this.input.oldFile,this.input.newFile,this.input.options?.parseDiffOptions);let t=new i.FileDiff(c(this.input.options,()=>this.markVisualReady(r)),this.input.workerManager);t.render({fileDiff:this.diff,containerWrapper:n,lineAnnotations:this.input.annotations}),this.instance=t,t.setSelectedLines(this.selectedLines);return}let a=new i.UnresolvedFile(c(this.input.options,()=>this.markVisualReady(r)),this.input.workerManager);a.render({file:this.input.file,containerWrapper:n,lineAnnotations:this.input.annotations}),this.instance=a,a.setSelectedLines(this.selectedLines),this.diff=a.fileDiff}emitRender(){for(let e of this.renderListeners)e()}beginVisualRender(){this.resolveVisualReady?.(!1);let e=++this.visualRevision;return this.visualReadyPromise=new Promise(e=>{this.resolveVisualReady=e}),e}markVisualReady(e){this.disposed||e!==this.visualRevision||(this.resolveVisualReady?.(!0),this.resolveVisualReady=void 0,this.emitRender())}invalidateVisualReady(){this.visualRevision++,this.resolveVisualReady?.(!1),this.resolveVisualReady=void 0}};function o(e){return new a(e)}function s(e){return!e||e.useTokenTransformer===!0||!e.onTokenClick&&!e.onTokenEnter&&!e.onTokenLeave?e:{...e,useTokenTransformer:!0}}function c(e,t){let n=s(e),r=n?.onPostRender;return{...n,onPostRender(...e){r?.(...e),t()}}}function l(e){return e.kind===`diff`||e.kind===`patch`}var u=class{options;state=`idle`;stats={characters:0,lines:0,writes:0,resets:0,renderMode:`plain-text`,overflowed:!1};text=new n;pending=[];scheduled;generation=0;container;shell;surface;finalizedSurface;plainText;finalizePromise;renderListeners=new Set;finalizedRenderSubscription;constructor(e={}){this.options=e}async mount(e){if(this.state===`disposed`)throw Error(`Cannot mount a disposed code stream. Create a new controller instead.`);++this.generation,this.cancelScheduledFlush(),this.finalizedSurface?.dispose(),this.finalizedRenderSubscription?.dispose(),this.container?.replaceChildren(),this.finalizedSurface=void 0,this.finalizedRenderSubscription=void 0,this.plainText=void 0,this.pending=[],this.setState(`mounting`),this.container=e;let{shell:t,surface:n}=r(e,this.options.maxHeight);this.shell=t,this.surface=n,this.mountPlainText(n),this.stats.startedAt??=performance.now(),this.setState(`streaming`)}append(e){if(e){if(this.state===`finalized`||this.state===`finalizing`||this.state===`disposed`)throw Error(`Cannot append while stream is ${this.state}`);this.text.append(e),this.stats.characters=this.text.length,this.stats.lines+=d(e)+ +(this.stats.lines===0),this.pending.push(e),this.scheduleFlush()}}updateSnapshot(e){let t=this.text.toString();if(e.startsWith(t)){this.append(e.slice(t.length));return}let n=this.options.nonAppendBehavior??`reset`;if(n!==`ignore`){if(n===`throw`)throw Error(`Snapshot violates the append-only stream contract`);return this.reset(e)}}async consume(e){try{if(Symbol.asyncIterator in e)for await(let t of e)this.append(t);else{let t=e.getReader();try{for(;;){let{done:e,value:n}=await t.read();if(e)break;this.append(n)}}finally{t.releaseLock()}}}catch(e){throw this.fail(e),e}}async flush(){if(this.cancelScheduledFlush(),!this.pending.length)return;let e=this.shouldFollowViewport(),t=this.pending.join(``);this.pending.length=0,this.plainText?.append(t),this.stats.writes++,this.followViewport(e),this.emitRender()}finalize(e={view:`stream`}){if(this.state===`finalized`)return Promise.resolve();if(this.finalizePromise)return this.finalizePromise;let t=this.performFinalize(e).finally(()=>{this.finalizePromise===t&&(this.finalizePromise=void 0)});return this.finalizePromise=t,t}async performFinalize(e){if(this.state===`disposed`)throw Error(`Cannot finalize a disposed code stream`);let t=this.generation;if(this.setState(`finalizing`),await this.flush(),t!==this.generation)return;if(this.stats.finalizedAt=performance.now(),!e.view||e.view===`stream`){this.setState(`finalized`);return}let n=this.surface;if(!n)throw Error(`Mount the stream before finalizing to a file or diff view`);let r=this.options.fileName??`code.${this.options.language??`txt`}`,a=i(r,this.getText(),this.options.language),s;if(e.view===`file`){let{annotations:t,workerManager:n,view:r,...i}=e;s=o({kind:`file`,file:a,annotations:t,options:{theme:this.options.theme,themeType:this.options.themeType,...i},workerManager:n??this.options.workerManager})}else{let{annotations:t,original:n,workerManager:c,view:l,...u}=e;s=o({kind:`diff`,oldFile:i(r,n,this.options.language),newFile:a,annotations:t,options:{theme:this.options.theme,themeType:this.options.themeType,...u},workerManager:c??this.options.workerManager})}let c=document.createElement(`div`);if(c.className=`stream-diffs-finalized`,await s.mount(c),t!==this.generation){s.dispose();return}let l=this.shell,u=l?.scrollTop??0,d=l?l.scrollHeight-l.scrollTop-l.clientHeight:0;n.replaceWith(c),this.surface=c,this.plainText=void 0,this.finalizedSurface=s,this.finalizedRenderSubscription=s.onDidRender(()=>this.emitRender()),l&&(l.scrollTop=this.options.autoScroll===`always`||this.options.autoScroll!==`never`&&d<=(this.options.autoScrollThresholdPx??32)?l.scrollHeight:u),this.setState(`finalized`),this.emitRender()}async reset(e=``){let t=this.container;++this.generation,this.cancelScheduledFlush(),this.finalizedSurface?.dispose(),this.finalizedRenderSubscription?.dispose(),this.finalizedSurface=void 0,this.finalizedRenderSubscription=void 0,this.plainText=void 0,this.pending=[],this.finalizePromise=void 0,this.text.clear(),this.stats.resets++,this.stats.characters=0,this.stats.lines=0,this.stats.renderMode=`plain-text`,this.stats.overflowed=!1,this.setState(`idle`),e&&this.append(e),t&&await this.mount(t)}setThemeType(e){this.options.themeType=e,this.finalizedSurface?.setThemeType(e)}async setTheme(e){this.options.theme=e,this.finalizedSurface&&await this.finalizedSurface.setTheme(e)}async setLanguage(e){if(e===this.options.language||(this.options.language=e,!this.finalizedSurface))return;let t=this.finalizedSurface.getInput();t.kind===`file`?await this.finalizedSurface.updateFile({...t.file,lang:e},t.annotations):t.kind===`diff`&&`oldFile`in t&&await this.finalizedSurface.updateDiff({...t.oldFile,lang:e},{...t.newFile,lang:e},t.annotations)}getText(){return this.text.toString()}getState(){return this.state}getStats(){return{...this.stats}}getElement(){return this.shell}getFinalizedSurface(){return this.finalizedSurface}onDidRender(e){return this.renderListeners.add(e),{dispose:()=>this.renderListeners.delete(e)}}dispose(){++this.generation,this.cancelScheduledFlush(),this.finalizedSurface?.dispose(),this.finalizedRenderSubscription?.dispose(),this.container?.replaceChildren(),this.plainText=void 0,this.container=void 0,this.surface=void 0,this.shell=void 0,this.finalizedSurface=void 0,this.finalizedRenderSubscription=void 0,this.finalizePromise=void 0,this.renderListeners.clear(),this.setState(`disposed`)}scheduleFlush(){if(this.scheduled!=null||!this.plainText)return;let e=this.options.flushStrategy??`raf`;this.scheduled=e===`raf`&&typeof requestAnimationFrame==`function`?requestAnimationFrame(()=>void this.flush()):globalThis.setTimeout(()=>void this.flush(),e===`raf`?0:e.intervalMs)}cancelScheduledFlush(){this.scheduled!=null&&(typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(this.scheduled),clearTimeout(this.scheduled),this.scheduled=void 0)}shouldFollowViewport(){let e=this.shell;return!e||this.options.autoScroll===`never`?!1:this.options.autoScroll===`always`||e.scrollHeight-e.scrollTop-e.clientHeight<=(this.options.autoScrollThresholdPx??32)}followViewport(e=this.shouldFollowViewport()){this.shell&&e&&(this.shell.scrollTop=this.shell.scrollHeight)}mountPlainText(e){let t=document.createElement(`pre`);t.className=`stream-diffs-plain-text`,t.dataset.streamDiffsState=`streaming`,t.style.margin=`0`,t.style.whiteSpace=this.options.wrap?`pre-wrap`:`pre`,t.style.overflowWrap=this.options.wrap?`anywhere`:`normal`,t.textContent=this.getText(),e.replaceChildren(t),this.plainText=t}setState(e){this.state=e,this.options.onStateChange?.(e)}emitRender(){for(let e of this.renderListeners)e()}fail(e){this.state!==`disposed`&&(this.setState(`error`),this.options.onError?.(e))}};function d(e){let t=0;for(let n=0;n<e.length;n++)e.charCodeAt(n)===10&&t++;return t}var f=class{options;state=`idle`;generation=0;original=``;modified=``;container;shell;surface;finalizedSurface;finalizePromise;renderListeners=new Set;finalizedRenderSubscription;constructor(e={}){this.options=e}async mount(e,t=this.original,n=this.modified){if(this.state===`disposed`)throw Error(`Cannot mount a disposed diff stream. Create a new controller instead.`);++this.generation,this.original=t,this.modified=n,this.finalizedSurface?.dispose(),this.finalizedRenderSubscription?.dispose(),this.container?.replaceChildren(),this.finalizedSurface=void 0,this.finalizedRenderSubscription=void 0,this.setState(`mounting`),this.container=e;let{shell:i,surface:a}=r(e,this.options.maxHeight);this.shell=i,this.surface=a,this.renderPre(),this.setState(`streaming`)}update(e,t){if(this.state===`disposed`)throw Error(`Cannot update a disposed diff stream`);return this.original=e,this.modified=t,this.finalizedSurface?this.finalizedSurface.updateDiff(this.asFile(e),this.asFile(t)):(this.renderPre(),this.emitRender(),Promise.resolve())}finalize(e){if(this.state===`finalized`)return Promise.resolve(this.finalizedSurface);if(this.finalizePromise)return this.finalizePromise;let t=this.performFinalize(e).finally(()=>{this.finalizePromise===t&&(this.finalizePromise=void 0)});return this.finalizePromise=t,t}async performFinalize(e){if(this.state===`disposed`)throw Error(`Cannot finalize a disposed diff stream`);let t=this.surface;if(!t)throw Error(`Mount the diff stream before finalizing it`);let n=this.generation;this.setState(`finalizing`);let r=o({kind:`diff`,oldFile:this.asFile(this.original),newFile:this.asFile(this.modified),annotations:e,options:{...this.options,diffStyle:this.options.diffStyle??`unified`},workerManager:this.options.workerManager}),i=document.createElement(`div`);if(i.className=`stream-diffs-finalized`,await r.mount(i),n!==this.generation){r.dispose();return}let a=this.shell,s=a?.scrollTop??0;return t.replaceWith(i),this.surface=i,this.finalizedSurface=r,this.finalizedRenderSubscription=r.onDidRender(()=>this.emitRender()),a&&(a.scrollTop=s),this.setState(`finalized`),this.emitRender(),r}setThemeType(e){this.options.themeType=e,this.finalizedSurface?.setThemeType(e)}async setTheme(e){this.options.theme=e,this.finalizedSurface&&await this.finalizedSurface.setTheme(e)}async setLanguage(e){if(e!==this.options.language){if(this.options.language=e,this.finalizedSurface){let t=this.finalizedSurface.getInput();t.kind===`diff`&&`oldFile`in t&&await this.finalizedSurface.updateDiff({...t.oldFile,lang:e},{...t.newFile,lang:e},t.annotations);return}this.renderPre()}}getOriginal(){return this.original}getModified(){return this.modified}getState(){return this.state}getElement(){return this.shell}getFinalizedSurface(){return this.finalizedSurface}onDidRender(e){return this.renderListeners.add(e),{dispose:()=>this.renderListeners.delete(e)}}dispose(){++this.generation,this.finalizedSurface?.dispose(),this.finalizedRenderSubscription?.dispose(),this.container?.replaceChildren(),this.container=void 0,this.shell=void 0,this.surface=void 0,this.finalizedSurface=void 0,this.finalizedRenderSubscription=void 0,this.finalizePromise=void 0,this.renderListeners.clear(),this.setState(`disposed`)}renderPre(){let e=this.surface;if(!e||this.finalizedSurface)return;let t=document.createElement(`div`);t.className=`stream-diffs-diff-pre stream-diffs-diff-pre--${this.options.diffStyle??`unified`}`,t.dataset.streamDiffsState=`streaming`,t.style.minWidth=`max-content`,(this.options.diffStyle??`unified`)===`split`?(t.style.display=`grid`,t.style.gridTemplateColumns=`minmax(0, 1fr) minmax(0, 1fr)`,t.append(this.createPre(this.original,`deletions`),this.createPre(this.modified,`additions`))):t.append(this.createPre(p(this.original,this.modified),`unified`)),e.replaceChildren(t)}createPre(e,t){let n=document.createElement(`pre`);return n.className=`stream-diffs-diff-pre__pane stream-diffs-diff-pre__pane--${t}`,n.dataset.side=t,n.style.margin=`0`,n.style.whiteSpace=this.options.wrap?`pre-wrap`:`pre`,n.style.overflowWrap=this.options.wrap?`anywhere`:`normal`,n.textContent=e,n}asFile(e){return i(this.options.fileName??`code.${this.options.language??`txt`}`,e,this.options.language)}setState(e){this.state=e,this.options.onStateChange?.(e)}emitRender(){for(let e of this.renderListeners)e()}};function p(e,t){let n=e.split(`
3
+ `),r=t.split(`
4
+ `),i=0;for(;i<n.length&&i<r.length&&n[i]===r[i];)i++;let a=0;for(;a<n.length-i&&a<r.length-i&&n[n.length-a-1]===r[r.length-a-1];)a++;return[...n.slice(0,i).map(e=>` ${e}`),...n.slice(i,n.length-a).map(e=>`- ${e}`),...r.slice(i,r.length-a).map(e=>`+ ${e}`),...n.slice(n.length-a).map(e=>` ${e}`)].join(`
5
+ `)}var m=e({detectLanguage:()=>N,preloadMonacoWorkers:()=>j,preloadStreamDiffs:()=>M,useMonaco:()=>h});function h(e={}){let t,n,r,a,s,c=`text`,l=``,d=``,p,m=0,h=`system`,y=x(e),b=S(e),O={disableLineNumbers:e.lineNumbers===!1,overflow:e.wordWrap===`on`?`wrap`:`scroll`,enableLineSelection:e.enableLineSelection},j=()=>({...O,theme:y,themeType:h});async function M(n,r,i){I();let o=m;if(A(n,e),p=n,c=v(i),z(r))return R(n,r,c);if(e.stream===!1)return L(n,r,c);let s=new u({...j(),...C(e),fileName:`code.${c}`,language:c,maxHeight:e.MAX_HEIGHT,autoScroll:e.autoScrollOnUpdate===!1?`never`:`near-bottom`,autoScrollThresholdPx:e.autoScrollThresholdPx,workerManager:e.workerManager});if(t=s,s.append(r),await s.mount(n),o!==m||t!==s||p!==n)throw s.dispose(),Error(`Editor creation was cancelled`);return e.onController?.(s),a=E(()=>s.getText(),n,()=>s.getFinalizedSurface(),e=>s.onDidRender(e)),a}async function N(t,i,a,u){I();let h=m;A(t,e),p=t,c=v(u),l=i,d=a;let g,_;if(e.stream===!1){if(g=o({kind:`diff`,oldFile:U(i),newFile:U(a),annotations:e.lineAnnotations,workerManager:e.workerManager,options:{...j(),diffStyle:e.diffStyle??(e.renderSideBySide===!1?`unified`:`split`),...C(e)}}),r=g,await g.mount(t),h!==m||r!==g||p!==t)throw g.dispose(),Error(`Editor creation was cancelled`);e.onController?.(g)}else{if(_=new f({...j(),...C(e),fileName:`code.${c}`,language:c,diffStyle:e.diffStyle??(e.renderSideBySide===!1?`unified`:`split`),maxHeight:e.MAX_HEIGHT,wrap:e.wordWrap===`on`,workerManager:e.workerManager}),n=_,await _.mount(t,i,a),h!==m||n!==_||p!==t)throw _.dispose(),Error(`Editor creation was cancelled`);e.onController?.(_)}return s=D(()=>l,()=>d,t,()=>g??_?.getFinalizedSurface()),s}async function P(n,i=c){let a=v(i);if(z(n)){r?.getInput().kind===`merge-conflict`?(c=a,await r.updateMergeConflict(U(n),e.lineAnnotations)):p&&await R(p,n,a);return}if(e.stream===!1){r?.getInput().kind===`file`?(c=a,await r.updateFile(U(n),e.lineAnnotations)):p&&await L(p,n,a);return}if(!t){p&&await M(p,n,a);return}if(t.getState()===`finalized`){n!==t.getText()&&await t.reset(n);return}if(a!==c){c=a,await t.setLanguage(a),n!==t.getText()&&await t.reset(n);return}let o=t.getText();n.startsWith(o)?t.append(n.slice(o.length)):await t.reset(n)}async function F(e,t,i=c){if(l=e,d=t,c=v(i),n){await n.update(e,t);return}if(!r){p&&await N(p,e,t,i);return}await r.updateDiff(U(e),U(t))}function I(){m++,t?.dispose(),n?.dispose(),n||r?.dispose(),t=void 0,n=void 0,r=void 0,a=void 0,s=void 0,p=void 0}async function L(t,n,i){I();let s=m;p=t,c=i;let l=o({kind:`file`,file:U(n),annotations:e.lineAnnotations,workerManager:e.workerManager,options:{...j(),...C(e)}});if(r=l,await l.mount(t),s!==m||r!==l||p!==t)throw l.dispose(),Error(`Editor creation was cancelled`);return e.onController?.(l),a=E(()=>T(l)??n,t,()=>l,e=>l.onDidRender(e)),a}async function R(t,n,i){I();let s=m;p=t,c=i;let l=o({kind:`merge-conflict`,file:U(n),annotations:e.lineAnnotations,workerManager:e.workerManager,options:{...j(),...C(e)}});if(r=l,await l.mount(t),s!==m||r!==l||p!==t)throw l.dispose(),Error(`Editor creation was cancelled`);return e.onController?.(l),a=E(()=>T(l)??n,t,()=>l,e=>l.onDidRender(e)),a}function z(t){return e.mergeConflict!==!1&&/^<<<<<<< .+$/m.test(t)&&/^=======$/m.test(t)&&/^>>>>>>> .+$/m.test(t)}async function B(i){if(i){if(typeof i==`string`){let a=e.themes;if(a?.[0]===i){await V(),h=`dark`,t?.setThemeType(`dark`),n?.setThemeType(`dark`),r?.setThemeType(`dark`);return}if(a?.[1]===i){await V(),h=`light`,t?.setThemeType(`light`),n?.setThemeType(`light`),r?.setThemeType(`light`);return}}b=void 0,y=i,await H(i)}}async function V(){let t=S(e);!t||t===b||(b=t,y=x(e),await H(y))}async function H(e){await t?.setTheme(e),await n?.setTheme(e),await r?.setTheme(e)}function U(e){return i(`code.${c||`txt`}`,e,c)}return{runtimeKind:`stream-diffs`,createEditor:M,createDiffEditor:N,updateCode:P,appendCode(e){t?.append(e)},async finalizeCode(){if(!t||t.getState()===`finalized`)return t?.getFinalizedSurface();let n=C(e);return delete n.lineAnnotations,await t.finalize({view:`file`,...n,theme:y,themeType:h,annotations:e.lineAnnotations,workerManager:e.workerManager}),t.getFinalizedSurface()},async finalizeDiff(){return n&&(r=await n.finalize(e.lineAnnotations)),r},updateDiff:F,updateOriginal(e,t=c){return F(e,d,t)},updateModified(e,t=c){return F(l,e,t)},appendOriginal(e,t=c){return F(l+e,d,t)},appendModified(e,t=c){return F(l,d+e,t)},cleanupEditor:I,safeClean:I,setTheme:B,async setLanguage(e){if(c=v(e),await t?.setLanguage(c),await n?.setLanguage(c),r&&!n){let e=r.getInput();e.kind===`file`||e.kind===`merge-conflict`?await r.update({...e,file:{...e.file,lang:c}}):e.kind===`diff`&&`oldFile`in e&&await r.update({...e,oldFile:{...e.oldFile,lang:c},newFile:{...e.newFile,lang:c}})}},getCurrentTheme:()=>y,getEditor:()=>k,getEditorView:()=>a??null,getDiffEditorView:()=>s??null,getDiffModels:()=>({original:w(()=>l),modified:w(()=>r?.getResolvedFile()?.contents??n?.getModified()??d)}),getCode:()=>{let e=r?.getInput();return e?.kind===`diff`||e?.kind===`patch`?{original:l,modified:r?.getResolvedFile()?.contents??d}:e?.kind===`file`||e?.kind===`merge-conflict`?e.file.contents:n?{original:n.getOriginal(),modified:n.getModified()}:t?.getText()??null},refreshDiffPresentation:()=>r?.update(r.getInput()),whenVisualReady:async()=>{let e=p,i=m,a=r??t?.getFinalizedSurface()??n?.getFinalizedSurface();return!a||!await a.whenVisualReady()?!1:g(e,()=>i===m&&e===p&&a===(r??t?.getFinalizedSurface()??n?.getFinalizedSurface()),()=>_(r??t?.getFinalizedSurface()??n?.getFinalizedSurface()))}}}async function g(e,t,n){if(!e||typeof window>`u`)return!1;let r=``,i,a=0;for(let o=0;o<120;o+=1){if(!t())return!1;let o=e.querySelector(`.stream-diffs-shell`),s=(o?.querySelector(`diffs-container`)?.shadowRoot)?.querySelector(`pre`),c=o?.getBoundingClientRect(),l=s?.textContent??``;if(c&&c.width>0&&c.height>0&&s&&n()){let e=`${Math.round(c.width)}:${Math.round(c.height)}:${s.scrollWidth}:${s.scrollHeight}:${l.length}`;if(a=s===i&&e===r?a+1:1,i=s,r=e,a>=2)return!0}else r=``,i=void 0,a=0;await b()}return!1}function _(e){if(!e)return!0;let t=e.getNativeInstance(),n=t?.fileRenderer??t?.hunksRenderer;if(!n)return!0;let r=n.renderCache;if(!r?.result)return!1;if(r.highlighted===!0)return!0;let i=e.getInput();if(v(i.kind===`file`||i.kind===`merge-conflict`?i.file.lang:`oldFile`in i?i.oldFile.lang??i.newFile.lang:e.getDiff()?.lang)===`text`)return!0;let a=Number(n.getTokenizeMaxLength?.()??1e5);if(i.kind===`file`||i.kind===`merge-conflict`)return y(i.file.contents)>a;let o=e.getDiff();return!!o&&Math.max(o.additionLines.length,o.deletionLines.length)>a}function v(e){return!e||/^(?:text|txt|plain|plaintext)$/i.test(e)?`text`:e}function y(e){if(!e)return 0;let t=1;for(let n=0;n<e.length;n+=1)e.charCodeAt(n)===10&&(t+=1);return t}function b(){return new Promise(e=>{let t=!1,n=()=>{t||(t=!0,window.clearTimeout(i),window.cancelAnimationFrame(r),e())},r=window.requestAnimationFrame(n),i=window.setTimeout(n,50)})}function x(e){return e.themes?.length&&typeof e.themes[0]==`string`&&typeof e.themes[1]==`string`?{dark:e.themes[0],light:e.themes[1]}:e.theme??void 0}function S(e){if(typeof e.themes?.[0]==`string`&&typeof e.themes?.[1]==`string`)return`${e.themes[0]}\n${e.themes[1]}`}function C(e){let t=new Set([`MAX_HEIGHT`,`theme`,`themes`,`readOnly`,`lineNumbers`,`wordWrap`,`renderSideBySide`,`autoScrollOnUpdate`,`autoScrollThresholdPx`,`stream`,`mergeConflict`,`lineAnnotations`,`onController`,`workerManager`,`languages`,`onThemeChange`]),n=Object.fromEntries(Object.entries(e).filter(([e])=>!t.has(e))),r=e.diffHideUnchangedRegions;delete n.diffHideUnchangedRegions;let i=typeof r==`object`&&r?r:void 0,a=i?.enabled!==!1;if(r===!1||i&&!a)n.expandUnchanged??=!0;else if((r===!0||i)&&(n.expandUnchanged??=!1,i)){let e=Number(i.contextLineCount);Number.isFinite(e)&&e>=0&&(n.parseDiffOptions={context:e,...n.parseDiffOptions});let t=Number(i.minimumLineCount);Number.isFinite(t)&&t>=1&&(n.collapsedContextThreshold??=Math.max(0,Math.floor(t)-1))}return n}function w(e){return{getValue:e,getLineCount:()=>e().split(`
6
+ `).length}}function T(e){let t=e?.getInput();return t?.kind===`file`||t?.kind===`merge-conflict`?t.file.contents:void 0}function E(e,t,n=()=>void 0,r){let i=()=>Number.parseFloat(t.style.fontSize)||14;return{getModel:()=>w(e),getContentHeight:()=>t.querySelector(`.stream-diffs-shell`)?.scrollHeight??t.scrollHeight,layout:()=>{},getOption(e){if(e===O.fontInfo)return{fontSize:i()};if(e===O.lineHeight)return Number.parseFloat(t.style.lineHeight)||Math.round(i()*1.5)},updateOptions(e){A(t,e)},onDidContentSizeChange:e=>r?.(e)??{dispose(){}},onDidLayoutChange:e=>r?.(e)??{dispose(){}},setSelectedLines:e=>n()?.setSelectedLines(e),setAnnotations:e=>n()?.setAnnotations(e),acceptReject:(e,t)=>n()?.acceptReject(e,t),resolveConflict:(e,t)=>n()?.resolveConflict(e,t)}}function D(e,t,n,r){return{...E(t,n,r,e=>r()?.onDidRender(e)??{dispose(){}}),getOriginalEditor:()=>E(e,n,r,e=>r()?.onDidRender(e)??{dispose(){}}),getModifiedEditor:()=>E(t,n,r,e=>r()?.onDidRender(e)??{dispose(){}}),getLineChanges:()=>r()?.getDiff()?.hunks.map(e=>({originalStartLineNumber:e.deletionStart,originalEndLineNumber:e.deletionStart+e.deletionCount-1,modifiedStartLineNumber:e.additionStart,modifiedEndLineNumber:e.additionStart+e.additionCount-1}))??[],onDidUpdateDiff:e=>r()?.onDidRender(e)??{dispose(){}}}}var O={fontInfo:0,lineHeight:1},k={EditorOption:O};function A(e,t){let{style:n}=e;typeof t.fontSize==`number`&&(n.fontSize=`${t.fontSize}px`,n.setProperty(`--diffs-font-size`,`${t.fontSize}px`)),typeof t.lineHeight==`number`&&(n.lineHeight=`${t.lineHeight}px`,n.setProperty(`--diffs-line-height`,`${t.lineHeight}px`)),typeof t.fontFamily==`string`&&(n.fontFamily=t.fontFamily,n.setProperty(`--diffs-font-family`,t.fontFamily))}async function j(){}async function M(){return!0}function N(e){return/^\s*</.test(e)?`html`:/\b(interface|type|enum)\s+\w+|:\s*(string|number|boolean)\b/.test(e)?`typescript`:/\b(const|let|function|import|export)\b/.test(e)?`javascript`:/\b(def|from|lambda|None|True|False)\b/.test(e)?`python`:`text`}export{m as t};
package/dist/index.html CHANGED
@@ -552,24 +552,26 @@
552
552
  opacity: 0.72;
553
553
  }
554
554
  </style>
555
- <script type="module" crossorigin src="/assets/main-DLTKz97m.js"></script>
555
+ <script type="module" crossorigin src="/assets/main-CfyFgSOx.js"></script>
556
+ <link rel="modulepreload" crossorigin href="/assets/runtime-switch-BkpTTbEi.js">
556
557
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
558
+ <link rel="modulepreload" crossorigin href="/assets/desktop-CfLlmafK.js">
557
559
  <link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
558
560
  <link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
559
- <link rel="modulepreload" crossorigin href="/assets/useUIStore-BXjMQrel.js">
561
+ <link rel="modulepreload" crossorigin href="/assets/useUIStore-B7KJS5G7.js">
560
562
  <link rel="modulepreload" crossorigin href="/assets/vendor-pathe-vBmvQE8f.js">
561
563
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-DLPElpoQ.js">
562
564
  <link rel="modulepreload" crossorigin href="/assets/vendor-tanstack-query-core-BWz0ose6.js">
563
- <link rel="modulepreload" crossorigin href="/assets/persistence-CLUawIlm.js">
564
- <link rel="modulepreload" crossorigin href="/assets/desktopHosts-DceeVBky.js">
565
- <link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-B0MRdR5y.js">
565
+ <link rel="modulepreload" crossorigin href="/assets/persistence-CmjKImz2.js">
566
+ <link rel="modulepreload" crossorigin href="/assets/desktopHosts-C1Ns3DUu.js">
567
+ <link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-LBt0CBOj.js">
566
568
  <link rel="modulepreload" crossorigin href="/assets/vendor-opencode-sdk-C07HQypa.js">
567
569
  <link rel="modulepreload" crossorigin href="/assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js">
568
- <link rel="modulepreload" crossorigin href="/assets/platform-BrncW9ab.js">
569
- <link rel="modulepreload" crossorigin href="/assets/terminalApi-D2OzR0I3.js">
570
+ <link rel="modulepreload" crossorigin href="/assets/platform-skqcMARt.js">
571
+ <link rel="modulepreload" crossorigin href="/assets/terminalApi-CNqqwjfG.js">
570
572
  <link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
571
573
  <link rel="modulepreload" crossorigin href="/assets/capgoAdapter-DCowZ2ab.js">
572
- <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-CSiXlqKC.js">
574
+ <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-BCUCu-2N.js">
573
575
  <link rel="stylesheet" crossorigin href="/assets/src-2eFAiBLq.css">
574
576
  </head>
575
577
  <body class="h-full bg-background text-foreground">
@@ -74,24 +74,26 @@
74
74
  }
75
75
  </style>
76
76
 
77
- <script type="module" crossorigin src="/assets/miniChat-mvs2Sp_b.js"></script>
77
+ <script type="module" crossorigin src="/assets/miniChat-C7rwl6yh.js"></script>
78
+ <link rel="modulepreload" crossorigin href="/assets/runtime-switch-BkpTTbEi.js">
78
79
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
80
+ <link rel="modulepreload" crossorigin href="/assets/desktop-CfLlmafK.js">
79
81
  <link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
80
82
  <link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
81
- <link rel="modulepreload" crossorigin href="/assets/useUIStore-BXjMQrel.js">
83
+ <link rel="modulepreload" crossorigin href="/assets/useUIStore-B7KJS5G7.js">
82
84
  <link rel="modulepreload" crossorigin href="/assets/vendor-pathe-vBmvQE8f.js">
83
85
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-DLPElpoQ.js">
84
86
  <link rel="modulepreload" crossorigin href="/assets/vendor-tanstack-query-core-BWz0ose6.js">
85
- <link rel="modulepreload" crossorigin href="/assets/persistence-CLUawIlm.js">
86
- <link rel="modulepreload" crossorigin href="/assets/desktopHosts-DceeVBky.js">
87
- <link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-B0MRdR5y.js">
87
+ <link rel="modulepreload" crossorigin href="/assets/persistence-CmjKImz2.js">
88
+ <link rel="modulepreload" crossorigin href="/assets/desktopHosts-C1Ns3DUu.js">
89
+ <link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-LBt0CBOj.js">
88
90
  <link rel="modulepreload" crossorigin href="/assets/vendor-opencode-sdk-C07HQypa.js">
89
91
  <link rel="modulepreload" crossorigin href="/assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js">
90
- <link rel="modulepreload" crossorigin href="/assets/platform-BrncW9ab.js">
91
- <link rel="modulepreload" crossorigin href="/assets/terminalApi-D2OzR0I3.js">
92
+ <link rel="modulepreload" crossorigin href="/assets/platform-skqcMARt.js">
93
+ <link rel="modulepreload" crossorigin href="/assets/terminalApi-CNqqwjfG.js">
92
94
  <link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
93
95
  <link rel="modulepreload" crossorigin href="/assets/capgoAdapter-DCowZ2ab.js">
94
- <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-CSiXlqKC.js">
96
+ <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-BCUCu-2N.js">
95
97
  <link rel="stylesheet" crossorigin href="/assets/src-2eFAiBLq.css">
96
98
  </head>
97
99
  <body class="h-full bg-background text-foreground">
package/dist/mobile.html CHANGED
@@ -63,24 +63,26 @@
63
63
  })();
64
64
  </script>
65
65
 
66
- <script type="module" crossorigin src="/assets/mobile-D3RhNnH4.js"></script>
66
+ <script type="module" crossorigin src="/assets/mobile-r2_QpF9U.js"></script>
67
+ <link rel="modulepreload" crossorigin href="/assets/runtime-switch-BkpTTbEi.js">
67
68
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-C0FnF6B9.js">
69
+ <link rel="modulepreload" crossorigin href="/assets/desktop-CfLlmafK.js">
68
70
  <link rel="modulepreload" crossorigin href="/assets/vendor-base-ui-CnHfUmDN.js">
69
71
  <link rel="modulepreload" crossorigin href="/assets/vendor-zustand-B4dlGEM2.js">
70
- <link rel="modulepreload" crossorigin href="/assets/useUIStore-BXjMQrel.js">
72
+ <link rel="modulepreload" crossorigin href="/assets/useUIStore-B7KJS5G7.js">
71
73
  <link rel="modulepreload" crossorigin href="/assets/vendor-pathe-vBmvQE8f.js">
72
74
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-DLPElpoQ.js">
73
75
  <link rel="modulepreload" crossorigin href="/assets/vendor-tanstack-query-core-BWz0ose6.js">
74
- <link rel="modulepreload" crossorigin href="/assets/persistence-CLUawIlm.js">
75
- <link rel="modulepreload" crossorigin href="/assets/desktopHosts-DceeVBky.js">
76
- <link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-B0MRdR5y.js">
76
+ <link rel="modulepreload" crossorigin href="/assets/persistence-CmjKImz2.js">
77
+ <link rel="modulepreload" crossorigin href="/assets/desktopHosts-C1Ns3DUu.js">
78
+ <link rel="modulepreload" crossorigin href="/assets/desktopRelayRestore-LBt0CBOj.js">
77
79
  <link rel="modulepreload" crossorigin href="/assets/vendor-opencode-sdk-C07HQypa.js">
78
80
  <link rel="modulepreload" crossorigin href="/assets/vendor-aparajita-capacitor-secure-storage-CjQdwfjS.js">
79
- <link rel="modulepreload" crossorigin href="/assets/platform-BrncW9ab.js">
80
- <link rel="modulepreload" crossorigin href="/assets/terminalApi-D2OzR0I3.js">
81
+ <link rel="modulepreload" crossorigin href="/assets/platform-skqcMARt.js">
82
+ <link rel="modulepreload" crossorigin href="/assets/terminalApi-CNqqwjfG.js">
81
83
  <link rel="modulepreload" crossorigin href="/assets/types-BuiqMmh_.js">
82
84
  <link rel="modulepreload" crossorigin href="/assets/capgoAdapter-DCowZ2ab.js">
83
- <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-CSiXlqKC.js">
85
+ <link rel="modulepreload" crossorigin href="/assets/runtimeConfig-BCUCu-2N.js">
84
86
  <link rel="stylesheet" crossorigin href="/assets/src-2eFAiBLq.css">
85
87
  </head>
86
88
  <body class="h-full bg-background text-foreground">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openchambery/web",
3
- "version": "1.19.6-beta.2",
3
+ "version": "1.19.7-beta.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./server/index.js",
@@ -1 +0,0 @@
1
- import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{A as n,E as r,t as i,w as a}from"./useUIStore-BXjMQrel.js";import{$t as o,Ot as s,et as c,rt as l,yt as u}from"./persistence-CLUawIlm.js";import{nt as d,rt as f}from"./vendor-base-ui-CnHfUmDN.js";import{r as p}from"./platform-BrncW9ab.js";import{n as m}from"./vendor-react-DLPElpoQ.js";import{r as h}from"./vendor-sonner-DVzioF3d.js";import{n as g}from"./vendor-reactuses-core-DDoDDyM9.js";import{n as _}from"./clipboard-C0bgPFn5.js";import{a as v,n as y,s as b}from"./MobileShareBridge-DgIb2q0F.js";import{Ga as x,Ha as S,Pi as C,Ur as ee,_n as w,aa as T,an as E,hi as D,ho as O,ko as k,mo as A,o as j,qr as M,un as N,vn as P,yn as F}from"./useMobileNavigationStore-Bgj9KY7t.js";import{_ as I,a as L,c as R,d as z,f as B,g as te,l as ne,n as re,o as ie,p as ae,r as oe,t as V,v as H,x as U,y as se}from"./MobileDetailNavigation-xInJsFXY.js";import{i as ce,r as le}from"./useAssistantUIStore-D699Sbdb.js";import{a as ue,i as de,n as W,o as G,r as K,t as q}from"./dialog-Bjnvo5pk.js";import{t as fe}from"./utils-D94hxQYq.js";import{t as pe}from"./AgentAvatar-CecaXP3U.js";import{n as me}from"./Icon-Du1LX11Q.js";import{t as he}from"./button-p6vbd3r6.js";import{i as ge}from"./OverlayScrollbar-oOLMqq2s.js";import{B as _e,I as ve,L as J,V as ye,X as be,t as xe}from"./ChatContainer-Jtte7fDL.js";import{t as Se}from"./ContextPanel-UeBnllm7.js";import{a as Ce,c as we,l as Te,o as Ee,s as De}from"./shikiHighlight-eIaY2Kju.js";var Y=e(f(),1),Oe=m(),X=e=>e.isVSCode||e.isPhoneShell||e.isMobile&&!e.isIPad?`session`:`context-panel`,Z=d(),ke=e=>{let t=(0,Oe.c)(56),{assistant:n,sessionID:r,warning:a,surface:s,onRevertMessage:c,onEditMessage:l,pendingUserMessages:u,onPendingUserMessagesMaterialized:d}=e,{t:f}=_(),{isMobile:m}=ge(),h=n.effectiveWorkspacePath,v;t[0]!==n.sessionGeneration||t[1]!==r?(v={sessionID:r,sessionGeneration:n.sessionGeneration},t[0]=n.sessionGeneration,t[1]=r,t[2]=v):v=t[2];let y=H(n.id,v,s.active);y.data?.pages;let b;t[3]===y.data?.pages?b=t[4]:(b=y.data?.pages??[],t[3]=y.data?.pages,t[4]=b);let x;t[5]===b?x=t[6]:(x=D(b),t[5]=b,t[6]=x);let S=x,C;if(t[7]!==S){C=new Map;for(let e of S){let t=C.get(e.sessionID);C.set(e.sessionID,t===void 0||t===e.directory?e.directory:null)}t[7]=S,t[8]=C}else C=t[8];let ee=C,w;t[9]===y?w=t[10]:(w=async()=>{(y.hasNextPage||y.isFetchNextPageError)&&await y.fetchNextPage()},t[9]=y,t[10]=w);let T=g(w),E=n.mode===`continuous`,O=ve(),k;t[11]===O?k=t[12]:(k=O&&!p(),t[11]=O,t[12]=k);let A=!!k,j;t[13]===A?j=t[14]:(j=(e,t)=>{F(e,t,{phoneShell:A,switchToChat:!0})},t[13]=A,t[14]=j);let M=g(j),N;t[15]!==h||t[16]!==ee||t[17]!==M||t[18]!==r?(N=(e,t)=>{let n=e===r?h:ee.get(e);if(!n||n!==t){P(e,`missing-directory`);return}M(e,t)},t[15]=h,t[16]=ee,t[17]=M,t[18]=r,t[19]=N):N=t[19];let I=g(N),L;t[20]!==m||t[21]!==A||t[22]!==M||t[23]!==f?(L=(e,t)=>{let n=e.trim(),r=t.trim();if(!n){P(e,`missing-session-id`);return}if(!r){P(n,`missing-directory`);return}if(X({isPhoneShell:A,isMobile:m,isIPad:p(),isVSCode:o()})===`session`){M(n,r);return}i.getState().openContextPanelTab(r,{mode:`chat`,dedupeKey:`session:${n}`,label:f(`contextPanel.mode.chat`),readOnly:!0})},t[20]=m,t[21]=A,t[22]=M,t[23]=f,t[24]=L):L=t[24];let R=g(L),z;t[25]===E?z=t[26]:(z={...J,forkSession:!1,mutateSession:E},t[25]=E,t[26]=z);let B;t[27]===l?B=t[28]:(B=l?{onEditMessage:l}:{},t[27]=l,t[28]=B);let te;t[29]!==h||t[30]!==R||t[31]!==c||t[32]!==I||t[33]!==r||t[34]!==s.active||t[35]!==s.surfaceID||t[36]!==B||t[37]!==z?(te={kind:`embedded`,surfaceId:s.surfaceID,sessionId:r,directory:h,active:s.active,capabilities:z,navigateSession:R,onRevertMessage:c,...B,openSourceSession:I},t[29]=h,t[30]=R,t[31]=c,t[32]=I,t[33]=r,t[34]=s.active,t[35]=s.surfaceID,t[36]=B,t[37]=z,t[38]=te):te=t[38];let ne=te,re=y.isError||y.isSuccess&&!y.hasNextPage,ie=y.isLoading||y.isFetchingNextPage,ae;t[39]!==T||t[40]!==re||t[41]!==S||t[42]!==ie?(ae={entries:S,complete:re,loading:ie,fetchPrevious:T},t[39]=T,t[40]=re,t[41]=S,t[42]=ie,t[43]=ae):ae=t[43];let oe;t[44]!==h||t[45]!==d||t[46]!==c||t[47]!==u||t[48]!==r||t[49]!==ne||t[50]!==s||t[51]!==ae||t[52]!==a?(oe={sessionId:r,directory:h,composerSurface:s,sessionSurface:ne,warning:a,pendingUserMessages:u,onPendingUserMessagesMaterialized:d,assistantHistory:ae,onRevertMessage:c},t[44]=h,t[45]=d,t[46]=c,t[47]=u,t[48]=r,t[49]=ne,t[50]=s,t[51]=ae,t[52]=a,t[53]=oe):oe=t[53];let V=oe,U;return t[54]===V?U=t[55]:(U=(0,Z.jsx)(xe,{autoOpenDraft:!1,host:V}),t[54]=V,t[55]=U),U},Ae=class extends Error{constructor(){super(`assistant_selection_stale`)}},Q=(e,t)=>e.assistantID===t.assistantID&&e.transportIdentity===t.transportIdentity&&e.runtimeGeneration===t.runtimeGeneration,je=class{onBusyChange;onError;flight=null;authoritativeIdentity=null;constructor(e,t){this.onBusyChange=e,this.onError=t}activate(e){this.authoritativeIdentity&&!Q(this.authoritativeIdentity,e)&&this.flight&&this.retire(this.flight),this.authoritativeIdentity=e}enqueue(e,t,n){if(!this.isAuthoritative(e))return Promise.reject(new Ae);let r=this.flight;r||(r={identity:e,controller:new AbortController,running:!1,desired:null,waiters:[],activeWaiters:[],idleWaiters:[],retired:!1},this.flight=r),r.desired=t;let i=new Promise((e,t)=>{r.waiters.push({resolve:e,reject:t})});return r.running||(r.running=!0,this.onBusyChange(!0),this.run(r,n)),i}async flush(e){if(!this.isAuthoritative(e))throw new Ae;let t=this.flight;t?.running&&await new Promise((e,n)=>t.idleWaiters.push({resolve:e,reject:n}))}assertAuthoritative(e){if(!this.isAuthoritative(e))throw new Ae}dispose(){this.flight&&this.retire(this.flight),this.authoritativeIdentity=null}async run(e,t){for(;!e.retired&&e.desired;){let n=e.desired;e.desired=null;let r=e.waiters.splice(0);e.activeWaiters=r;try{if(await t({identity:e.identity,selection:n,signal:e.controller.signal}),!e.retired)for(let e of r)e.resolve()}catch(t){if(!e.retired){this.onError(t);for(let e of r)e.reject(t)}}e.activeWaiters=[]}e.running=!1;for(let t of e.idleWaiters.splice(0))t.resolve();this.flight===e&&this.onBusyChange(!1)}retire(e){e.retired=!0,e.controller.abort();let t=new Ae;for(let n of e.activeWaiters.splice(0))n.reject(t);for(let n of e.waiters.splice(0))n.reject(t);for(let n of e.idleWaiters.splice(0))n.reject(t);this.flight===e&&(this.flight=null,this.onBusyChange(!1))}isAuthoritative(e){return this.authoritativeIdentity!==null&&Q(this.authoritativeIdentity,e)}},Me=(e,t)=>{let n=t.providerID??e.providerID,r=t.modelID??e.modelID,i=n!==e.providerID||r!==e.modelID;return{enabled:e.enabled,name:e.name,defaultPrompt:e.defaultPrompt,workspacePath:e.workspacePath,providerID:n,modelID:r,agent:t.agent??null,variant:i?null:t.variant??null,mode:e.mode}},Ne=async(e,t,n)=>{n.assertAuthoritative();let r=n.readSnapshot()?.assistants.find(t=>t.id===e.assistantID);if(!r)throw Error(`assistant_unavailable`);try{n.assertAuthoritative(),await n.updateAssistant(r,Me(r,t)),n.assertAuthoritative()}catch(i){if(n.assertAuthoritative(),n.signal.aborted)throw new Ae;if(!(i instanceof U)||i.code!==`revision_conflict`)throw i;if(n.assertAuthoritative(),r=(await n.ensureSnapshot(n.signal)).assistants.find(t=>t.id===e.assistantID),n.assertAuthoritative(),!r)throw new U(`revision_conflict`,409);n.assertAuthoritative(),await n.updateAssistant(r,Me(r,t)),n.assertAuthoritative()}};async function Pe(e){await L(e);let t=ce.getState().defaultShareAssistant;if(t?.assistantID!==e.id)return;let n=await R();n.serverInstanceID&&t.serverInstanceID===n.serverInstanceID&&ce.getState().setDefaultShareAssistant(null)}function Fe({assistant:e,open:t,onOpenChange:n,onDeleted:r}){let{t:i}=_(),[a,o]=Y.useState(!1),s=e?v(e.name).displayName||e.name:``,c=g(e=>{a&&!e||n(e)}),l=g(()=>{a||n(!1)}),u=g(async()=>{if(!(!e||a)){o(!0);try{await Pe(e),r?.(e.id),n(!1),h.success(i(`assistants.settings.toast.deleted`))}catch{h.error(i(`assistants.settings.toast.deleteFailed`))}finally{o(!1)}}});return(0,Z.jsx)(q,{open:t&&e!==null,onOpenChange:c,children:(0,Z.jsxs)(W,{className:`max-w-md`,children:[(0,Z.jsxs)(ue,{children:[(0,Z.jsx)(G,{children:i(`assistants.settings.delete`)}),(0,Z.jsx)(K,{children:i(`assistants.settings.deleteConfirm`,{name:s})})]}),(0,Z.jsxs)(de,{children:[(0,Z.jsx)(he,{size:`sm`,variant:`ghost`,onClick:l,disabled:a,children:i(`settings.common.actions.cancel`)}),(0,Z.jsx)(he,{size:`sm`,variant:`destructive`,onClick:u,disabled:a,children:i(`settings.common.actions.delete`)})]})]})})}var Ie=[0,500,1500,4e3],Le=(e,t,n)=>{let r=!1,i=e.map(e=>e.info.id!==t||e.info.sessionID===n?e:(r=!0,{...e,info:{...e.info,sessionID:n}}));return r?i:e},Re=e=>{let t=e.refreshDelaysMs??Ie,n=e.sleep??(e=>new Promise(t=>setTimeout(t,e)));(async()=>{for(let r of t){if(r>0&&await n(r),!e.isCurrent())return;try{await e.refresh(e.binding);break}catch{}}})()},ze=e=>`${e.transport}\u0000${e.assistantID}`,Be=e=>({transport:e.transport,assistantID:e.assistantID}),Ve=(e,t)=>e.assistantID===t.assistantID&&e.sessionID===t.sessionID&&e.directory===t.directory&&e.sessionGeneration===t.sessionGeneration&&e.transport===t.transport&&e.runtimeGeneration===t.runtimeGeneration,He=(e,t)=>e.assistantID===t.assistantID&&e.sessionID===t.sessionID&&e.directory===t.directory&&e.sessionGeneration===t.sessionGeneration&&e.messageID===t.messageID&&e.transport===t.transport&&e.runtimeGeneration===t.runtimeGeneration,Ue=()=>{let e=new Map,t=new Map,n=1,r=e=>ze(e),i=async(e,n)=>{let i=r(e),a=t.get(i)??Promise.resolve(),o,s=new Promise(e=>{o=e}),c=a.catch(()=>void 0).then(()=>s);t.set(i,c),await a.catch(()=>void 0);try{return await n()}finally{o(),t.get(i)===c&&t.delete(i)}},a=(t,i)=>{let a=r(Be(t)),o=n++;return e.set(a,{identity:t,rollback:i,token:o}),o},o=t=>e.get(r(t))?.identity,s=t=>e.delete(r(t)),c=async e=>i(e,()=>s(e)),l=async t=>{let n=r(t),i=e.get(n);if(!i)return{kind:`none`};let a=i.token,o=i.identity,s;try{s=await i.rollback()}catch{return{kind:`blocked`,status:`failed`}}let c=e.get(n);return!c||c.token!==a||!He(c.identity,o)?{kind:`superseded`}:s.status===`rolled-back`||s.status===`conflict`?(e.delete(n),{kind:`cleared`,status:s.status}):{kind:`blocked`,status:s.status}},u=async(t,n)=>{let i=r(t),a=e.get(i);if(!a)return{kind:`none`};if(Ve(a.identity,n))return{kind:`match`};let o=a.token,s=a.identity,c=await a.rollback(),l=e.get(i);return!l||l.token!==o||!He(l.identity,s)?{kind:`superseded`}:c.status===`rolled-back`||c.status===`conflict`?(e.delete(i),{kind:`cleared`,status:c.status}):{kind:`rollback_failed`,retained:!0,status:c.status}};return{register:a,read:o,clear:s,clearExclusive:c,retireCurrent:l,rollbackAndClearIfBindingMismatch:async(e,t)=>i(e,()=>u(e,t)),rollbackAllBestEffort:async t=>{let n=[...e.entries()];await Promise.all(n.map(async([,n])=>{if(t?.excludeTransport!==void 0&&n.identity.transport===t.excludeTransport)return;let a=Be(n.identity);await i(a,async()=>{let t=r(a),i=e.get(t);if(!i||i.token!==n.token)return;let o=i.token,s=i.identity;try{let n=await i.rollback(),r=e.get(t);if(!r||r.token!==o||!He(r.identity,s))return;(n.status===`rolled-back`||n.status===`conflict`)&&e.delete(t)}catch{}})}))},stageExclusive:async(e,t)=>i(e,async()=>{let n=await l(e);if(n.kind===`blocked`)return{kind:`blocked`,status:n.status};let r=await t();if(!r)return{kind:`skipped`};let i=a(r.identity,r.rollback);return r.protectOnStale?{kind:`stale_protected`,token:i,identity:r.identity}:{kind:`registered`,token:i,identity:r.identity}})}},We=(e,t)=>!e?.attachments?.length||!t?[]:e.attachments.flatMap(e=>{let n=t[e.attachmentRefID];return n?[n]:[]}),Ge=(e,t)=>{let n=t??{};return e.map(e=>({partID:e.partID,text:e.text,...e.synthetic===!0?{synthetic:!0}:{},attachments:e.attachments.flatMap(e=>n[e.attachmentRefID]?[n[e.attachmentRefID]]:[])}))},Ke=(e,t)=>{if(t.length===0)return[...e];let n=new Map;for(let t of e)n.set(t.partID,t);for(let e of t)n.set(e.partID,e);let r=new Set,i=[];for(let t of e){let e=n.get(t.partID);e&&(i.push(e),r.add(t.partID))}for(let e of t)r.has(e.partID)||(i.push(e),r.add(e.partID));return i},qe=t({AssistantView:()=>et}),Je={},Ye=[],Xe=[],Ze=(e,t,n)=>[...e===void 0?[]:[{type:`text`,text:e}],...(t??[]).flatMap(e=>[{type:`text`,text:e.text,...e.synthetic===!0?{synthetic:!0}:{}},...(e.attachments??[]).map(e=>({type:`file`,mime:e.mimeType,url:e.dataUrl}))]),...(n??[]).map(e=>({type:`file`,mime:e.mimeType,url:e.dataUrl}))],Qe=e=>{let t=(0,Oe.c)(11),{assistant:n,onBack:r}=e,{t:i}=_(),a;t[0]===n?a=t[1]:(a=n?v(n.name):null,t[0]=n,t[1]=a);let o=a,s=n&&o?o.displayName||n.name:``,c;t[2]!==s||t[3]!==i?(c=s||i(`assistants.title`),t[2]=s,t[3]=i,t[4]=c):c=t[4];let l;t[5]===i?l=t[6]:(l=i(`assistants.actions.backToChat`),t[5]=i,t[6]=l);let u;return t[7]!==r||t[8]!==c||t[9]!==l?(u=(0,Z.jsx)(V,{title:c,backAriaLabel:l,onBack:r,overlay:!0}),t[7]=r,t[8]=c,t[9]=l,t[10]=u):u=t[10],u},$e=e=>{let t=(0,Oe.c)(45),{assistantID:n,displayName:r,avatarEmoji:i,modeLabel:a,selected:o,enabled:s,editLabel:c,deleteLabel:l,onSelect:u,onEdit:d,onDelete:f}=e,[p,m]=Y.useState(!1),h;t[0]===u?h=t[1]:(h=()=>u(),t[0]=u,t[1]=h);let _=g(h),v;t[2]===d?v=t[3]:(v=()=>{m(!1),d()},t[2]=d,t[3]=v);let y=g(v),b;t[4]===f?b=t[5]:(b=()=>{m(!1),f()},t[4]=f,t[5]=b);let x=g(b),S;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>{e.preventDefault(),m(!0)},t[6]=S):S=t[6];let C=o?`border-border/50 bg-[var(--surface-elevated)]`:`border-transparent hover:bg-interactive-hover`,ee=!s&&`opacity-65`,w;t[7]!==C||t[8]!==ee?(w=fe(`flex w-full min-h-11 items-center gap-3 rounded-xl border px-3 py-3 text-left outline-none transition-[background-color,border-color,opacity] duration-150 ease-out active:bg-interactive-active focus-visible:ring-2 focus-visible:ring-[var(--interactive-focus-ring)] motion-reduce:transition-none`,C,ee),t[7]=C,t[8]=ee,t[9]=w):w=t[9];let T;t[10]!==_||t[11]!==o||t[12]!==w?(T=(0,Z.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":o,onClick:_,onContextMenu:S,className:w}),t[10]=_,t[11]=o,t[12]=w,t[13]=T):T=t[13];let E;t[14]!==n||t[15]!==i||t[16]!==r?(E=(0,Z.jsx)(pe,{name:n,emoji:i,size:24,label:r}),t[14]=n,t[15]=i,t[16]=r,t[17]=E):E=t[17];let D;t[18]===r?D=t[19]:(D=(0,Z.jsx)(`span`,{className:`block truncate typography-ui-label font-medium`,children:r}),t[18]=r,t[19]=D);let O;t[20]===a?O=t[21]:(O=(0,Z.jsx)(`span`,{className:`mt-0.5 block truncate typography-micro text-muted-foreground`,children:a}),t[20]=a,t[21]=O);let k;t[22]!==D||t[23]!==O?(k=(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[D,O]}),t[22]=D,t[23]=O,t[24]=k):k=t[24];let A;t[25]!==k||t[26]!==T||t[27]!==E?(A=(0,Z.jsxs)(Te,{render:T,children:[E,k]}),t[25]=k,t[26]=T,t[27]=E,t[28]=A):A=t[28];let j;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,Z.jsx)(me,{name:`edit`,className:`size-4`}),t[29]=j):j=t[29];let M;t[30]!==c||t[31]!==y?(M=(0,Z.jsxs)(De,{onClick:y,children:[j,c]}),t[30]=c,t[31]=y,t[32]=M):M=t[32];let N;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,Z.jsx)(we,{}),t[33]=N):N=t[33];let P;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,Z.jsx)(me,{name:`delete-bin`,className:`size-4`}),t[34]=P):P=t[34];let F;t[35]!==l||t[36]!==x?(F=(0,Z.jsxs)(De,{onClick:x,className:`text-[var(--status-error)] focus:text-[var(--status-error)] data-[highlighted]:text-[var(--status-error)] [&_svg]:text-[var(--status-error)]`,children:[P,l]}),t[35]=l,t[36]=x,t[37]=F):F=t[37];let I;t[38]!==M||t[39]!==F?(I=(0,Z.jsxs)(Ee,{className:`min-w-[10rem]`,children:[M,N,F]}),t[38]=M,t[39]=F,t[40]=I):I=t[40];let L;return t[41]!==p||t[42]!==A||t[43]!==I?(L=(0,Z.jsxs)(Ce,{open:p,onOpenChange:m,children:[A,I]}),t[41]=p,t[42]=A,t[43]=I,t[44]=L):L=t[44],L},et=({activeOverride:e,onMobileBack:t})=>{let{t:o}=_(),{isMobile:d}=ge(),f=ve(),p=Y.useSyncExternalStore(n,r,r),m=a(),D=i(e=>e.activeMainTab===`assistant`),P=e??D,F=i(e=>e.isMobile),L=d||F,R=I(),V=se(),H=V.data,U=ce(e=>e.assistantByTransport[p]??null),ue=ce(e=>e.selectAssistant),de=ce(e=>e.requestCreate),W=H?.assistants.find(e=>e.id===U)??null,G=W?.id??``,K=W?.sessionID??``,q=W?.effectiveWorkspacePath??``,J=Y.useMemo(()=>s({transportIdentity:p},`assistant:${G}`),[G,p]),xe=u(J),Ce=k(e=>e.draftAttachmentViews[xe]??Je),we=k(e=>e.drafts[xe]),Te=Y.useMemo(()=>{let e=We(we,Ce);return e.length===0?Ye:e},[Ce,we]),Ee=we?.attachments,De=we?.syntheticParts,Oe=Y.useMemo(()=>!Ee||!De?``:`${Ee.map(e=>e.attachmentRefID).join(``)}\u0004${De.map(e=>`${e.partID}\u0002${e.attachments.map(e=>e.attachmentRefID).join(``)}`).join(``)}`,[Ee,De]);Y.useEffect(()=>{G&&k.getState().hydrateDraftAttachments(J)},[G,J,Oe]);let X=O(q||null,{enabled:!!q&&P}),Q=A(q||null,{enabled:!!q&&P}),Me=E(K,q||void 0),Pe=N(K,q||void 0),Ie=w(K),ze=be(),[Ve,He]=Y.useState(()=>new Map),qe=Y.useRef(0),et=Y.useRef(Ue()),tt=Ve.get(G)??Xe,[,nt]=Y.useState(!1),rt=Y.useRef(()=>{});rt.current=()=>{h.error(o(`assistants.composer.selectionSaveFailed`))};let it=Y.useRef(null);it.current||=new je(nt,e=>rt.current(e));let at=Y.useMemo(()=>({assistantID:G,transportIdentity:p,runtimeGeneration:m}),[G,m,p]),$=it.current,ot=Y.useMemo(()=>({transport:p,assistantID:G}),[G,p]),st=g(async(e,t=p)=>{await et.current.clearExclusive({transport:t,assistantID:e})}),ct=g(e=>{et.current.rollbackAllBestEffort(e).catch(()=>void 0)});Y.useEffect(()=>{!U&&H?.assistants[0]&&ue(H.assistants[0].id)},[ue,U,H?.assistants]),Y.useEffect(()=>{V.isSuccess&&U&&!W&&ue(H?.assistants[0]?.id??null)},[W,ue,U,H?.assistants,V.isSuccess]),Y.useEffect(()=>{P&&G&&!K&&ie(G)},[P,G,K]),Y.useEffect(()=>{qe.current++,He(new Map),ct({excludeTransport:p})},[p,m,ct]),Y.useEffect(()=>()=>{qe.current++,ct()},[ct]),Y.useEffect(()=>{$.activate(at)},[$,at]),Y.useEffect(()=>()=>{$.dispose()},[$]),Y.useEffect(()=>{G&&et.current.rollbackAndClearIfBindingMismatch(ot,{assistantID:G,sessionID:K,directory:q,sessionGeneration:W?.sessionGeneration??-1,transport:p,runtimeGeneration:m}).catch(()=>void 0)},[W?.sessionGeneration,G,q,m,K,ot,p]);let lt=g(e=>at.assistantID?$.enqueue(at,e,async({identity:e,selection:t,signal:n})=>{await Ne(e,t,{readSnapshot:()=>B(void 0,e.transportIdentity),ensureSnapshot:e=>ne(e),updateAssistant:te,signal:n,assertAuthoritative:()=>{if($.assertAuthoritative(e),r()!==e.transportIdentity||a()!==e.runtimeGeneration)throw new Ae}})}):Promise.reject(Error(`assistant_unavailable`))),ut=Y.useMemo(()=>ye(Q.data),[Q.data]),dt=g(e=>{if(!W)return;let t=S(ut,W.agent??void 0,e);if(t){let e=x({providerID:W.providerID,modelID:W.modelID,agent:W.agent},t,ut,X.data??[]),n=e.providerID===W.providerID&&e.modelID===W.modelID;lt({...e,agent:e.agent??void 0,variant:n?W.variant??void 0:void 0})}}),ft=g(async(e,t)=>{e.sessionID&&await ze.ensureSessionRenderable(e.sessionID,{directory:e.directory,...t?.force?{force:!0}:{}})}),pt=W?.sessionGeneration;Y.useEffect(()=>{!P||!G||!K||!q||pt===void 0||ft({sessionID:K,directory:q,sessionGeneration:pt},{force:!0})},[P,G,q,ft,pt,K]);let mt=g((e,t)=>{if(t.length===0)return;let n=new Set(t);He(t=>{let r=t.get(e);if(!r?.some(e=>n.has(e.info.id)))return t;let i=new Map(t),a=r.filter(e=>!n.has(e.info.id));return a.length>0?i.set(e,a):i.delete(e),i})}),ht=g((e,t,n)=>{He(r=>{let i=r.get(e);if(!i)return r;let a=Le(i,t,n);if(a===i)return r;let o=new Map(r);return o.set(e,a),o})}),gt=g(e=>{mt(G,e)}),_t=g(async e=>{if(!K||!q)throw Error(`assistant_unavailable`);T(K,q).some(t=>t?.id===e)&&(await ee(K,e,{directory:q,draftKey:J,restorePrimaryInput:!1}),await st(G))}),vt=g(async(e,t)=>{if(!W||W.mode!==`continuous`)return;if(!K||!q)throw Error(`assistant_unavailable`);if(!T(K,q).some(t=>t?.id===e))return;if(t.info.id!==e||t.info.sessionID!==K||t.info.role!==`user`)throw Error(`The selected user message is unavailable`);let n={assistantID:W.id,sessionID:K,directory:q,sessionGeneration:W.sessionGeneration,messageID:e,transport:p,runtimeGeneration:m},i=Be(n),o=await et.current.stageExclusive(i,async()=>{let i=await M(K,e,t,{directory:q,draftKey:J}),o=r()===n.transport&&a()===n.runtimeGeneration,s=o?B(void 0,n.transport)?.assistants.find(e=>e.id===n.assistantID):void 0,c=!!(s&&s.mode===`continuous`&&s.sessionID===n.sessionID&&s.sessionGeneration===n.sessionGeneration&&(s.effectiveWorkspacePath??``)===n.directory);if(o&&c)return{identity:n,rollback:()=>i.rollback()};let l=await i.rollback();return l.status===`failed`||l.status===`skipped`?{identity:n,rollback:()=>i.rollback(),protectOnStale:!0}:null});if(o.kind===`blocked`)throw Error(`assistant_stage_message_edit_prior_blocked`);if(o.kind===`stale_protected`)throw Error(`assistant_stage_message_edit_rollback_failed`)}),yt=Y.useMemo(()=>{let e=C(J,()=>k.getState());return{busy:!1,attachments:Te,addAttachment:t=>e.addLocal(t),removeAttachment:t=>e.removeByAttachmentID(t),clearAttachments:()=>e.clearRootAttachments(),restoreAttachments:t=>e.restoreRootAttachments(t),pendingInput:null,consumePendingInput:()=>null,pendingPreset:null,consumePendingPreset:()=>null,consumeSyntheticParts:()=>{let e=k.getState(),t=e.draftAttachmentViews[u(J)]??Je,n=e.consumeDraftSyntheticParts(J,b);return n?Ge(n,t):null},restoreSyntheticParts:e=>{(async()=>{let t=k.getState(),n=e.map(e=>({partID:e.partID??c(),text:e.text,attachments:[],...e.synthetic===!0?{synthetic:!0}:{}})),r=Ke(t.getDraft(J)?.syntheticParts??[],n);t.setDraftSyntheticParts(J,r);for(let r=0;r<n.length;r++){let i=n[r].partID;for(let n of e[r]?.attachments??[])n.source===`server`&&n.dataUrl?t.addDraftDurableAttachment(J,{attachmentID:n.id,filename:n.filename,mimeType:n.mimeType,size:n.size,source:`server`,url:n.dataUrl,serverPath:n.serverPath,partID:i}):await t.addDraftLocalAttachment(J,n.file,{attachmentID:n.id,filename:n.filename,source:n.source===`vscode`?`vscode`:`local`,vscodePath:n.vscodePath,vscodeSource:n.vscodeSource===`selection`?`selection`:void 0,partID:i})}})()},inlineDrafts:[],removeInlineDraft:()=>{},restoreInlineDrafts:()=>{},history:Ie,captureRuntime:()=>k.getState().captureDraftRuntime(),getDraft:e=>k.getState().getDraft(e),abortPrompt:{sessionID:null,clear:()=>{}}}},[Te,J,Ie]),bt=Y.useMemo(()=>{let e=(X.data??[]).find(e=>e.id===W?.providerID)?.models?.find(e=>e.id===W?.modelID);return _e(e)},[W?.modelID,W?.providerID,X.data]),xt=Me.length>0,St=Y.useMemo(()=>{if(!W||!K||!q)return null;let e={sessionID:K,directory:q,sessionGeneration:W.sessionGeneration};return{kind:`secondary`,surfaceID:`assistant:${W.id}`,active:P,sessionID:K,directory:q,draftKey:J,transportIdentity:p,runtimeGeneration:m,deliveryTarget:{kind:`assistant`,assistantID:W.id},resources:yt,...W.mode===`stateless`?{queueSessionID:`assistant:${W.id}`}:{},selection:{value:{providerID:W.providerID,modelID:W.modelID,agent:W.agent??void 0,variant:W.variant??void 0},catalog:{providers:X.data??[],agents:ut,variants:bt,variantsReady:X.isSuccess,ready:X.isSuccess&&Q.isSuccess,loading:X.isPending||Q.isPending,error:X.isError||Q.isError},change:lt,flush:()=>$.flush(at)},activity:{phase:Pe?.type===`busy`?`busy`:Pe?.type===`retry`?`retry`:`idle`,canAbort:Pe?.type===`busy`||Pe?.type===`retry`},commands:{sessionID:K,hasMessages:xt,hasNewDraft:!1},commandPolicy:e=>e.name!==`fork`&&e.name!==`thread`,backend:{send:async t=>{let n;for(let t of T(e.sessionID,e.directory)){let e=typeof t?.id==`string`?t.id:``;/^msg_[0-9a-f]{12}[0-9A-Za-z]{14}$/.test(e)&&(!n||e>n)&&(n=e)}let r=l(`msg`,n);t.options?.commitStagedMessageEdit&&et.current.clear({transport:p,assistantID:W.id});let i=j({messageID:r,sessionID:e.sessionID,providerID:t.providerID??W.providerID,modelID:t.modelID??W.modelID,agent:t.agent??W.agent??void 0,text:t.text,attachments:t.attachments,additionalParts:t.parts});He(e=>{let t=new Map(e);return t.set(W.id,[...e.get(W.id)??[],i]),t});let a;try{a=await ae(W.id,e,r,Ze(t.text,t.parts,t.attachments))}catch(e){throw mt(W.id,[r]),e}if(R.data?.serverInstanceID){let e=v(W.name);y({serverInstanceID:R.data.serverInstanceID,assistantID:W.id,name:e.displayName||W.name,avatarSeed:W.id,...e.avatarEmoji?{avatarEmoji:e.avatarEmoji}:{}}).catch(()=>void 0)}a.binding.sessionID&&ht(W.id,r,a.binding.sessionID);let o=qe.current;Re({binding:a.binding,refresh:t=>ft(t,{force:t.sessionID!==e.sessionID||t.sessionGeneration!==e.sessionGeneration}),isCurrent:()=>qe.current===o})},sendQueued:async()=>{throw Error(`assistant-server-queue-required`)},create:async()=>{let e=await z(W.id);await st(W.id),await ft(e,{force:!0})},compact:async()=>{let t=await oe(W.id,e);await st(W.id),await ft(t.binding,{force:!0})},abort:async()=>{await re(W.id,e)}},shortcuts:{cycle:dt,new:async()=>{let e=await z(W.id);await st(W.id),await ft(e,{force:!0})},abort:async()=>{await re(W.id,e)},submit:()=>{}}}},[P,W,R.data?.serverInstanceID,lt,st,dt,q,J,xt,X.data,X.isError,X.isPending,X.isSuccess,Q.isError,Q.isPending,Q.isSuccess,ft,ht,mt,yt,m,$,at,K,Pe,p,bt,ut]),Ct=g(()=>{if(de(),f){f.openSettings();return}let e=i.getState();e.setSettingsPage(`assistants`),e.setSettingsDialogOpen(!0)}),wt=g(e=>{le(e,f?{openMobileSettings:f.openSettings}:void 0)}),[Tt,Et]=Y.useState(null),Dt=g(e=>{Et(e)}),Ot=g(e=>{e||Et(null)}),kt=g(()=>{i.getState().setActiveMainTab(`chat`)}),At=g(()=>{if(t){t();return}kt()}),jt=(e,t,n,r)=>(0,Z.jsxs)(`div`,{className:`relative flex h-full min-h-0 flex-col`,children:[L?(0,Z.jsx)(Qe,{assistant:W,onBack:At}):null,(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center px-6 pt-[calc(max(0.25rem,var(--oc-safe-area-top,0px))+var(--oc-mobile-detail-navigation-height,3.5rem))] text-center`,children:[(0,Z.jsx)(me,{name:e,className:`size-6 text-muted-foreground`}),(0,Z.jsx)(`h1`,{className:`mt-4 typography-ui-header font-semibold`,children:t}),n?(0,Z.jsx)(`p`,{className:`mt-2 max-w-md typography-ui text-muted-foreground`,children:n}):null,r?(0,Z.jsx)(`div`,{className:`mt-5`,children:r}):null]})]});if(R.isPending||V.isPending)return jt(`ai-agent`,o(`assistants.state.unavailable`));if(R.isError||!R.data?.supported||!R.data.enabled||!H?.enabled)return jt(`cloud-off`,o(`assistants.state.unavailable`));if(!H.assistants.length)return jt(`ai-agent`,o(`assistants.onboarding.title`),o(`assistants.onboarding.description`),(0,Z.jsx)(he,{onClick:Ct,children:o(`assistants.onboarding.action`)}));if(!W)return jt(`ai-agent`,o(`assistants.state.unavailable`));if(!St)return(0,Z.jsxs)(`div`,{className:`relative flex h-full min-h-0 flex-col bg-background`,children:[L?(0,Z.jsx)(Qe,{assistant:W,onBack:At}):null,(0,Z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col items-center justify-center gap-3 px-6 pt-[calc(max(0.25rem,var(--oc-safe-area-top,0px))+var(--oc-mobile-detail-navigation-height,3.5rem))]`,"aria-busy":`true`,"aria-label":o(`assistants.state.unavailable`),children:[(0,Z.jsx)(`div`,{className:`size-10 animate-pulse rounded-xl bg-[var(--surface-muted)] motion-reduce:animate-none`}),(0,Z.jsx)(`div`,{className:`h-3.5 w-36 animate-pulse rounded-md bg-[var(--surface-muted)] motion-reduce:animate-none`})]})]});let Mt=v(W.name),Nt=W.enabled?V.isError?o(`assistants.state.staleSnapshot`):null:o(`assistants.state.assistantDisabled`);return(0,Z.jsxs)(`div`,{className:`relative flex h-full min-h-0 overflow-hidden bg-background`,"data-presentation":`workspace`,children:[L?null:(0,Z.jsxs)(`section`,{className:`flex h-full min-h-0 w-[clamp(16rem,22vw,20rem)] shrink-0 flex-col overflow-hidden`,children:[(0,Z.jsx)(`header`,{className:`shrink-0 px-4 pb-3 pt-4 sm:px-5`,children:(0,Z.jsx)(`h1`,{className:`truncate typography-ui-label font-semibold text-foreground`,children:o(`assistants.title`)})}),(0,Z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-3 pb-4 sm:px-4`,role:`listbox`,"aria-label":o(`assistants.listAria`),children:(0,Z.jsx)(`div`,{className:`flex flex-col gap-1 border-t border-border/40 pt-3`,children:H.assistants.map(e=>{let t=e.id===U,n=v(e.name);return(0,Z.jsx)($e,{assistantID:e.id,displayName:n.displayName,avatarEmoji:n.avatarEmoji??void 0,modeLabel:e.mode===`stateless`?o(`assistants.mode.stateless`):o(`assistants.mode.continuous`),selected:t,enabled:e.enabled,editLabel:o(`assistants.menu.edit`),deleteLabel:o(`assistants.settings.delete`),onSelect:()=>ue(e.id),onEdit:()=>wt(e.id),onDelete:()=>Dt(e)},e.id)})})})]}),(0,Z.jsx)(Fe,{assistant:Tt,open:Tt!==null,onOpenChange:Ot}),(0,Z.jsxs)(`div`,{className:fe(`relative flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden bg-background`,!L&&`border-l border-border/60`),children:[L?(0,Z.jsx)(Qe,{assistant:W,onBack:At}):(0,Z.jsxs)(`header`,{className:`flex h-14 shrink-0 items-center gap-3 border-b border-border/40 px-4 sm:px-5`,children:[(0,Z.jsx)(pe,{name:W.id,emoji:Mt.avatarEmoji,size:24,label:Mt.displayName||W.name}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`truncate typography-ui-label font-medium`,children:Mt.displayName}),(0,Z.jsx)(`div`,{className:`mt-0.5 truncate typography-micro leading-none text-muted-foreground/70`,children:W.mode===`stateless`?o(`assistants.conversation.statelessHint`):o(`assistants.conversation.continuousHint`)})]})]}),(0,Z.jsx)(ke,{onRevertMessage:_t,onEditMessage:W.mode===`continuous`?vt:void 0,assistant:W,sessionID:K,warning:Nt,surface:St,pendingUserMessages:tt,onPendingUserMessagesMaterialized:gt})]}),L?null:(0,Z.jsx)(Se,{directory:q||null})]})};export{qe as n,Fe as r,et as t};