ompgui 0.7.8 → 0.7.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +5 -5
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +5 -5
- package/.next/react-loadable-manifest.json +13 -13
- package/.next/required-server-files.js +3 -2
- package/.next/required-server-files.json +3 -2
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +2 -2
- package/.next/server/app/_global-error.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +3 -3
- package/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js.nft.json +1 -1
- package/.next/server/app/api/agent/running/events/route.js +2 -2
- package/.next/server/app/api/agent/running/events/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/[name]/route.js +1 -1
- package/.next/server/app/api/agents/[name]/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/route.js +1 -1
- package/.next/server/app/api/agents/route.js.nft.json +1 -1
- package/.next/server/app/api/agents/unpack/route.js +1 -1
- package/.next/server/app/api/agents/unpack/route.js.nft.json +1 -1
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/login/[provider]/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +3 -3
- package/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/server/app/api/model-roles/route.js +1 -1
- package/.next/server/app/api/model-roles/route.js.nft.json +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models/route.js.nft.json +1 -1
- package/.next/server/app/api/omp-settings/route.js +1 -1
- package/.next/server/app/api/omp-settings/route.js.nft.json +1 -1
- package/.next/server/app/api/omp-update/route.js +2 -2
- package/.next/server/app/api/omp-update/route.js.nft.json +1 -1
- package/.next/server/app/api/providers/enable/route.js +1 -1
- package/.next/server/app/api/providers/enable/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/archive/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/archive/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/subagents/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/subagents/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +4 -4
- package/.next/server/app/login.segments/_full.segment.rsc +4 -4
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/pair/page_client-reference-manifest.js +1 -1
- package/.next/server/app/pair.html +1 -1
- package/.next/server/app/pair.rsc +4 -4
- package/.next/server/app/pair.segments/_full.segment.rsc +4 -4
- package/.next/server/app/pair.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/pair.segments/pair/__PAGE__.segment.rsc +4 -4
- package/.next/server/app-paths-manifest.json +5 -5
- package/.next/server/chunks/3100.js +2 -2
- package/.next/server/chunks/3294.js +1 -1
- package/.next/server/chunks/4008.js +18 -0
- package/.next/server/chunks/4367.js +1 -1
- package/.next/server/chunks/4674.js +1 -1
- package/.next/server/chunks/4980.js +1 -1
- package/.next/server/chunks/6429.js +1 -0
- package/.next/server/chunks/7077.js +1 -1
- package/.next/server/chunks/8015.js +107 -0
- package/.next/server/chunks/8501.js +1 -1
- package/.next/server/chunks/933.js +1 -1
- package/.next/server/chunks/9848.js +1 -0
- package/.next/server/instrumentation.js +1 -1
- package/.next/server/instrumentation.js.nft.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/server/webpack-runtime.js +1 -1
- package/.next/static/chunks/{3274.487a15bb28a8bf64.js → 3274.52c14cafa7f8a3ef.js} +2 -2
- package/.next/static/chunks/4315-8575b9eecf54f2bb.js +1 -0
- package/.next/static/chunks/4906-3ebc61b9b2c31745.js +1 -0
- package/.next/static/chunks/4996.5e04c050b0523d42.js +1 -0
- package/.next/static/chunks/5806.06789869309659d0.js +1 -0
- package/.next/static/chunks/6268.294dd515c545712d.js +17 -0
- package/.next/static/chunks/9668.a6deba4ff5761bbb.js +1 -0
- package/.next/static/chunks/app/{page-9304c484c09df22f.js → page-305a0dd341ec102d.js} +2 -2
- package/.next/static/chunks/webpack-76f14942c1d852d7.js +1 -0
- package/.next/static/css/d45df4610e8c9637.css +3 -0
- package/README.ja.md +10 -1
- package/README.ko.md +11 -3
- package/README.md +9 -3
- package/README.zh-CN.md +10 -1
- package/next.config.ts +1 -1
- package/package.json +3 -1
- package/.next/server/chunks/6480.js +0 -18
- package/.next/server/chunks/7226.js +0 -107
- package/.next/server/chunks/7779.js +0 -1
- package/.next/static/chunks/1941.66c3a0942c0c3e5d.js +0 -1
- package/.next/static/chunks/4315-f0bee51727fa8bed.js +0 -1
- package/.next/static/chunks/4318.196416c4ae7baadf.js +0 -17
- package/.next/static/chunks/4906-1472d0151646b3d8.js +0 -1
- package/.next/static/chunks/7488.1403755f69bda581.js +0 -1
- package/.next/static/chunks/9668.b62ea9e45077f781.js +0 -1
- package/.next/static/chunks/webpack-afa1355fdf81dfd5.js +0 -1
- package/.next/static/css/63b622301ba107de.css +0 -3
- /package/.next/static/{PPk0j6NqdLVIbLaafEqjL → SAMSH7hMTmFI9vfMyiguw}/_buildManifest.js +0 -0
- /package/.next/static/{PPk0j6NqdLVIbLaafEqjL → SAMSH7hMTmFI9vfMyiguw}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=7779,exports.ids=[7779],exports.modules={28967:(a,b,c)=>{function d(){return globalThis.__piModelsCacheState||(globalThis.__piModelsCacheState={entries:new Map,inFlight:new Map,generation:0}),globalThis.__piModelsCacheState}function e(){let a=d();a.generation+=1,a.entries.clear(),a.inFlight.clear()}function f(a){return{...a,modelError:"Model list is temporarily unavailable. Check your configuration and try again."}}function g(a,b){var c,e,f;let g,h,i=d(),j=i.entries.get(a);if(j&&j.expiresAt>Date.now())return Promise.resolve(j.data);let k=i.inFlight.get(a)??(c=i,e=a,f=b,g=c.generation,h=Promise.resolve().then(f).then(a=>{if(c.generation===g&&c.inFlight.get(e)===h){for(c.entries.delete(e);c.entries.size>=32;){let a=c.entries.keys().next().value;if(void 0===a)break;c.entries.delete(a)}c.entries.set(e,{data:a,expiresAt:Date.now()+6e4})}return a}).finally(()=>{c.inFlight.get(e)===h&&c.inFlight.delete(e)}),c.inFlight.set(e,h),h);return j?(k.catch(()=>{}),Promise.resolve(j.data)):k}c.d(b,{Fw:()=>f,kn:()=>e,rC:()=>g})},87779:(a,b,c)=>{c.d(b,{A4:()=>T,HG:()=>U,rb:()=>P,Te:()=>V,OF:()=>$,Fn:()=>X});var d=c(29021),e=c(21820),f=c(78970),g=c(28967),h=c(13798),i=c(88501),j=c(78573),k=c(77598);let l={revision:0,items:[]},m="enqueue_message",n="recall_queued_message",o="delete_queued_message",p="promote_queued_message",q="get_message_queue",r="queue_stale_revision",s="queue_item_missing",t="queue_item_sending",u="queue_invalid",v="This message may already have been handed to the agent. It was not confirmed and will not be retried.",w=new Set([m,n,o,p,q]);class x extends Error{constructor(a,b){super(a),this.name="SessionQueueError",this.code=b}}function y(a){return"steer"===a||"followUp"===a}function z(a){return{type:"message_queue_update",queue:a}}function A(a,b){return b?{queue:a,recalled:b}:{queue:a}}function B(a){return Buffer.byteLength(a,"utf8")}function C(a){let b={id:a.id,text:a.text,lane:a.lane,status:a.status,...a.error?{error:a.error}:{},...a.attachments?{attachments:Object.freeze(a.attachments.map(a=>Object.freeze({...a})))}:{}};return Object.freeze(b),b}class D{getSnapshot(){return this.snapshot}hasSending(){return this.items.some(a=>"sending"===a.status)}selectDispatchCandidate(a){if(!this.hasSending())return this.items.find(b=>"queued"===b.status&&b.lane===a)}getImages(a){return this.imagePayloads.get(a)}enqueue(a){if(!y(a.lane))throw new x("lane must be steer or followUp",u);let b=(0,f.kc)(a.images);if(b)throw new x(b,u);let c=[],d=[],e=0;if(Array.isArray(a.images))for(let b of a.images){if("object"!=typeof b||null===b||!("data"in b)||!("mimeType"in b)||"string"!=typeof b.data||"string"!=typeof b.mimeType)throw new x("Each attachment must be an image",u);let a=(0,f.Si)(b.data);if(null===a)throw new x("Invalid image data",u);e+=a,c.push(Object.freeze({type:"image",data:b.data,mimeType:b.mimeType})),d.push({mimeType:b.mimeType,bytes:a})}if(this.imageBytes+e>0x6400000)throw new x("Queue image capacity exceeds 100MiB; remove or recall queued images first","queue_images_too_large");let g=this.assertText(a.text,c.length>0);if(this.items.length>=32)throw new x("The queue already holds 32 messages","queue_full");this.assertTotalBytes(B(g));let h=C({id:(0,k.randomUUID)(),lane:a.lane,text:g,status:"queued",...d.length?{attachments:d}:{}});return c.length&&this.imagePayloads.set(h.id,Object.freeze(c)),this.imageBytes+=e,this.items=[...this.items,h],this.publish()}promote(a,b){let c=this.requireMutable(a,b);if("followUp"!==c.lane||"queued"!==c.status)throw new x("Only a queued follow-up can be promoted to steer",u);let d=C({...c,lane:"steer",status:"queued"});return this.items=[d,...this.items.filter(b=>b.id!==a)],this.publish()}recall(a,b,c){let d=this.requireMutable(a,b),e=this.imagePayloads.get(a);if(void 0!==c){if(!Number.isSafeInteger(c)||c<=0)throw new x("Invalid recall response capacity",u);let a=B(JSON.stringify({queue:this.snapshot,recalled:d}))+256;for(let b of e??[])a+=b.data.length+B(JSON.stringify({type:"image",data:"",mimeType:b.mimeType}))+1;if(a>c)throw new x("These queued images exceed the remote recall transfer limit. Recall them from the web app instead; the queued message has not changed.","queue_recall_too_large")}return this.releaseImages(d),this.items=this.items.filter(b=>b.id!==a),{item:e?{...d,images:e}:d,snapshot:this.publish()}}delete(a,b){let c=this.requireMutable(a,b);return this.releaseImages(c),this.items=this.items.filter(b=>b.id!==a),this.publish()}markSending(a){let b=this.items.find(b=>b.id===a);if(!b)throw new x("Queued message was not found",s);if("queued"!==b.status)throw new x("Queued message is already being sent",t);return this.replace(a,{...b,status:"sending"}),this.publish()}markFailed(a,b){let c=this.items.find(b=>b.id===a);return c?(this.replace(a,{...c,status:"failed",error:b}),this.publish()):this.snapshot}remove(a){let b=this.items.find(b=>b.id===a);return b?(this.releaseImages(b),this.items=this.items.filter(b=>b.id!==a),this.publish()):this.snapshot}failSending(a){return this.hasSending()?(this.items=this.items.map(b=>"sending"===b.status?C({...b,status:"failed",error:a}):b),this.publish()):this.snapshot}reset(){return this.imagePayloads.clear(),this.imageBytes=0,this.items=[],this.revision=0,this.snapshot=l,this.snapshot}releaseImages(a){if(this.imagePayloads.delete(a.id))for(let b of a.attachments??[])this.imageBytes-=b.bytes}requireMutable(a,b){this.assertCas(b);let c=this.items.find(b=>b.id===a);if(!c)throw new x("Queued message was not found",s);if("sending"===c.status)throw new x("Queued message is already being sent",t);return c}assertCas(a){if("number"!=typeof a||a!==this.revision)throw new x("Queue revision is stale; reload the queue and retry",r)}assertText(a,b){if("string"!=typeof a)throw new x("Message text is required",u);if(!b&&0===a.trim().length)throw new x("Message text cannot be empty",u);if(B(a)>262144)throw new x("Message exceeds 262144 bytes","queue_item_too_large");return a}assertTotalBytes(a){let b=a;for(let a of this.items)b+=B(a.text);if(b>1048576)throw new x("Queue exceeds 1048576 bytes","queue_too_large")}replace(a,b){this.items=this.items.map(c=>c.id===a?C(b):c)}publish(){let a;this.revision+=1;let b={revision:this.revision,items:(Object.freeze(a=this.items.map(a=>C(a))),a)};return Object.freeze(b),this.snapshot=b,b}constructor(){this.revision=0,this.items=[],this.imagePayloads=new Map,this.imageBytes=0,this.snapshot=l}}let E="This session is restarting — retry in a moment.";class F extends Error{constructor(a,b){super(a),this.name="WebRpcError",this.code=b}}let G=new Set(["select","confirm","input","editor","open_url"]),H=new Set(["abort","abort_and_prompt","set_thinking_level","cycle_thinking_level","cycle_model","get_available_models","set_auto_compaction","set_auto_retry","abort_retry","abort_bash","set_todos","set_steering_mode","set_follow_up_mode","set_interrupt_mode","get_branch_messages","get_messages","get_messages_page","export_html","handoff","get_subagents","get_subagent_messages","set_subagent_subscription","get_login_providers","login"]),I={navigate_tree:"Branch navigation is not supported over the omp RPC protocol",clear_queue:"Recalling queued messages is not supported over the omp RPC protocol",get_tools:"Per-session tool listing is not supported over the omp RPC protocol",set_tools:"Changing tools on a running session is not supported over the omp RPC protocol; tool presets apply to new sessions",extension_ui_input:"Extension custom UI is not supported over the omp RPC protocol"},J={find:"glob",search:"grep"},K=new Set(["ls"]),L=["bash","read","edit","write","grep","find","ls","task"].map(a=>a.toLowerCase()).sort().join(",");function M(a,b,c=!1){let d=[];if(a)d.push("--resume",a);else if(void 0!==b){let a=b.map(a=>a.toLowerCase()).sort().join(",");if(0===b.length)d.push("--no-tools");else if(a===L);else{let a=function(a){let b=[];for(let c of a){let a=c.toLowerCase();if(K.has(a))continue;let d=J[a]??a;b.includes(d)||b.push(d)}return b}(b);a.length>0&&d.push("--tools",a.join(","))}}return c&&!a&&d.push("--advisor"),d}function N(a){return a?.length?a:void 0}function O(a){return"string"==typeof a.toolCallId&&a.toolCallId?a.toolCallId:"string"==typeof a.id&&a.id?a.id:""}function P(a){if(a&&(0,d.existsSync)(a))return{cwd:a,fellBack:!1};try{let a=process.cwd();if(a&&(0,d.existsSync)(a))return{cwd:a,fellBack:!0}}catch{}return{cwd:(0,e.homedir)(),fellBack:!0}}function Q(a){a&&"object"==typeof a&&void 0===a.estimatedTokensAfter&&(a.estimatedTokensAfter=Math.round((a.summary?.length??0)/4))}class R{constructor(a,b,c){this.listeners=[],this.pendingUiRequests=new Map,this.uiExpiryTimers=new Map,this.extensionStatuses=new Map,this.extensionWidgets=new Map,this.promptRunning=!1,this.bashRunning=!1,this.streaming=!1,this.compacting=!1,this.fastModeEnabled=!1,this.idleTimer=null,this.destroyListeners=[],this.onIdentityChangeCallback=null,this.unsubscribeFrames=null,this.initPromise=null,this.restarting=!1,this.mcpListWaiter=null,this._alive=!0,this.hostToolNames=new Set,this.pendingHostTools=new Map,this.hostUriSchemes=new Map,this.pendingHostUris=new Map,this.messageQueue=new D,this.queueEpoch=0,this.queueDispatching=!1,this.queueDispatchAgain=!1,this.abortHoldsDispatch=!1,this.activeToolIds=new Set,this.nativeFollowUpDepth=0,this.nativeHandoffPending=0,this.nativeQueuedCount=0,this.nativeQueueStale=!1,this.nativeReconcileGeneration=0,this.destroyPromise=null,this._sessionId="",this._sessionFile="",this.sessionFileSignalTimer=null,this.proc=a,this.cwd=b,this.recordedCwd=c??null}get sessionId(){return this._sessionId}get sessionFile(){return this._sessionFile}isAlive(){return this._alive&&this.proc.isAlive}isRunning(){return this.isAlive()&&(this.promptRunning||this.streaming||this.compacting||this.bashRunning)}start(){this.unsubscribeFrames=this.proc.onFrame(a=>this.handleFrame(a)),this.resetIdleTimer(),Z()}waitUntilReady(){return this.initPromise||(this.initPromise=this.initialize()),this.initPromise}async initialize(){let a=await this.proc.waitReady(12e4);await this.proc.negotiateProtocol(a),await this.proc.sendCommand({type:"set_subagent_subscription",level:"events"}).catch(()=>{});let b=await this.proc.sendCommand({type:"get_state"});this.applyIdentity(b),this.recordedCwd&&this.recordedCwd!==this.cwd&&this.emit({type:"notice",level:"warning",message:`This session's working directory no longer exists; the agent is running in ${this.cwd}.`})}applyIdentity(a){this._sessionId=a.sessionId,this._sessionFile=a.sessionFile??"",this._sessionName=a.sessionName,this.streaming=a.isStreaming,this.compacting=a.isCompacting,this.fastModeEnabled=a.fastModeEnabled??a.fastMode??this.fastModeEnabled,this._sessionFile&&(0,j.O8)(this._sessionId,this._sessionFile)}handleProcessExit(a){if(!this._alive||this.restarting)return;let b=a.trim().split("\n").pop()??"";this.emit({type:"notice",level:"error",message:`The omp process for this session exited unexpectedly${b?`: ${b}`:"."}`}),(this.streaming||this.promptRunning)&&this.emit({type:"agent_end",isTerminal:!0,messages:[]}),this.destroy()}handleFrame(a){this.resetIdleTimer();let b=!1,c=!1;switch(a.type){case"command_output":{let b=this.mcpListWaiter;if(b&&"string"==typeof a.text){clearTimeout(b.timer),this.mcpListWaiter=null,b.resolve(a.text),Z();return}break}case"agent_start":!this.streaming&&this.nativeFollowUpDepth>0&&(this.nativeFollowUpDepth-=1),this.streaming=!0,(0,j.mD)(),b=!0,this._sessionFile&&!(0,d.existsSync)(this._sessionFile)&&this.signalWhenSessionFileAppears();break;case"agent_end":!1!==a.isTerminal&&(this.streaming=!1,this.promptRunning=!1,this.activeToolIds.clear(),(0,j.mD)(),this.nativeQueuedCount>0||this.nativeQueueStale?this.beginNativeQueueReconcile():c=!0);break;case"prompt_result":this.promptRunning=!1,c=!0;break;case"auto_compaction_start":this.compacting=!0;break;case"auto_compaction_end":this.compacting=!1,Q(a.result),(0,j.mD)(),c=!0;break;case"tool_execution_start":{let b=O(a);b&&this.activeToolIds.add(b);break}case"tool_execution_end":{let b=O(a);b&&this.activeToolIds.delete(b),c=!0;break}case"session_info_update":"string"==typeof a.title&&(this._sessionName=a.title),(0,j.mD)(),b=!0;break;case"response":if(!1===a.success&&"prompt"===a.command){this.promptRunning=!1,this.emit({type:"prompt_error",errorMessage:a.error??"Prompt failed"}),Z(),this.scheduleQueueDispatch();return}break;case"extension_ui_request":if(this.trackExtensionUiRequest(a))return void Z();break;case"host_tool_call":{let b="string"==typeof a.id?a.id:"",c="string"==typeof a.toolName?a.toolName:"";if(b&&c&&this.hostToolNames.has(c)&&this.listeners.length>0){this.pendingHostTools.set(b,a),this.emit(a),Z();return}this.rejectUnexpectedHostTool(a);return}case"host_tool_cancel":{let b="string"==typeof a.targetId?a.targetId:"";if(b&&this.pendingHostTools.delete(b)){this.emit(a),Z();return}break}case"host_uri_request":{let b="string"==typeof a.id?a.id:"",c=("string"==typeof a.url?a.url:"").split(":")[0]??"",d="write"===a.operation?"write":"read",e=this.hostUriSchemes.get(c);if(b&&c&&e&&("write"!==d||e.writable)&&this.listeners.length>0){this.pendingHostUris.set(b,a),this.emit(a),Z();return}this.proc.sendFrame({type:"host_uri_result",id:b,isError:!0,error:`URI scheme "${c}" is not registered by omp-web`});return}case"host_uri_cancel":{let b="string"==typeof a.targetId?a.targetId:"";if(b&&this.pendingHostUris.delete(b)){this.emit(a),Z();return}}}this.emit(a),Z({refreshSessionList:b}),c&&this.scheduleQueueDispatch()}forgetPendingUiRequest(a){this.pendingUiRequests.delete(a);let b=this.uiExpiryTimers.get(a);b&&(clearTimeout(b),this.uiExpiryTimers.delete(a))}clearPendingUiRequests(){for(let a of this.uiExpiryTimers.values())clearTimeout(a);this.uiExpiryTimers.clear(),this.pendingUiRequests.clear()}trackExtensionUiRequest(a){let b=a.method,c=a.id;if("cancel"===b)return this.forgetPendingUiRequest(a.targetId),!1;let d=!1;try{d=(0,i.rk)().settings.tools?.approval?.extension==="allow"}catch{}if("confirm"===b&&"string"==typeof a.title&&/^allow tool\s*:/i.test(a.title)&&d)return this.forgetPendingUiRequest(c),this.proc.sendFrame({type:"extension_ui_response",id:c,confirmed:!0}),!0;if(G.has(b)){this.forgetPendingUiRequest(c);let b="number"==typeof a.timeout?a.timeout:void 0;if(void 0!==b&&Number.isFinite(b)&&b>0&&b<=0x7fffffff){a.expiresAt=Date.now()+b;let d=setTimeout(()=>{this.forgetPendingUiRequest(c),this.emit({type:"extension_ui_request",method:"cancel",id:`expired:${c}`,targetId:c})},b);d.unref?.(),this.uiExpiryTimers.set(c,d)}return this.pendingUiRequests.set(c,a),!1}if("setStatus"===b){let b=a.statusKey,c=a.statusText;return void 0===c?this.extensionStatuses.delete(b):this.extensionStatuses.set(b,c),!1}if("setWidget"===b){let b=a.widgetKey,c=a.widgetLines;void 0===c?this.extensionWidgets.delete(b):this.extensionWidgets.set(b,{key:b,lines:c,placement:a.widgetPlacement??"aboveEditor"})}return!1}rejectUnexpectedHostTool(a){let b="string"==typeof a.id?a.id:"";if(!b)return;let c="string"==typeof a.toolName?a.toolName:"unknown";this.proc.sendFrame({type:"host_tool_result",id:b,isError:!0,result:{content:[{type:"text",text:`Host tool "${c}" is not available in ompgui. Use OMP's built-in tools within the selected workspace.`}]}}),this.emit({type:"notice",level:"warning",message:`Rejected unavailable host tool: ${c}`})}rejectPendingHostTools(a){for(let b of this.pendingHostTools.keys())this.proc.sendFrame({type:"host_tool_result",id:b,isError:!0,result:{content:[{type:"text",text:a}]}});this.pendingHostTools.clear()}rejectPendingHostUris(a){for(let b of this.pendingHostUris.keys())this.proc.sendFrame({type:"host_uri_result",id:b,isError:!0,error:a});this.pendingHostUris.clear()}emit(a){for(let b of this.listeners)try{b(a)}catch{}}signalWhenSessionFileAppears(){if(this.sessionFileSignalTimer)return;let a=0,b=()=>{if(this.sessionFileSignalTimer=null,this._alive&&this._sessionFile){if(!(0,d.existsSync)(this._sessionFile)){(a+=1)<40&&(this.sessionFileSignalTimer=setTimeout(b,250));return}(0,j.mD)(),Z({refreshSessionList:!0})}};this.sessionFileSignalTimer=setTimeout(b,250)}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isRunning()?this.resetIdleTimer():this.destroy()},6e5)}onEvent(a){this.listeners.push(a);let b=Date.now();for(let[a,c]of this.pendingUiRequests){let d=c.expiresAt;if(void 0!==d&&d<=b){this.forgetPendingUiRequest(a);continue}}for(let b of(a({type:"extension_ui_pending",ids:[...this.pendingUiRequests.keys()]}),this.pendingUiRequests.values()))a(b);return a(z(this.messageQueue.getSnapshot())),()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1),0===this.listeners.length&&(this.rejectPendingHostTools("The web UI disconnected while the agent was waiting for this host tool"),this.rejectPendingHostUris("The web UI disconnected while the agent was waiting for this URI request"))}}onDestroy(a){return this._alive?(this.destroyListeners.push(a),()=>{let b=this.destroyListeners.indexOf(a);-1!==b&&this.destroyListeners.splice(b,1)}):(a(),()=>{})}onIdentityChange(a){this.onIdentityChangeCallback=a}async withFinalRunningNotification(a){try{return await a()}finally{Z()}}async getMcpList(){let a,b;if(this.restarting)throw new F(E,"session_restarting");if(!this.isAlive())throw Error("Session is no longer running");if(this.isRunning())throw new F("Wait for the current run to finish","session_busy");if(this.mcpListWaiter)throw new F("MCP list is already loading","mcp_list_loading");this.promptRunning=!0,Z();let c=new Promise((c,d)=>{a=c,b=d});c.catch(()=>{});let d={resolve:a,reject:b,timer:void 0};d.timer=setTimeout(()=>{this.mcpListWaiter===d&&(this.mcpListWaiter=null,b(new F("Timed out while loading MCP servers","mcp_list_timeout")))},15e3),d.timer.unref?.(),this.mcpListWaiter=d;try{return await this.proc.sendCommand({type:"prompt",message:"/mcp list"}),await c}catch(a){throw this.mcpListWaiter===d&&(clearTimeout(d.timer),this.mcpListWaiter=null,d.reject(a instanceof Error?a:Error(String(a)))),a}finally{this.mcpListWaiter===d&&(clearTimeout(d.timer),this.mcpListWaiter=null),this.promptRunning=!1,Z()}}buildWebState(a){return this.streaming=a.isStreaming,this.compacting=a.isCompacting,this._sessionName=a.sessionName,this.nativeQueuedCount=a.queuedMessageCount??0,this.nativeQueueStale=!1,a.sessionId&&(this._sessionId=a.sessionId,this._sessionFile=a.sessionFile??this._sessionFile),{sessionId:a.sessionId,sessionFile:a.sessionFile??"",sessionName:a.sessionName,isStreaming:a.isStreaming,isPromptRunning:this.promptRunning,isBashRunning:this.bashRunning,isCompacting:a.isCompacting,autoCompactionEnabled:a.autoCompactionEnabled,autoRetryEnabled:a.autoRetryEnabled,interruptMode:a.interruptMode,steeringMode:a.steeringMode,followUpMode:a.followUpMode,model:a.model?{id:a.model.id,provider:a.model.provider,name:a.model.name,reasoning:a.model.reasoning,thinking:a.model.thinking?{efforts:a.model.thinking.efforts}:void 0}:void 0,messageCount:a.messageCount,queuedMessageCount:a.queuedMessageCount,messageQueue:this.queueSnapshotForClient(),contextUsage:a.contextUsage??null,systemPrompt:a.systemPrompt?.join("\n\n")??"",thinkingLevel:a.thinkingLevel??"off",fastModeEnabled:a.fastModeEnabled??a.fastMode??this.fastModeEnabled,fastModeActive:a.fastModeActive,todoPhases:a.todoPhases??[],extensionStatuses:Array.from(this.extensionStatuses,([a,b])=>({key:a,text:b})),extensionWidgets:Array.from(this.extensionWidgets.values())}}async refreshIdentityAfterSessionChange(){let a=this._sessionId,b=await this.proc.sendCommand({type:"get_state"});return this.applyIdentity(b),a&&a!==this._sessionId&&(this.clearPendingUiRequests(),this.emit({type:"extension_ui_pending",ids:[]}),this.discardQueue("Queued messages were discarded because the session changed."),this.onIdentityChangeCallback?.(a,this._sessionId)),(0,j.mD)(),this._sessionId}async restart(){if(this.restarting)throw new F(E,"session_restarting");let a=this._sessionFile,b=!!a&&(0,d.existsSync)(a),c=this.proc;this.restarting=!0,this.queueEpoch+=1,this.abortHoldsDispatch=!1,this.activeToolIds.clear(),this.nativeFollowUpDepth=0,this.nativeHandoffPending=0,this.nativeQueuedCount=0,this.nativeQueueStale=!1,this.nativeReconcileGeneration+=1,this.messageQueue.failSending(v),this.emitQueueSnapshot(),this.unsubscribeFrames?.();try{if(await c.dispose(),!this._alive)return;this.extensionStatuses.clear(),this.extensionWidgets.clear(),this.clearPendingUiRequests(),this.promptRunning=!1,this.bashRunning=!1,this.streaming=!1,this.compacting=!1;let d=new h.X({cwd:this.cwd,extraArgs:M(b?a:""),onExit:({stderrTail:a})=>{this.proc===d&&this.handleProcessExit(a)}});this.proc=d,this.unsubscribeFrames=d.onFrame(a=>this.handleFrame(a));try{let a=await d.waitReady(12e4);await d.negotiateProtocol(a),await d.sendCommand({type:"set_subagent_subscription",level:"events"}).catch(()=>{});let b=await d.sendCommand({type:"get_state"});this.applyIdentity(b)}catch(a){throw this.unsubscribeFrames?.(),this.unsubscribeFrames=null,d.dispose(),this.destroy(),a}}finally{this.restarting=!1}Z(),this.scheduleQueueDispatch()}async send(a){if(this.restarting)throw new F(E,"session_restarting");if(!this.isAlive())throw Error("Session is no longer running");this.resetIdleTimer();let b=a.type;if("prompt"===b||"steer"===b||"follow_up"===b){let b=(0,f.kc)(a.images);if(b)throw Error(b)}let c=I[b];if(c)throw new h.x(b,c,"unsupported");if("string"==typeof b&&w.has(b))return this.handleQueueCommand(a);switch(b){case"prompt":{if(this.bashRunning)throw Error("Cannot send a prompt while a shell command is running");let b=a.streamingBehavior;b||(this.abortHoldsDispatch=!1,this.promptRunning=!0,Z());try{let c=await this.forwardNativeHandoff({type:"prompt",message:a.message,...N(a.images)?{images:N(a.images)}:{},...b?{streamingBehavior:b}:{}},"followUp"===b);c?.agentInvoked===!1&&(b||(this.promptRunning=!1,this.emit({type:"prompt_result",agentInvoked:!1}),Z()),this.scheduleQueueDispatch())}catch(a){throw this.promptRunning=!1,Z(),a}return null}case"steer":case"follow_up":return await this.forwardNativeHandoff({type:b,message:a.message,...N(a.images)?{images:N(a.images)}:{}},"follow_up"===b),null;case"abort":return this.abortHoldsDispatch=!0,await this.withFinalRunningNotification(async()=>{await this.proc.sendCommand({type:"abort"}),this.promptRunning=!1}),null;case"get_state":{let a=await this.proc.sendCommand({type:"get_state"});return this.buildWebState(a)}case"set_model":{let{provider:b,modelId:c}=a,d=await this.proc.sendCommand({type:"set_model",provider:b,modelId:c});return(0,g.kn)(),(0,j.mD)(),{id:d.id,provider:d.provider}}case"set_fast_mode":{let b=!0===a.enabled,c=await this.proc.sendCommand({type:"set_fast_mode",enabled:b});return this.fastModeEnabled=c?.enabled??b,{enabled:this.fastModeEnabled,active:c?.active??!1}}case"fork":if(this.bashRunning)throw Error("Cannot fork while a shell command is running");if(this.queueEpoch+=1,this.messageQueue.failSending(v),this.emitQueueSnapshot(),(await this.proc.sendCommand({type:"branch",entryId:a.entryId})).cancelled)return{cancelled:!0};return{cancelled:!1,newSessionId:await this.refreshIdentityAfterSessionChange()};case"new_session":case"switch_session":{this.queueEpoch+=1,this.messageQueue.failSending(v),this.emitQueueSnapshot();let b=await this.proc.sendCommand(a);if(!b.cancelled)return{cancelled:!1,newSessionId:await this.refreshIdentityAfterSessionChange()};return b}case"compact":try{return await this.withFinalRunningNotification(async()=>{this.compacting=!0,Z();try{let b=await this.proc.sendCommand({type:"compact",...a.customInstructions?{customInstructions:a.customInstructions}:{}});return Q(b),b}finally{this.compacting=!1}})}finally{(0,j.mD)(),this.scheduleQueueDispatch()}case"abort_compaction":return this.abortHoldsDispatch=!0,await this.withFinalRunningNotification(()=>this.proc.sendCommand({type:"abort"})),null;case"set_session_name":{let b=a.name?.trim();if(!b)throw Error("Session name cannot be empty");return await this.proc.sendCommand({type:"set_session_name",name:b}),this._sessionName=b,(0,j.mD)(),null}case"get_session_stats":return{...await this.proc.sendCommand({type:"get_session_stats"}),sessionName:this._sessionName};case"get_last_assistant_text":return{text:(await this.proc.sendCommand({type:"get_last_assistant_text"})).text??""};case"get_commands":return await this.proc.sendCommand({type:"get_available_commands"});case"reload":return await this.restart(),{success:!0};case"extension_ui_response":{let b,c=a.id,d="string"==typeof c?this.pendingUiRequests.get(c):void 0;if(!d||"string"!=typeof c)throw new F("This dialog is no longer pending in this session","dialog_not_pending");if("number"==typeof d.expiresAt&&d.expiresAt<=Date.now())throw this.forgetPendingUiRequest(c),this.emit({type:"extension_ui_request",method:"cancel",id:`expired:${c}`,targetId:c}),new F("This dialog has expired","dialog_not_pending");if(!0===a.cancelled)b={cancelled:!0,...!0===a.timedOut?{timedOut:!0}:{}};else if("confirm"===d.method||"open_url"===d.method){if("boolean"!=typeof a.confirmed)throw new F("A boolean confirmation is required","invalid_dialog_response");b={confirmed:a.confirmed}}else{if("string"!=typeof a.value||a.value.length>3145728)throw new F("A dialog value of at most 3Mi characters is required","invalid_dialog_response");if("select"===d.method&&(!Array.isArray(d.options)||!d.options.includes(a.value)))throw new F("Select one of the offered options","invalid_dialog_response");b={value:a.value}}return this.proc.sendFrame({type:"extension_ui_response",id:c,...b}),this.forgetPendingUiRequest(c),this.emit({type:"extension_ui_request",method:"cancel",id:`answered:${c}`,targetId:c}),null}case"bash":if(!0===a.excludeFromContext)throw new F("omp cannot run a shell command with its output excluded from the model context (`!!`): the RPC bash command has no exclusion option, so the output would silently enter the context anyway. Run it with a single `!` to share the output with the model, or use a terminal outside ompgui.","bash_exclude_unsupported");if(this.isRunning())throw Error("Cannot run a shell command while the session is busy");this.bashRunning=!0,Z();try{return await this.proc.sendCommand({type:"bash",command:a.command})}finally{this.bashRunning=!1,(0,j.mD)(),Z(),this.scheduleQueueDispatch()}case"set_host_tools":{let b=(Array.isArray(a.tools)?a.tools:[]).filter(a=>"string"==typeof a.name&&a.name);return this.hostToolNames=new Set(b.map(a=>a.name)),await this.proc.sendCommand({type:"set_host_tools",tools:b}),null}case"host_tool_result":return"string"==typeof a.id&&this.pendingHostTools.delete(a.id),await this.proc.sendCommand(a),null;case"set_host_uri_schemes":{let b=Array.isArray(a.schemes)?a.schemes:[];for(let a of(this.hostUriSchemes=new Map,b))"string"==typeof a.scheme&&a.scheme&&this.hostUriSchemes.set(a.scheme,{writable:!0===a.writable});return await this.proc.sendCommand({type:"set_host_uri_schemes",schemes:b}),null}case"host_uri_result":return"string"==typeof a.id&&this.pendingHostUris.delete(a.id),await this.proc.sendCommand(a),null;default:if(H.has(b)){let c=await this.proc.sendCommand(a);return"set_thinking_level"===b&&(0,j.mD)(),c??null}throw Error(`Unsupported command: ${b}`)}}handleQueueCommand(a){try{let b=a.type;switch(b){case m:if(!y(a.lane))throw new x("lane must be steer or followUp",u);if("string"!=typeof a.message)throw new x("message is required",u);return this.messageQueue.enqueue({lane:a.lane,text:a.message,images:a.images}),this.abortHoldsDispatch=!1,this.emitQueueSnapshot(),this.finishQueueCommand();case p:if("string"!=typeof a.id)throw new x("id is required",u);return this.messageQueue.promote(a.id,this.requireExpectedRevision(a)),this.abortHoldsDispatch=!1,this.emitQueueSnapshot(),this.finishQueueCommand();case n:{if("string"!=typeof a.id)throw new x("id is required",u);let b=a.__relayRecallMaxBytes;if(void 0!==b&&"number"!=typeof b)throw new x("Invalid recall response capacity",u);let{item:c}=this.messageQueue.recall(a.id,this.requireExpectedRevision(a),b);this.emitQueueSnapshot();let d=A(this.queueSnapshotForClient(),c);return this.scheduleQueueDispatch(),Promise.resolve(d)}case o:if("string"!=typeof a.id)throw new x("id is required",u);return this.messageQueue.delete(a.id,this.requireExpectedRevision(a)),this.emitQueueSnapshot(),this.finishQueueCommand();case q:return Promise.resolve(A(this.queueSnapshotForClient()));default:throw Error(`Unsupported command: ${b}`)}}catch(a){if(a instanceof x)throw new F(a.message,a.code);throw a}}requireExpectedRevision(a){if("number"!=typeof a.expectedRevision)throw new x("Queue revision is stale; reload the queue and retry",r);return a.expectedRevision}async finishQueueCommand(){return await this.drainQueueDispatch(),A(this.queueSnapshotForClient())}queueSnapshotForClient(){return{...this.messageQueue.getSnapshot(),nativeQueuedCount:this.nativeQueuedCount}}emitQueueSnapshot(){this.emit(z(this.queueSnapshotForClient()))}beginNativeQueueReconcile(){this.nativeQueueStale=!0,this.nativeReconcileGeneration+=1;let a=this.nativeReconcileGeneration,b=this.queueEpoch,c=this.proc;this.refreshNativeQueuedCount(a,b,c)}async refreshNativeQueuedCount(a,b,c){try{let d=await c.sendCommand({type:"get_state"});if(!this.nativeReconcileStillValid(a,b,c))return;this.nativeQueuedCount=d.queuedMessageCount??0,this.nativeQueueStale=!1}catch{if(!this.nativeReconcileStillValid(a,b,c))return;this.nativeQueuedCount=0,this.nativeQueueStale=!1}this.scheduleQueueDispatch()}nativeReconcileStillValid(a,b,c){return this._alive&&this.queueEpoch===b&&this.proc===c&&this.nativeReconcileGeneration===a}discardQueue(a){this.queueEpoch+=1;let b=this.messageQueue.getSnapshot().items.length>0;this.messageQueue.reset(),this.emitQueueSnapshot(),b&&this.emit({type:"notice",level:"warning",message:a})}scheduleQueueDispatch(){this.drainQueueDispatch()}async drainQueueDispatch(){if(this.queueDispatching){this.queueDispatchAgain=!0;return}this.queueDispatching=!0;try{do this.queueDispatchAgain=!1,await this.dispatchNextQueueItem();while(this.queueDispatchAgain)}catch{}finally{this.queueDispatching=!1,this.queueDispatchAgain&&this.scheduleQueueDispatch()}}canDispatchSteer(){return this.isAlive()&&!this.restarting&&this.streaming&&!this.compacting&&!this.bashRunning&&0===this.activeToolIds.size&&0===this.pendingHostTools.size&&0===this.nativeHandoffPending}canDispatchFollowUp(){return this.isAlive()&&!this.restarting&&!this.abortHoldsDispatch&&!this.promptRunning&&!this.streaming&&!this.compacting&&!this.bashRunning&&0===this.activeToolIds.size&&0===this.pendingHostTools.size&&0===this.nativeFollowUpDepth&&0===this.nativeHandoffPending&&!this.nativeQueueStale&&0===this.nativeQueuedCount}canDispatchIdlePrompt(){return this.canDispatchFollowUp()}async dispatchNextQueueItem(){for(;this.isAlive()&&!this.restarting;){if(this.messageQueue.hasSending())return;let a=this.messageQueue.selectDispatchCandidate("steer");if(a){if(this.canDispatchSteer()){await this.forwardQueueItem(a,"steer");continue}if(this.canDispatchIdlePrompt()){await this.forwardQueueItem(a);continue}return}let b=this.messageQueue.selectDispatchCandidate("followUp");if(b&&this.canDispatchFollowUp()){await this.forwardQueueItem(b);continue}return}}async forwardQueueItem(a,b){let c=this.queueEpoch,d=this.proc,e=this._sessionId,f=this.messageQueue.getImages(a.id);this.messageQueue.markSending(a.id),this.emitQueueSnapshot(),b||(this.promptRunning=!0,Z());try{let g=await d.sendCommand({type:"prompt",message:a.text,...f?{images:f}:{},...b?{streamingBehavior:b}:{}},3e4);if(!this.queueForwardStillValid(c,d,e,a.id))return;this.messageQueue.remove(a.id),this.emitQueueSnapshot(),g?.agentInvoked!==!1||b||(this.promptRunning=!1,this.emit({type:"prompt_result",agentInvoked:!1}),Z())}catch(g){if(b||(this.promptRunning=!1),!this.queueForwardStillValid(c,d,e,a.id))return;let f=g instanceof Error&&/timed out/i.test(g.message)?v:`${v} ${g instanceof Error?g.message:String(g)}`;this.messageQueue.markFailed(a.id,f),this.emitQueueSnapshot(),this.emit({type:"notice",level:"warning",message:f}),Z()}}queueForwardStillValid(a,b,c,d){return!!this._alive&&this.queueEpoch===a&&this.proc===b&&(!c||this._sessionId===c)&&this.messageQueue.getSnapshot().items.some(a=>a.id===d&&"sending"===a.status)}async forwardNativeHandoff(a,b){this.nativeHandoffPending+=1,b&&(this.nativeFollowUpDepth+=1);try{var c;let d=await this.proc.sendCommand(a);return b&&(c=d)&&"object"==typeof c&&!1===c.agentInvoked&&(this.nativeFollowUpDepth=Math.max(0,this.nativeFollowUpDepth-1)),d}catch(a){throw b&&(this.nativeFollowUpDepth=Math.max(0,this.nativeFollowUpDepth-1)),a}finally{this.nativeHandoffPending=Math.max(0,this.nativeHandoffPending-1),this.scheduleQueueDispatch()}}destroy(){this.destroyAndWait()}async destroyAndWait(){if(this.destroyPromise)return this.destroyPromise;if(!this._alive)return;this._alive=!1,this.queueEpoch+=1,this.abortHoldsDispatch=!0,this.discardQueue("Queued messages were discarded because the session shut down."),this.idleTimer&&clearTimeout(this.idleTimer),this.sessionFileSignalTimer&&(clearTimeout(this.sessionFileSignalTimer),this.sessionFileSignalTimer=null),this.unsubscribeFrames?.(),this.clearPendingUiRequests(),this.mcpListWaiter&&(clearTimeout(this.mcpListWaiter.timer),this.mcpListWaiter.reject(Error("Session was closed while loading MCP servers")),this.mcpListWaiter=null);let a=this.proc.dispose().catch(()=>{}).then(()=>{for(let[a,b]of S())b===this&&S().delete(a)});for(let b of(this.destroyPromise=a,this.pendingHostTools.clear(),this.hostToolNames.clear(),this.pendingHostUris.clear(),this.hostUriSchemes.clear(),this.destroyListeners.splice(0)))try{b()}catch{}Z(),await a}}function S(){if(!globalThis.__ompSessions){globalThis.__ompSessions=new Map;let a=()=>globalThis.__ompSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__ompSessions}function T(a){return S().get(a)}function U(){let a=new Set;for(let[b,c]of S())c.isRunning()&&a.add(c.sessionId||b);return[...a]}async function V(){let a=[...new Set(S().values())];return await Promise.all(a.map(a=>a.destroyAndWait())),a.length}function W(){return globalThis.__ompRunningListeners||(globalThis.__ompRunningListeners=new Set),globalThis.__ompRunningListeners}function X(a){let b=W();return b.add(a),()=>{b.delete(a)}}let Y="";function Z({refreshSessionList:a=!1}={}){let b=U(),c=JSON.stringify([...b].sort());if(c===Y&&!a)return;Y=c;let d={ids:b,refreshSessionList:a};for(let a of W())try{a(d)}catch{}}async function $(a,b,c,d,e=!1,f){let g=S(),i=(globalThis.__ompStartLocks||(globalThis.__ompStartLocks=new Map),globalThis.__ompStartLocks),j=g.get(a);for(;j&&!j.isAlive()&&j.destroyPromise;)await j.destroyPromise,j=g.get(a);if(j?.isAlive())return{session:j,realSessionId:a};let k=i.get(a);if(k)return k;let l=(async()=>{let a={},i=new R(new h.X({cwd:c,extraArgs:M(b,d,e),onExit:({stderrTail:b})=>a.wrapper?.handleProcessExit(b)}),c,f);a.wrapper=i,i.start();try{await i.waitUntilReady()}catch(a){throw await i.destroyAndWait(),a}let j=i.sessionId;return i.onIdentityChange((a,b)=>{g.get(a)===i&&g.delete(a),g.set(b,i)}),g.set(j,i),{session:i,realSessionId:j}})().finally(()=>i.delete(a));return i.set(a,l),l}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1941],{12651:(e,t,n)=>{n.d(t,{A:()=>i});let i=(0,n(99537).A)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]])},34140:(e,t,n)=>{n.d(t,{NN:()=>s,RJ:()=>o});let i="ompgui-sound-enabled",a="omp-sound-enabled";function s(){try{let e=function(){let e=window.localStorage,t=e.getItem(i);if(null!==t)return t;let n=e.getItem(a);if(null===n)return null;if("true"===n||"false"===n)try{return e.setItem(i,n),e.removeItem(a),n}catch{return null}try{e.removeItem(a)}catch{}return null}();return null===e||"true"===e}catch{return!0}}function o(e){try{window.localStorage.setItem(i,String(e))}catch{}}},35893:(e,t,n)=>{n.d(t,{t_:()=>o,vR:()=>r,vz:()=>s});let i="omp-web:submit-during-run",a="ompgui:submit-during-run-change";function s(){try{let e=window.localStorage.getItem(i);if("steer"===e||"queue"===e)return e}catch{}return"steer"}function o(e){try{window.localStorage.setItem(i,e),window.dispatchEvent(new Event(a))}catch{}}function r(e){let t=t=>{t.key===i&&e()};return window.addEventListener(a,e),window.addEventListener("storage",t),()=>{window.removeEventListener(a,e),window.removeEventListener("storage",t)}}},41941:(e,t,n)=>{n.r(t),n.d(t,{SettingsConfig:()=>ei});var i=n(95155),a=n(12115),s=n(35893),o=n(37206),r=n(65377),l=n(70299),d=n(47603),c=n(78890),p=n(86272),g=n(82749),u=n(99314),f=n(92298),b=n(99537);let x=(0,b.A)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);var h=n(31590),m=n(30808),v=n(34906);let y=(0,b.A)("smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]);var C=n(66763),k=n(50981),w=n(12651);let j=(0,b.A)("key-round",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]);var S=n(90710);let A=(0,b.A)("cable",[["path",{d:"M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z",key:"trhst0"}],["path",{d:"M17 21v-2",key:"ds4u3f"}],["path",{d:"M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10",key:"1mo9zo"}],["path",{d:"M21 21v-2",key:"eo0ou"}],["path",{d:"M3 5V3",key:"1k5hjh"}],["path",{d:"M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z",key:"1dd30t"}],["path",{d:"M7 5V3",key:"1t1388"}]]);var R=n(4315);let M=[{id:"relay",label:"Connect Phone",description:"Pair ompgui Remote over Relay with a QR or link",Icon:y},{id:"general",label:"Interface & Behavior",description:"UI preferences, completion sound, submission mode",Icon:C.A},{id:"safety",label:"Safety & Approvals",description:"Tool safety rules, YOLO mode, terminal permissions",Icon:k.A},{id:"models",label:"AI Model Defaults",description:"Reasoning budget, verbosity, personality, scratchpad",Icon:w.A},{id:"providers",label:"API Keys & Providers",description:"Connected OAuth accounts, API keys, and model registry",Icon:j},{id:"intelligence",label:"Agent & Intelligence",description:"Advisor, memory, autolearn, compaction and retry",Icon:p.A},{id:"agents",label:"Agents & Subagents",description:"Configured subagents, model routing, prewalk, and advisor",Icon:S.A},{id:"extensions",label:"Extensions & Tools",description:"Optional tools, MCP servers, managed skills, and OMP plugins",Icon:A},{id:"system",label:"System & Updates",description:"App updates, runtime version, and active session restart",Icon:g.A}],D=[{id:"tools",label:"Optional Tools",description:"Toggle optional built-in tool capabilities"},{id:"mcp",label:"MCP Servers",description:"Configure global and project MCP servers"},{id:"skills",label:"Skills",description:"Manage reusable workspace skills"},{id:"plugins",label:"Plugins",description:"Manage OMP plugins for this workspace"}],T=e=>"tools"===e||"mcp"===e||"skills"===e||"plugins"===e||"extensions"===e?"extensions":e;function z({active:e,onSelect:t,layout:n="vertical"}){let{t:a}=(0,R.s9)(),s=T(e),o=(e,n)=>{let i=M.findIndex(e=>e.id===n);if(i<0||0===M.length)return;let a=null;("ArrowRight"===e.key||"ArrowDown"===e.key)&&(a=(i+1)%M.length),("ArrowLeft"===e.key||"ArrowUp"===e.key)&&(a=(i-1+M.length)%M.length),"Home"===e.key&&(a=0),"End"===e.key&&(a=M.length-1),null!==a&&(e.preventDefault(),t(M[a].id))};return"vertical"===n?(0,i.jsx)("nav",{"aria-label":"Settings sections",role:"tablist","aria-orientation":"vertical",style:{display:"flex",flexDirection:"column",gap:4,padding:"12px 8px",width:230,flexShrink:0,borderRight:"1px solid var(--border)",background:"var(--bg-panel)",overflowY:"auto"},children:M.map(({id:e,label:n,description:r,Icon:l})=>{let d=e===s,c=a(`settingsTabs.${e}`)||n,p=a(`settingsTabs.${e}Desc`)||r;return(0,i.jsxs)("button",{type:"button",role:"tab",id:`settings-tab-${e}`,"aria-selected":d,"aria-controls":`settings-panel-${e}`,tabIndex:d?0:-1,onClick:()=>t(e),onKeyDown:t=>o(t,e),style:{display:"flex",alignItems:"flex-start",gap:10,minHeight:"var(--control-touch, 44px)",padding:"8px 10px",border:d?"1px solid var(--accent)":"1px solid transparent",borderRadius:"var(--radius-control)",background:d?"var(--bg-selected)":"transparent",color:d?"var(--text)":"var(--text-muted)",cursor:"pointer",textAlign:"left",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm)",width:"100%",boxSizing:"border-box",touchAction:"manipulation"},children:[(0,i.jsx)(l,{size:16,"aria-hidden":"true",style:{marginTop:2,flexShrink:0,color:d?"var(--accent)":"currentColor"}}),(0,i.jsxs)("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:2},children:[(0,i.jsx)("div",{style:{fontSize:"var(--text-base)",fontWeight:d?600:500,lineHeight:1.3,color:d?"var(--text)":"inherit"},children:c}),(0,i.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",lineHeight:1.3,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:p})]})]},e)})}):(0,i.jsx)("nav",{"aria-label":"Settings sections",role:"tablist",style:{display:"flex",gap:6,padding:"8px 12px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",flexShrink:0,overflowX:"auto",WebkitOverflowScrolling:"touch"},children:M.map(({id:e,label:n,description:r,Icon:l})=>{let d=e===s,c=a(`settingsTabs.${e}`)||n,p=a(`settingsTabs.${e}Desc`)||r;return(0,i.jsxs)("button",{type:"button",role:"tab",id:`settings-tab-${e}`,"aria-selected":d,"aria-controls":`settings-panel-${e}`,"aria-label":`${c}: ${p}`,title:p,tabIndex:d?0:-1,onClick:()=>t(e),onKeyDown:t=>o(t,e),style:{display:"inline-flex",alignItems:"flex-start",gap:7,minHeight:"var(--control-touch, 44px)",padding:"6px 10px",border:d?"1px solid var(--accent)":"1px solid var(--border)",borderRadius:"var(--radius-control)",background:d?"var(--bg-selected)":"var(--bg)",color:d?"var(--text)":"var(--text-muted)",fontWeight:d?600:500,cursor:"pointer",fontSize:"var(--text-sm)",whiteSpace:"nowrap",textAlign:"left",flexShrink:0,boxSizing:"border-box",touchAction:"manipulation",transition:"all var(--dur-fast) var(--ease-out-warm)"},children:[(0,i.jsx)(l,{size:14,"aria-hidden":"true",style:{marginTop:2,flexShrink:0,color:d?"var(--accent)":"currentColor"}}),(0,i.jsxs)("span",{style:{display:"flex",flexDirection:"column",gap:1,minWidth:0},children:[(0,i.jsx)("span",{style:{fontWeight:d?600:500,fontSize:"var(--text-base)",color:d?"var(--text)":"inherit"},children:c}),(0,i.jsx)("span",{style:{fontSize:"var(--text-sm)",color:"var(--text-dim)",lineHeight:1.25,maxWidth:180,overflow:"hidden",textOverflow:"ellipsis"},children:p})]})]},e)})})}function I({active:e,onSelect:t}){let{t:n}=(0,R.s9)(),a=Math.max(0,D.findIndex(t=>t.id===e)),s=e=>{let n=null;("ArrowRight"===e.key||"ArrowDown"===e.key)&&(n=(a+1)%D.length),("ArrowLeft"===e.key||"ArrowUp"===e.key)&&(n=(a-1+D.length)%D.length),"Home"===e.key&&(n=0),"End"===e.key&&(n=D.length-1),null!==n&&(e.preventDefault(),t(D[n].id))};return(0,i.jsx)("div",{role:"tablist","aria-label":n("settingsConfig.extensionsTabsAria"),"aria-orientation":"horizontal",style:{display:"flex",gap:4,padding:4,border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-panel)",alignSelf:"flex-start",maxWidth:"100%",overflowX:"auto"},children:D.map(a=>{let o=a.id===e,r=n(`settingsConfig.extensionsTab.${a.id}`)||a.label,l=n(`settingsConfig.extensionsTab.${a.id}Desc`)||a.description;return(0,i.jsx)("button",{type:"button",role:"tab",id:`settings-extension-tab-${a.id}`,"aria-selected":o,"aria-controls":`settings-extension-panel-${a.id}`,"aria-label":`${r}: ${l}`,tabIndex:o?0:-1,onClick:()=>t(a.id),onKeyDown:s,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",minHeight:"var(--control-touch, 44px)",padding:"6px 12px",border:o?"1px solid var(--accent)":"1px solid transparent",borderRadius:"calc(var(--radius-control) - var(--space-1))",background:o?"var(--bg-selected)":"transparent",color:o?"var(--text)":"var(--text-muted)",fontSize:"var(--text-sm)",fontWeight:o?600:500,cursor:"pointer",whiteSpace:"nowrap",boxSizing:"border-box",touchAction:"manipulation",transition:"all var(--dur-fast) var(--ease-out-warm)"},children:r},a.id)})})}var P=n(7834);function N(e){if("object"!=typeof e||null===e||!("supported"in e)||"boolean"!=typeof e.supported||!("installed"in e)||"boolean"!=typeof e.installed||!("running"in e)||"boolean"!=typeof e.running||!("autoStart"in e)||"boolean"!=typeof e.autoStart||!("label"in e)||"string"!=typeof e.label||!("pid"in e)||null!==e.pid&&("number"!=typeof e.pid||!Number.isSafeInteger(e.pid)||e.pid<=0)||!("logPath"in e)||null!==e.logPath&&"string"!=typeof e.logPath)throw Error("Invalid daemon status response");return{supported:e.supported,installed:e.installed,running:e.running,autoStart:e.autoStart,label:e.label,pid:e.pid,logPath:e.logPath,..."error"in e&&"string"==typeof e.error?{error:e.error}:{},..."accepted"in e&&!0===e.accepted?{accepted:!0}:{},..."cliAvailable"in e&&"boolean"==typeof e.cliAvailable?{cliAvailable:e.cliAvailable}:{}}}var O=n(96793),W=n(34140),F=n(90071);function L(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function E(e){return Object.assign({},e)}function U(e){return e.mounted&&e.requestGeneration===e.latestGeneration}let $=()=>(0,i.jsx)("div",{role:"status",style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--text-muted)",fontSize:"var(--text-sm)"},children:"Loading settings…"}),H=(0,o.default)(()=>n.e(7488).then(n.bind(n,47488)).then(e=>e.BuiltInToolsConfig),{loadableGenerated:{webpack:()=>[47488]},loading:$}),q=(0,o.default)(()=>Promise.all([n.e(1441),n.e(3274)]).then(n.bind(n,33274)).then(e=>e.ModelsConfig),{loadableGenerated:{webpack:()=>[33274]},loading:$}),B=(0,o.default)(()=>n.e(9981).then(n.bind(n,99981)).then(e=>e.SkillsConfig),{loadableGenerated:{webpack:()=>[99981]},loading:$}),V=(0,o.default)(()=>n.e(2201).then(n.bind(n,42201)).then(e=>e.PluginsConfig),{loadableGenerated:{webpack:()=>[42201]},loading:$}),K=(0,o.default)(()=>n.e(4473).then(n.bind(n,24473)).then(e=>e.McpConfig),{loadableGenerated:{webpack:()=>[24473]},loading:$}),G=(0,o.default)(()=>n.e(9668).then(n.bind(n,79668)).then(e=>e.AgentsConfig),{loadableGenerated:{webpack:()=>[79668]},ssr:!1}),_=(0,o.default)(()=>Promise.all([n.e(587),n.e(3944)]).then(n.bind(n,63944)).then(e=>e.RelayPairPanel),{loadableGenerated:{webpack:()=>[63944]},loading:$}),Y=["default","smol","slow","vision","plan","designer","commit","tiny","task","advisor"],J=Array.from({length:21},(e,t)=>t),Q={fontSize:"var(--text-xs)",padding:"1px 6px",borderRadius:"calc(var(--radius-control) / 2)",background:"var(--bg-subtle)",color:"var(--text-muted)",fontWeight:500};function X(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}let Z=(0,a.createContext)(null),ee=[{tab:"relay",section:"Connect Phone",label:"Pair phone via Relay",description:"Create a QR or link so ompgui Remote can connect over Tailscale Funnel.",scope:"UI",labelKey:"relayPair.title",descriptionKey:"relayPair.description",sectionKey:"settingsTabs.relay"},{tab:"general",section:"Appearance",label:"Color mode",description:"Choose between light, dark, or system color mode.",scope:"UI"},{tab:"general",section:"Appearance",label:"Theme palette",description:"Select warm paper/ember or canonical OMP birch/graphite palette.",scope:"UI"},{tab:"general",section:"Interface & Behavior",label:"Keep tool calls collapsed",description:"Show only compact headers while tools execute.",scope:"UI"},{tab:"general",section:"Interface & Behavior",label:"Completion sound",description:"Play a tone when the agent completes a run.",scope:"UI"},{tab:"general",section:"Interface & Behavior",label:"Message during active run",description:"What composer does on submit while agent runs. Steer interrupts; Queue follow-up delivers after finish.",scope:"UI"},{tab:"safety",section:"Tool Safety & Approvals",label:"Approval Mode",description:"Choose when OMP asks before tool calls.",scope:"New sessions"},{tab:"safety",section:"Tool Safety & Approvals",label:"Bash Override",description:"Override default approval policy specifically for terminal commands.",scope:"New sessions"},{tab:"safety",section:"Tool Safety & Approvals",label:"Extension Tool Requests",description:"Automatically approve extension tool authorization requests.",scope:"New sessions"},{tab:"models",section:"AI Model Defaults",label:"Reasoning",description:"Default effort level for thinking-capable models.",scope:"New sessions"},{tab:"models",section:"AI Model Defaults",label:"Verbosity",description:"Response detail level for supporting providers.",scope:"New sessions"},{tab:"models",section:"AI Model Defaults",label:"Personality",description:"Style included in OMP's system prompt.",scope:"New sessions"},{tab:"models",section:"AI Model Defaults",label:"Thinking Blocks",description:"Hide model reasoning from output view.",scope:"New sessions"},{tab:"models",section:"AI Model Defaults",label:"External Thinking",description:"Private scratchpad reasoning via think tool.",scope:"New sessions"},{tab:"intelligence",section:"Advisor Review",label:"Enable Advisor",description:"Enable Advisor for new sessions with the advisor role.",scope:"New sessions"},{tab:"intelligence",section:"Advisor Review",label:"Advisor Backlog",description:"Wait briefly when advisor falls behind.",scope:"New sessions"},{tab:"intelligence",section:"Advisor Review",label:"Review Subagents",description:"Apply Advisor passive review to subagent tasks.",scope:"New sessions"},{tab:"intelligence",section:"Context Compaction",label:"Automatic Compaction",description:"Compact context before model context limit is hit.",scope:"New sessions"},{tab:"intelligence",section:"Context Compaction",label:"Continue After Compaction",description:"Resume task execution after compaction completes.",scope:"New sessions"},{tab:"intelligence",section:"Context Compaction",label:"Maintenance Strategy",description:"Select algorithm used to reduce context pressure.",scope:"New sessions"},{tab:"intelligence",section:"Context Compaction",label:"Compact Mid-Turn",description:"Check context limits between tool execution steps.",scope:"New sessions"},{tab:"intelligence",section:"Memory & Auto-Learn",label:"Memory Backend",description:"Where durable knowledge is stored across sessions.",scope:"New sessions"},{tab:"intelligence",section:"Memory & Auto-Learn",label:"Enable Auto-Learn",description:"Capture reusable lessons after completed runs.",scope:"New sessions"},{tab:"intelligence",section:"Memory & Auto-Learn",label:"Private Capture Turn",description:"Run private lesson-capture turn at completion.",scope:"New sessions"},{tab:"intelligence",section:"Memory & Auto-Learn",label:"Memory Scope",description:"Scoping for Mnemopi knowledge storage.",scope:"New sessions"},{tab:"intelligence",section:"Memory & Auto-Learn",label:"Recall on Session Start",description:"Load relevant memories into first turn.",scope:"New sessions"},{tab:"intelligence",section:"Memory & Auto-Learn",label:"Retain Completed Turns",description:"Store completed conversation turns in memory.",scope:"New sessions"},{tab:"intelligence",section:"Automatic Retry",label:"Automatic Retry",description:"Retry failed turns automatically.",scope:"New sessions"},{tab:"intelligence",section:"Automatic Retry",label:"Max Attempts",description:"Retry limit before giving up.",scope:"New sessions"},{tab:"intelligence",section:"Automatic Retry",label:"Model Fallback",description:"Fall back to alternative model when retries exhaust.",scope:"New sessions"},{tab:"intelligence",section:"Automatic Retry",label:"Return to primary",description:"Choose when OMP should leave a fallback model after its cooldown.",scope:"New sessions"},{tab:"intelligence",section:"Automatic Retry",label:"Fallback chain",description:"Choose ordered fallback models for each native model role.",scope:"New sessions"},{tab:"mcp",section:"Extensions & Tools",label:"Load Project MCP Servers",description:"Allow project-root MCP configuration to be discovered.",scope:"New sessions"},{tab:"mcp",section:"Extensions & Tools",label:"Render MCP Markdown",description:"Render non-JSON MCP results as Markdown in transcript.",scope:"New sessions"},{tab:"mcp",section:"Extensions & Tools",label:"MCP Resource Updates",description:"Inject server resource updates into conversation.",scope:"New sessions"},{tab:"system",section:"System & Updates",label:"Background service",description:"Manage the macOS background service and automatic start at login.",labelKey:"daemon.title",descriptionKey:"daemon.description",sectionKey:"settingsConfig.systemUpdates"},{tab:"system",section:"System & Updates",label:"Active session system prompt",description:"Inspect the system prompt used by the active session.",labelKey:"settingsConfig.sessionSystemPrompt",descriptionKey:"settingsConfig.sessionSystemPromptDescription",sectionKey:"settingsConfig.systemUpdates"}];function et({results:e,query:t,onSelect:n}){return(0,i.jsxs)("div",{style:{flex:1,minHeight:0,overflowY:"auto",background:"var(--bg)",padding:16,display:"flex",flexDirection:"column",gap:10},children:[(0,i.jsx)("div",{style:{fontSize:"var(--text-base)",color:"var(--text-muted)"},children:0===e.length?`No settings match “${t}”.`:`${e.length} result${1===e.length?"":"s"} for “${t}”.`}),e.map(e=>(0,i.jsxs)("button",{type:"button",onClick:()=>n(e),style:{textAlign:"left",display:"flex",flexDirection:"column",gap:4,padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",color:"var(--text)",cursor:"pointer",transition:"border-color var(--dur-fast) var(--ease-out-warm), background var(--dur-fast) var(--ease-out-warm)"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,i.jsx)("span",{style:{fontSize:"var(--text-base)",fontWeight:600},children:e.label}),"category"===e.kind&&(0,i.jsx)("span",{style:Q,children:"Section"}),e.scope&&(0,i.jsx)("span",{style:Q,children:e.scope})]}),(0,i.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)",lineHeight:1.45},children:e.description}),e.section&&(0,i.jsx)("div",{style:{fontSize:"var(--text-xs)",color:"var(--text-dim)"},children:e.section})]},e.id))]})}function en({label:e,description:t,scope:n,compact:s=!1,hideDescription:o=!1,children:r}){let{t:l}=(0,R.s9)(),d=(0,a.useRef)(null),c=(0,a.useContext)(Z),p=null!==c&&c===X(e);return(0,a.useEffect)(()=>{p&&d.current&&d.current.scrollIntoView({behavior:"smooth",block:"center"})},[p]),(0,i.jsxs)("div",{ref:d,"data-search-id":X(e),style:{minWidth:0,padding:s?"8px 10px":"12px 14px",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",display:"flex",flexDirection:"column",gap:s?4:8,transition:"box-shadow var(--dur-fast) var(--ease-out-warm), border-color var(--dur-fast) var(--ease-out-warm)",...p?{borderColor:"var(--accent)",boxShadow:"0 0 0 2px var(--accent)"}:{}},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:10,flexWrap:"wrap"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,i.jsx)("span",{style:{fontSize:"var(--text-base)",fontWeight:600,color:"var(--text)"},children:e}),n&&(0,i.jsx)("span",{style:Q,children:"New sessions"===n?l("settingsConfig.newSessions"):n})]}),(0,i.jsx)("span",{style:{flexShrink:0},children:r})]}),!o&&(0,i.jsx)("span",{style:{color:"var(--text-muted)",fontSize:"var(--text-sm)",lineHeight:s?1.3:1.45},children:t})]})}function ei({activeTab:e,advisorEnabled:t,onAdvisorChange:n,toolCallsDefaultCollapsed:o,onToolCallsDefaultCollapsedChange:b,cwd:y,sessionId:C,systemPrompt:k,systemPromptLoading:w,onLoadSystemPrompt:j,onModelsSaved:S,onPluginsReloaded:A,onOmpSessionsRestarted:D,onOmpUpdateAvailabilityChange:$,onAppUpdateAvailabilityChange:ea,onSelectTab:es,onClose:eo,runtimeReady:er}){let{t:el}=(0,R.s9)(),ed=(0,h.a)(),[ec,ep]=(0,a.useState)(T(e)),[eg,eu]=(0,a.useState)(()=>"mcp"===e||"skills"===e||"plugins"===e?e:"tools"),[ef,eb]=(0,a.useState)(()=>new Set([T(e)])),[ex,eh]=(0,a.useState)(!1),[em,ev]=(0,a.useState)(null),[ey,eC]=(0,a.useState)(!1),[ek,ew]=(0,a.useState)(0),[ej,eS]=(0,a.useState)(null),[eA,eR]=(0,a.useState)(!1),[eM,eD]=(0,a.useState)(null),[eT,ez]=(0,a.useState)(null),[eI,eP]=(0,a.useState)(null),[eN,eO]=(0,a.useState)(null),[eW,eF]=(0,a.useState)(!1),[eL,eE]=(0,a.useState)(null),[eU,e$]=(0,a.useState)(!1),[eH,eq]=(0,a.useState)(!1),[eB,eV]=(0,a.useState)(null),[eK,eG]=(0,a.useState)(!1),e_=(0,a.useRef)(0),eY=(0,a.useRef)(0),eJ=(0,a.useRef)(!1),eQ=(0,a.useRef)(!1),[eX,eZ]=(0,a.useState)(null),[e0,e1]=(0,a.useState)(!1),[e2,e4]=(0,a.useState)("steer"),[e6,e5]=(0,a.useState)(""),[e8,e9]=(0,a.useState)(null),[e3,e7]=(0,a.useState)([]),[te,tt]=(0,a.useState)("default"),[tn,ti]=(0,a.useState)(""),{preference:ta,setTheme:ts,palette:to,setPalette:tr}=(0,O.DP)(),tl=(0,a.useRef)({}),td=(0,a.useRef)(0),tc=(0,a.useRef)(!0),tp=(0,a.useRef)(Promise.resolve()),tg=(0,a.useRef)(null),tu=(0,a.useCallback)(async()=>{let e=td.current;try{let t=await fetch("/api/omp-settings");if(!t.ok)return;let n=await t.json();if(!U({mounted:tc.current,requestGeneration:e,latestGeneration:td.current}))return;let i=n.settings??{};tl.current=i,eZ(i)}catch{}},[]);(0,a.useEffect)(()=>(tc.current=!0,()=>{tc.current=!1,tg.current&&(clearTimeout(tg.current),tg.current=null)}),[]),(0,a.useEffect)(()=>{tu()},[tu]),(0,a.useEffect)(()=>{e1((0,W.NN)()),e4((0,s.vz)())},[]),(0,a.useEffect)(()=>{let e=!1;return(async()=>{try{let t=await (0,F.aQ)();if(e)return;let n=t.modelList.map(e=>({id:e.id,provider:e.provider,name:e.name}));e7(n)}catch{}})(),()=>{e=!0}},[]);let tf=(0,a.useCallback)(async e=>{let t=function(e,t){let n=E(e);for(let[e,i]of Object.entries(t))if(void 0!==i)if(L(i)){let t=n[e],a=L(t)?E(t):{},s={...a,...i};if("tools"===e&&L(i.approval)){let e=L(a.approval)?a.approval:{};s.approval=0===Object.keys(i.approval).length?{}:{...e,...i.approval}}n[e]=s}else n[e]=i;return n}(tl.current,e);tl.current=t,eZ(t);let n=++td.current,i=!1;return tp.current=tp.current.then(async()=>{if(tc.current)try{let e=await fetch("/api/omp-settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:tl.current})});if(!e.ok)return;let t=await e.json();if(i=!0,!U({mounted:tc.current,requestGeneration:n,latestGeneration:td.current}))return;t.settings&&(tl.current=t.settings,eZ(t.settings)),t.application?.restartRequired&&eV(el("settingsConfig.restartPrompt"))}catch{i=!1}}),await tp.current,i},[el]),tb=(0,a.useCallback)((e,t)=>tf({[e]:t}),[tf]),tx=(0,a.useCallback)(e=>tf({tools:{approval:e}}),[tf]),th=(0,a.useMemo)(()=>eX?.retry??{},[eX?.retry]),tm=(0,a.useMemo)(()=>th.fallbackChains??{},[th.fallbackChains]),tv=(0,a.useMemo)(()=>tm[te]??[],[tm,te]),ty=(0,a.useMemo)(()=>{let e=new Set;for(let t of e3)t.id&&e.add(t.id),t.provider&&t.id&&e.add(`${t.provider}/${t.id}`);return Array.from(e).sort((e,t)=>e.localeCompare(t))},[e3]),tC=(0,a.useCallback)(e=>{let t={...tl.current.retry?.fallbackChains??{}};return 0===e.length?delete t[te]:t[te]=e,tb("retry",{fallbackChains:t})},[te,tb]),tk=(0,a.useCallback)(e=>{if(ex){ev(()=>e),eC(!0);return}e()},[ex]),tw=(0,a.useCallback)(()=>{tk(()=>{eo()})},[eo,tk]),tj=(0,a.useCallback)(e=>{"tools"===e||"mcp"===e||"skills"===e||"plugins"===e?tk(()=>{ep("extensions"),eu(e),eb(e=>new Set([...e,"extensions"])),es(e)}):tk(()=>{let t=T(e);ep(t),eb(e=>new Set([...e,t])),es(t)})},[es,tk]),tS=(0,a.useCallback)(()=>{eh(!1),ew(e=>e+1),eC(!1),ev(null),em&&em()},[em]);(0,a.useEffect)(()=>{let t=T(e);ep(t),("tools"===e||"mcp"===e||"skills"===e||"plugins"===e)&&eu(e),eb(e=>new Set([...e,t]))},[e]);let tA=(0,a.useCallback)(async(e=!1)=>{if(!e&&eJ.current)return;let t=++e_.current;eJ.current=!0,eF(!0),e&&eV(null);try{let e=await fetch("/api/omp-update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"check"})});if(!e.ok)throw Error("Failed to check OMP updates");let n=await e.json();if(t!==e_.current||!tc.current)return;eO(n),$&&"boolean"==typeof n.updateAvailable&&$(n.updateAvailable),n.updateAvailable||eV(el("settingsConfig.upToDate",{version:n.currentVersion??"current"}))}catch{if(t!==e_.current||!tc.current)return;eV(el("settingsConfig.updateCheckFailed"))}finally{t===e_.current&&(eJ.current=!1,tc.current&&eF(!1))}},[$,el]),tR=(0,a.useCallback)(async(e=!1)=>{if(!e&&eQ.current)return;let t=++eY.current;eQ.current=!0,e$(!0),e&&(eV(null),eG(!1));try{let n=await fetch(e?"/api/app-update?force=1":"/api/app-update");if(!n.ok)throw Error("Failed to check ompgui updates");let i=await n.json();if(t!==eY.current||!tc.current)return;if(eE(i),i.lookupFailed){e&&(eG(!0),eV(el("settingsConfig.appUpdateCheckFailed")));return}ea&&"boolean"==typeof i.updateAvailable&&ea(i.updateAvailable),eG(!1),e&&(i.updateAvailable?eV(null):eV(el("settingsConfig.upToDate",{version:i.currentVersion??"current"})))}catch{if(t!==eY.current||!tc.current)return;e&&(eG(!0),eV(el("settingsConfig.appUpdateCheckFailed")))}finally{t===eY.current&&(eQ.current=!1,tc.current&&e$(!1))}},[ea,el]);(0,a.useEffect)(()=>{"system"===ec&&(tA(),tR(!1))},[ec,tA,tR]);let tM=(0,a.useCallback)(async()=>{eR(!0),eD(null);try{let e=await fetch("/api/daemon",{cache:"no-store",signal:AbortSignal.timeout(5e3)});if(!e.ok)throw Error(el("daemon.unavailable"));let t=N(await e.json());tc.current&&eS(t)}catch(e){tc.current&&eD(e instanceof Error?e.message:el("daemon.unavailable"))}finally{tc.current&&eR(!1)}},[el]);(0,a.useEffect)(()=>{"system"===ec&&tM()},[ec,tM]),(0,a.useEffect)(()=>{let e;if(!eT)return;let t=!1,n=async()=>{try{let e=await fetch("/api/daemon",{cache:"no-store",signal:AbortSignal.timeout(4e3)});if(e.ok){let n=N(await e.json());if(t)return;if(eS(n),"restart"===eT.action?n.running&&n.pid!==eT.pid:"uninstall"===eT.action?!n.installed:!n.running){ez(null),eD(n.error??null);return}}}catch{}if(!t){if(Date.now()>=eT.deadline){ez(null),eS(null),eD(el("daemon.readbackFailed"));return}e=window.setTimeout(()=>void n(),2e3)}};return e=window.setTimeout(()=>void n(),2e3),()=>{t=!0,window.clearTimeout(e)}},[eT,el]);let tD=(0,a.useCallback)(async e=>{eR(!0),eD(null),eP(null);let t="restart"===e||"stop"===e||"uninstall"===e,n=!1;try{let t=await fetch("/api/daemon",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e}),signal:AbortSignal.timeout(2e4)});n=!t.ok;let i=await t.json();if(!t.ok)throw Error("object"==typeof i&&null!==i&&"error"in i&&"string"==typeof i.error?i.error:el("daemon.actionFailed"));if("object"==typeof i&&null!==i&&"error"in i&&"string"==typeof i.error&&i.error)throw n=!0,Error(i.error);let a=N(i);if(!tc.current)return;eS(a),a.accepted?ez({action:e,pid:ej?.pid??null,deadline:Date.now()+6e4}):await tM()}catch(i){if(!tc.current)return;eD(i instanceof Error?i.message:el("daemon.actionFailed")),t&&!n&&ez({action:e,pid:ej?.pid??null,deadline:Date.now()+6e4})}finally{tc.current&&eR(!1)}},[ej?.pid,tM,el]),tT=(0,a.useCallback)(async()=>{eq(!0),eV(null);try{if(!(await fetch("/api/omp-update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"restart"})})).ok)throw Error("Failed to restart sessions");eV(el("settingsConfig.sessionsRestarted")),D()}catch{eV(el("settingsConfig.restartFailed"))}finally{eq(!1)}},[D,el]),tz=(0,a.useMemo)(()=>{let e=e6.trim().toLowerCase();if(!e)return[];let t=[];for(let n of M){let i=el(`settingsTabs.${n.id}`)||n.label,a=el(`settingsTabs.${n.id}Desc`)||n.description;(i.toLowerCase().includes(e)||a.toLowerCase().includes(e)||n.id.toLowerCase().includes(e))&&t.push({id:`cat-${n.id}`,kind:"category",tab:n.id,label:i,description:a})}for(let n of ee){let i=(n.labelKey?el(n.labelKey):null)||n.label,a=(n.descriptionKey?el(n.descriptionKey):null)||n.description,s=(n.sectionKey?el(n.sectionKey):null)||n.section;(i.toLowerCase().includes(e)||a.toLowerCase().includes(e)||s.toLowerCase().includes(e))&&t.push({id:`setting-${n.tab}-${X(n.label)}`,kind:"setting",tab:n.tab,label:i,description:a,scope:n.scope,section:s})}return t},[e6,el]),tI=(0,a.useCallback)(e=>{e5(""),tj(e.tab),"setting"===e.kind&&(e9(X(e.label)),tg.current&&clearTimeout(tg.current),tg.current=setTimeout(()=>{tg.current=null,e9(null)},2500))},[tj]);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(m.lG,{open:!0,onOpenChange:e=>{e||tw()},children:(0,i.jsxs)(m.Cf,{ariaLabel:el("settingsConfig.title"),style:{width:860,maxWidth:"96vw",height:ed?"92dvh":"80vh",maxHeight:"92dvh",display:"flex",flexDirection:"column",overflow:"hidden",padding:0,borderRadius:"var(--radius-modal)",boxShadow:"var(--shadow-modal)",background:"var(--bg)"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:ed?"12px 14px":"16px 20px",borderBottom:"1px solid var(--border)",background:"var(--bg-panel)",gap:12},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,minWidth:0},children:[(0,i.jsx)(m.L3,{style:{margin:0,fontSize:"var(--text-lg)",fontWeight:650,whiteSpace:"nowrap"},children:el("settingsConfig.title")}),ex&&(0,i.jsx)("span",{style:{fontSize:"var(--text-xs)",padding:"2px 6px",borderRadius:"calc(var(--radius-control) / 2)",background:"var(--status-warning-bg)",color:"var(--status-warning)",border:"1px solid var(--status-warning-border)"},children:el("settingsConfig.unsavedChanges")})]}),(0,i.jsxs)("div",{style:{position:"relative",flex:1,maxWidth:280,minWidth:120},children:[(0,i.jsx)(r.A,{size:13,"aria-hidden":"true",style:{position:"absolute",left:9,top:"50%",transform:"translateY(-50%)",color:"var(--text-dim)",pointerEvents:"none"}}),(0,i.jsx)("input",{type:"search",value:e6,onChange:e=>e5(e.target.value),placeholder:el("settingsConfig.searchPlaceholder"),"aria-label":el("settingsConfig.searchPlaceholder"),style:{width:"100%",height:28,padding:"0 8px 0 28px",borderRadius:"var(--radius-control)",border:"1px solid var(--border)",background:"var(--bg)",color:"var(--text)",fontSize:"var(--text-sm)",outline:"none",boxSizing:"border-box"}})]})]}),(0,i.jsx)("div",{style:{display:"flex",flex:1,minHeight:0,flexDirection:ed?"column":"row"},children:e6.trim()?(0,i.jsx)(et,{results:tz,query:e6.trim(),onSelect:tI}):(0,i.jsxs)(Z.Provider,{value:e8,children:[(0,i.jsx)(z,{active:ec,onSelect:tj,layout:ed?"horizontal":"vertical"}),(0,i.jsxs)("div",{style:{flex:1,minWidth:0,overflowY:"auto",display:"flex",flexDirection:"column"},children:["relay"===ec&&(0,i.jsx)("div",{role:"tabpanel",id:"settings-panel-relay","aria-labelledby":"settings-tab-relay",style:{padding:ed?"12px 14px":20,display:"flex",flexDirection:"column",gap:16},children:(0,i.jsx)(_,{embedded:!0})}),"general"===ec&&(0,i.jsxs)("div",{role:"tabpanel",id:"settings-panel-general","aria-labelledby":"settings-tab-general",style:{padding:ed?"12px 14px":20,display:"flex",flexDirection:"column",gap:16},children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h3",{style:{fontSize:"var(--text-base)",fontWeight:600,margin:0},children:el("settingsConfig.generalTitle")}),(0,i.jsx)("p",{style:{margin:"4px 0 0",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:el("settingsConfig.generalDescription")})]}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:ed?"1fr":"repeat(2, minmax(0, 1fr))",gap:10},children:[(0,i.jsx)(en,{label:el("settingsConfig.themeMode"),description:el("settingsConfig.themeModeDesc"),scope:"UI",children:(0,i.jsx)("div",{style:{display:"inline-flex",padding:2,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",gap:2},children:["system","light","dark"].map(e=>{let t=ta===e,n="system"===e?l.A:"light"===e?d.A:c.A,a="system"===e?el("settingsConfig.themeModeSystem"):"light"===e?el("settingsConfig.themeModeLight"):el("settingsConfig.themeModeDark");return(0,i.jsxs)("button",{type:"button","aria-label":a,"aria-pressed":t,onClick:()=>ts(e),title:a,className:"ui-focus-ring",style:{display:"inline-flex",alignItems:"center",gap:4,height:24,padding:"0 8px",border:"none",borderRadius:"calc(var(--radius-control) - var(--space-1))",background:t?"var(--bg-selected)":"transparent",color:t?"var(--text)":"var(--text-muted)",fontWeight:t?600:500,fontSize:"var(--text-sm)",cursor:"pointer",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:[(0,i.jsx)(n,{size:12,"aria-hidden":"true"}),(0,i.jsx)("span",{children:a})]},e)})})}),(0,i.jsx)(en,{label:el("settingsConfig.themePalette"),description:el("settingsConfig.themePaletteDesc"),scope:"UI",children:(0,i.jsx)("div",{style:{display:"inline-flex",padding:2,background:"var(--bg)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",gap:2},children:["warm","omp"].map(e=>{let t=to===e,n="warm"===e?el("settingsConfig.paletteWarm"):el("settingsConfig.paletteOmp");return(0,i.jsxs)("button",{type:"button","aria-label":n,"aria-pressed":t,onClick:()=>tr(e),title:n,className:"ui-focus-ring",style:{display:"inline-flex",alignItems:"center",gap:5,height:24,padding:"0 8px",border:"none",borderRadius:"calc(var(--radius-control) - var(--space-1))",background:t?"var(--bg-selected)":"transparent",color:t?"var(--text)":"var(--text-muted)",fontWeight:t?600:500,fontSize:"var(--text-sm)",cursor:"pointer",transition:"background var(--dur-fast) var(--ease-out-warm), color var(--dur-fast) var(--ease-out-warm)"},children:[(0,i.jsxs)("span",{"aria-hidden":"true",style:{display:"inline-flex",alignItems:"center",gap:2.5,padding:"2px 3px",borderRadius:"calc(var(--radius-control) / 2)",background:"var(--bg-subtle)",flexShrink:0},children:[(0,i.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:`var(--palette-${e}-preview-bg)`,border:"1px solid var(--border)",flexShrink:0}}),(0,i.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:`var(--palette-${e}-preview-panel)`,border:"1px solid var(--border)",flexShrink:0}}),(0,i.jsx)("span",{style:{width:6,height:6,borderRadius:"50%",background:`var(--palette-${e}-preview-accent)`,flexShrink:0}})]}),(0,i.jsx)("span",{children:n})]},e)})})})]}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:ed?"1fr":"repeat(2, minmax(0, 1fr))",gap:10},children:[(0,i.jsx)(en,{label:el("settingsConfig.toolCallsCollapsed"),description:el("settingsConfig.toolCallsCollapsedDesc"),scope:"UI",children:(0,i.jsx)(v.dO,{checked:o,onChange:e=>b(e),"aria-label":el("settingsConfig.toolCallsCollapsed")})}),(0,i.jsx)(en,{label:el("settingsConfig.completionSound"),description:el("settingsConfig.completionSoundDesc"),scope:"UI",children:(0,i.jsx)(v.dO,{checked:e0,onChange:e=>{e1(e),(0,W.RJ)(e),window.dispatchEvent(new CustomEvent("omp-sound-pref-change",{detail:e}))},"aria-label":el("settingsConfig.completionSound")})})]}),(0,i.jsx)(en,{label:el("settingsConfig.submitBehavior"),description:el("settingsConfig.submitBehaviorDesc"),scope:"UI",children:(0,i.jsx)(v.l6,{value:e2,onChange:e=>{(0,s.t_)(e),e4(e)},required:!0,options:[{value:"steer",label:el("settingsConfig.steerCurrent")},{value:"queue",label:el("settingsConfig.queueFollowUp")}],"aria-label":el("settingsConfig.submitBehavior")})})]}),"agents"===ec&&(0,i.jsxs)("div",{role:"tabpanel",id:"settings-panel-agents","aria-labelledby":"settings-tab-agents",style:{padding:ed?"12px 14px":20,display:"flex",flexDirection:"column",gap:16,minHeight:0},children:[(0,i.jsx)(en,{label:el("settingsConfig.preferTaskDelegation"),description:el("settingsConfig.preferTaskDelegationDesc"),scope:"New sessions",compact:!0,hideDescription:ed,children:(0,i.jsx)(v.l6,{value:eX?.task?.eager??"default",onChange:e=>tb("task",{eager:e}),required:!0,options:[{value:"default",label:el("settingsConfig.delegationDefault")},{value:"preferred",label:el("settingsConfig.delegationPreferred")},{value:"always",label:el("settingsConfig.delegationAlways")}],"aria-label":el("settingsConfig.preferTaskDelegation")})}),(0,i.jsx)(G,{cwd:y??void 0,onSaved:S})]}),"safety"===ec&&(0,i.jsxs)("div",{role:"tabpanel",id:"settings-panel-safety","aria-labelledby":"settings-tab-safety",style:{padding:ed?"12px 14px":20,display:"flex",flexDirection:"column",gap:16},children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h3",{style:{fontSize:"var(--text-base)",fontWeight:600,margin:0},children:el("settingsConfig.safetyTitle")}),(0,i.jsx)("p",{style:{margin:"4px 0 0",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:el("settingsConfig.safetyDescription")})]}),(0,i.jsx)(en,{label:el("settingsConfig.approvalMode"),description:el("settingsConfig.approvalModeDesc"),scope:"New sessions",compact:!0,hideDescription:ed,children:(0,i.jsx)(v.l6,{value:eX?.tools?.approvalMode??"yolo",onChange:e=>tb("tools",{approvalMode:e}),required:!0,options:[{value:"always-ask",label:el("settingsConfig.approvalAlwaysAsk")},{value:"write",label:el("settingsConfig.approvalWrite")},{value:"yolo",label:el("settingsConfig.approvalYolo")}],"aria-label":el("settingsConfig.approvalMode")})}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:ed?"1fr":"repeat(2, minmax(0, 1fr))",gap:10},children:[(0,i.jsx)(en,{label:el("settingsConfig.bashApproval"),description:el("settingsConfig.bashApprovalDesc"),scope:"New sessions",children:(0,i.jsx)(v.l6,{value:eX?.tools?.approval?.bash??"prompt",onChange:e=>tx({bash:e}),required:!0,options:[{value:"allow",label:el("settingsConfig.allow")},{value:"prompt",label:el("settingsConfig.alwaysAsk")},{value:"deny",label:el("settingsConfig.deny")}],"aria-label":el("settingsConfig.bashApproval")})}),(0,i.jsx)(en,{label:el("settingsConfig.extensionApproval"),description:el("settingsConfig.extensionApprovalDesc"),scope:"New sessions",children:(0,i.jsx)(v.l6,{value:eX?.tools?.approval?.extension??"prompt",onChange:e=>tx({extension:e}),required:!0,options:[{value:"prompt",label:el("settingsConfig.askEveryTime")},{value:"allow",label:el("settingsConfig.autoApprove")}],"aria-label":el("settingsConfig.extensionApproval")})})]})]}),"models"===ec&&(0,i.jsxs)("div",{role:"tabpanel",id:"settings-panel-models","aria-labelledby":"settings-tab-models",style:{padding:20,display:"flex",flexDirection:"column",gap:16},children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h3",{style:{fontSize:"var(--text-base)",fontWeight:600,margin:0},children:el("settingsConfig.modelsTitle")}),(0,i.jsx)("p",{style:{margin:"4px 0 0",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:el("settingsConfig.modelsDescription")})]}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:ed?"1fr":"repeat(2, minmax(0, 1fr))",gap:10},children:[(0,i.jsx)(en,{label:el("settingsConfig.reasoning"),description:el("settingsConfig.reasoningDesc"),scope:"New sessions",children:(0,i.jsx)(v.l6,{value:eX?.defaultThinkingLevel??"high",onChange:e=>tf({defaultThinkingLevel:e}),required:!0,options:["auto","minimal","low","medium","high","xhigh","max"],"aria-label":el("settingsConfig.reasoning")})}),(0,i.jsx)(en,{label:el("settingsConfig.verbosity"),description:el("settingsConfig.verbosityDesc"),scope:"New sessions",children:(0,i.jsx)(v.l6,{value:eX?.textVerbosity??"medium",onChange:e=>tf({textVerbosity:e}),required:!0,options:["low","medium","high"],"aria-label":el("settingsConfig.verbosity")})}),(0,i.jsx)(en,{label:el("settingsConfig.personality"),description:el("settingsConfig.personalityDesc"),scope:"New sessions",children:(0,i.jsx)(v.l6,{value:eX?.personality??"default",onChange:e=>tf({personality:e}),required:!0,options:["default","friendly","pragmatic","none"],"aria-label":el("settingsConfig.personality")})}),(0,i.jsx)(en,{label:el("settingsConfig.hideThinking"),description:el("settingsConfig.hideThinkingDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.hideThinkingBlock??!1,onChange:e=>tf({hideThinkingBlock:e}),"aria-label":el("settingsConfig.hideThinking")})}),(0,i.jsx)(en,{label:el("settingsConfig.externalThinking"),description:el("settingsConfig.externalThinkingDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.externalThinking??!1,onChange:e=>tf({externalThinking:e}),"aria-label":el("settingsConfig.externalThinking")})})]})]}),(ef.has("providers")||ef.has("models"))&&(0,i.jsx)("div",{role:"tabpanel",id:"settings-panel-providers","aria-labelledby":"settings-tab-providers",style:{display:"providers"===ec?"flex":"none",height:"100%",minHeight:0,flexDirection:"column"},children:(0,i.jsx)(q,{onSaved:()=>{eh(!1),S()},onDirtyChange:eh},ek)}),"intelligence"===ec&&(0,i.jsxs)("div",{role:"tabpanel",id:"settings-panel-intelligence","aria-labelledby":"settings-tab-intelligence",style:{padding:20,display:"flex",flexDirection:"column",gap:18},children:[(0,i.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:10},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:"var(--text-md)",fontWeight:600},children:[(0,i.jsx)(p.A,{size:14,"aria-hidden":"true",style:{color:"var(--accent)"}})," ",el("settingsConfig.advisorReview")]}),(0,i.jsx)("p",{style:{margin:0,color:"var(--text-muted)",fontSize:"var(--text-sm)"},children:el("settingsConfig.advisorReviewDesc")}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:ed?"1fr":"repeat(2, minmax(0, 1fr))",gap:10},children:[(0,i.jsx)(en,{label:el("settingsConfig.enableAdvisor"),description:el("settingsConfig.enableAdvisorDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.advisor?.enabled??t,onChange:e=>{n(e),tb("advisor",{enabled:e})},"aria-label":el("settingsConfig.enableAdvisor")})}),(eX?.advisor?.enabled??t)&&(0,i.jsx)(en,{label:el("settingsConfig.advisorBacklog"),description:el("settingsConfig.advisorBacklogDesc"),scope:"New sessions",children:(0,i.jsx)(v.l6,{value:eX?.advisor?.syncBacklog??"off",onChange:e=>tb("advisor",{syncBacklog:e}),required:!0,options:[{value:"off",label:el("settingsConfig.backlogOff")},{value:"1",label:el("settingsConfig.backlog1")},{value:"3",label:el("settingsConfig.backlog3")},{value:"5",label:el("settingsConfig.backlog5")}],"aria-label":el("settingsConfig.advisorBacklog")})})]}),(eX?.advisor?.enabled??t)&&(0,i.jsx)(en,{label:el("settingsConfig.reviewSubagents"),description:el("settingsConfig.reviewSubagentsDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.advisor?.subagents??!1,onChange:e=>tb("advisor",{subagents:e}),"aria-label":el("settingsConfig.reviewSubagents")})})]}),(0,i.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:10,borderTop:"1px solid var(--border)",paddingTop:16},children:[(0,i.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:600},children:el("settingsConfig.contextCompaction")}),(0,i.jsx)("p",{style:{margin:0,color:"var(--text-muted)",fontSize:"var(--text-sm)"},children:el("settingsConfig.contextCompactionDesc")}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:ed?"1fr":"repeat(2, minmax(0, 1fr))",gap:10},children:[(0,i.jsx)(en,{label:el("settingsConfig.autoCompaction"),description:el("settingsConfig.autoCompactionDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.compaction?.enabled??!0,onChange:e=>tb("compaction",{enabled:e}),"aria-label":el("settingsConfig.autoCompaction")})}),(0,i.jsx)(en,{label:el("settingsConfig.autoContinueCompaction"),description:el("settingsConfig.autoContinueCompactionDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.compaction?.autoContinue??!0,onChange:e=>tb("compaction",{autoContinue:e}),"aria-label":el("settingsConfig.autoContinueCompaction")})}),(0,i.jsx)(en,{label:el("settingsConfig.compactionStrategy"),description:el("settingsConfig.compactionStrategyDesc"),scope:"New sessions",children:(0,i.jsx)(v.l6,{value:eX?.compaction?.strategy??"snapcompact",onChange:e=>tb("compaction",{strategy:e}),required:!0,options:[{value:"snapcompact",label:"Snapcompact"},{value:"handoff",label:"Handoff"},{value:"context-full",label:"Context full"},{value:"shake",label:"Shake"},{value:"off",label:"Off"}],"aria-label":el("settingsConfig.compactionStrategy")})}),(0,i.jsx)(en,{label:el("settingsConfig.compactMidTurn"),description:el("settingsConfig.compactMidTurnDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.compaction?.midTurnEnabled??!0,onChange:e=>tb("compaction",{midTurnEnabled:e}),"aria-label":el("settingsConfig.compactMidTurn")})})]})]}),(0,i.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:10,borderTop:"1px solid var(--border)",paddingTop:16},children:[(0,i.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:600},children:el("settingsConfig.memoryAndAutoLearn")}),(0,i.jsx)("p",{style:{margin:0,color:"var(--text-muted)",fontSize:"var(--text-sm)"},children:el("settingsConfig.memoryAndAutoLearnDesc")}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:ed?"1fr":"repeat(2, minmax(0, 1fr))",gap:10},children:[(0,i.jsx)(en,{label:el("settingsConfig.memoryBackend"),description:el("settingsConfig.memoryBackendDesc"),scope:"New sessions",children:(0,i.jsx)(v.l6,{value:eX?.memory?.backend??"mnemopi",onChange:e=>tb("memory",{backend:e}),required:!0,options:[{value:"off",label:el("settingsConfig.backlogOff")},{value:"local",label:el("settingsConfig.memoryLocal")},{value:"mnemopi",label:el("settingsConfig.memoryMnemopi")},{value:"hindsight",label:el("settingsConfig.memoryHindsight")}],"aria-label":el("settingsConfig.memoryBackend")})}),(0,i.jsx)(en,{label:el("settingsConfig.enableAutolearn"),description:el("settingsConfig.enableAutolearnDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.autolearn?.enabled??!0,onChange:e=>tb("autolearn",{enabled:e}),"aria-label":el("settingsConfig.enableAutolearn")})}),(0,i.jsx)(en,{label:el("settingsConfig.privateCaptureTurn"),description:el("settingsConfig.privateCaptureTurnDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.autolearn?.autoContinue??!0,onChange:e=>tb("autolearn",{autoContinue:e}),"aria-label":el("settingsConfig.privateCaptureTurn")})}),(0,i.jsx)(en,{label:el("settingsConfig.memoryScope"),description:el("settingsConfig.memoryScopeDesc"),scope:"New sessions",children:(0,i.jsx)(v.l6,{value:eX?.mnemopi?.scoping??"per-project",onChange:e=>tb("mnemopi",{scoping:e}),required:!0,options:[{value:"per-project",label:el("settingsConfig.scopePerProject")},{value:"per-project-tagged",label:el("settingsConfig.scopePerProjectTagged")},{value:"global",label:el("settingsConfig.scopeGlobal")}],"aria-label":el("settingsConfig.memoryScope")})}),(0,i.jsx)(en,{label:el("settingsConfig.autoRecall"),description:el("settingsConfig.autoRecallDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.mnemopi?.autoRecall??!0,onChange:e=>tb("mnemopi",{autoRecall:e}),"aria-label":el("settingsConfig.autoRecall")})}),(0,i.jsx)(en,{label:el("settingsConfig.autoRetain"),description:el("settingsConfig.autoRetainDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.mnemopi?.autoRetain??!0,onChange:e=>tb("mnemopi",{autoRetain:e}),"aria-label":el("settingsConfig.autoRetain")})})]})]}),(0,i.jsxs)("section",{style:{display:"flex",flexDirection:"column",gap:10,borderTop:"1px solid var(--border)",paddingTop:16},children:[(0,i.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:600},children:el("settingsConfig.autoRetry")}),(0,i.jsx)("p",{style:{margin:0,color:"var(--text-muted)",fontSize:"var(--text-sm)"},children:el("settingsConfig.autoRetryDesc")}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:ed?"1fr":"repeat(2, minmax(0, 1fr))",gap:10},children:[(0,i.jsx)(en,{label:el("settingsConfig.enableRetry"),description:el("settingsConfig.enableRetryDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:th.enabled??!0,onChange:e=>tb("retry",{enabled:e}),"aria-label":el("settingsConfig.enableRetry")})}),(0,i.jsx)(en,{label:el("settingsConfig.maxAttempts"),description:el("settingsConfig.maxAttemptsDesc"),scope:"New sessions",children:(0,i.jsx)(v.l6,{value:String(th.maxRetries??10),onChange:e=>tb("retry",{maxRetries:Number(e)}),required:!0,options:J.map(String),"aria-label":el("settingsConfig.maxAttempts")})}),(0,i.jsx)(en,{label:el("settingsConfig.modelFallback"),description:el("settingsConfig.modelFallbackDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:th.modelFallback??!0,onChange:e=>tb("retry",{modelFallback:e}),"aria-label":el("settingsConfig.modelFallback")})}),(0,i.jsx)(en,{label:el("settingsConfig.fallbackRevertPolicy"),description:el("settingsConfig.fallbackRevertPolicyDesc"),scope:"New sessions",children:(0,i.jsx)(v.l6,{value:th.fallbackRevertPolicy??"cooldown-expiry",onChange:e=>tb("retry",{fallbackRevertPolicy:e}),required:!0,options:[{value:"cooldown-expiry",label:el("settingsConfig.fallbackRevertCooldown")},{value:"never",label:el("settingsConfig.fallbackRevertNever")}],"aria-label":el("settingsConfig.fallbackRevertPolicy")})})]}),(0,i.jsxs)("section",{"data-search-id":X("Fallback chain"),style:{display:"flex",flexDirection:"column",gap:10,marginTop:4,border:"1px solid var(--border)",borderRadius:"var(--radius-card)",overflow:"hidden"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,flexWrap:"wrap",padding:"10px 12px",background:"var(--bg-panel)",borderBottom:"1px solid var(--border)"},children:[(0,i.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:8,color:"var(--text)",fontSize:"var(--text-base)",fontWeight:600},children:[el("settingsConfig.fallbackChainFor"),(0,i.jsx)("span",{style:Q,children:el("settingsConfig.newSessions")})]}),(0,i.jsx)(v.l6,{"aria-label":el("settingsConfig.fallbackChainRole"),value:te,onChange:e=>{tt(e),ti("")},required:!0,options:Y,style:{width:"auto",minWidth:120}})]}),(0,i.jsxs)("div",{style:{display:"flex",gap:8,padding:"10px 12px"},children:[(0,i.jsx)(v.l6,{"aria-label":el("settingsConfig.selectFallbackModel"),value:tn,onChange:e=>ti(e),placeholder:el("settingsConfig.selectFallbackModel"),options:ty.filter(e=>!tv.includes(e)),style:{flex:1,minWidth:0}}),(0,i.jsx)("button",{type:"button",disabled:!tn,onClick:()=>{tC([...tv,tn]),ti("")},style:{padding:"6px 10px",border:"none",borderRadius:"var(--radius-control)",background:"var(--accent)",color:"var(--on-accent)",cursor:tn?"pointer":"not-allowed",opacity:tn?1:.5,fontSize:"var(--text-sm)",whiteSpace:"nowrap"},children:el("settingsConfig.addFallback")})]}),0===tv.length?(0,i.jsx)("div",{style:{padding:"0 12px 12px",color:"var(--text-dim)",fontSize:"var(--text-sm)"},children:el("settingsConfig.noFallbackChain")}):(0,i.jsx)("div",{style:{borderTop:"1px solid var(--border)"},children:tv.map((e,t)=>(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"7px 12px",color:"var(--text-muted)",fontSize:"var(--text-sm)"},children:[(0,i.jsx)("span",{style:{width:18,color:"var(--text-dim)",fontFamily:"var(--font-mono)"},children:t+1}),(0,i.jsx)("code",{style:{flex:1},children:e}),(0,i.jsx)("button",{type:"button","aria-label":el("settingsConfig.moveFallbackUp",{model:e}),title:el("settingsConfig.moveFallbackUp",{model:e}),disabled:0===t,onClick:()=>{let e=[...tv],n=e[t-1];e[t-1]=e[t],e[t]=n,tC(e)},className:"ui-focus-ring",style:{width:24,height:24,padding:0,display:"inline-flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:"calc(var(--radius-control) / 2)",background:"transparent",color:"var(--text-muted)",cursor:0===t?"default":"pointer"},children:(0,i.jsx)("span",{"aria-hidden":"true",children:"↑"})}),(0,i.jsx)("button",{type:"button","aria-label":el("settingsConfig.moveFallbackDown",{model:e}),title:el("settingsConfig.moveFallbackDown",{model:e}),disabled:t===tv.length-1,onClick:()=>{let e=[...tv],n=e[t+1];e[t+1]=e[t],e[t]=n,tC(e)},className:"ui-focus-ring",style:{width:24,height:24,padding:0,display:"inline-flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:"calc(var(--radius-control) / 2)",background:"transparent",color:"var(--text-muted)",cursor:t===tv.length-1?"default":"pointer"},children:(0,i.jsx)("span",{"aria-hidden":"true",children:"↓"})}),(0,i.jsx)("button",{type:"button","aria-label":el("settingsConfig.removeFallback",{model:e}),title:el("settingsConfig.removeFallback",{model:e}),onClick:()=>tC(tv.filter((e,n)=>n!==t)),className:"ui-focus-ring",style:{width:24,height:24,padding:0,display:"inline-flex",alignItems:"center",justifyContent:"center",border:"none",borderRadius:"calc(var(--radius-control) / 2)",background:"transparent",color:"var(--text-muted)",cursor:"pointer"},children:(0,i.jsx)("span",{"aria-hidden":"true",children:"\xd7"})})]},`${e}-${t}`))})]})]})]}),"extensions"===ec&&(0,i.jsxs)("div",{role:"tabpanel",id:"settings-panel-extensions","aria-labelledby":"settings-tab-extensions",style:{display:"flex",height:"100%",minHeight:0,flexDirection:"column",overflowY:"hidden",padding:20,gap:16},children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h3",{style:{fontSize:"var(--text-base)",fontWeight:600,margin:0},children:el("settingsTabs.extensions")}),(0,i.jsx)("p",{style:{margin:"4px 0 0",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:el("settingsTabs.extensionsDesc")})]}),(0,i.jsx)(I,{active:eg,onSelect:tj}),"tools"===eg&&(0,i.jsx)("div",{role:"tabpanel",id:"settings-extension-panel-tools","aria-labelledby":"settings-extension-tab-tools",style:{display:"flex",flex:1,minHeight:0,flexDirection:"column",overflowY:"auto"},children:(0,i.jsx)(H,{settings:eX,onPatch:tf})}),"mcp"===eg&&(0,i.jsxs)("div",{role:"tabpanel",id:"settings-extension-panel-mcp","aria-labelledby":"settings-extension-tab-mcp",style:{display:"flex",flex:1,minHeight:0,flexDirection:"column",overflowY:"auto",gap:12},children:[(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:ed?"1fr":"repeat(2, minmax(0, 1fr))",gap:10},children:[(0,i.jsx)(en,{label:el("settingsConfig.loadProjectMcp"),description:el("settingsConfig.loadProjectMcpDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.mcp?.enableProjectConfig??!0,onChange:e=>tb("mcp",{enableProjectConfig:e}),"aria-label":el("settingsConfig.loadProjectMcp")})}),(0,i.jsx)(en,{label:el("settingsConfig.renderMcpMarkdown"),description:el("settingsConfig.renderMcpMarkdownDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.mcp?.renderMarkdownResults??!0,onChange:e=>tb("mcp",{renderMarkdownResults:e}),"aria-label":el("settingsConfig.renderMcpMarkdown")})}),(0,i.jsx)(en,{label:el("settingsConfig.mcpResourceUpdates"),description:el("settingsConfig.mcpResourceUpdatesDesc"),scope:"New sessions",children:(0,i.jsx)(v.dO,{checked:eX?.mcp?.notifications??!1,onChange:e=>tb("mcp",{notifications:e}),"aria-label":el("settingsConfig.mcpResourceUpdates")})})]}),(0,i.jsx)(K,{cwd:y??null,sessionId:C??void 0}),!y&&(0,i.jsx)("p",{role:"status",style:{margin:0,color:"var(--text-muted)",fontSize:"var(--text-sm)"},children:el("settingsConfig.noWorkspaceMcpHint")})]}),"skills"===eg&&(0,i.jsx)("div",{role:"tabpanel",id:"settings-extension-panel-skills","aria-labelledby":"settings-extension-tab-skills",style:{display:"flex",flex:1,minHeight:0,flexDirection:"column",overflowY:"auto"},children:y?(0,i.jsx)(B,{cwd:y}):(0,i.jsx)("div",{role:"status",style:{padding:16,border:"1px solid var(--border)",borderRadius:"var(--radius-card)",color:"var(--text-muted)",fontSize:"var(--text-sm)"},children:el("settingsConfig.workspaceRequired")})}),"plugins"===eg&&(0,i.jsx)("div",{role:"tabpanel",id:"settings-extension-panel-plugins","aria-labelledby":"settings-extension-tab-plugins",style:{display:"flex",flex:1,minHeight:0,flexDirection:"column",overflowY:"auto"},children:y?(0,i.jsx)(V,{cwd:y,sessionId:C??null,onReloaded:A,runtimeReady:er}):(0,i.jsx)("div",{role:"status",style:{padding:16,border:"1px solid var(--border)",borderRadius:"var(--radius-card)",color:"var(--text-muted)",fontSize:"var(--text-sm)"},children:el("settingsConfig.workspaceRequired")})})]}),"system"===ec&&(0,i.jsxs)("div",{role:"tabpanel",id:"settings-panel-system","aria-labelledby":"settings-tab-system",style:{padding:20,display:"flex",flexDirection:"column",gap:18},children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h3",{style:{fontSize:"var(--text-base)",fontWeight:600,margin:0},children:el("settingsConfig.systemUpdates")}),(0,i.jsx)("p",{style:{margin:"4px 0 0",fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:el("settingsConfig.systemUpdatesDescription")})]}),(0,i.jsxs)("section",{"data-search-id":X("Background service"),"aria-label":el("daemon.title"),style:{padding:14,border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",display:"flex",flexDirection:"column",gap:12},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,i.jsx)("h4",{style:{margin:0,fontSize:"var(--text-md)",fontWeight:600},children:el("daemon.title")}),(0,i.jsx)("button",{type:"button",className:"ui-focus-ring",disabled:eA||!!eT,onClick:()=>void tM(),style:{padding:"6px 10px",minHeight:32,border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text)",fontSize:"var(--text-sm)",cursor:eA||eT?"wait":"pointer"},children:el("settingsConfig.refresh")})]}),(0,i.jsx)("div",{role:"status","aria-live":"polite",style:{fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:eT?el("restart"===eT.action?"daemon.reconnecting":"daemon.stopping"):eA?el("daemon.loading"):ej?ej.supported?ej.cliAvailable?ej.installed?ej.running?el("daemon.running",{pid:ej.pid??"—"}):el("daemon.stopped"):el("daemon.notInstalled"):el("daemon.cliMissing"):el("daemon.unsupported"):el("daemon.unknown")}),(0,i.jsx)("p",{style:{margin:0,fontSize:"var(--text-sm)",color:"var(--text-muted)",lineHeight:1.5},children:el("daemon.description")}),ej?.supported&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,i.jsx)("span",{style:{fontSize:"var(--text-sm)"},children:el("daemon.autoStart")}),(0,i.jsx)(v.dO,{"aria-label":el("daemon.autoStart"),checked:ej.autoStart,disabled:eA||!!eT||!ej.cliAvailable,onChange:e=>{e?tD(ej.installed?"enable":"install"):eP("disable")}})]}),(0,i.jsx)("div",{style:{display:"flex",gap:8,flexWrap:"wrap"},children:["start","stop","restart","uninstall"].map(e=>(0,i.jsx)("button",{type:"button",className:"ui-focus-ring",style:{padding:"6px 10px",minHeight:32,border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text)",fontSize:"var(--text-sm)"},disabled:eA||!!eT||!ej.cliAvailable||!ej.installed||("start"===e?ej.running:("stop"===e||"restart"===e)&&!ej.running),onClick:()=>"start"===e?void tD(e):eP(e),children:el(`daemon.${e}`)},e))}),ej.logPath&&(0,i.jsxs)("div",{style:{fontSize:"var(--text-sm)",overflowWrap:"anywhere"},children:[el("daemon.logs"),": ",(0,i.jsx)("code",{children:ej.logPath})]}),!ej.cliAvailable&&(0,i.jsx)("code",{style:{fontSize:"var(--text-sm)",overflowWrap:"anywhere"},children:"npm install -g ompgui@latest"}),!ej.installed&&ej.cliAvailable&&(0,i.jsx)("code",{style:{fontSize:"var(--text-sm)",overflowWrap:"anywhere"},children:"ompgui service install"})]}),(eM||ej?.error)&&(0,i.jsx)("div",{role:"alert",style:{fontSize:"var(--text-sm)",color:"var(--danger)",overflowWrap:"anywhere"},children:eM||ej?.error}),(0,i.jsxs)("p",{style:{margin:0,fontSize:"var(--text-sm)",color:"var(--text-muted)",lineHeight:1.5},children:[el("daemon.disconnectWarning")," ",(0,i.jsx)("code",{children:"ompgui start"})]})]}),(0,i.jsxs)("section",{"data-search-id":X("Active session system prompt"),style:{padding:"var(--space-5)",border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",display:"flex",flexDirection:"column",gap:"var(--space-4)",...e8===X("Active session system prompt")?{borderColor:"var(--accent)",boxShadow:"0 0 0 2px var(--accent)"}:{}},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"flex-start",justifyContent:"space-between",gap:"var(--space-4)",flexWrap:"wrap"},children:[(0,i.jsxs)("div",{style:{minWidth:0,flex:1},children:[(0,i.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:650},children:el("settingsConfig.sessionSystemPrompt")}),(0,i.jsx)("div",{style:{marginTop:"var(--space-1)",color:"var(--text-muted)",fontSize:"var(--text-sm)",lineHeight:1.45},children:el("settingsConfig.sessionSystemPromptDescription")})]}),(0,i.jsxs)("button",{type:"button",onClick:j,disabled:!C||w,"aria-label":el("settingsConfig.systemPromptActionAria"),style:{display:"inline-flex",alignItems:"center",gap:"var(--space-2)",flexShrink:0,padding:"var(--space-3) var(--space-4)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text)",cursor:!C||w?"not-allowed":"pointer",opacity:!C||w?.65:1,fontSize:"var(--text-sm)"},children:[(0,i.jsx)(g.A,{size:13,"aria-hidden":"true",className:w?"icon-spin":void 0}),w?el("settingsConfig.systemPromptLoading"):null===k?el("settingsConfig.loadSystemPrompt"):el("settingsConfig.reloadSystemPrompt")]})]}),(0,i.jsx)("div",{"aria-live":"polite","aria-busy":w,style:{minHeight:"var(--control-height-lg)",maxHeight:"45dvh",overflowY:"auto",padding:"var(--space-4)",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",color:"var(--text-muted)",fontSize:"var(--text-sm)",lineHeight:1.5},children:w?(0,i.jsx)("div",{role:"status",children:el("settingsConfig.systemPromptLoading")}):C?null===k?(0,i.jsx)("div",{style:{fontStyle:"italic"},children:el("settingsConfig.systemPromptUnavailable")}):0===k.length?(0,i.jsx)("div",{style:{fontStyle:"italic"},children:el("settingsConfig.systemPromptEmpty")}):(0,i.jsx)("pre",{"aria-label":el("settingsConfig.sessionSystemPrompt"),style:{margin:0,color:"var(--text)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",lineHeight:1.5,whiteSpace:"pre-wrap",overflowWrap:"anywhere"},children:k}):(0,i.jsx)("div",{style:{fontStyle:"italic"},children:el("settingsConfig.systemPromptNoSession")})})]}),(0,i.jsxs)("section",{style:{padding:14,border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",display:"flex",flexDirection:"column",gap:10},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:600},children:el("settingsConfig.appLabel")}),(0,i.jsx)("div",{style:{marginTop:4,color:eL?.updateAvailable?"var(--accent)":"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},children:eU?el("settingsConfig.checkingUpdates"):eL?.updateAvailable?el("appShell.updateVersion",{current:eL.currentVersion??"?",available:eL.availableVersion??"?"}):eK||eL?.lookupFailed?el("settingsConfig.appUpdateCheckFailed"):eL?.currentVersion&&eL?.availableVersion?el("settingsConfig.upToDate",{version:eL.currentVersion}):el("settingsConfig.versionUnavailable")})]}),(0,i.jsxs)("button",{type:"button",onClick:()=>void tR(!0),disabled:eU,"aria-label":el("settingsConfig.checkAppUpdates"),style:{padding:"6px 10px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text)",cursor:eU?"wait":"pointer",fontSize:"var(--text-sm)",display:"inline-flex",alignItems:"center",gap:5},children:[(0,i.jsx)(g.A,{size:13,"aria-hidden":"true"})," ",el("settingsConfig.refresh")]})]}),eL?.updateAvailable&&(0,i.jsxs)("div",{style:{marginTop:6,padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",display:"flex",flexDirection:"column",gap:6},children:[(0,i.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:el("settingsConfig.runAppUpdateCommand")}),(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,i.jsx)("code",{style:{flex:1,fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",color:"var(--accent)",wordBreak:"break-all"},children:eL.updateCommand||"ompgui update"}),(0,i.jsxs)("button",{type:"button",onClick:()=>{(0,P.D)(eL.updateCommand||"ompgui update").then(()=>eV(el("appShell.commandCopied"))).catch(()=>eV(el("appShell.commandCopyFailed")))},style:{display:"inline-flex",alignItems:"center",gap:5,padding:"4px 8px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-xs)"},children:[(0,i.jsx)(u.A,{size:12,"aria-hidden":"true"})," ",el("appShell.copyCommand")]})]})]})]}),(0,i.jsxs)("section",{style:{padding:14,border:"1px solid var(--border)",borderRadius:"var(--radius-card)",background:"var(--bg-panel)",display:"flex",flexDirection:"column",gap:10},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12},children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{style:{fontSize:"var(--text-md)",fontWeight:600},children:el("settingsConfig.ompLabel")}),(0,i.jsx)("div",{style:{marginTop:4,color:eN?.updateAvailable?"var(--accent)":"var(--text-muted)",fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)"},children:eW?el("settingsConfig.checkingUpdates"):eN?.updateAvailable?el("appShell.updateVersion",{current:eN.currentVersion??"?",available:eN.availableVersion??"?"}):eN?.currentVersion?el("settingsConfig.upToDate",{version:eN.currentVersion}):el("settingsConfig.versionUnavailable")})]}),(0,i.jsxs)("button",{type:"button",onClick:()=>void tA(!0),disabled:eW,"aria-label":el("settingsConfig.checkOmpUpdates"),style:{padding:"6px 10px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"transparent",color:"var(--text)",cursor:eW?"wait":"pointer",fontSize:"var(--text-sm)",display:"inline-flex",alignItems:"center",gap:5},children:[(0,i.jsx)(g.A,{size:13,"aria-hidden":"true"})," ",el("settingsConfig.refresh")]})]}),eN?.updateAvailable&&(0,i.jsxs)("div",{style:{marginTop:6,padding:"10px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg)",display:"flex",flexDirection:"column",gap:6},children:[(0,i.jsx)("div",{style:{fontSize:"var(--text-sm)",color:"var(--text-muted)"},children:el("settingsConfig.runOmpUpdateCommand")}),(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[(0,i.jsx)("code",{style:{flex:1,fontFamily:"var(--font-mono)",fontSize:"var(--text-sm)",color:"var(--accent)",wordBreak:"break-all"},children:eN.updateCommand||"omp update"}),(0,i.jsxs)("button",{type:"button",onClick:()=>{(0,P.D)(eN.updateCommand||"omp update").then(()=>eV(el("appShell.commandCopied"))).catch(()=>eV(el("appShell.commandCopyFailed")))},style:{display:"inline-flex",alignItems:"center",gap:5,padding:"4px 8px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",color:"var(--text)",cursor:"pointer",fontSize:"var(--text-xs)"},children:[(0,i.jsx)(u.A,{size:12,"aria-hidden":"true"})," ",el("appShell.copyCommand")]})]})]}),(0,i.jsxs)("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:6},children:[(0,i.jsxs)("button",{type:"button",onClick:()=>void tT(),disabled:eH,style:{display:"inline-flex",alignItems:"center",gap:6,padding:"7px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",background:"var(--bg-subtle)",color:"var(--text)",cursor:eH?"wait":"pointer",fontSize:"var(--text-sm)"},children:[(0,i.jsx)(f.A,{size:13,"aria-hidden":"true"})," ",eH?el("settingsConfig.restarting"):el("settingsConfig.restartSessions")]}),(0,i.jsxs)("a",{href:"https://github.com/can1357/oh-my-pi/releases",target:"_blank",rel:"noreferrer",style:{display:"inline-flex",alignItems:"center",gap:6,padding:"7px 12px",border:"1px solid var(--border)",borderRadius:"var(--radius-control)",color:"var(--text-muted)",textDecoration:"none",fontSize:"var(--text-sm)"},children:[(0,i.jsx)(x,{size:13,"aria-hidden":"true"})," ",el("settingsConfig.changelog")]})]}),eB&&(0,i.jsx)("p",{role:"status",style:{margin:"4px 0 0",color:"var(--text-muted)",fontSize:"var(--text-sm)",lineHeight:1.5},children:eB})]})]})]})]})})]})}),(0,i.jsx)(v.TM,{open:null!==eI,onOpenChange:e=>{e||eP(null)},title:eI?el(`daemon.${eI}`):el("daemon.title"),description:el("disable"===eI?"daemon.disableConfirm":"daemon.disconnectConfirm"),confirmLabel:eI?el(`daemon.${eI}`):el("daemon.title"),cancelLabel:el("settingsConfig.cancel"),danger:!0,onConfirm:()=>{eI&&tD(eI)}}),(0,i.jsx)(v.TM,{open:ey,onOpenChange:e=>{eC(e),e||ev(null)},title:el("settingsConfig.unsavedChangesTitle"),description:el("settingsConfig.unsavedChangesDescription"),confirmLabel:el("settingsConfig.discardChanges"),cancelLabel:el("settingsConfig.cancel"),danger:!0,onConfirm:tS})]})}},50981:(e,t,n)=>{n.d(t,{A:()=>i});let i=(0,n(99537).A)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]])},70299:(e,t,n)=>{n.d(t,{A:()=>i});let i=(0,n(99537).A)("monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]])},86272:(e,t,n)=>{n.d(t,{A:()=>i});let i=(0,n(99537).A)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]])},90071:(e,t,n)=>{function i(){return globalThis.__ompClientModelStore||(globalThis.__ompClientModelStore={globalGeneration:0,entries:new Map,inFlight:new Map,listeners:new Map}),globalThis.__ompClientModelStore}n.d(t,{aQ:()=>r,dU:()=>o});function a(e,t){t.snapshot={status:t.status,data:t.data,error:t.error,cwd:e,expiresAt:t.expiresAt};let n=i().listeners.get(e);if(n)for(let e of[...n])try{e(t.snapshot)}catch{}return t.snapshot}function s(e,t){let n=e.entries.get(t);if(n)return n;let i={data:null,error:null,status:"idle",expiresAt:null,generation:0,snapshot:{status:"idle",data:null,error:null,cwd:t,expiresAt:null}};return e.entries.set(t,i),i}function o(e){let t=i();if(void 0===e){for(let[e,n]of(t.globalGeneration+=1,t.entries))n.generation+=1,n.data=null,n.error=null,n.status="idle",n.expiresAt=null,a(e,n);t.inFlight.clear();return}let n=e??"",o=s(t,n);o.generation+=1,o.data=null,o.error=null,o.status="idle",o.expiresAt=null,t.inFlight.delete(n),a(n,o)}function r(e,t){let n=e??"";t?.force&&o(n);let r=i(),l=s(r,n),d=Date.now();if(l.data&&null!==l.expiresAt&&l.expiresAt>d&&!t?.force)return Promise.resolve(l.data);let c=r.inFlight.get(n);if(c)return c;let p=l.generation,g=r.globalGeneration;"ready"!==l.status&&(l.status="loading",l.error=null,a(n,l));let u=(async()=>{let e=await fetch(n?`/api/models?cwd=${encodeURIComponent(n)}`:"/api/models",{cache:"no-store"});if(!e.ok)throw Error(`HTTP ${e.status}`);var t=await e.json();if(!t||"object"!=typeof t)throw Error("invalid models response");return{models:t.models&&"object"==typeof t.models?t.models:{},modelList:Array.isArray(t.modelList)?t.modelList:[],defaultModel:t.defaultModel??null,thinkingLevels:t.thinkingLevels&&"object"==typeof t.thinkingLevels?t.thinkingLevels:{},...t.thinkingLevelMaps?{thinkingLevelMaps:t.thinkingLevelMaps}:{},...t.connectedProviders?{connectedProviders:t.connectedProviders}:{},..."string"==typeof t.modelError?{modelError:t.modelError}:{}}})().then(e=>{let t=i(),s=t.entries.get(n);return s&&s.generation===p&&t.globalGeneration===g&&(s.data=e,s.error=null,s.status="ready",s.expiresAt=Date.now()+3e4,a(n,s)),e}).catch(e=>{let t=i(),s=t.entries.get(n);throw s&&s.generation===p&&t.globalGeneration===g&&(s.status="error",s.error=e instanceof Error?e.message:String(e),s.expiresAt=null,a(n,s)),e}).finally(()=>{let e=i();e.inFlight.get(n)===u&&e.inFlight.delete(n)});return r.inFlight.set(n,u),u}},90710:(e,t,n)=>{n.d(t,{A:()=>i});let i=(0,n(99537).A)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]])},99314:(e,t,n)=>{n.d(t,{A:()=>i});let i=(0,n(99537).A)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]])}}]);
|