@spotpatch/vite 1.16.0 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,40 +1,40 @@
1
- import{createReact18Adapter as us}from"@spotpatch/react-adapter";var p={INVALID_REQUEST:"INVALID_REQUEST",INVALID_TOKEN:"INVALID_TOKEN",ORIGIN_NOT_ALLOWED:"ORIGIN_NOT_ALLOWED",SOURCE_NOT_FOUND:"SOURCE_NOT_FOUND",SOURCE_OUTSIDE_ROOT:"SOURCE_OUTSIDE_ROOT",SOURCE_TOO_LARGE:"SOURCE_TOO_LARGE",EDITOR_OPEN_FAILED:"EDITOR_OPEN_FAILED",DATA_FLOW_DISABLED:"DATA_FLOW_DISABLED",DATA_FLOW_SOURCE_STALE:"DATA_FLOW_SOURCE_STALE",DATA_FLOW_ANALYSIS_CANCELLED:"DATA_FLOW_ANALYSIS_CANCELLED",AI_DISABLED:"AI_DISABLED",PROVIDER_NOT_CONFIGURED:"PROVIDER_NOT_CONFIGURED",PROVIDER_AUTH_FAILED:"PROVIDER_AUTH_FAILED",PROVIDER_PROTOCOL_UNSUPPORTED:"PROVIDER_PROTOCOL_UNSUPPORTED",MODEL_NOT_ALLOWED:"MODEL_NOT_ALLOWED",MODEL_TOOL_CALL_UNSUPPORTED:"MODEL_TOOL_CALL_UNSUPPORTED",PROVIDER_RATE_LIMITED:"PROVIDER_RATE_LIMITED",AGENT_BUSY:"AGENT_BUSY",AGENT_LIMIT_EXCEEDED:"AGENT_LIMIT_EXCEEDED",AGENT_CANCELLED:"AGENT_CANCELLED",EXTERNAL_HANDOFF_DISABLED:"EXTERNAL_HANDOFF_DISABLED",EXTERNAL_HANDOFF_UNAVAILABLE:"EXTERNAL_HANDOFF_UNAVAILABLE",HANDOFF_VALIDATION_FAILED:"HANDOFF_VALIDATION_FAILED",HANDOFF_SOURCE_STALE:"HANDOFF_SOURCE_STALE",HANDOFF_NOT_FOUND:"HANDOFF_NOT_FOUND",HANDOFF_EXPIRED:"HANDOFF_EXPIRED",HANDOFF_CURSOR_INVALID:"HANDOFF_CURSOR_INVALID",HANDOFF_RESPONSE_TOO_LARGE:"HANDOFF_RESPONSE_TOO_LARGE",BRIDGE_UNAUTHORIZED:"BRIDGE_UNAUTHORIZED",BRIDGE_PROTOCOL_MISMATCH:"BRIDGE_PROTOCOL_MISMATCH",BRIDGE_BUSY:"BRIDGE_BUSY",EXTERNAL_AGENT_BUSY:"EXTERNAL_AGENT_BUSY",ACTIVE_ADAPTER_CONFLICT:"ACTIVE_ADAPTER_CONFLICT",ACTIVE_ADAPTER_LEASE_INVALID:"ACTIVE_ADAPTER_LEASE_INVALID",ACTIVE_DISPATCH_INVALID:"ACTIVE_DISPATCH_INVALID",SESSION_NOT_FOUND:"SESSION_NOT_FOUND",SESSION_AMBIGUOUS:"SESSION_AMBIGUOUS",SESSION_CLOSED:"SESSION_CLOSED",WORKTREE_DIRTY:"WORKTREE_DIRTY",WORKTREE_NOT_REPOSITORY:"WORKTREE_NOT_REPOSITORY",WORKTREE_OPERATION_IN_PROGRESS:"WORKTREE_OPERATION_IN_PROGRESS",WORKTREE_CONFLICTED:"WORKTREE_CONFLICTED",WORKTREE_LOCAL_CHANGES_TOO_LARGE:"WORKTREE_LOCAL_CHANGES_TOO_LARGE",WORKTREE_UNTRACKED_UNSUPPORTED:"WORKTREE_UNTRACKED_UNSUPPORTED",WORKTREE_LOCAL_CHANGES_UNSUPPORTED:"WORKTREE_LOCAL_CHANGES_UNSUPPORTED",TOOL_DENIED:"TOOL_DENIED",TOOL_INPUT_INVALID:"TOOL_INPUT_INVALID",TOOL_ARGUMENTS_INVALID:"TOOL_ARGUMENTS_INVALID",TOOL_CALL_ID_CONFLICT:"TOOL_CALL_ID_CONFLICT",TOOL_PATH_DENIED:"TOOL_PATH_DENIED",PATCH_REJECTED:"PATCH_REJECTED",VALIDATION_FAILED:"VALIDATION_FAILED",APPLY_CONFLICT:"APPLY_CONFLICT",INTERNAL_ERROR:"INTERNAL_ERROR"},zr=Object.freeze(["ASK_DISABLED","ASK_SELECTION_REQUIRED","ASK_SELECTION_STALE","ASK_QUESTION_INVALID","ASK_EXECUTOR_UNAVAILABLE","ASK_TIMEOUT","ASK_CONSENT_REQUIRED","ASK_BUSY","ASK_IDEMPOTENCY_CONFLICT","ASK_SOURCE_SCOPE_DENIED","ASK_LIMIT_EXCEEDED","ASK_ANSWER_INVALID","ASK_WRITE_ATTEMPTED","ASK_CANCELLED","ASK_RESULT_EXPIRED","ASK_PROTOCOL_INCOMPATIBLE"]),jr=Object.freeze(Object.values(p));var Vr=/data:[^\s"'<>]*;base64,[a-z0-9+/_=-]+/giu,Wr=/blob:[^\s"'<>]+/giu,qr=/\bbearer\s+[a-z0-9._~+/-]+=*/giu,Gr=/\b(https?:\/\/)[^/\s:@]+:[^/\s@]+@/giu,Kr=/\b(authorization|cookie|set-cookie|api[-_]?key|(?:access[-_]?|refresh[-_]?|auth[-_]?)?token|secret|password|default[-_]?value|value)\b(\s*[:=]\s*)("(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'|`(?:\\.|[^`\\\r\n])*`|[^\s,;"'<>]+)/giu,Jr=new Set(["authorization","cookie","defaultvalue","password","setcookie","value"]),Xr=500;function Yr(e){return e.toLowerCase().replaceAll(/[-_:]/gu,"")}function Zr(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1))}…`}function nn(e){let t=Yr(e);return Jr.has(t)||t.includes("apikey")||t.includes("authorization")||t.includes("secret")||t.includes("token")}function ae(e){return e.replace(Vr,"[redacted inline data]").replace(Wr,"[redacted blob URL]").replace(qr,"Bearer [redacted]").replace(Gr,"$1[redacted]@").replace(Kr,(t,o,n,i)=>{let d=i.at(0),a=d==='"'||d==="'"||d==="`";return`${o}${n}${a?d:""}[redacted]${a?d:""}`})}function Qr(e){e.username="",e.password="";for(let[t,o]of e.searchParams)nn(t)?e.searchParams.set(t,"[redacted]"):e.searchParams.set(t,ae(o));return/token|secret|authorization|api[-_]?key/iu.test(e.hash)&&(e.hash="#[redacted]"),e.toString()}function Tt(e,t){let o=e.trim();if(/^(?:blob|data|javascript):/iu.test(o))return"[redacted URL]";let n=ae(o);try{let i=new URL(n,t),d=Qr(i),a=new URL(t);return!/^[a-z][a-z\d+.-]*:/iu.test(n)&&i.origin===a.origin?`${i.pathname}${i.search}${i.hash}`:d}catch{return Zr(n,Xr)}}var se="/__spotpatch/v1",on="X-SpotPatch-Token",ht=Object.freeze({bootstrap:`${se}/bootstrap`,sourceContext:`${se}/source-context`,openEditor:`${se}/open-editor`,dataFlowComponentReport:`${se}/data-flow/component-report`,dataFlowPageReport:`${se}/data-flow/page-report`,agentCapability:`${se}/agent/capability`,agentWorkspaceHealth:`${se}/agent/workspace-health`,agentJobs:`${se}/agent/jobs`,askCapability:`${se}/ask/capability`,askJobs:`${se}/ask/jobs`,externalHandoffCapability:`${se}/external-handoff/capability`,externalHandoffPublish:`${se}/external-handoff/publish`,externalHandoffStatus:`${se}/external-handoff/status`,externalHandoffResolveDelivery:`${se}/external-handoff/resolve-delivery`,externalAgentControlStatus:`${se}/external-agent/control/status`,externalAgentControlConnect:`${se}/external-agent/control/connect`,externalAgentControlDisconnect:`${se}/external-agent/control/disconnect`,externalAgentControlCancel:`${se}/external-agent/control/cancel`,externalAgentEvents:`${se}/external-agent/events`,externalAgentResult:`${se}/external-agent/result`});function kt(e,t){return`${ht.agentJobs}/${encodeURIComponent(e)}/${t}`}var ea=Object.freeze(["review","auto","trusted-auto"]),ta=Object.freeze({maxTurns:20,maxToolCalls:80,maxChangedFiles:20,maxDiffBytes:512e3,maxReadBytesPerFile:256e3,maxToolOutputCharacters:4e4,maxProviderResponseBytes:2e6,providerConnectTimeoutMs:15e3,providerFirstByteTimeoutMs:3e4,providerIdleTimeoutMs:6e4,checkTimeoutMs:12e4,jobTimeoutMs:6e5}),wn=Object.freeze(["queued","preparing","running","validating","awaiting-review","applying","applied","completed","cancelling","cancelled","reverting","reverted","failed"]),On=Object.freeze(["unknown","probing","agent-ready","prompt-only","unavailable"]),na=Object.freeze(["ready","consent-required","blocked"]),oa=Object.freeze({maxUntrackedFiles:1e3,maxUntrackedBytes:20*1024*1024}),_n=Object.freeze(["added","modified","deleted"]),Ln=Object.freeze(["passed","failed","cancelled","timed-out"]);var kn="data-spotpatch-source",ra=/^([A-Za-z0-9_-]+):([1-9]\d*):([1-9]\d*)(:astro)?$/;function In(e){if(e===null)return;let t=ra.exec(e);if(t===null)return;let o=t[1],n=Number(t[2]),i=Number(t[3]);if(!(o===void 0||!Number.isSafeInteger(n)||!Number.isSafeInteger(i)))return Object.freeze({fileId:o,line:n,column:i,...t[4]===void 0?{}:{kind:"astro"}})}var Pn="https://github.com/huanglvjing/spotpatch";function go(e,t){return Object.freeze({...e,...e.relativePath===void 0&&t!==void 0?{relativePath:t.relativePath}:{}})}function ia(e){return Object.freeze({...e,componentStack:Object.freeze([...e.componentStack]),...e.source===void 0?{}:{source:go(e.source)}})}function sa(e){return Object.freeze({...e,rect:Object.freeze({...e.rect})})}function ca(e){return Object.freeze({...e,classNames:Object.freeze([...e.classNames]),matchedRules:Object.freeze(e.matchedRules.map(t=>Object.freeze({...t}))),computed:Object.freeze({...e.computed}),warnings:Object.freeze([...e.warnings])})}function da(e){return Object.freeze({instruction:e.instruction.trim(),...e.page===void 0?{}:{page:Object.freeze({...e.page})},source:go(e.source,e.code),react:ia(e.react),element:sa(e.element),styles:ca(e.styles),...e.code===void 0?{}:{code:Object.freeze({...e.code})},warnings:Object.freeze([...e.warnings])})}function fo(e){if(e.targets.length<1||e.targets.length>20)throw new RangeError(`SpotPatch annotations require between 1 and ${String(20)} targets.`);let t=e.targets.map(o=>o.instruction.trim());if(t.some(o=>o.length===0||o.length>2e3)||t.reduce((o,n)=>o+n.length,0)>4e3)throw new RangeError("SpotPatch target instructions exceed the allowed bounds.");return Object.freeze({schemaVersion:3,id:e.id,locale:e.locale,page:Object.freeze({...e.page}),targets:Object.freeze(e.targets.map(da)),createdAt:e.createdAt})}var la=new Set(Object.values(p)),pa=new Set(On),ua=new Set(Ln),ga=new Set(_n),mo=new Set(wn),fa=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,ha=/^[A-Za-z0-9_-]+$/,ma=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?Z$/;function mt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Pe(e,t){return Object.keys(e).every(o=>t.includes(o))}function xe(e,t,o=0){return typeof e=="string"&&e.length>=o&&e.length<=t}function zt(e){return xe(e,64,1)&&typeof e=="string"&&fa.test(e)}function Nn(e){return xe(e,128,22)&&typeof e=="string"&&ha.test(e)}function jt(e){return typeof e=="string"&&ma.test(e)&&Number.isFinite(Date.parse(e))}function wt(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>=0}function yo(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function ho(e,t){return e===void 0||xe(e,t)}function It(e){return typeof e=="string"&&la.has(e)}function bo(e){return!mt(e)||!Pe(e,["providerProfileId","providerLabel","modelProfileId","modelLabel","protocol","state","authenticated","modelAvailable","toolCalling","toolResultContinuation","streaming","checkedAt","errorCode"])?!1:zt(e.providerProfileId)&&xe(e.providerLabel,100)&&zt(e.modelProfileId)&&xe(e.modelLabel,100)&&(e.protocol==="responses"||e.protocol==="chat-completions")&&typeof e.state=="string"&&pa.has(e.state)&&typeof e.authenticated=="boolean"&&typeof e.modelAvailable=="boolean"&&typeof e.toolCalling=="boolean"&&typeof e.toolResultContinuation=="boolean"&&typeof e.streaming=="boolean"&&(e.checkedAt===void 0||jt(e.checkedAt))&&(e.errorCode===void 0||It(e.errorCode))}function So(e){if(!mt(e)||!Pe(e,["state","checkedAt","changes","canIncludeLocalChanges","errorCode"])||e.state!=="ready"&&e.state!=="consent-required"&&e.state!=="blocked"||!jt(e.checkedAt)||typeof e.canIncludeLocalChanges!="boolean"||e.errorCode!==void 0&&!It(e.errorCode)||!mt(e.changes)||!Pe(e.changes,["staged","unstaged","untracked","conflicted","total"]))return!1;let t=e.changes,{staged:o,unstaged:n,untracked:i,conflicted:d,total:a}=t;return!wt(o)||!wt(n)||!wt(i)||!wt(d)||!wt(a)||a<o||a<n||a<i||a<d||a>o+n+i?!1:e.state==="ready"?a===0&&!e.canIncludeLocalChanges&&e.errorCode===void 0:e.state==="consent-required"?a>0&&d===0&&e.canIncludeLocalChanges&&e.errorCode===void 0:!e.canIncludeLocalChanges&&e.errorCode!==void 0}function an(e){return!mt(e)||!Pe(e,["jobId","status","providerProfileId","providerLabel","modelProfileId","modelLabel","phaseMessage","createdAt","updatedAt","canCancel","canApply","canRevert","errorCode"])?!1:Nn(e.jobId)&&typeof e.status=="string"&&mo.has(e.status)&&zt(e.providerProfileId)&&xe(e.providerLabel,100)&&zt(e.modelProfileId)&&xe(e.modelLabel,100)&&xe(e.phaseMessage,1024)&&jt(e.createdAt)&&jt(e.updatedAt)&&typeof e.canCancel=="boolean"&&typeof e.canApply=="boolean"&&typeof e.canRevert=="boolean"&&(e.errorCode===void 0||It(e.errorCode))}function ya(e){return mt(e)&&Pe(e,["relativePath","kind","additions","deletions"])&&xe(e.relativePath,1024)&&typeof e.kind=="string"&&ga.has(e.kind)&&wt(e.additions)&&wt(e.deletions)}function Eo(e){return mt(e)&&Pe(e,["checkId","label","status","durationMs","output"])&&zt(e.checkId)&&xe(e.label,100)&&typeof e.status=="string"&&ua.has(e.status)&&wt(e.durationMs)&&xe(e.output,8e4)}function ba(e){return mt(e)&&Pe(e,["jobId","summary","diff","files","checks"])&&Nn(e.jobId)&&xe(e.summary,8e4)&&xe(e.diff,1e6)&&Array.isArray(e.files)&&e.files.length<=100&&e.files.every(ya)&&Array.isArray(e.checks)&&e.checks.length<=100&&e.checks.every(Eo)}function Ao(e){return mt(e)&&Pe(e,["snapshot","result"])&&an(e.snapshot)&&(e.result===void 0||ba(e.result)&&e.result.jobId===e.snapshot.jobId)}function Sa(e){return mt(e)&&Pe(e,["schemaVersion","sequence","jobId","status","timestamp","type","data"])&&e.schemaVersion===2&&yo(e.sequence)&&Nn(e.jobId)&&typeof e.status=="string"&&mo.has(e.status)&&jt(e.timestamp)&&typeof e.type=="string"&&mt(e.data)}function xo(e){if(!Sa(e))return!1;let t=e.data;switch(e.type){case"snapshot":return Pe(t,["snapshot"])&&an(t.snapshot)&&t.snapshot.jobId===e.jobId&&t.snapshot.status===e.status;case"phase":return Pe(t,["message"])&&xe(t.message,1024);case"tool":return Pe(t,["turn","toolCallId","toolName","state","relativePath","checkLabel"])&&yo(t.turn)&&xe(t.toolCallId,256)&&xe(t.toolName,100)&&(t.state==="started"||t.state==="succeeded"||t.state==="failed")&&ho(t.relativePath,1024)&&ho(t.checkLabel,100);case"check":return Pe(t,["result"])&&Eo(t.result);case"result-ready":return Pe(t,["hasResult"])&&t.hasResult===!0;case"error":return Pe(t,["code","message"])&&It(t.code)&&xe(t.message,1024);default:return!1}}var Ro=2e6,vo=1e5,Ea=4e6,K=class extends Error{code;constructor(t){super("SpotPatch local API request failed."),this.name="RuntimeApiError",this.code=t}};function Ne(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Aa(e){if(!(!Ne(e)||e.ok!==!1||!Ne(e.error)))return It(e.error.code)?e.error.code:void 0}function xa(e){if(!Ne(e)||e.ok!==!0||!("data"in e))throw new K;return e.data}function va(e){return Ne(e)&&typeof e.relativePath=="string"&&(e.language==="tsx"||e.language==="jsx"||e.language==="astro")&&typeof e.startLine=="number"&&typeof e.endLine=="number"&&typeof e.excerpt=="string"&&(e.boundary==="component"||e.boundary==="nearby-lines")}function To(e){if(!(!Ne(e)&&!Array.isArray(e))&&!Object.isFrozen(e)){for(let t of Object.values(e))To(t);Object.freeze(e)}}function Pt(e){return To(e),e}async function Ca(e,t){let o=Number(e.headers.get("content-length"));if(Number.isFinite(o)&&o>t)throw new K;if(e.body===null)throw new K;let n=e.body.getReader(),i=new TextDecoder("utf-8",{fatal:!0}),d=0,a="";try{for(;;){let l=await n.read();if(l.done)return a+=i.decode(),a;if(d+=l.value.byteLength,d>t)throw await n.cancel(),new K;a+=i.decode(l.value,{stream:!0})}}catch(l){throw l instanceof K?l:new K}finally{n.releaseLock()}}function wo(e){try{return JSON.parse(e)}catch{throw new K}}async function Co(e,t=Ro){let o=wo(await Ca(e,t));if(!e.ok)throw new K(Aa(o));return xa(o)}function cn(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Ra(e){return Ne(e)&&typeof e.complete=="boolean"&&typeof e.visitedModules=="number"&&typeof e.visitedCallsites=="number"&&typeof e.frontierCount=="number"}function Ta(e){return Ne(e)&&typeof e.enabled=="boolean"&&(e.staticAnalysis==="available"||e.staticAnalysis==="partial"||e.staticAnalysis==="unavailable")&&e.runtimeObservation==="dispatch-only"&&e.responseShape==="consumed-fields-only"&&e.aiAssistance==="disabled"&&Array.isArray(e.reasons)}function wa(e){return Ne(e)&&typeof e.id=="string"&&typeof e.kind=="string"&&typeof e.direction=="string"&&typeof e.execution=="string"&&typeof e.proof=="string"&&typeof e.association=="string"&&Array.isArray(e.parameters)&&Ne(e.response)&&cn(e.response.consumedFields)&&cn(e.evidenceIds)&&cn(e.observationIds)}function Oo(e){return Ne(e)&&e.schemaVersion===1&&typeof e.reportId=="string"&&Ne(e.baseline)&&typeof e.baseline.registryEpoch=="string"&&typeof e.baseline.analyzerVersion=="string"&&cn(e.baseline.analyzedSourceVersions)&&Ta(e.capability)&&Array.isArray(e.dependencies)&&e.dependencies.every(wa)&&Array.isArray(e.evidence)&&Array.isArray(e.diagnostics)&&Ra(e.completeness)}function Oa(e){return Oo(e)&&Ne(e)&&Ne(e.component)&&Ne(e.component.source)&&typeof e.component.source.fileId=="string"&&typeof e.component.source.sourceVersion=="string"}function _a(e){return Oo(e)}function La(e,t){if(!bo(e)||e.providerProfileId!==t.providerProfileId||e.modelProfileId!==t.modelProfileId)throw new K;return Pt(e)}function sn(e,t){if(!an(e)||t?.jobId!==void 0&&e.jobId!==t.jobId||t?.providerProfileId!==void 0&&e.providerProfileId!==t.providerProfileId||t?.modelProfileId!==void 0&&e.modelProfileId!==t.modelProfileId)throw new K;return Pt(e)}function ka(e,t){if(!Ao(e)||e.snapshot.jobId!==t)throw new K;return Pt(e)}function Ia(e){if(!xo(e))throw new K;return Pt(e)}function Pa(e){return{...e,annotation:{...e.annotation,targets:e.annotation.targets.map(t=>({instruction:t.instruction,source:t.source,react:t.react,element:t.element,styles:t.styles,warnings:t.warnings}))}}}function _o(e){return e instanceof K&&It(e.code)?e.code:void 0}function Lo(e){let t=new Set;function o(){for(let a of t)a.abort();t.clear()}async function n(a,l,C,x=Ro){let w=new AbortController;t.add(w);try{let j=await e.fetch(a,{method:l,headers:{...C===void 0?{}:{"Content-Type":"application/json"},[on]:e.sessionToken},...C===void 0?{}:{body:JSON.stringify(C)},signal:w.signal});return await Co(j,x)}finally{t.delete(w)}}async function i(a,l){let C=new AbortController;t.add(C);try{let x=await e.fetch(kt(a,"events"),{method:"POST",headers:{"Content-Type":"application/json",[on]:e.sessionToken},body:JSON.stringify({}),signal:C.signal});if(!x.ok){await Co(x);return}if(x.body===null)throw new K;let w=x.body.getReader(),j=new TextDecoder("utf-8",{fatal:!0}),y="",s=0,V=0,$=A=>{if(A.trim().length===0)return;if(new TextEncoder().encode(A).byteLength>vo)throw new K;let T=Ia(wo(A));if(T.jobId!==a||T.sequence<=V)throw new K;V=T.sequence,l(T)};try{for(;;){let A=await w.read();if(A.done){y+=j.decode(),$(y);return}if(s+=A.value.byteLength,s>Ea)throw await w.cancel(),new K;y+=j.decode(A.value,{stream:!0});let T=y.split(`
2
- `);if(y=T.pop()??"",new TextEncoder().encode(y).byteLength>vo)throw await w.cancel(),new K;for(let W of T)$(W)}}catch(A){throw A instanceof K||A instanceof DOMException&&A.name==="AbortError"?A:new K}finally{w.releaseLock()}}finally{t.delete(C)}}let d=Object.freeze({});return Object.freeze({cancelPending:o,async sourceContext(a){let l=await n(ht.sourceContext,"POST",a);if(!va(l))throw new K;return Object.freeze({...l})},async componentDataFlowReport(a){let l=await n(ht.dataFlowComponentReport,"POST",a,e.dataFlowReportMaxBytes);if(!Oa(l))throw new K;return Pt(l)},async pageDataFlowReport(a){let l=await n(ht.dataFlowPageReport,"POST",a,e.dataFlowReportMaxBytes);if(!_a(l))throw new K;return Pt(l)},async openEditor(a){let l=await n(ht.openEditor,"POST",a);if(!Ne(l)||l.editor!=="auto"&&l.editor!=="vscode"&&l.editor!=="cursor")throw new K;return Object.freeze({editor:l.editor})},async agentCapability(a){return La(await n(ht.agentCapability,"POST",a),a)},async agentWorkspaceHealth(){let a=await n(ht.agentWorkspaceHealth,"POST",d);if(!So(a))throw new K;return Pt(a)},async createAgentJob(a){let l=Pa(a);return sn(await n(ht.agentJobs,"POST",l),a)},agentEvents:i,async agentResult(a){return ka(await n(kt(a,"result"),"POST",d),a)},async cancelAgentJob(a){return sn(await n(kt(a,"cancel"),"POST",d),{jobId:a})},async applyAgentJob(a){return sn(await n(kt(a,"apply"),"POST",d),{jobId:a})},async revertAgentJob(a){return sn(await n(kt(a,"revert"),"POST",d),{jobId:a})},dispose(){o()}})}var Na=500,ko=256;function Da(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1))}…`}function Fa(e){return nn(e)}function Io(e,t,o){if(!Fa(e))return e==="href"||e==="src"?Tt(t,o):e==="d"&&t.length>ko?`${t.slice(0,ko)}…`:Da(ae(t),Na)}function ze(e){return ae(e)}var Po=Object.freeze(["display","position","inset","top","right","bottom","left","width","height","min-width","min-height","max-width","max-height","margin","padding","box-sizing","overflow","overflow-x","overflow-y","flex","flex-direction","flex-wrap","align-items","align-content","justify-content","gap","grid-template-columns","grid-template-rows","font-family","font-size","font-weight","line-height","text-align","white-space","color","background-color","border","border-radius","opacity","visibility","z-index","transform"]);var Vt=Object.freeze({cascade:"CSS shorthand and longhand cascade resolution is not available in v1.",cssInJs:"Runtime CSS-in-JS rules may not include original TypeScript source locations.",inaccessibleStylesheet:"A stylesheet could not be inspected because browser security denied access.",selector:"A stylesheet selector could not be evaluated and was skipped.",state:"Dynamic pseudo-class and pseudo-element rules may be unavailable in the current state."});function Ma(e){return"selectorText"in e&&"style"in e}function Ha(e){return"cssRules"in e}function $a(e){if(typeof e.conditionText=="string"&&e.conditionText.length>0)return e.conditionText;let t=e.cssText.indexOf("{"),o=t<0?"":e.cssText.slice(0,t).trim();return o.length===0?void 0:o}function Ba(e,t,o,n,i){return e.join(" ").length+(t?.length??0)+o.reduce((d,a)=>d+a.selector.length+a.declarations.length+(a.source?.length??0)+(a.media?.length??0),0)+Object.entries(n).reduce((d,[a,l])=>d+a.length+l.length,0)+i.join(`
3
- `).length}function Ua(e,t){return e.href===null?void 0:Tt(e.href,t)}function No(e,t,o,n,i,d){for(let a of t){if(Ma(a)){let l=!1;try{l=e.matches(a.selectorText)}catch{d.add(Vt.selector);continue}l&&i.push(Object.freeze({selector:ze(a.selectorText),declarations:ze(a.style.cssText),...o===void 0?{}:{source:o},...n.length===0?{}:{media:n.join(" and ")}}));continue}if(Ha(a)){let l=$a(a);No(e,a.cssRules,o,l===void 0?n:[...n,l],i,d)}}}function za(e,t){if(t===void 0)return{};let o=t(e),n={};for(let i of Po){let d=ze(o.getPropertyValue(i).trim());d.length>0&&(n[i]=d)}return n}function Do(e){let t=new Set([Vt.state,Vt.cssInJs,Vt.cascade]),o=[],n=e.readCssRules??(w=>w.cssRules);for(let w of e.document.styleSheets){let j;try{j=n(w)}catch{t.add(Vt.inaccessibleStylesheet);continue}No(e.element,j,Ua(w,e.document.baseURI),[],o,t)}let i=Array.from(e.element.classList),d=e.element.getAttribute("style"),a=d===null?void 0:ze(d),l=e.getComputedStyle??e.document.defaultView?.getComputedStyle.bind(e.document.defaultView),C=Object.entries(za(e.element,l)),x=Array.from(t);for(;Ba(i,a,o,Object.fromEntries(C),x)>e.maxCharacters;){if(C.length>0){C.pop();continue}if(o.length>1){o.shift();continue}break}return Object.freeze({classNames:Object.freeze(i),...a===void 0?{}:{inlineStyle:a},matchedRules:Object.freeze(o),computed:Object.freeze(Object.fromEntries(C)),warnings:Object.freeze(x)})}var Ot=Object.freeze({maxDepth:3,maxNodes:30,maxParentDepth:2,maxTextCharacters:200}),ja=new Set(["alt","autocomplete","checked","class","colspan","contenteditable","d","disabled","download","draggable","for","height","hidden","href","id","max","maxlength","min","minlength","multiple","name","open","pattern","placeholder","readonly","rel","required","role","rowspan","selected","src","step","style","tabindex","target","title","type","width"]),Va=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function Mo(e){return e.replaceAll("&","&amp;").replaceAll('"',"&quot;").replaceAll("<","&lt;").replaceAll(">","&gt;")}function Wa(e){return ja.has(e)||e.startsWith("aria-")||e==="data-testid"}function Ho(e){let t=e.tagName.toLowerCase(),o=[],n=e.ownerDocument.baseURI;for(let i of e.attributes){let d=i.name.toLowerCase();if(!Wa(d))continue;let a=Io(d,i.value,n);a!==void 0&&o.push(`${d}="${Mo(a)}"`)}return`<${t}${o.length===0?"":` ${o.join(" ")}`}>`}function $o(e){return ae(e).replaceAll(/\s+/gu," ").trim()}function Bo(e,t,o,n){if(o.nodeCount>=Ot.maxNodes){o.truncated=!0;return}o.nodeCount+=1;let i=" ".repeat(t),d=e.tagName.toLowerCase();if(n.push(`${i}${Ho(e)}`),!Va.has(d)){for(let a of e.childNodes){if(o.nodeCount>=Ot.maxNodes){o.truncated=!0;break}if(a.nodeType===3){let l=$o(a.textContent??"");if(l.length>0){o.nodeCount+=1;let C=l.length<=Ot.maxTextCharacters?l:`${l.slice(0,Ot.maxTextCharacters)}…`;n.push(`${" ".repeat(t+1)}${Mo(C)}`)}continue}if(a.nodeType===1){if(t>=Ot.maxDepth){o.truncated=!0;continue}Bo(a,t+1,o,n)}}o.truncated&&t===0&&n.push(" …"),n.push(`${i}</${d}>`)}}function qa(e){let t=[],o=e.parentElement;for(;o!==null&&t.length<Ot.maxParentDepth;)t.push(Ho(o)),o=o.parentElement;return t}function Ga(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1)).trimEnd()}…`}function Fo(e){return Array.from(e).map(t=>/[a-z\d_-]/iu.test(t)?t:`\\${t.charCodeAt(0).toString(16)} `).join("")}function Ka(e){return e.replaceAll("\\","\\\\").replaceAll('"','\\"')}function Ja(e){let t=e.tagName.toLowerCase();if(e.id.length>0)return`${t}#${Fo(e.id)}`;let o=e.getAttribute("data-testid");if(o!==null&&o.length>0)return`${t}[data-testid="${Ka(o)}"]`;let n=Array.from(e.classList).slice(0,2).map(l=>`.${Fo(l)}`).join(""),i=e.parentElement===null?[]:Array.from(e.parentElement.children).filter(l=>l.tagName===e.tagName),d=i.indexOf(e),a=i.length>1&&d>=0?`:nth-of-type(${String(d+1)})`:"";return`${t}${n}${a}`}function Xa(e){let t=[],o=e;for(;o!==null&&t.length<5;){let n=Ja(o);if(t.unshift(n),o.id.length>0||o.hasAttribute("data-testid"))break;o=o.parentElement}return t.join(" > ")}function Uo(e){let t=["<!-- Selected element -->"],o={nodeCount:0,truncated:!1};Bo(e.element,0,o,t);let n=qa(e.element);n.length>0&&t.push("<!-- Parent context: nearest first -->",...n);let i=$o(e.element.textContent),d=e.element.getBoundingClientRect(),a=e.element.getAttribute("role");return Object.freeze({tagName:e.element.tagName.toLowerCase(),selector:Xa(e.element),sanitizedHtml:Ga(t.join(`
4
- `),e.maxCharacters),...i.length===0?{}:{textPreview:i.length<=Ot.maxTextCharacters?i:`${i.slice(0,Ot.maxTextCharacters)}…`},...a===null?{}:{role:a},rect:Object.freeze({x:d.x,y:d.y,width:d.width,height:d.height})})}function zo(e){return/Mac|iPhone|iPad|iPod/i.test(e)}function Ya(e){return e.toLowerCase()}function jo(e){return e instanceof Element?e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e.closest("[contenteditable]:not([contenteditable='false'])")!==null:!1}function Vo(e,t,o){let n=t.split("+").map(w=>w.trim().toLowerCase()).filter(w=>w.length>0),i=n.find(w=>w!=="mod"&&w!=="meta"&&w!=="ctrl"&&w!=="control"&&w!=="alt"&&w!=="option"&&w!=="shift");if(i===void 0||Ya(e.key)!==i)return!1;let d=n.includes("mod"),a=n.includes("meta")||d&&zo(o),l=n.includes("ctrl")||n.includes("control")||d&&!zo(o),C=n.includes("alt")||n.includes("option"),x=n.includes("shift");return e.metaKey===a&&e.ctrlKey===l&&e.altKey===C&&e.shiftKey===x}function Za(e){return Object.freeze({x:e.x,y:e.y,width:e.width,height:e.height})}function Qa(e){let t=e.filter(l=>l.width>0&&l.height>0),o=t[0];if(o===void 0)return;let n=o.left,i=o.top,d=o.right,a=o.bottom;for(let l of t.slice(1))n=Math.min(n,l.left),i=Math.min(i,l.top),d=Math.max(d,l.right),a=Math.max(a,l.bottom);return Object.freeze({x:n,y:i,width:d-n,height:a-i})}function Wo(e,t){if(t.startsWith("inline")){let o=Qa(Array.from(e.getClientRects()));if(o!==void 0)return o}return Za(e.getBoundingClientRect())}function qo(e,t){return Wo(e,t.getComputedStyle(e).display)}function ln(e,t){let o=t.getComputedStyle(e);if(o.display==="none"||o.visibility==="hidden")return;let n=Wo(e,o.display);return n.width>0&&n.height>0?n:void 0}var Nt="data-spotpatch-ui",pn=Object.freeze({highlight:2147483646,controls:2147483647}),_t=Object.freeze({compactInset:8,compactViewportWidth:520,desktopInset:24,dragActivationDistance:6,edgeSnapDistance:20,workbenchMaxHeight:620,workbenchMaxWidth:460});function Go(e){if(e.closest(`[${Nt}]`)!==null)return!0;let t=e.getRootNode();return t instanceof ShadowRoot&&t.host.hasAttribute(Nt)}function ei(e,t){return ln(e,t)!==void 0}function ti(e){return e.tagName==="HTML"||e.tagName==="BODY"}function Dn(e,t,o,n){let i=e.elementsFromPoint(o,n).filter(d=>!Go(d)&&ei(d,t));return i.find(d=>!ti(d))??i[0]}function Ko(e){return e instanceof Element&&Go(e)}var Fn=Object.freeze({"en-US":Object.freeze({adapter:"Adapter",boundary:"Boundary",code:"Nearby code",component:"Component",computedStyles:"Key computed styles",confidence:"Confidence",devicePixelRatio:"Device pixel ratio",element:"Selected element",file:"File",modificationConstraint:"Determine the root cause first, then implement every target instruction as one consistent, minimum-scope change. Do not modify unrelated components. If context is insufficient, state exactly what additional information is required.",modificationRequirements:"Change requirements",origin:"Origin",pageEnvironment:"Page environment",pathname:"Pathname",reactContext:"React context",reactVersion:"React",requestedChange:"Requested change",selectedTargets:e=>`Selected targets (${String(e)})`,source:"Source",stack:"Stack",styles:"Relevant styles",supported:"supported",target:e=>`Target ${String(e)}`,title:"Title",unavailable:"Unavailable",unsupported:"unsupported",url:"URL",viewport:"Viewport",warnings:"Collection warnings",none:"None"}),"zh-CN":Object.freeze({adapter:"适配器",boundary:"代码边界",code:"附近代码",component:"组件",computedStyles:"关键计算样式",confidence:"置信度",devicePixelRatio:"设备像素比",element:"选中元素",file:"文件",modificationConstraint:"请先判断根因,再把每个目标各自的修改说明作为一个原子任务,完成一致且最小范围的修改。不要合并、忽略或扩大目标说明,不要改动无关组件;如果上下文不足,请明确说明需要哪些信息。",modificationRequirements:"修改要求",origin:"定位来源",pageEnvironment:"页面环境",pathname:"路径",reactContext:"React 上下文",reactVersion:"React",requestedChange:"修改说明",selectedTargets:e=>`已选目标(${String(e)})`,source:"源码定位",stack:"组件栈",styles:"相关样式",supported:"支持",target:e=>`目标 ${String(e)}`,title:"标题",unavailable:"不可用",unsupported:"不支持",url:"URL",viewport:"视口",warnings:"采集警告",none:"无"})});function ni(e){return Math.max(0,...Array.from(e.matchAll(/`+/gu),t=>t[0].length))}function un(e,t){let o="`".repeat(Math.max(3,ni(t)+1));return`${o}${e}
1
+ import{createReact18Adapter as vs}from"@spotpatch/react-adapter";var u={INVALID_REQUEST:"INVALID_REQUEST",INVALID_TOKEN:"INVALID_TOKEN",ORIGIN_NOT_ALLOWED:"ORIGIN_NOT_ALLOWED",SOURCE_NOT_FOUND:"SOURCE_NOT_FOUND",SOURCE_OUTSIDE_ROOT:"SOURCE_OUTSIDE_ROOT",SOURCE_TOO_LARGE:"SOURCE_TOO_LARGE",EDITOR_OPEN_FAILED:"EDITOR_OPEN_FAILED",DATA_FLOW_DISABLED:"DATA_FLOW_DISABLED",DATA_FLOW_SOURCE_STALE:"DATA_FLOW_SOURCE_STALE",DATA_FLOW_ANALYSIS_CANCELLED:"DATA_FLOW_ANALYSIS_CANCELLED",AI_DISABLED:"AI_DISABLED",PROVIDER_NOT_CONFIGURED:"PROVIDER_NOT_CONFIGURED",PROVIDER_AUTH_FAILED:"PROVIDER_AUTH_FAILED",PROVIDER_PROTOCOL_UNSUPPORTED:"PROVIDER_PROTOCOL_UNSUPPORTED",MODEL_NOT_ALLOWED:"MODEL_NOT_ALLOWED",MODEL_TOOL_CALL_UNSUPPORTED:"MODEL_TOOL_CALL_UNSUPPORTED",PROVIDER_RATE_LIMITED:"PROVIDER_RATE_LIMITED",AGENT_BUSY:"AGENT_BUSY",AGENT_LIMIT_EXCEEDED:"AGENT_LIMIT_EXCEEDED",AGENT_CANCELLED:"AGENT_CANCELLED",EXTERNAL_HANDOFF_DISABLED:"EXTERNAL_HANDOFF_DISABLED",EXTERNAL_HANDOFF_UNAVAILABLE:"EXTERNAL_HANDOFF_UNAVAILABLE",HANDOFF_VALIDATION_FAILED:"HANDOFF_VALIDATION_FAILED",HANDOFF_SOURCE_STALE:"HANDOFF_SOURCE_STALE",HANDOFF_NOT_FOUND:"HANDOFF_NOT_FOUND",HANDOFF_EXPIRED:"HANDOFF_EXPIRED",HANDOFF_CURSOR_INVALID:"HANDOFF_CURSOR_INVALID",HANDOFF_RESPONSE_TOO_LARGE:"HANDOFF_RESPONSE_TOO_LARGE",BRIDGE_UNAUTHORIZED:"BRIDGE_UNAUTHORIZED",BRIDGE_PROTOCOL_MISMATCH:"BRIDGE_PROTOCOL_MISMATCH",BRIDGE_BUSY:"BRIDGE_BUSY",EXTERNAL_AGENT_BUSY:"EXTERNAL_AGENT_BUSY",ACTIVE_ADAPTER_CONFLICT:"ACTIVE_ADAPTER_CONFLICT",ACTIVE_ADAPTER_LEASE_INVALID:"ACTIVE_ADAPTER_LEASE_INVALID",ACTIVE_DISPATCH_INVALID:"ACTIVE_DISPATCH_INVALID",SESSION_NOT_FOUND:"SESSION_NOT_FOUND",SESSION_AMBIGUOUS:"SESSION_AMBIGUOUS",SESSION_CLOSED:"SESSION_CLOSED",WORKTREE_DIRTY:"WORKTREE_DIRTY",WORKTREE_NOT_REPOSITORY:"WORKTREE_NOT_REPOSITORY",WORKTREE_OPERATION_IN_PROGRESS:"WORKTREE_OPERATION_IN_PROGRESS",WORKTREE_CONFLICTED:"WORKTREE_CONFLICTED",WORKTREE_LOCAL_CHANGES_TOO_LARGE:"WORKTREE_LOCAL_CHANGES_TOO_LARGE",WORKTREE_UNTRACKED_UNSUPPORTED:"WORKTREE_UNTRACKED_UNSUPPORTED",WORKTREE_LOCAL_CHANGES_UNSUPPORTED:"WORKTREE_LOCAL_CHANGES_UNSUPPORTED",TOOL_DENIED:"TOOL_DENIED",TOOL_INPUT_INVALID:"TOOL_INPUT_INVALID",TOOL_ARGUMENTS_INVALID:"TOOL_ARGUMENTS_INVALID",TOOL_CALL_ID_CONFLICT:"TOOL_CALL_ID_CONFLICT",TOOL_PATH_DENIED:"TOOL_PATH_DENIED",PATCH_REJECTED:"PATCH_REJECTED",VALIDATION_FAILED:"VALIDATION_FAILED",APPLY_CONFLICT:"APPLY_CONFLICT",INTERNAL_ERROR:"INTERNAL_ERROR"},Zr=Object.freeze(["ASK_DISABLED","ASK_SELECTION_REQUIRED","ASK_SELECTION_STALE","ASK_QUESTION_INVALID","ASK_EXECUTOR_UNAVAILABLE","ASK_TIMEOUT","ASK_CONSENT_REQUIRED","ASK_BUSY","ASK_IDEMPOTENCY_CONFLICT","ASK_SOURCE_SCOPE_DENIED","ASK_LIMIT_EXCEEDED","ASK_ANSWER_INVALID","ASK_WRITE_ATTEMPTED","ASK_CANCELLED","ASK_RESULT_EXPIRED","ASK_PROTOCOL_INCOMPATIBLE"]),Qr=Object.freeze(Object.values(u));var ea=/data:[^\s"'<>]*;base64,[a-z0-9+/_=-]+/giu,ta=/blob:[^\s"'<>]+/giu,na=/\bbearer\s+[a-z0-9._~+/-]+=*/giu,oa=/\b(https?:\/\/)[^/\s:@]+:[^/\s@]+@/giu,ra=/\b(authorization|cookie|set-cookie|api[-_]?key|(?:access[-_]?|refresh[-_]?|auth[-_]?)?token|secret|password|default[-_]?value|value)\b(\s*[:=]\s*)("(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'|`(?:\\.|[^`\\\r\n])*`|[^\s,;"'<>]+)/giu,aa=new Set(["authorization","cookie","defaultvalue","password","setcookie","value"]),ia=500;function sa(e){return e.toLowerCase().replaceAll(/[-_:]/gu,"")}function ca(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1))}…`}function an(e){let t=sa(e);return aa.has(t)||t.includes("apikey")||t.includes("authorization")||t.includes("secret")||t.includes("token")}function J(e){return e.replace(ea,"[redacted inline data]").replace(ta,"[redacted blob URL]").replace(na,"Bearer [redacted]").replace(oa,"$1[redacted]@").replace(ra,(t,o,n,i)=>{let d=i.at(0),s=d==='"'||d==="'"||d==="`";return`${o}${n}${s?d:""}[redacted]${s?d:""}`})}function da(e){e.username="",e.password="";for(let[t,o]of e.searchParams)an(t)?e.searchParams.set(t,"[redacted]"):e.searchParams.set(t,J(o));return/token|secret|authorization|api[-_]?key/iu.test(e.hash)&&(e.hash="#[redacted]"),e.toString()}function wt(e,t){let o=e.trim();if(/^(?:blob|data|javascript):/iu.test(o))return"[redacted URL]";let n=J(o);try{let i=new URL(n,t),d=da(i),s=new URL(t);return!/^[a-z][a-z\d+.-]*:/iu.test(n)&&i.origin===s.origin?`${i.pathname}${i.search}${i.hash}`:d}catch{return ca(n,ia)}}var Ze=Object.freeze({idCharacters:128,contextCharacters:1200,labelCharacters:160,selectorCharacters:2048,ancestorDepth:8,locatorDepth:32}),kn=["captured","changed","detached","restored"],Vt="data-spotpatch-instance",sn="Selected targets can be different rendered instances of the same source. Preserve each target and its instruction even when source locations match. Instance IDs identify captures, not business records. Selectors are capture-time evidence, never stable record IDs. Nearby DOM context is not a proven component boundary. Changed, detached, or restored instances are historical snapshots; verify their identity before changing code. Follow the requested scope: a selected instance does not by itself authorize changes to every instance or imply instance-only changes. For an instance-only request, establish the corresponding record/condition and check the shared component's impact; if evidence is insufficient, explain what is missing rather than guessing.";var ae="/__spotpatch/v1",cn="X-SpotPatch-Token",yt=Object.freeze({bootstrap:`${ae}/bootstrap`,sourceContext:`${ae}/source-context`,openEditor:`${ae}/open-editor`,dataFlowComponentReport:`${ae}/data-flow/component-report`,dataFlowPageReport:`${ae}/data-flow/page-report`,agentCapability:`${ae}/agent/capability`,agentWorkspaceHealth:`${ae}/agent/workspace-health`,agentJobs:`${ae}/agent/jobs`,askCapability:`${ae}/ask/capability`,askJobs:`${ae}/ask/jobs`,externalHandoffCapability:`${ae}/external-handoff/capability`,externalHandoffPublish:`${ae}/external-handoff/publish`,externalHandoffStatus:`${ae}/external-handoff/status`,externalHandoffResolveDelivery:`${ae}/external-handoff/resolve-delivery`,externalAgentControlStatus:`${ae}/external-agent/control/status`,externalAgentControlConnect:`${ae}/external-agent/control/connect`,externalAgentControlDisconnect:`${ae}/external-agent/control/disconnect`,externalAgentControlCancel:`${ae}/external-agent/control/cancel`,externalAgentEvents:`${ae}/external-agent/events`,externalAgentResult:`${ae}/external-agent/result`});function Nt(e,t){return`${yt.agentJobs}/${encodeURIComponent(e)}/${t}`}var la=Object.freeze(["review","auto","trusted-auto"]),pa=Object.freeze({maxTurns:20,maxToolCalls:80,maxChangedFiles:20,maxDiffBytes:512e3,maxReadBytesPerFile:256e3,maxToolOutputCharacters:4e4,maxProviderResponseBytes:2e6,providerConnectTimeoutMs:15e3,providerFirstByteTimeoutMs:3e4,providerIdleTimeoutMs:6e4,checkTimeoutMs:12e4,jobTimeoutMs:6e5}),Nn=Object.freeze(["queued","preparing","running","validating","awaiting-review","applying","applied","completed","cancelling","cancelled","reverting","reverted","failed"]),Pn=Object.freeze(["unknown","probing","agent-ready","prompt-only","unavailable"]),ua=Object.freeze(["ready","consent-required","blocked"]),ga=Object.freeze({maxUntrackedFiles:1e3,maxUntrackedBytes:20*1024*1024}),Dn=Object.freeze(["added","modified","deleted"]),Mn=Object.freeze(["passed","failed","cancelled","timed-out"]);var Ht="data-spotpatch-source",fa=/^([A-Za-z0-9_-]+):([1-9]\d*):([1-9]\d*)(:astro)?$/;function Fn(e){if(e===null)return;let t=fa.exec(e);if(t===null)return;let o=t[1],n=Number(t[2]),i=Number(t[3]);if(!(o===void 0||!Number.isSafeInteger(n)||!Number.isSafeInteger(i)))return Object.freeze({fileId:o,line:n,column:i,...t[4]===void 0?{}:{kind:"astro"}})}var Hn="https://github.com/huanglvjing/spotpatch";function So(e,t){return Object.freeze({...e,...e.relativePath===void 0&&t!==void 0?{relativePath:t.relativePath}:{}})}function ma(e){return Object.freeze({...e,componentStack:Object.freeze([...e.componentStack]),...e.source===void 0?{}:{source:So(e.source)}})}function ya(e){return Object.freeze({...e,...e.instance===void 0?{}:{instance:Object.freeze({...e.instance})},rect:Object.freeze({...e.rect})})}function ba(e){return Object.freeze({...e,classNames:Object.freeze([...e.classNames]),matchedRules:Object.freeze(e.matchedRules.map(t=>Object.freeze({...t}))),computed:Object.freeze({...e.computed}),warnings:Object.freeze([...e.warnings])})}function Sa(e){return Object.freeze({instruction:e.instruction.trim(),...e.page===void 0?{}:{page:Object.freeze({...e.page})},source:So(e.source,e.code),react:ma(e.react),element:ya(e.element),styles:ba(e.styles),...e.code===void 0?{}:{code:Object.freeze({...e.code})},warnings:Object.freeze([...e.warnings])})}function Eo(e){if(e.targets.length<1||e.targets.length>20)throw new RangeError(`SpotPatch annotations require between 1 and ${String(20)} targets.`);let t=e.targets.map(o=>o.instruction.trim());if(t.some(o=>o.length===0||o.length>2e3)||t.reduce((o,n)=>o+n.length,0)>4e3)throw new RangeError("SpotPatch target instructions exceed the allowed bounds.");return Object.freeze({schemaVersion:3,id:e.id,locale:e.locale,page:Object.freeze({...e.page}),targets:Object.freeze(e.targets.map(Sa)),createdAt:e.createdAt})}var Ea=new Set(Object.values(u)),Aa=new Set(Pn),xa=new Set(Mn),va=new Set(Dn),xo=new Set(Nn),Ca=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,Ra=/^[A-Za-z0-9_-]+$/,Ta=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,9})?Z$/;function bt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function De(e,t){return Object.keys(e).every(o=>t.includes(o))}function ve(e,t,o=0){return typeof e=="string"&&e.length>=o&&e.length<=t}function qt(e){return ve(e,64,1)&&typeof e=="string"&&Ca.test(e)}function $n(e){return ve(e,128,22)&&typeof e=="string"&&Ra.test(e)}function Wt(e){return typeof e=="string"&&Ta.test(e)&&Number.isFinite(Date.parse(e))}function Ot(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>=0}function vo(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>0}function Ao(e,t){return e===void 0||ve(e,t)}function Pt(e){return typeof e=="string"&&Ea.has(e)}function Co(e){return!bt(e)||!De(e,["providerProfileId","providerLabel","modelProfileId","modelLabel","protocol","state","authenticated","modelAvailable","toolCalling","toolResultContinuation","streaming","checkedAt","errorCode"])?!1:qt(e.providerProfileId)&&ve(e.providerLabel,100)&&qt(e.modelProfileId)&&ve(e.modelLabel,100)&&(e.protocol==="responses"||e.protocol==="chat-completions")&&typeof e.state=="string"&&Aa.has(e.state)&&typeof e.authenticated=="boolean"&&typeof e.modelAvailable=="boolean"&&typeof e.toolCalling=="boolean"&&typeof e.toolResultContinuation=="boolean"&&typeof e.streaming=="boolean"&&(e.checkedAt===void 0||Wt(e.checkedAt))&&(e.errorCode===void 0||Pt(e.errorCode))}function Ro(e){if(!bt(e)||!De(e,["state","checkedAt","changes","canIncludeLocalChanges","errorCode"])||e.state!=="ready"&&e.state!=="consent-required"&&e.state!=="blocked"||!Wt(e.checkedAt)||typeof e.canIncludeLocalChanges!="boolean"||e.errorCode!==void 0&&!Pt(e.errorCode)||!bt(e.changes)||!De(e.changes,["staged","unstaged","untracked","conflicted","total"]))return!1;let t=e.changes,{staged:o,unstaged:n,untracked:i,conflicted:d,total:s}=t;return!Ot(o)||!Ot(n)||!Ot(i)||!Ot(d)||!Ot(s)||s<o||s<n||s<i||s<d||s>o+n+i?!1:e.state==="ready"?s===0&&!e.canIncludeLocalChanges&&e.errorCode===void 0:e.state==="consent-required"?s>0&&d===0&&e.canIncludeLocalChanges&&e.errorCode===void 0:!e.canIncludeLocalChanges&&e.errorCode!==void 0}function ln(e){return!bt(e)||!De(e,["jobId","status","providerProfileId","providerLabel","modelProfileId","modelLabel","phaseMessage","createdAt","updatedAt","canCancel","canApply","canRevert","errorCode"])?!1:$n(e.jobId)&&typeof e.status=="string"&&xo.has(e.status)&&qt(e.providerProfileId)&&ve(e.providerLabel,100)&&qt(e.modelProfileId)&&ve(e.modelLabel,100)&&ve(e.phaseMessage,1024)&&Wt(e.createdAt)&&Wt(e.updatedAt)&&typeof e.canCancel=="boolean"&&typeof e.canApply=="boolean"&&typeof e.canRevert=="boolean"&&(e.errorCode===void 0||Pt(e.errorCode))}function wa(e){return bt(e)&&De(e,["relativePath","kind","additions","deletions"])&&ve(e.relativePath,1024)&&typeof e.kind=="string"&&va.has(e.kind)&&Ot(e.additions)&&Ot(e.deletions)}function To(e){return bt(e)&&De(e,["checkId","label","status","durationMs","output"])&&qt(e.checkId)&&ve(e.label,100)&&typeof e.status=="string"&&xa.has(e.status)&&Ot(e.durationMs)&&ve(e.output,8e4)}function Oa(e){return bt(e)&&De(e,["jobId","summary","diff","files","checks"])&&$n(e.jobId)&&ve(e.summary,8e4)&&ve(e.diff,1e6)&&Array.isArray(e.files)&&e.files.length<=100&&e.files.every(wa)&&Array.isArray(e.checks)&&e.checks.length<=100&&e.checks.every(To)}function wo(e){return bt(e)&&De(e,["snapshot","result"])&&ln(e.snapshot)&&(e.result===void 0||Oa(e.result)&&e.result.jobId===e.snapshot.jobId)}function _a(e){return bt(e)&&De(e,["schemaVersion","sequence","jobId","status","timestamp","type","data"])&&e.schemaVersion===2&&vo(e.sequence)&&$n(e.jobId)&&typeof e.status=="string"&&xo.has(e.status)&&Wt(e.timestamp)&&typeof e.type=="string"&&bt(e.data)}function Oo(e){if(!_a(e))return!1;let t=e.data;switch(e.type){case"snapshot":return De(t,["snapshot"])&&ln(t.snapshot)&&t.snapshot.jobId===e.jobId&&t.snapshot.status===e.status;case"phase":return De(t,["message"])&&ve(t.message,1024);case"tool":return De(t,["turn","toolCallId","toolName","state","relativePath","checkLabel"])&&vo(t.turn)&&ve(t.toolCallId,256)&&ve(t.toolName,100)&&(t.state==="started"||t.state==="succeeded"||t.state==="failed")&&Ao(t.relativePath,1024)&&Ao(t.checkLabel,100);case"check":return De(t,["result"])&&To(t.result);case"result-ready":return De(t,["hasResult"])&&t.hasResult===!0;case"error":return De(t,["code","message"])&&Pt(t.code)&&ve(t.message,1024);default:return!1}}var Io=2e6,_o=1e5,La=4e6,K=class extends Error{code;constructor(t){super("SpotPatch local API request failed."),this.name="RuntimeApiError",this.code=t}};function Me(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ia(e){if(!(!Me(e)||e.ok!==!1||!Me(e.error)))return Pt(e.error.code)?e.error.code:void 0}function ka(e){if(!Me(e)||e.ok!==!0||!("data"in e))throw new K;return e.data}function Na(e){return Me(e)&&typeof e.relativePath=="string"&&(e.language==="tsx"||e.language==="jsx"||e.language==="astro")&&typeof e.startLine=="number"&&typeof e.endLine=="number"&&typeof e.excerpt=="string"&&(e.boundary==="component"||e.boundary==="nearby-lines")}function ko(e){if(!(!Me(e)&&!Array.isArray(e))&&!Object.isFrozen(e)){for(let t of Object.values(e))ko(t);Object.freeze(e)}}function Dt(e){return ko(e),e}async function Pa(e,t){let o=Number(e.headers.get("content-length"));if(Number.isFinite(o)&&o>t)throw new K;if(e.body===null)throw new K;let n=e.body.getReader(),i=new TextDecoder("utf-8",{fatal:!0}),d=0,s="";try{for(;;){let p=await n.read();if(p.done)return s+=i.decode(),s;if(d+=p.value.byteLength,d>t)throw await n.cancel(),new K;s+=i.decode(p.value,{stream:!0})}}catch(p){throw p instanceof K?p:new K}finally{n.releaseLock()}}function No(e){try{return JSON.parse(e)}catch{throw new K}}async function Lo(e,t=Io){let o=No(await Pa(e,t));if(!e.ok)throw new K(Ia(o));return ka(o)}function un(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Da(e){return Me(e)&&typeof e.complete=="boolean"&&typeof e.visitedModules=="number"&&typeof e.visitedCallsites=="number"&&typeof e.frontierCount=="number"}function Ma(e){return Me(e)&&typeof e.enabled=="boolean"&&(e.staticAnalysis==="available"||e.staticAnalysis==="partial"||e.staticAnalysis==="unavailable")&&e.runtimeObservation==="dispatch-only"&&e.responseShape==="consumed-fields-only"&&e.aiAssistance==="disabled"&&Array.isArray(e.reasons)}function Fa(e){return Me(e)&&typeof e.id=="string"&&typeof e.kind=="string"&&typeof e.direction=="string"&&typeof e.execution=="string"&&typeof e.proof=="string"&&typeof e.association=="string"&&Array.isArray(e.parameters)&&Me(e.response)&&un(e.response.consumedFields)&&un(e.evidenceIds)&&un(e.observationIds)}function Po(e){return Me(e)&&e.schemaVersion===1&&typeof e.reportId=="string"&&Me(e.baseline)&&typeof e.baseline.registryEpoch=="string"&&typeof e.baseline.analyzerVersion=="string"&&un(e.baseline.analyzedSourceVersions)&&Ma(e.capability)&&Array.isArray(e.dependencies)&&e.dependencies.every(Fa)&&Array.isArray(e.evidence)&&Array.isArray(e.diagnostics)&&Da(e.completeness)}function Ha(e){return Po(e)&&Me(e)&&Me(e.component)&&Me(e.component.source)&&typeof e.component.source.fileId=="string"&&typeof e.component.source.sourceVersion=="string"}function $a(e){return Po(e)}function Ba(e,t){if(!Co(e)||e.providerProfileId!==t.providerProfileId||e.modelProfileId!==t.modelProfileId)throw new K;return Dt(e)}function pn(e,t){if(!ln(e)||t?.jobId!==void 0&&e.jobId!==t.jobId||t?.providerProfileId!==void 0&&e.providerProfileId!==t.providerProfileId||t?.modelProfileId!==void 0&&e.modelProfileId!==t.modelProfileId)throw new K;return Dt(e)}function Ua(e,t){if(!wo(e)||e.snapshot.jobId!==t)throw new K;return Dt(e)}function za(e){if(!Oo(e))throw new K;return Dt(e)}function ja(e){return{...e,annotation:{...e.annotation,targets:e.annotation.targets.map(t=>({instruction:t.instruction,source:t.source,react:t.react,element:t.element,styles:t.styles,warnings:t.warnings}))}}}function Do(e){return e instanceof K&&Pt(e.code)?e.code:void 0}function Mo(e){let t=new Set;function o(){for(let s of t)s.abort();t.clear()}async function n(s,p,x,E=Io){let v=new AbortController;t.add(v);try{let j=await e.fetch(s,{method:p,headers:{...x===void 0?{}:{"Content-Type":"application/json"},[cn]:e.sessionToken},...x===void 0?{}:{body:JSON.stringify(x)},signal:v.signal});return await Lo(j,E)}finally{t.delete(v)}}async function i(s,p){let x=new AbortController;t.add(x);try{let E=await e.fetch(Nt(s,"events"),{method:"POST",headers:{"Content-Type":"application/json",[cn]:e.sessionToken},body:JSON.stringify({}),signal:x.signal});if(!E.ok){await Lo(E);return}if(E.body===null)throw new K;let v=E.body.getReader(),j=new TextDecoder("utf-8",{fatal:!0}),O="",r=0,F=0,$=V=>{if(V.trim().length===0)return;if(new TextEncoder().encode(V).byteLength>_o)throw new K;let S=za(No(V));if(S.jobId!==s||S.sequence<=F)throw new K;F=S.sequence,p(S)};try{for(;;){let V=await v.read();if(V.done){O+=j.decode(),$(O);return}if(r+=V.value.byteLength,r>La)throw await v.cancel(),new K;O+=j.decode(V.value,{stream:!0});let S=O.split(`
2
+ `);if(O=S.pop()??"",new TextEncoder().encode(O).byteLength>_o)throw await v.cancel(),new K;for(let T of S)$(T)}}catch(V){throw V instanceof K||V instanceof DOMException&&V.name==="AbortError"?V:new K}finally{v.releaseLock()}}finally{t.delete(x)}}let d=Object.freeze({});return Object.freeze({cancelPending:o,async sourceContext(s){let p=await n(yt.sourceContext,"POST",s);if(!Na(p))throw new K;return Object.freeze({...p})},async componentDataFlowReport(s){let p=await n(yt.dataFlowComponentReport,"POST",s,e.dataFlowReportMaxBytes);if(!Ha(p))throw new K;return Dt(p)},async pageDataFlowReport(s){let p=await n(yt.dataFlowPageReport,"POST",s,e.dataFlowReportMaxBytes);if(!$a(p))throw new K;return Dt(p)},async openEditor(s){let p=await n(yt.openEditor,"POST",s);if(!Me(p)||p.editor!=="auto"&&p.editor!=="vscode"&&p.editor!=="cursor")throw new K;return Object.freeze({editor:p.editor})},async agentCapability(s){return Ba(await n(yt.agentCapability,"POST",s),s)},async agentWorkspaceHealth(){let s=await n(yt.agentWorkspaceHealth,"POST",d);if(!Ro(s))throw new K;return Dt(s)},async createAgentJob(s){let p=ja(s);return pn(await n(yt.agentJobs,"POST",p),s)},agentEvents:i,async agentResult(s){return Ua(await n(Nt(s,"result"),"POST",d),s)},async cancelAgentJob(s){return pn(await n(Nt(s,"cancel"),"POST",d),{jobId:s})},async applyAgentJob(s){return pn(await n(Nt(s,"apply"),"POST",d),{jobId:s})},async revertAgentJob(s){return pn(await n(Nt(s,"revert"),"POST",d),{jobId:s})},dispose(){o()}})}var Va=500,Fo=256;function qa(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1))}…`}function Wa(e){return an(e)}function Ho(e,t,o){if(!Wa(e))return e==="href"||e==="src"?wt(t,o):e==="d"&&t.length>Fo?`${t.slice(0,Fo)}…`:qa(J(t),Va)}function Ve(e){return J(e)}var $o=Object.freeze(["display","position","inset","top","right","bottom","left","width","height","min-width","min-height","max-width","max-height","margin","padding","box-sizing","overflow","overflow-x","overflow-y","flex","flex-direction","flex-wrap","align-items","align-content","justify-content","gap","grid-template-columns","grid-template-rows","font-family","font-size","font-weight","line-height","text-align","white-space","color","background-color","border","border-radius","opacity","visibility","z-index","transform"]);var Gt=Object.freeze({cascade:"CSS shorthand and longhand cascade resolution is not available in v1.",cssInJs:"Runtime CSS-in-JS rules may not include original TypeScript source locations.",inaccessibleStylesheet:"A stylesheet could not be inspected because browser security denied access.",selector:"A stylesheet selector could not be evaluated and was skipped.",state:"Dynamic pseudo-class and pseudo-element rules may be unavailable in the current state."});function Ga(e){return"selectorText"in e&&"style"in e}function Ka(e){return"cssRules"in e}function Ja(e){if(typeof e.conditionText=="string"&&e.conditionText.length>0)return e.conditionText;let t=e.cssText.indexOf("{"),o=t<0?"":e.cssText.slice(0,t).trim();return o.length===0?void 0:o}function Xa(e,t,o,n,i){return e.join(" ").length+(t?.length??0)+o.reduce((d,s)=>d+s.selector.length+s.declarations.length+(s.source?.length??0)+(s.media?.length??0),0)+Object.entries(n).reduce((d,[s,p])=>d+s.length+p.length,0)+i.join(`
3
+ `).length}function Ya(e,t){return e.href===null?void 0:wt(e.href,t)}function Bo(e,t,o,n,i,d){for(let s of t){if(Ga(s)){let p=!1;try{p=e.matches(s.selectorText)}catch{d.add(Gt.selector);continue}p&&i.push(Object.freeze({selector:Ve(s.selectorText),declarations:Ve(s.style.cssText),...o===void 0?{}:{source:o},...n.length===0?{}:{media:n.join(" and ")}}));continue}if(Ka(s)){let p=Ja(s);Bo(e,s.cssRules,o,p===void 0?n:[...n,p],i,d)}}}function Za(e,t){if(t===void 0)return{};let o=t(e),n={};for(let i of $o){let d=Ve(o.getPropertyValue(i).trim());d.length>0&&(n[i]=d)}return n}function Uo(e){let t=new Set([Gt.state,Gt.cssInJs,Gt.cascade]),o=[],n=e.readCssRules??(v=>v.cssRules);for(let v of e.document.styleSheets){let j;try{j=n(v)}catch{t.add(Gt.inaccessibleStylesheet);continue}Bo(e.element,j,Ya(v,e.document.baseURI),[],o,t)}let i=Array.from(e.element.classList),d=e.element.getAttribute("style"),s=d===null?void 0:Ve(d),p=e.getComputedStyle??e.document.defaultView?.getComputedStyle.bind(e.document.defaultView),x=Object.entries(Za(e.element,p)),E=Array.from(t);for(;Xa(i,s,o,Object.fromEntries(x),E)>e.maxCharacters;){if(x.length>0){x.pop();continue}if(o.length>1){o.shift();continue}break}return Object.freeze({classNames:Object.freeze(i),...s===void 0?{}:{inlineStyle:s},matchedRules:Object.freeze(o),computed:Object.freeze(Object.fromEntries(x)),warnings:Object.freeze(E)})}function Qa(e){return Array.from(e).map(t=>/[a-z\d_-]/iu.test(t)?t:`\\${(t.codePointAt(0)??0).toString(16)} `).join("")}function zo(e,t){if(t.length>Ze.selectorCharacters)return!1;try{let o=e.ownerDocument.querySelectorAll(t);return o.length===1&&o[0]===e}catch{return!1}}function jo(e){if(!e.isConnected||e.getRootNode()!==e.ownerDocument)return"";let t=[],o=e;for(;o!==null&&t.length<Ze.locatorDepth;){let n=o.localName,i=o.getAttribute("data-testid"),d=[...o.id.length>0&&J(o.id)===o.id?[`${n}#${Qa(o.id)}`]:[],...i&&J(i)===i?[`${n}[data-testid="${i.replaceAll("\\","\\\\").replaceAll('"','\\"')}"]`]:[]];for(let E of d){let v=[E,...t].join(" > ");if(J(v)===v&&zo(e,v))return v}let s=o.parentElement===null?[o]:Array.from(o.parentElement.children).filter(E=>E.localName===n),p=s.length>1?`${n}:nth-of-type(${String(s.indexOf(o)+1)})`:n;t.unshift(p);let x=t.join(" > ");if(zo(e,x))return x;if(x.length>Ze.selectorCharacters)return"";o=o.parentElement}return""}var _t=Object.freeze({maxDepth:3,maxNodes:30,maxParentDepth:2,maxTextCharacters:200}),ei=new Set(["alt","autocomplete","checked","class","colspan","contenteditable","d","disabled","download","draggable","for","height","hidden","href","id","max","maxlength","min","minlength","multiple","name","open","pattern","placeholder","readonly","rel","required","role","rowspan","selected","src","step","style","tabindex","target","title","type","width"]),ti=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]);function Vo(e){return e.replaceAll("&","&amp;").replaceAll('"',"&quot;").replaceAll("<","&lt;").replaceAll(">","&gt;")}function ni(e){return ei.has(e)||e.startsWith("aria-")||e==="data-testid"||e===Vt}function qo(e){let t=e.tagName.toLowerCase(),o=[],n=e.ownerDocument.baseURI;for(let i of e.attributes){let d=i.name.toLowerCase();if(!ni(d))continue;let s=Ho(d,i.value,n);s!==void 0&&o.push(`${d}="${Vo(s)}"`)}return`<${t}${o.length===0?"":` ${o.join(" ")}`}>`}function Wo(e){return J(e).replaceAll(/\s+/gu," ").trim()}function Go(e,t,o,n){if(o.nodeCount>=_t.maxNodes){o.truncated=!0;return}o.nodeCount+=1;let i=" ".repeat(t),d=e.tagName.toLowerCase();if(n.push(`${i}${qo(e)}`),!ti.has(d)){for(let s of e.childNodes){if(o.nodeCount>=_t.maxNodes){o.truncated=!0;break}if(s.nodeType===3){let p=Wo(s.textContent??"");if(p.length>0){o.nodeCount+=1;let x=p.length<=_t.maxTextCharacters?p:`${p.slice(0,_t.maxTextCharacters)}…`;n.push(`${" ".repeat(t+1)}${Vo(x)}`)}continue}if(s.nodeType===1){if(t>=_t.maxDepth){o.truncated=!0;continue}Go(s,t+1,o,n)}}o.truncated&&t===0&&n.push(" …"),n.push(`${i}</${d}>`)}}function oi(e){let t=[],o=e.parentElement;for(;o!==null&&t.length<_t.maxParentDepth;)t.push(qo(o)),o=o.parentElement;return t}function ri(e,t){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1)).trimEnd()}…`}function Bn(e){let t=["<!-- Selected element -->"],o={nodeCount:0,truncated:!1};Go(e.element,0,o,t);let n=oi(e.element);n.length>0&&t.push("<!-- Parent context: nearest first -->",...n);let i=Wo(e.element.textContent),d=e.element.getBoundingClientRect(),s=e.element.getAttribute("role");return Object.freeze({tagName:e.element.tagName.toLowerCase(),selector:jo(e.element),sanitizedHtml:ri(t.join(`
4
+ `),e.maxCharacters),...i.length===0?{}:{textPreview:i.length<=_t.maxTextCharacters?i:`${i.slice(0,_t.maxTextCharacters)}…`},...s===null?{}:{role:s},rect:Object.freeze({x:d.x,y:d.y,width:d.width,height:d.height})})}function ai(e){let t=e;for(let n=0;t!==null&&n<Ze.ancestorDepth&&!(t===e.ownerDocument.body||t===e.ownerDocument.documentElement);n+=1){if(t.hasAttribute(Vt)||t.matches("article, li, tr, [role=row], [role=listitem]"))return t;let i=t.getAttribute(Ht);if(i!==null&&t.parentElement!==null&&Array.from(t.parentElement.children).some(d=>d!==t&&d.getAttribute(Ht)===i))return t;t=t.parentElement}let o=e.parentElement;return o===null||o===e.ownerDocument.body||o===e.ownerDocument.documentElement?e:o}function Ko(e,t,o){let n=Bn({element:e,maxCharacters:o}),i=ai(e),d=Bn({element:i,maxCharacters:Ze.contextCharacters});return Object.freeze({scope:i,context:Object.freeze({...n,instance:Object.freeze({id:t,state:"captured",selectorStatus:n.selector.length>0?"unique-at-capture":"unavailable",label:(d.textPreview??n.textPreview??n.tagName).slice(0,Ze.labelCharacters),context:d.sanitizedHtml})})})}function fn(e,t){return e.instance===void 0?e:Object.freeze({...e,instance:Object.freeze({...e.instance,state:t})})}function Jo(e,t,o){return!e.isConnected||e.getRootNode()!==e.ownerDocument?"detached":t.contains(e)?o.some(n=>t.contains(n.target)&&!(n.type==="attributes"&&n.attributeName==="style"))?"changed":void 0:"changed"}function Xo(e){return/Mac|iPhone|iPad|iPod/i.test(e)}function ii(e){return e.toLowerCase()}function Yo(e){return e instanceof Element?e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement||e.closest("[contenteditable]:not([contenteditable='false'])")!==null:!1}function Zo(e,t,o){let n=t.split("+").map(v=>v.trim().toLowerCase()).filter(v=>v.length>0),i=n.find(v=>v!=="mod"&&v!=="meta"&&v!=="ctrl"&&v!=="control"&&v!=="alt"&&v!=="option"&&v!=="shift");if(i===void 0||ii(e.key)!==i)return!1;let d=n.includes("mod"),s=n.includes("meta")||d&&Xo(o),p=n.includes("ctrl")||n.includes("control")||d&&!Xo(o),x=n.includes("alt")||n.includes("option"),E=n.includes("shift");return e.metaKey===s&&e.ctrlKey===p&&e.altKey===x&&e.shiftKey===E}function si(e){return Object.freeze({x:e.x,y:e.y,width:e.width,height:e.height})}function ci(e){let t=e.filter(p=>p.width>0&&p.height>0),o=t[0];if(o===void 0)return;let n=o.left,i=o.top,d=o.right,s=o.bottom;for(let p of t.slice(1))n=Math.min(n,p.left),i=Math.min(i,p.top),d=Math.max(d,p.right),s=Math.max(s,p.bottom);return Object.freeze({x:n,y:i,width:d-n,height:s-i})}function Qo(e,t){if(t.startsWith("inline")){let o=ci(Array.from(e.getClientRects()));if(o!==void 0)return o}return si(e.getBoundingClientRect())}function er(e,t){return Qo(e,t.getComputedStyle(e).display)}function hn(e,t){let o=t.getComputedStyle(e);if(o.display==="none"||o.visibility==="hidden")return;let n=Qo(e,o.display);return n.width>0&&n.height>0?n:void 0}var Mt="data-spotpatch-ui",mn=Object.freeze({highlight:2147483646,controls:2147483647}),Lt=Object.freeze({compactInset:8,compactViewportWidth:520,desktopInset:24,dragActivationDistance:6,edgeSnapDistance:20,workbenchMaxHeight:620,workbenchMaxWidth:460});function tr(e){if(e.closest(`[${Mt}]`)!==null)return!0;let t=e.getRootNode();return t instanceof ShadowRoot&&t.host.hasAttribute(Mt)}function di(e,t){return hn(e,t)!==void 0}function li(e){return e.tagName==="HTML"||e.tagName==="BODY"}function Un(e,t,o,n){let i=e.elementsFromPoint(o,n).filter(d=>!tr(d)&&di(d,t));return i.find(d=>!li(d))??i[0]}function nr(e){return e instanceof Element&&tr(e)}var zn=Object.freeze({"en-US":Object.freeze({adapter:"Adapter",boundary:"Boundary",code:"Nearby code",component:"Component",computedStyles:"Key computed styles",confidence:"Confidence",devicePixelRatio:"Device pixel ratio",element:"Selected element",instance:"Captured instance (untrusted selection-time evidence)",file:"File",modificationConstraint:"Determine the root cause first, then implement every target instruction as one consistent, minimum-scope change. Do not modify unrelated components. If context is insufficient, state exactly what additional information is required.",modificationRequirements:"Change requirements",origin:"Origin",pageEnvironment:"Page environment",pathname:"Pathname",reactContext:"React context",reactVersion:"React",requestedChange:"Requested change",selectedTargets:e=>`Selected targets (${String(e)})`,source:"Source",stack:"Stack",styles:"Relevant styles",supported:"supported",target:e=>`Target ${String(e)}`,title:"Title",unavailable:"Unavailable",unsupported:"unsupported",url:"URL",viewport:"Viewport",warnings:"Collection warnings",none:"None"}),"zh-CN":Object.freeze({adapter:"适配器",boundary:"代码边界",code:"附近代码",component:"组件",computedStyles:"关键计算样式",confidence:"置信度",devicePixelRatio:"设备像素比",element:"选中元素",instance:"捕获实例(选择时刻的不可信参考数据)",file:"文件",modificationConstraint:"请先判断根因,再把每个目标各自的修改说明作为一个原子任务,完成一致且最小范围的修改。不要合并、忽略或扩大目标说明,不要改动无关组件;如果上下文不足,请明确说明需要哪些信息。",modificationRequirements:"修改要求",origin:"定位来源",pageEnvironment:"页面环境",pathname:"路径",reactContext:"React 上下文",reactVersion:"React",requestedChange:"修改说明",selectedTargets:e=>`已选目标(${String(e)})`,source:"源码定位",stack:"组件栈",styles:"相关样式",supported:"支持",target:e=>`目标 ${String(e)}`,title:"标题",unavailable:"不可用",unsupported:"不支持",url:"URL",viewport:"视口",warnings:"采集警告",none:"无"})});function pi(e){return Math.max(0,...Array.from(e.matchAll(/`+/gu),t=>t[0].length))}function yn(e,t){let o="`".repeat(Math.max(3,pi(t)+1));return`${o}${e}
5
5
  ${t}
6
- ${o}`}function Xo(e,t){let o=e.code?.relativePath??e.source.relativePath,n=e.source.line,i=e.source.column;return o===void 0?t.unavailable:`${ae(o)}${n===void 0?"":`:${String(n)}`}${i===void 0?"":`:${String(i)}`}`}function Yo(e,t){return e.split(`
7
- `).find(o=>/^\s*<[a-z][^>]*>/iu.test(o))?.trim()??t}function oi(e){let t=[e.source===void 0?void 0:`/* source: ${ze(e.source)} */`,e.media===void 0?void 0:`/* condition: ${ze(e.media)} */`].filter(n=>n!==void 0),o=`${ze(e.selector)} {
8
- ${ze(e.declarations)}
6
+ ${o}`}function rr(e,t){let o=e.code?.relativePath??e.source.relativePath,n=e.source.line,i=e.source.column;return o===void 0?t.unavailable:`${J(o)}${n===void 0?"":`:${String(n)}`}${i===void 0?"":`:${String(i)}`}`}function ar(e,t){return e.split(`
7
+ `).find(o=>/^\s*<[a-z][^>]*>/iu.test(o))?.trim()??t}function ui(e){let t=[e.source===void 0?void 0:`/* source: ${Ve(e.source)} */`,e.media===void 0?void 0:`/* condition: ${Ve(e.media)} */`].filter(n=>n!==void 0),o=`${Ve(e.selector)} {
8
+ ${Ve(e.declarations)}
9
9
  }`;return[...t,o].join(`
10
- `)}function ri(e,t,o){let i=[...[e.styles.classNames.length===0?void 0:`/* classes: ${e.styles.classNames.map(ze).join(" ")} */`,e.styles.inlineStyle===void 0?void 0:`/* inline: ${ze(e.styles.inlineStyle)} */`].filter(d=>d!==void 0),...t.map(oi)];return i.length===0?o.unavailable:un("css",i.join(`
10
+ `)}function gi(e,t,o){let i=[...[e.styles.classNames.length===0?void 0:`/* classes: ${e.styles.classNames.map(Ve).join(" ")} */`,e.styles.inlineStyle===void 0?void 0:`/* inline: ${Ve(e.styles.inlineStyle)} */`].filter(d=>d!==void 0),...t.map(ui)];return i.length===0?o.unavailable:yn("css",i.join(`
11
11
 
12
- `))}function ai(e,t){return e.length===0?t.unavailable:un("css",e.map(([o,n])=>`${ze(o)}: ${ze(n)};`).join(`
13
- `))}function ii(e,t,o,n){let i=[`- ${n.adapter}: ${e.react.supported?n.supported:n.unsupported}`,...e.react.version===void 0?[]:[`- ${n.reactVersion}: ${ae(e.react.version)}`],...e.react.componentName===void 0?[]:[`- ${n.component}: ${ae(e.react.componentName)}`],...t.reactStack.length===0?[]:[`- ${n.stack}: ${t.reactStack.map(ae).join(" > ")}`]],d=e.code===void 0||t.codeLines.length===0?n.unavailable:`- ${n.boundary}: ${e.code.boundary}
12
+ `))}function fi(e,t){return e.length===0?t.unavailable:yn("css",e.map(([o,n])=>`${Ve(o)}: ${Ve(n)};`).join(`
13
+ `))}function ir(e,t){return`- ${t.instance}: ${J(JSON.stringify({selector:e.element.selector,...e.element.instance}))}`}function hi(e,t,o,n){let i=[`- ${n.adapter}: ${e.react.supported?n.supported:n.unsupported}`,...e.react.version===void 0?[]:[`- ${n.reactVersion}: ${J(e.react.version)}`],...e.react.componentName===void 0?[]:[`- ${n.component}: ${J(e.react.componentName)}`],...t.reactStack.length===0?[]:[`- ${n.stack}: ${t.reactStack.map(J).join(" > ")}`]],d=e.code===void 0||t.codeLines.length===0?n.unavailable:`- ${n.boundary}: ${e.code.boundary}
14
14
 
15
- ${un(e.code.language,ae(t.codeLines.join(`
16
- `)))}`;return[`### ${n.target(o+1)}`,`#### ${n.requestedChange}`,t.instruction,...e.page===void 0?[]:[`#### ${n.pageEnvironment}`,`- ${n.url}: <${Tt(e.page.url,e.page.url)}>
17
- - ${n.pathname}: ${ae(e.page.pathname)}
18
- - ${n.title}: ${ae(e.page.title)||n.unavailable}`],`#### ${n.reactContext}`,i.join(`
19
- `),`#### ${n.source}`,`- ${n.file}: ${Xo(e,n)}
15
+ ${yn(e.code.language,J(t.codeLines.join(`
16
+ `)))}`;return[`### ${n.target(o+1)}`,`#### ${n.requestedChange}`,t.instruction,...e.page===void 0?[]:[`#### ${n.pageEnvironment}`,`- ${n.url}: <${wt(e.page.url,e.page.url)}>
17
+ - ${n.pathname}: ${J(e.page.pathname)}
18
+ - ${n.title}: ${J(e.page.title)||n.unavailable}`],`#### ${n.reactContext}`,i.join(`
19
+ `),`#### ${n.source}`,`- ${n.file}: ${rr(e,n)}
20
20
  - ${n.origin}: ${e.source.origin}
21
- - ${n.confidence}: ${e.source.confidence}`,`#### ${n.element}`,un("html",ae(t.dom)),`#### ${n.styles}`,ri(e,t.matchedRules,n),`#### ${n.computedStyles}`,ai(t.computedEntries,n),`#### ${n.code}`,d,`#### ${n.warnings}`,t.warnings.length===0?`- ${n.none}`:t.warnings.map(a=>`- ${ae(a)}`).join(`
21
+ - ${n.confidence}: ${e.source.confidence}`,ir(e,n),`#### ${n.element}`,yn("html",J(t.dom)),`#### ${n.styles}`,gi(e,t.matchedRules,n),`#### ${n.computedStyles}`,fi(t.computedEntries,n),`#### ${n.code}`,d,`#### ${n.warnings}`,t.warnings.length===0?`- ${n.none}`:t.warnings.map(s=>`- ${J(s)}`).join(`
22
22
  `)].join(`
23
23
 
24
- `)}function Jo(e,t){let o=Tt(e.page.url,e.page.url),n=Fn[e.locale];return[`## ${n.pageEnvironment}`,`- ${n.url}: <${o}>
25
- - ${n.pathname}: ${ae(e.page.pathname)}
24
+ `)}function or(e,t){let o=wt(e.page.url,e.page.url),n=zn[e.locale];return[`## ${n.pageEnvironment}`,`- ${n.url}: <${o}>
25
+ - ${n.pathname}: ${J(e.page.pathname)}
26
26
  - ${n.title}: ${t.pageTitle.length===0?n.unavailable:t.pageTitle}
27
27
  - ${n.viewport}: ${String(e.page.viewportWidth)} × ${String(e.page.viewportHeight)}
28
- - ${n.devicePixelRatio}: ${String(e.page.devicePixelRatio)}`,`## ${n.selectedTargets(e.targets.length)}`,e.targets.map((i,d)=>{let a=t.targets[d];if(a===void 0)throw new RangeError("Prompt target draft is missing.");return ii(i,a,d,n)}).join(`
28
+ - ${n.devicePixelRatio}: ${String(e.page.devicePixelRatio)}`,`## ${n.selectedTargets(e.targets.length)}`,e.targets.map((i,d)=>{let s=t.targets[d];if(s===void 0)throw new RangeError("Prompt target draft is missing.");return hi(i,s,d,n)}).join(`
29
29
 
30
- `),`## ${n.modificationRequirements}`,n.modificationConstraint].join(`
30
+ `),`## ${n.modificationRequirements}`,n.modificationConstraint,...e.targets.some(i=>i.element.instance!==void 0)?[sn]:[]].join(`
31
31
 
32
- `)}function si(e,t){if(t.codeLines.length===0||e.code===void 0)return!1;if(t.codeLines.length===1){let a=t.codeLines[0]??"";return a.length<=120?t.codeLines=[]:t.codeLines=[`${a.slice(0,119)}…`],!0}let o=e.source.line??e.code.startLine,n=Math.abs(e.code.startLine-o),i=e.code.startLine+t.codeLines.length-1;return Math.abs(i-o)>=n?t.codeLines.pop():t.codeLines.shift(),!0}function ci(e){return{instruction:ae(e.instruction.trim()),reactStack:[...e.react.componentStack],dom:e.element.sanitizedHtml,matchedRules:[...e.styles.matchedRules],computedEntries:Object.entries(e.styles.computed),codeLines:e.code?.excerpt.split(/\r?\n/u)??[],warnings:Array.from(new Set([...e.styles.warnings,...e.warnings]))}}function di(e){return{pageTitle:ae(e.page.title),targets:e.targets.map(ci)}}function li(e,t,o){let n=Fn[e.locale],i=[(d,a)=>a.computedEntries.pop()!==void 0,(d,a)=>a.reactStack.pop()!==void 0,(d,a)=>{let l=Yo(a.dom,n.unavailable);return a.dom===l?!1:(a.dom=l,!0)},(d,a)=>a.matchedRules.shift()!==void 0,si,(d,a)=>a.warnings.pop()!==void 0];for(let d of i)for(let a=0;a<e.targets.length;a+=1){let l=(o+a)%e.targets.length,C=e.targets[l],x=t.targets[l];if(C!==void 0&&x!==void 0&&d(C,x))return(l+1)%e.targets.length}}function pi(e,t){let o=Fn[e.locale],n=e.targets.map((i,d)=>{let a=t.targets[d],l=i.react.componentName;return[`### ${o.target(d+1)}`,`- ${o.requestedChange}: ${a?.instruction??ae(i.instruction)}`,`- ${o.file}: ${Xo(i,o)}`,...l===void 0?[]:[`- ${o.component}: ${ae(l)}`],`- ${o.element}: ${ae(Yo(a?.dom??i.element.sanitizedHtml,o.unavailable))}`].join(`
32
+ `)}function mi(e,t){if(t.codeLines.length===0||e.code===void 0)return!1;if(t.codeLines.length===1){let s=t.codeLines[0]??"";return s.length<=120?t.codeLines=[]:t.codeLines=[`${s.slice(0,119)}…`],!0}let o=e.source.line??e.code.startLine,n=Math.abs(e.code.startLine-o),i=e.code.startLine+t.codeLines.length-1;return Math.abs(i-o)>=n?t.codeLines.pop():t.codeLines.shift(),!0}function yi(e){return{instruction:J(e.instruction.trim()),reactStack:[...e.react.componentStack],dom:e.element.sanitizedHtml,matchedRules:[...e.styles.matchedRules],computedEntries:Object.entries(e.styles.computed),codeLines:e.code?.excerpt.split(/\r?\n/u)??[],warnings:Array.from(new Set([...e.styles.warnings,...e.warnings]))}}function bi(e){return{pageTitle:J(e.page.title),targets:e.targets.map(yi)}}function Si(e,t,o){let n=zn[e.locale],i=[(d,s)=>s.computedEntries.pop()!==void 0,(d,s)=>s.reactStack.pop()!==void 0,(d,s)=>{let p=ar(s.dom,n.unavailable);return s.dom===p?!1:(s.dom=p,!0)},(d,s)=>s.matchedRules.shift()!==void 0,mi,(d,s)=>s.warnings.pop()!==void 0];for(let d of i)for(let s=0;s<e.targets.length;s+=1){let p=(o+s)%e.targets.length,x=e.targets[p],E=t.targets[p];if(x!==void 0&&E!==void 0&&d(x,E))return(p+1)%e.targets.length}}function Ei(e,t){let o=zn[e.locale],n=e.targets.map((i,d)=>{let s=t.targets[d],p=i.react.componentName;return[`### ${o.target(d+1)}`,`- ${o.requestedChange}: ${s?.instruction??J(i.instruction)}`,`- ${o.file}: ${rr(i,o)}`,...p===void 0?[]:[`- ${o.component}: ${J(p)}`],ir(i,o),`- ${o.element}: ${J(ar(s?.dom??i.element.sanitizedHtml,o.unavailable))}`].join(`
33
33
  `)});return[`## ${o.selectedTargets(e.targets.length)}`,n.join(`
34
34
 
35
- `),`## ${o.modificationRequirements}`,o.modificationConstraint].join(`
35
+ `),`## ${o.modificationRequirements}`,o.modificationConstraint,...e.targets.some(i=>i.element.instance!==void 0)?[sn]:[]].join(`
36
36
 
37
- `)}function ui(e,t){let o=di(e),n=Jo(e,o),i=0;for(;n.length>t;){let a=li(e,o,i);if(a===void 0)if(o.pageTitle.length>0)o.pageTitle="";else break;else i=a;n=Jo(e,o)}if(n.length<=t)return n;let d=pi(e,o);if(d.length>t)throw new RangeError("Prompt budget cannot preserve every target instruction and source location.");return d}function Zo(e){if(!Number.isSafeInteger(e.maxCharacters)||e.maxCharacters<=0)throw new RangeError("Prompt character budget must be a positive integer.");return Object.freeze({compose(t){return ui(t,e.maxCharacters)}})}var we=Object.freeze({idle:Object.freeze({status:"idle"}),inspecting:Object.freeze({status:"inspecting"}),selected:Object.freeze({status:"selected"}),previewing:Object.freeze({status:"previewing"})}),Mn=we.idle;function gi(e){return e.type==="ACTIVATE"?we.inspecting:e.type==="RESTORE"?we.selected:we.idle}function fi(e){switch(e.type){case"HOVER":return we.inspecting;case"SELECT":return we.selected;case"CANCEL":return we.idle;default:return we.inspecting}}function hi(e){switch(e.type){case"RESELECT":return we.inspecting;case"CLOSE":return we.idle;case"PREVIEW":return we.previewing;case"OPEN_EDITOR":return we.selected;default:return we.selected}}function mi(e){switch(e.type){case"COPY_SUCCESS":case"BACK":return we.selected;case"COPY_FAILURE":return we.previewing;default:return we.previewing}}function Qo(e,t){switch(e.status){case"idle":return gi(t);case"inspecting":return fi(t);case"selected":return hi(t);case"previewing":return mi(t)}}var yi="spotpatch:selection:";function ct(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function ge(e){return typeof e=="string"}function Et(e){return e===void 0||ge(e)}function Hn(e){return Array.isArray(e)&&e.length<=256&&e.every(ge)}function yt(e){return typeof e=="number"&&Number.isFinite(e)}function er(e){return e===void 0||yt(e)}function tr(e){let t=ct(e);return t!==void 0&&ge(t.origin)&&ge(t.confidence)&&Et(t.fileId)&&Et(t.relativePath)&&er(t.line)&&er(t.column)}function bi(e){let t=ct(e);return t!==void 0&&typeof t.supported=="boolean"&&Et(t.version)&&Et(t.componentName)&&Hn(t.componentStack)&&(t.source===void 0||tr(t.source))}function Si(e){let t=ct(e);return t!==void 0&&ge(t.url)&&ge(t.pathname)&&ge(t.title)&&yt(t.viewportWidth)&&yt(t.viewportHeight)&&yt(t.devicePixelRatio)}function Ei(e){let t=ct(e),o=ct(t?.rect);return t!==void 0&&ge(t.tagName)&&ge(t.selector)&&ge(t.sanitizedHtml)&&Et(t.textPreview)&&Et(t.role)&&o!==void 0&&yt(o.x)&&yt(o.y)&&yt(o.width)&&yt(o.height)}function Ai(e){let t=ct(e),o=ct(t?.computed);return t!==void 0&&Hn(t.classNames)&&Et(t.inlineStyle)&&Array.isArray(t.matchedRules)&&t.matchedRules.length<=256&&t.matchedRules.every(n=>{let i=ct(n);return i!==void 0&&ge(i.selector)&&ge(i.declarations)&&Et(i.source)&&Et(i.media)})&&o!==void 0&&Object.values(o).every(ge)&&Hn(t.warnings)}function xi(e){let t=ct(e);return t!==void 0&&ge(t.relativePath)&&ge(t.language)&&yt(t.startLine)&&yt(t.endLine)&&ge(t.excerpt)&&ge(t.boundary)}function vi(e){let t=ct(e);return t!==void 0&&ge(t.id)&&ge(t.instruction)&&Si(t.page)&&tr(t.source)&&bi(t.react)&&Ei(t.element)&&Ai(t.styles)&&(t.code===void 0||xi(t.code))}function Ci(e,t){let o=ct(e);if(o?.version!==1||typeof o.open!="boolean"||!Number.isSafeInteger(o.sequence)||Number(o.sequence)<0||o.activeTargetId!==void 0&&typeof o.activeTargetId!="string"||!Array.isArray(o.targets)||o.targets.length===0||o.targets.length>t||!o.targets.every(vi))return;let n=o.targets,i=n.map(({id:d})=>d);if(!(new Set(i).size!==i.length||o.activeTargetId!==void 0&&!i.includes(o.activeTargetId)))return{...o.activeTargetId===void 0?{}:{activeTargetId:o.activeTargetId},open:o.open,sequence:Number(o.sequence),targets:n}}function nr(e,t,o){let n=`${yi}${t}`,i;try{i=e.sessionStorage}catch{i=void 0}return Object.freeze({clear(){try{i?.removeItem(n)}catch{}},load(){let d;try{d=i?.getItem(n)??null}catch{return}if(!(d===null||d.length>1e6))try{return Ci(JSON.parse(d),o)}catch{return}},save(d){try{i?.setItem(n,JSON.stringify({version:1,...d}))}catch{}}})}var or=Object.freeze({supported:!1,componentStack:Object.freeze([])});function ar(e){return In(e.getAttribute(kn))}function Ri(e){let t=e.parentElement;for(;t!==null;){let o=ar(t);if(o!==void 0)return o;t=t.parentElement}}function rr(e,t,o){return Object.freeze({fileId:e.fileId,line:e.line,column:e.column,origin:t,confidence:o})}function Ti(){return Object.freeze({origin:"none",confidence:"unknown"})}function $n(e){return e.fileId===void 0||e.line===void 0||e.column===void 0?void 0:Object.freeze({fileId:e.fileId,line:e.line,column:e.column})}function ir(e){let t=!0;function o(n){if(!t)return or;try{return e.adapter.inspect(n)}catch{return t=!1,e.onAdapterError?.(),or}}return Object.freeze({resolve(n){let i=ar(n),d=o(n);if(i!==void 0)return Object.freeze({react:d,source:rr(i,i.kind==="astro"?"astro-host":"jsx-host","exact")});if(d.source!==void 0)return Object.freeze({react:d,source:d.source});let a=Ri(n);return Object.freeze(a!==void 0?{react:d,source:rr(a,"dom-ancestor","approximate")}:{react:d,source:Ti()})},dispose(){t=!1,e.adapter.dispose()}})}function g(e,t){let o=e.createElement(t);return o.setAttribute(Nt,""),o}function ce(e,t,o=""){let n=g(e,"button");return n.type="button",n.className=o,n.textContent=t,n}var sr=`
37
+ `)}function Ai(e,t){let o=bi(e),n=or(e,o),i=0;for(;n.length>t;){let s=Si(e,o,i);if(s===void 0)if(o.pageTitle.length>0)o.pageTitle="";else break;else i=s;n=or(e,o)}if(n.length<=t)return n;let d=Ei(e,o);if(d.length>t)throw new RangeError("Prompt budget cannot preserve every target instruction and source location.");return d}function sr(e){if(!Number.isSafeInteger(e.maxCharacters)||e.maxCharacters<=0)throw new RangeError("Prompt character budget must be a positive integer.");return Object.freeze({compose(t){return Ai(t,e.maxCharacters)}})}var Te=Object.freeze({idle:Object.freeze({status:"idle"}),inspecting:Object.freeze({status:"inspecting"}),selected:Object.freeze({status:"selected"}),previewing:Object.freeze({status:"previewing"})}),jn=Te.idle;function xi(e){return e.type==="ACTIVATE"?Te.inspecting:e.type==="RESTORE"?Te.selected:Te.idle}function vi(e){switch(e.type){case"HOVER":return Te.inspecting;case"SELECT":return Te.selected;case"CANCEL":return Te.idle;default:return Te.inspecting}}function Ci(e){switch(e.type){case"RESELECT":return Te.inspecting;case"CLOSE":return Te.idle;case"PREVIEW":return Te.previewing;case"OPEN_EDITOR":return Te.selected;default:return Te.selected}}function Ri(e){switch(e.type){case"COPY_SUCCESS":case"BACK":return Te.selected;case"COPY_FAILURE":return Te.previewing;default:return Te.previewing}}function cr(e,t){switch(e.status){case"idle":return xi(t);case"inspecting":return vi(t);case"selected":return Ci(t);case"previewing":return Ri(t)}}var Ti="spotpatch:selection:",lr=1,wi=1e6;function st(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function de(e){return typeof e=="string"}function At(e){return e===void 0||de(e)}function Vn(e){return Array.isArray(e)&&e.length<=256&&e.every(de)}function St(e){return typeof e=="number"&&Number.isFinite(e)}function dr(e){return e===void 0||St(e)}function pr(e){let t=st(e);return t!==void 0&&de(t.origin)&&de(t.confidence)&&At(t.fileId)&&At(t.relativePath)&&dr(t.line)&&dr(t.column)}function Oi(e){let t=st(e);return t!==void 0&&typeof t.supported=="boolean"&&At(t.version)&&At(t.componentName)&&Vn(t.componentStack)&&(t.source===void 0||pr(t.source))}function _i(e){let t=st(e);return t!==void 0&&de(t.url)&&de(t.pathname)&&de(t.title)&&St(t.viewportWidth)&&St(t.viewportHeight)&&St(t.devicePixelRatio)}function Li(e){let t=st(e),o=st(t?.rect);return t!==void 0&&(t.instance===void 0||Ii(t.instance))&&de(t.tagName)&&de(t.selector)&&de(t.sanitizedHtml)&&At(t.textPreview)&&At(t.role)&&o!==void 0&&St(o.x)&&St(o.y)&&St(o.width)&&St(o.height)}function Ii(e){let t=st(e);return t!==void 0&&Object.keys(t).length===5&&de(t.id)&&t.id.length<=Ze.idCharacters&&/^[A-Za-z0-9_-]+$/u.test(t.id)&&kn.some(o=>o===t.state)&&(t.selectorStatus==="unique-at-capture"||t.selectorStatus==="unavailable")&&de(t.label)&&t.label.length<=Ze.labelCharacters&&de(t.context)&&t.context.length<=Ze.contextCharacters}function ki(e){let t=st(e),o=st(t?.computed);return t!==void 0&&Vn(t.classNames)&&At(t.inlineStyle)&&Array.isArray(t.matchedRules)&&t.matchedRules.length<=256&&t.matchedRules.every(n=>{let i=st(n);return i!==void 0&&de(i.selector)&&de(i.declarations)&&At(i.source)&&At(i.media)})&&o!==void 0&&Object.values(o).every(de)&&Vn(t.warnings)}function Ni(e){let t=st(e);return t!==void 0&&de(t.relativePath)&&de(t.language)&&St(t.startLine)&&St(t.endLine)&&de(t.excerpt)&&de(t.boundary)}function Pi(e){let t=st(e);return t!==void 0&&de(t.id)&&de(t.instruction)&&_i(t.page)&&pr(t.source)&&Oi(t.react)&&Li(t.element)&&ki(t.styles)&&(t.code===void 0||Ni(t.code))}function Di(e,t){let o=st(e);if(o?.version!==lr||typeof o.open!="boolean"||!Number.isSafeInteger(o.sequence)||Number(o.sequence)<0||o.activeTargetId!==void 0&&typeof o.activeTargetId!="string"||!Array.isArray(o.targets)||o.targets.length===0||o.targets.length>t||!o.targets.every(Pi))return;let n=o.targets,i=n.map(({id:d})=>d);if(!(new Set(i).size!==i.length||o.activeTargetId!==void 0&&!i.includes(o.activeTargetId)))return{...o.activeTargetId===void 0?{}:{activeTargetId:o.activeTargetId},open:o.open,sequence:Number(o.sequence),targets:n}}function ur(e,t,o){let n=`${Ti}${t}`,i;try{i=e.sessionStorage}catch{i=void 0}return Object.freeze({clear(){try{i?.removeItem(n)}catch{}},load(){let d;try{d=i?.getItem(n)??null}catch{return}if(!(d===null||d.length>wi))try{return Di(JSON.parse(d),o)}catch{return}},save(d){try{i?.setItem(n,JSON.stringify({version:lr,...d}))}catch{}}})}var gr=Object.freeze({supported:!1,componentStack:Object.freeze([])});function hr(e){return Fn(e.getAttribute(Ht))}function Mi(e){let t=e.parentElement;for(;t!==null;){let o=hr(t);if(o!==void 0)return o;t=t.parentElement}}function fr(e,t,o){return Object.freeze({fileId:e.fileId,line:e.line,column:e.column,origin:t,confidence:o})}function Fi(){return Object.freeze({origin:"none",confidence:"unknown"})}function qn(e){return e.fileId===void 0||e.line===void 0||e.column===void 0?void 0:Object.freeze({fileId:e.fileId,line:e.line,column:e.column})}function mr(e){let t=!0;function o(n){if(!t)return gr;try{return e.adapter.inspect(n)}catch{return t=!1,e.onAdapterError?.(),gr}}return Object.freeze({resolve(n){let i=hr(n),d=o(n);if(i!==void 0)return Object.freeze({react:d,source:fr(i,i.kind==="astro"?"astro-host":"jsx-host","exact")});if(d.source!==void 0)return Object.freeze({react:d,source:d.source});let s=Mi(n);return Object.freeze(s!==void 0?{react:d,source:fr(s,"dom-ancestor","approximate")}:{react:d,source:Fi()})},dispose(){t=!1,e.adapter.dispose()}})}function f(e,t){let o=e.createElement(t);return o.setAttribute(Mt,""),o}function ie(e,t,o=""){let n=f(e,"button");return n.type="button",n.className=o,n.textContent=t,n}var yr=`
38
38
  .spotpatch-agent {
39
39
  margin-top: 10px;
40
40
  overflow: hidden;
@@ -250,7 +250,7 @@ ${un(e.code.language,ae(t.codeLines.join(`
250
250
  .spotpatch-agent-selectors { grid-template-columns: 1fr; }
251
251
  .spotpatch-agent-mode { grid-column: auto; }
252
252
  }
253
- `;function Wt(e,t,o,n){let i=e.createElement("option");return i.value=o,i.textContent=n,t.append(i),i}function cr(e,t,o){let n=o.messages(),i=g(e,"section");i.className="spotpatch-agent",i.hidden=!t.enabled;let d=g(e,"div");d.className="spotpatch-agent-head",d.setAttribute("data-spotpatch-agent-identity","");let a=g(e,"span");a.className="spotpatch-agent-title";let l=g(e,"span");l.className="spotpatch-agent-badge",d.append(a,l);let C=g(e,"div");C.className="spotpatch-agent-setup";let x=g(e,"div");x.className="spotpatch-agent-selectors";let w=g(e,"label");w.className="spotpatch-agent-mode";let j=g(e,"span"),y=g(e,"select");w.append(j,y);let s=g(e,"label"),V=g(e,"span"),$=g(e,"select");s.append(V,$);let A=g(e,"label"),T=g(e,"span"),W=g(e,"select");A.append(T,W),x.append(w,s,A);let U=g(e,"label");U.className="spotpatch-consent";let N=g(e,"input");N.type="checkbox";let m=g(e,"span");U.append(N,m);let v=g(e,"label");v.className="spotpatch-consent spotpatch-workspace-consent",v.hidden=!0;let L=g(e,"input");L.type="checkbox";let M=g(e,"span"),G=g(e,"strong"),E=g(e,"small");M.append(G,E),v.append(L,M);let R=g(e,"div");R.className="spotpatch-agent-health-list";let O=g(e,"p");O.className="spotpatch-agent-workspace",O.dataset.state="idle";let _=g(e,"p");_.className="spotpatch-agent-capability",_.dataset.state="idle",R.append(O,_),C.append(x,U,v,R);let ue=g(e,"div");ue.className="spotpatch-agent-job",ue.hidden=!0;let Oe=g(e,"div");Oe.className="spotpatch-agent-job-meta";let F=g(e,"span");F.className="spotpatch-agent-model";let D=g(e,"span");D.className="spotpatch-agent-status",Oe.append(F,D);let le=g(e,"p");le.className="spotpatch-agent-phase";let be=g(e,"p");be.className="spotpatch-agent-error",be.hidden=!0;let Se=g(e,"ul");Se.className="spotpatch-agent-activity";let ne=g(e,"div");ne.className="spotpatch-agent-result",ne.hidden=!0;let dt=g(e,"p");dt.className="spotpatch-agent-summary";let de=g(e,"ul");de.className="spotpatch-agent-files";let je=g(e,"div");je.className="spotpatch-agent-checks";let ve=g(e,"pre");ve.className="spotpatch-agent-diff",ve.tabIndex=0,ve.setAttribute("aria-label",n.agent.diffAriaLabel),ne.append(dt,de,je,ve),ue.append(Oe,le,be,Se,ne),i.append(d,C,ue);let rt=ce(e,n.agent.testConnection),Ke=ce(e,n.agent.run,"spotpatch-run"),Je=ce(e,n.agent.cancel),Q=ce(e,n.agent.apply,"spotpatch-primary"),pe=ce(e,n.agent.revert),De=ce(e,n.agent.revise),Xe=t.enabled?t.providers:[],Ye=t.enabled&&t.applyMode==="trusted-auto",lt=t.enabled?t.applyMode:"review",at=new Map(Xe.map(h=>[h.id,h])),pt=!1,Fe=!0,oe=!1,Ce=!1,Ze=!1,z=!1,Ve,Re,bt=[],Qe,fe="idle",et=n.agent.connectionNotTested,tt,Ee="idle",_e,We;for(let h of Xe)Wt(e,$,h.id,h.label);t.enabled&&($.value=t.defaultProvider);let xt,qe,Ge;lt==="auto"?Ge=Wt(e,y,"auto",n.agent.autoGated):(xt=Wt(e,y,"review",n.agent.review),Ye&&(qe=Wt(e,y,"trusted-auto",n.agent.trustedFast)));let ut=Ye?"review":lt;y.value=ut,w.hidden=!Ye;let I=()=>y.value==="trusted-auto"?"trusted-auto":ut,it=()=>I()==="trusted-auto",X=()=>at.get($.value),J=h=>h===void 0?n.agent.providerUnavailable:it()?n.agent.trustedFastConsent(h.label):n.agent.consent(h.label),Me=()=>it()?N.checked:L.checked,gt=()=>{let h=it();U.classList.toggle("spotpatch-trusted-consent",h),l.textContent=h?n.agent.trustedFast:lt==="auto"?n.agent.autoGated:n.agent.review,m.textContent=J(X()),v.hidden=h||Ee!=="consent-required"},He=()=>{let h=X();if(W.replaceChildren(),h===void 0){m.textContent=J(h);return}for(let H of h.models)Wt(e,W,H.id,H.label);W.value=h.defaultModel,m.textContent=J(h)},ie=()=>{let h=t.enabled&&oe&&!Ce;Ke.textContent=Ze?n.agent.verifying:n.agent.run,Ke.classList.toggle("spotpatch-primary",z),rt.hidden=!h,Ke.hidden=!h,rt.disabled=!Fe||Ze||X()===void 0,Ke.disabled=!Fe||Ze||!pt||!N.checked||Ee==="idle"||Ee==="checking"||Ee==="blocked"||Ee==="consent-required"&&!Me()||X()===void 0||W.value.length===0,(!Ce||!oe)&&(Je.hidden=!0,Q.hidden=!0,pe.hidden=!0,De.hidden=!0)},Le=()=>{if(Ee==="idle")O.textContent=n.agent.workspaceNotChecked;else if(Ee==="checking")O.textContent=n.agent.checkingWorkspace;else if(Ee==="ready")O.textContent=n.agent.workspaceReady;else if(Ee==="consent-required"){let h=_e?.changes;O.textContent=n.agent.workspaceDirty(h?.staged??0,h?.unstaged??0,h?.untracked??0)}else O.textContent=We===void 0?n.errors.INTERNAL_ERROR:n.errors[We]};function $e(){He(),N.checked=!1,_.dataset.state="idle",_.textContent=n.agent.connectionNotTested,fe="idle",et=n.agent.connectionNotTested,tt=void 0,z=!1,ie()}function st(){_.dataset.state="idle",_.textContent=n.agent.connectionNotTested,fe="idle",et=n.agent.connectionNotTested,tt=void 0,z=!1,ie()}function c(){N.checked=!1,L.checked=!1,gt(),ie()}He(),y.addEventListener("change",c),$.addEventListener("change",$e),W.addEventListener("change",st),N.addEventListener("change",ie),L.addEventListener("change",ie);function u(){if(Ve===void 0)return;let h=Ve,H=Re;F.textContent=`${h.providerLabel} · ${h.modelLabel}`,D.textContent=n.agent.status(h.status),le.textContent=h.phaseMessage;let q=Qe??h.errorCode;be.hidden=q===void 0,be.textContent=q===void 0?"":n.errors[q],Se.replaceChildren();for(let Y of bt.slice(-8)){let ke=g(e,"li");ke.dataset.state=Y.state,ke.textContent=Y.label,Se.append(ke)}ne.hidden=H===void 0,dt.textContent=H?.summary??"",de.replaceChildren(),je.replaceChildren(),ve.textContent=H?.diff??"";for(let Y of H?.files??[]){let ke=g(e,"li");ke.textContent=`${Y.kind} ${Y.relativePath} (+${String(Y.additions)} / -${String(Y.deletions)})`,de.append(ke)}for(let Y of H?.checks??[]){let ke=g(e,"details"),Mt=g(e,"summary");Mt.textContent=`${Y.label}: ${Y.status} · ${String(Y.durationMs)} ms`;let nt=g(e,"pre");nt.textContent=Y.output.length===0?n.agent.noOutput:Y.output,ke.append(Mt,nt),je.append(ke)}rt.hidden=!0,Ke.hidden=!0,Je.hidden=!oe||!h.canCancel,Je.textContent=h.status==="awaiting-review"?n.agent.discard:n.agent.cancel,Q.hidden=!oe||!h.canApply,pe.hidden=!oe||!h.canRevert,De.hidden=!oe||!["completed","cancelled","reverted","failed"].includes(h.status)}function S(){n=o.messages(),a.textContent=n.agent.title,j.textContent=n.agent.mode,xt!==void 0&&(xt.textContent=n.agent.review),qe!==void 0&&(qe.textContent=n.agent.trustedFast),Ge!==void 0&&(Ge.textContent=n.agent.autoGated),V.textContent=n.agent.provider,T.textContent=n.agent.model,$.setAttribute("aria-label",n.agent.providerAriaLabel),W.setAttribute("aria-label",n.agent.modelAriaLabel),G.textContent=n.agent.includeLocalChanges,E.textContent=n.agent.includeLocalChangesHelp,ve.setAttribute("aria-label",n.agent.diffAriaLabel),rt.textContent=n.agent.testConnection,Q.textContent=n.agent.apply,pe.textContent=n.agent.revert,De.textContent=n.agent.revise,gt(),fe==="idle"?_.textContent=n.agent.connectionNotTested:fe==="probing"?_.textContent=n.agent.testingCapability:fe==="ready"?_.textContent=`${n.agent.capabilityVerified} · ${n.agent.toolsReady}`:tt!==void 0?_.textContent=n.errors[tt]:X()===void 0?_.textContent=n.agent.providerUnavailable:_.textContent=et,Le(),ie(),u()}let B=o.subscribe(S);return S(),Object.freeze({root:i,modeSelect:y,providerSelect:$,modelSelect:W,consentCheckbox:N,workspaceConsentCheckbox:L,testButton:rt,runButton:Ke,cancelButton:Je,applyButton:Q,revertButton:pe,resetButton:De,consentGranted(){return N.checked},workspaceConsentGranted(){return Me()},readSelection(){let h=X(),H=h?.models.find(q=>q.id===W.value);return h===void 0||H===void 0?void 0:Object.freeze({applyMode:I(),providerProfileId:h.id,modelProfileId:H.id})},renderCapability(h,H,q,Y){fe=h,et=H,tt=Y,Ze=h==="probing",z=h==="ready"&&q?.state==="agent-ready",_.dataset.state=h,_.textContent=q?.state==="agent-ready"?`${H} · ${n.agent.toolsReady}`:H,ie()},renderWorkspaceHealth(h,H,q){Ee=h,_e=H,We=q??H?.errorCode,O.dataset.state=h,h!=="checking"&&(v.hidden=it()||h!=="consent-required"),(h==="idle"||h==="ready"||h==="blocked")&&(L.checked=!1),Le(),ie()},renderJob(h,H,q,Y){Ce=!0,C.hidden=!0,ue.hidden=!1,$.disabled=!0,W.disabled=!0,y.disabled=!0,N.disabled=!0,L.disabled=!0,Ve=h,Re=H,bt=q,Qe=Y,u()},resetJob(){Ce=!1,Ve=void 0,Re=void 0,bt=[],Qe=void 0,C.hidden=!1,ue.hidden=!0,$.disabled=!1,W.disabled=!1,y.disabled=!1,N.disabled=!1,L.disabled=!1,Se.replaceChildren(),de.replaceChildren(),je.replaceChildren(),ve.textContent="",be.textContent="",be.hidden=!0,ie()},setContextReady(h){pt=h,ie()},setEditingEnabled(h){Fe=h,$.disabled=!h||Ce,W.disabled=!h||Ce,y.disabled=!h||Ce,N.disabled=!h||Ce,L.disabled=!h||Ce,ie()},setProviderConsent(h){N.checked=h,ie()},setSelectionVisible(h){oe=h,ie(),h||(Je.hidden=!0,Q.hidden=!0,pe.hidden=!0,De.hidden=!0)},dispose(){B(),$.removeEventListener("change",$e),W.removeEventListener("change",st),y.removeEventListener("change",c),N.removeEventListener("change",ie),L.removeEventListener("change",ie)}})}var dr="http://www.w3.org/2000/svg",wi="";function Oi(e){if(e!==void 0)return{content:e,viewBox:"0 0 512 512"};let t=typeof __SPOTPATCH_BRAND_MARK_CONTENT__=="string"?__SPOTPATCH_BRAND_MARK_CONTENT__:void 0;return typeof t=="string"?{content:t,viewBox:"0 0 512 512"}:{content:wi,viewBox:"0 0 1 1"}}function _i(e,t,o){let n=e.createElementNS(dr,t);for(let[i,d]of Object.entries(o))n.setAttribute(i,d);return n}function Li(e,t){let o=t.replace(/[^a-zA-Z0-9_-]/gu,"-"),n=new Map;for(let i of e.querySelectorAll("[id]")){let d=i.id,a=`${o}-${d}`;n.set(d,a),i.id=a}for(let i of[e,...e.querySelectorAll("*")])for(let d of[...i.attributes]){let a=d.value;for(let[l,C]of n)a=a.replaceAll(`url(#${l})`,`url(#${C})`),a===`#${l}`&&(a=`#${C}`);a!==d.value&&i.setAttribute(d.name,a)}}function Bn(e,t,o){let n=Oi(t),i=_i(e,"svg",{xmlns:dr,class:"spotpatch-brand-mark",viewBox:n.viewBox,"aria-hidden":"true",focusable:"false"});return i.innerHTML=n.content,o!==void 0&&Li(i,o),i}var ki=Symbol.for("spotpatch.data-flow.extension.v1");function qt(e=globalThis){return e[ki]}var lr=`
253
+ `;function Kt(e,t,o,n){let i=e.createElement("option");return i.value=o,i.textContent=n,t.append(i),i}function br(e,t,o){let n=o.messages(),i=f(e,"section");i.className="spotpatch-agent",i.hidden=!t.enabled;let d=f(e,"div");d.className="spotpatch-agent-head",d.setAttribute("data-spotpatch-agent-identity","");let s=f(e,"span");s.className="spotpatch-agent-title";let p=f(e,"span");p.className="spotpatch-agent-badge",d.append(s,p);let x=f(e,"div");x.className="spotpatch-agent-setup";let E=f(e,"div");E.className="spotpatch-agent-selectors";let v=f(e,"label");v.className="spotpatch-agent-mode";let j=f(e,"span"),O=f(e,"select");v.append(j,O);let r=f(e,"label"),F=f(e,"span"),$=f(e,"select");r.append(F,$);let V=f(e,"label"),S=f(e,"span"),T=f(e,"select");V.append(S,T),E.append(v,r,V);let q=f(e,"label");q.className="spotpatch-consent";let D=f(e,"input");D.type="checkbox";let y=f(e,"span");q.append(D,y);let A=f(e,"label");A.className="spotpatch-consent spotpatch-workspace-consent",A.hidden=!0;let _=f(e,"input");_.type="checkbox";let U=f(e,"span"),W=f(e,"strong"),b=f(e,"small");U.append(W,b),A.append(_,U);let w=f(e,"div");w.className="spotpatch-agent-health-list";let R=f(e,"p");R.className="spotpatch-agent-workspace",R.dataset.state="idle";let I=f(e,"p");I.className="spotpatch-agent-capability",I.dataset.state="idle",w.append(R,I),x.append(E,q,A,w);let re=f(e,"div");re.className="spotpatch-agent-job",re.hidden=!0;let ue=f(e,"div");ue.className="spotpatch-agent-job-meta";let H=f(e,"span");H.className="spotpatch-agent-model";let Y=f(e,"span");Y.className="spotpatch-agent-status",ue.append(H,Y);let B=f(e,"p");B.className="spotpatch-agent-phase";let ge=f(e,"p");ge.className="spotpatch-agent-error",ge.hidden=!0;let we=f(e,"ul");we.className="spotpatch-agent-activity";let se=f(e,"div");se.className="spotpatch-agent-result",se.hidden=!0;let Fe=f(e,"p");Fe.className="spotpatch-agent-summary";let Oe=f(e,"ul");Oe.className="spotpatch-agent-files";let fe=f(e,"div");fe.className="spotpatch-agent-checks";let _e=f(e,"pre");_e.className="spotpatch-agent-diff",_e.tabIndex=0,_e.setAttribute("aria-label",n.agent.diffAriaLabel),se.append(Fe,Oe,fe,_e),re.append(ue,B,ge,we,se),i.append(d,x,re);let He=ie(e,n.agent.testConnection),Qe=ie(e,n.agent.run,"spotpatch-run"),ct=ie(e,n.agent.cancel),qe=ie(e,n.agent.apply,"spotpatch-primary"),G=ie(e,n.agent.revert),he=ie(e,n.agent.revise),dt=t.enabled?t.providers:[],lt=t.enabled&&t.applyMode==="trusted-auto",et=t.enabled?t.applyMode:"review",It=new Map(dt.map(l=>[l.id,l])),We=!1,Ge=!0,ee=!1,Ce=!1,Ke=!1,pt=!1,z,ut,me=[],tt,ye="idle",nt=n.agent.connectionNotTested,ot,Ae="idle",Le,Je;for(let l of dt)Kt(e,$,l.id,l.label);t.enabled&&($.value=t.defaultProvider);let vt,Xe,pe;et==="auto"?pe=Kt(e,O,"auto",n.agent.autoGated):(vt=Kt(e,O,"review",n.agent.review),lt&&(Xe=Kt(e,O,"trusted-auto",n.agent.trustedFast)));let ht=lt?"review":et;O.value=ht,v.hidden=!lt;let N=()=>O.value==="trusted-auto"?"trusted-auto":ht,gt=()=>N()==="trusted-auto",Z=()=>It.get($.value),X=l=>l===void 0?n.agent.providerUnavailable:gt()?n.agent.trustedFastConsent(l.label):n.agent.consent(l.label),$e=()=>gt()?D.checked:_.checked,ft=()=>{let l=gt();q.classList.toggle("spotpatch-trusted-consent",l),p.textContent=l?n.agent.trustedFast:et==="auto"?n.agent.autoGated:n.agent.review,y.textContent=X(Z()),A.hidden=l||Ae!=="consent-required"},Be=()=>{let l=Z();if(T.replaceChildren(),l===void 0){y.textContent=X(l);return}for(let C of l.models)Kt(e,T,C.id,C.label);T.value=l.defaultModel,y.textContent=X(l)},ce=()=>{let l=t.enabled&&ee&&!Ce;Qe.textContent=Ke?n.agent.verifying:n.agent.run,Qe.classList.toggle("spotpatch-primary",pt),He.hidden=!l,Qe.hidden=!l,He.disabled=!Ge||Ke||Z()===void 0,Qe.disabled=!Ge||Ke||!We||!D.checked||Ae==="idle"||Ae==="checking"||Ae==="blocked"||Ae==="consent-required"&&!$e()||Z()===void 0||T.value.length===0,(!Ce||!ee)&&(ct.hidden=!0,qe.hidden=!0,G.hidden=!0,he.hidden=!0)},Ie=()=>{if(Ae==="idle")R.textContent=n.agent.workspaceNotChecked;else if(Ae==="checking")R.textContent=n.agent.checkingWorkspace;else if(Ae==="ready")R.textContent=n.agent.workspaceReady;else if(Ae==="consent-required"){let l=Le?.changes;R.textContent=n.agent.workspaceDirty(l?.staged??0,l?.unstaged??0,l?.untracked??0)}else R.textContent=Je===void 0?n.errors.INTERNAL_ERROR:n.errors[Je]};function ke(){Be(),D.checked=!1,I.dataset.state="idle",I.textContent=n.agent.connectionNotTested,ye="idle",nt=n.agent.connectionNotTested,ot=void 0,pt=!1,ce()}function rt(){I.dataset.state="idle",I.textContent=n.agent.connectionNotTested,ye="idle",nt=n.agent.connectionNotTested,ot=void 0,pt=!1,ce()}function Ye(){D.checked=!1,_.checked=!1,ft(),ce()}Be(),O.addEventListener("change",Ye),$.addEventListener("change",ke),T.addEventListener("change",rt),D.addEventListener("change",ce),_.addEventListener("change",ce);function Ue(){if(z===void 0)return;let l=z,C=ut;H.textContent=`${l.providerLabel} · ${l.modelLabel}`,Y.textContent=n.agent.status(l.status),B.textContent=l.phaseMessage;let L=tt??l.errorCode;ge.hidden=L===void 0,ge.textContent=L===void 0?"":n.errors[L],we.replaceChildren();for(let P of me.slice(-8)){let le=f(e,"li");le.dataset.state=P.state,le.textContent=P.label,we.append(le)}se.hidden=C===void 0,Fe.textContent=C?.summary??"",Oe.replaceChildren(),fe.replaceChildren(),_e.textContent=C?.diff??"";for(let P of C?.files??[]){let le=f(e,"li");le.textContent=`${P.kind} ${P.relativePath} (+${String(P.additions)} / -${String(P.deletions)})`,Oe.append(le)}for(let P of C?.checks??[]){let le=f(e,"details"),at=f(e,"summary");at.textContent=`${P.label}: ${P.status} · ${String(P.durationMs)} ms`;let Ne=f(e,"pre");Ne.textContent=P.output.length===0?n.agent.noOutput:P.output,le.append(at,Ne),fe.append(le)}He.hidden=!0,Qe.hidden=!0,ct.hidden=!ee||!l.canCancel,ct.textContent=l.status==="awaiting-review"?n.agent.discard:n.agent.cancel,qe.hidden=!ee||!l.canApply,G.hidden=!ee||!l.canRevert,he.hidden=!ee||!["completed","cancelled","reverted","failed"].includes(l.status)}function c(){n=o.messages(),s.textContent=n.agent.title,j.textContent=n.agent.mode,vt!==void 0&&(vt.textContent=n.agent.review),Xe!==void 0&&(Xe.textContent=n.agent.trustedFast),pe!==void 0&&(pe.textContent=n.agent.autoGated),F.textContent=n.agent.provider,S.textContent=n.agent.model,$.setAttribute("aria-label",n.agent.providerAriaLabel),T.setAttribute("aria-label",n.agent.modelAriaLabel),W.textContent=n.agent.includeLocalChanges,b.textContent=n.agent.includeLocalChangesHelp,_e.setAttribute("aria-label",n.agent.diffAriaLabel),He.textContent=n.agent.testConnection,qe.textContent=n.agent.apply,G.textContent=n.agent.revert,he.textContent=n.agent.revise,ft(),ye==="idle"?I.textContent=n.agent.connectionNotTested:ye==="probing"?I.textContent=n.agent.testingCapability:ye==="ready"?I.textContent=`${n.agent.capabilityVerified} · ${n.agent.toolsReady}`:ot!==void 0?I.textContent=n.errors[ot]:Z()===void 0?I.textContent=n.agent.providerUnavailable:I.textContent=nt,Ie(),ce(),Ue()}let g=o.subscribe(c);return c(),Object.freeze({root:i,modeSelect:O,providerSelect:$,modelSelect:T,consentCheckbox:D,workspaceConsentCheckbox:_,testButton:He,runButton:Qe,cancelButton:ct,applyButton:qe,revertButton:G,resetButton:he,consentGranted(){return D.checked},workspaceConsentGranted(){return $e()},readSelection(){let l=Z(),C=l?.models.find(L=>L.id===T.value);return l===void 0||C===void 0?void 0:Object.freeze({applyMode:N(),providerProfileId:l.id,modelProfileId:C.id})},renderCapability(l,C,L,P){ye=l,nt=C,ot=P,Ke=l==="probing",pt=l==="ready"&&L?.state==="agent-ready",I.dataset.state=l,I.textContent=L?.state==="agent-ready"?`${C} · ${n.agent.toolsReady}`:C,ce()},renderWorkspaceHealth(l,C,L){Ae=l,Le=C,Je=L??C?.errorCode,R.dataset.state=l,l!=="checking"&&(A.hidden=gt()||l!=="consent-required"),(l==="idle"||l==="ready"||l==="blocked")&&(_.checked=!1),Ie(),ce()},renderJob(l,C,L,P){Ce=!0,x.hidden=!0,re.hidden=!1,$.disabled=!0,T.disabled=!0,O.disabled=!0,D.disabled=!0,_.disabled=!0,z=l,ut=C,me=L,tt=P,Ue()},resetJob(){Ce=!1,z=void 0,ut=void 0,me=[],tt=void 0,x.hidden=!1,re.hidden=!0,$.disabled=!1,T.disabled=!1,O.disabled=!1,D.disabled=!1,_.disabled=!1,we.replaceChildren(),Oe.replaceChildren(),fe.replaceChildren(),_e.textContent="",ge.textContent="",ge.hidden=!0,ce()},setContextReady(l){We=l,ce()},setEditingEnabled(l){Ge=l,$.disabled=!l||Ce,T.disabled=!l||Ce,O.disabled=!l||Ce,D.disabled=!l||Ce,_.disabled=!l||Ce,ce()},setProviderConsent(l){D.checked=l,ce()},setSelectionVisible(l){ee=l,ce(),l||(ct.hidden=!0,qe.hidden=!0,G.hidden=!0,he.hidden=!0)},dispose(){g(),$.removeEventListener("change",ke),T.removeEventListener("change",rt),O.removeEventListener("change",Ye),D.removeEventListener("change",ce),_.removeEventListener("change",ce)}})}var Sr="http://www.w3.org/2000/svg",Hi="";function $i(e){if(e!==void 0)return{content:e,viewBox:"0 0 512 512"};let t=typeof __SPOTPATCH_BRAND_MARK_CONTENT__=="string"?__SPOTPATCH_BRAND_MARK_CONTENT__:void 0;return typeof t=="string"?{content:t,viewBox:"0 0 512 512"}:{content:Hi,viewBox:"0 0 1 1"}}function Bi(e,t,o){let n=e.createElementNS(Sr,t);for(let[i,d]of Object.entries(o))n.setAttribute(i,d);return n}function Ui(e,t){let o=t.replace(/[^a-zA-Z0-9_-]/gu,"-"),n=new Map;for(let i of e.querySelectorAll("[id]")){let d=i.id,s=`${o}-${d}`;n.set(d,s),i.id=s}for(let i of[e,...e.querySelectorAll("*")])for(let d of[...i.attributes]){let s=d.value;for(let[p,x]of n)s=s.replaceAll(`url(#${p})`,`url(#${x})`),s===`#${p}`&&(s=`#${x}`);s!==d.value&&i.setAttribute(d.name,s)}}function Wn(e,t,o){let n=$i(t),i=Bi(e,"svg",{xmlns:Sr,class:"spotpatch-brand-mark",viewBox:n.viewBox,"aria-hidden":"true",focusable:"false"});return i.innerHTML=n.content,o!==void 0&&Ui(i,o),i}var zi=Symbol.for("spotpatch.data-flow.extension.v1");function Jt(e=globalThis){return e[zi]}var Er=`
254
254
  :host {
255
255
  all: initial;
256
256
  color-scheme: dark;
@@ -350,13 +350,13 @@ ${un(e.code.language,ae(t.codeLines.join(`
350
350
  transition-duration: .01ms !important;
351
351
  }
352
352
  }
353
- `,pc=Object.freeze({dispatchGlowRest:"0 0 0 0 rgb(124 77 255 / 0%)",dispatchGlow:"0 0 0 4px rgb(124 77 255 / 22%)"});var Ii=Symbol.for("spotpatch.external-handoff.v1");function gn(){return globalThis[Ii]}var Pi=Symbol.for("spotpatch.contextual-ask.v1");function fn(){return globalThis[Pi]}var Ni=Symbol.for("spotpatch.motion.v1");function pr(){return globalThis[Ni]}var Di=Object.freeze({queued:"Queued",preparing:"Preparing",running:"Running",validating:"Validating","awaiting-review":"Awaiting review",applying:"Applying",applied:"Applied",completed:"Completed",cancelling:"Cancelling",cancelled:"Cancelled",reverting:"Reverting",reverted:"Reverted",failed:"Failed"}),Fi=Object.freeze({queued:"已排队",preparing:"准备中",running:"执行中",validating:"验证中","awaiting-review":"等待审阅",applying:"应用中",applied:"已应用",completed:"已完成",cancelling:"取消中",cancelled:"已取消",reverting:"撤销中",reverted:"已撤销",failed:"失败"}),Mi=Object.freeze({prepare:"Preparing context",dispatch:"Dispatching context",discover:"Discovering project files",search:"Searching source",read:"Reading",patch:"Generating a minimal patch",check:"Running",audit:"Auditing proposed changes",apply:"Applying verified changes",sync:"Returning results to SpotPatch",unknown:"Processing the current task"}),Hi=Object.freeze({prepare:"正在准备上下文",dispatch:"正在派发上下文",discover:"正在查找项目文件",search:"正在搜索源码",read:"正在读取",patch:"正在生成最小修改补丁",check:"正在运行",audit:"正在审计候选修改",apply:"正在应用已验证修改",sync:"正在将结果回流 SpotPatch",unknown:"正在处理当前任务"}),ur=Object.freeze({prepare:"prepare",dispatch:"dispatch",discover:"list",search:"search",read:"read",patch:"patch",check:"check",audit:"audit",apply:"apply",sync:"sync",unknown:"agent"});function gr(e,t,o){return o===void 0||o.length===0?e[t]:`${e[t]} ${o}`}function fr(e,t){return t===void 0||t.length===0?ur[e]:`${ur[e]} · ${t}`}var me="The external Agent handoff request failed.",ye="外部 Agent 交接请求失败。",$i=Object.freeze({[p.INVALID_REQUEST]:"The Agent request was rejected as invalid.",[p.INVALID_TOKEN]:"The local SpotPatch session expired.",[p.ORIGIN_NOT_ALLOWED]:"The current page origin is not authorized.",[p.SOURCE_NOT_FOUND]:"The selected source is no longer available.",[p.SOURCE_OUTSIDE_ROOT]:"The selected source is outside the project.",[p.SOURCE_TOO_LARGE]:"The selected source exceeds the safety limit.",[p.EDITOR_OPEN_FAILED]:"The editor request failed.",[p.DATA_FLOW_DISABLED]:"Component data-flow analysis is disabled.",[p.DATA_FLOW_SOURCE_STALE]:"The selected source changed. Select the component again.",[p.DATA_FLOW_ANALYSIS_CANCELLED]:"Component data-flow analysis was cancelled.",[p.AI_DISABLED]:"AI execution is disabled in Vite configuration.",[p.PROVIDER_NOT_CONFIGURED]:"The provider Key environment variable is missing on the Vite process.",[p.PROVIDER_AUTH_FAILED]:"The provider rejected authentication. Check the server-side Key.",[p.PROVIDER_PROTOCOL_UNSUPPORTED]:"The relay does not match the configured OpenAI-compatible protocol.",[p.MODEL_NOT_ALLOWED]:"The selected model profile is not allowed.",[p.MODEL_TOOL_CALL_UNSUPPORTED]:"The selected model did not start or continue the required tool call.",[p.PROVIDER_RATE_LIMITED]:"The provider is rate limited. Wait and try again.",[p.AGENT_BUSY]:"Another write Agent job is still active.",[p.AGENT_LIMIT_EXCEEDED]:"The Agent stopped at a configured time, turn, output, or size limit.",[p.AGENT_CANCELLED]:"The Agent job was cancelled.",[p.EXTERNAL_HANDOFF_DISABLED]:me,[p.EXTERNAL_HANDOFF_UNAVAILABLE]:me,[p.HANDOFF_VALIDATION_FAILED]:me,[p.HANDOFF_SOURCE_STALE]:me,[p.HANDOFF_NOT_FOUND]:me,[p.HANDOFF_EXPIRED]:me,[p.HANDOFF_CURSOR_INVALID]:me,[p.HANDOFF_RESPONSE_TOO_LARGE]:me,[p.BRIDGE_UNAUTHORIZED]:me,[p.BRIDGE_PROTOCOL_MISMATCH]:me,[p.BRIDGE_BUSY]:me,[p.EXTERNAL_AGENT_BUSY]:me,[p.ACTIVE_ADAPTER_CONFLICT]:me,[p.ACTIVE_ADAPTER_LEASE_INVALID]:me,[p.ACTIVE_DISPATCH_INVALID]:me,[p.SESSION_NOT_FOUND]:me,[p.SESSION_AMBIGUOUS]:me,[p.SESSION_CLOSED]:me,[p.WORKTREE_DIRTY]:"Confirm inclusion of local changes before running AI.",[p.WORKTREE_NOT_REPOSITORY]:"Vite root must be an initialized Git repository root.",[p.WORKTREE_OPERATION_IN_PROGRESS]:"Finish the active merge, rebase, cherry-pick, or revert.",[p.WORKTREE_CONFLICTED]:"Resolve all Git conflicts before running AI.",[p.WORKTREE_LOCAL_CHANGES_TOO_LARGE]:"Reduce untracked files below the safe count and size limits.",[p.WORKTREE_UNTRACKED_UNSUPPORTED]:"An untracked path is missing, linked, or not a regular file.",[p.WORKTREE_LOCAL_CHANGES_UNSUPPORTED]:"Local changes cannot be isolated safely.",[p.TOOL_DENIED]:"A tool request violated local safety policy.",[p.TOOL_INPUT_INVALID]:"Invalid tool request.",[p.TOOL_ARGUMENTS_INVALID]:"Tool arguments are invalid.",[p.TOOL_CALL_ID_CONFLICT]:"Tool ID conflicts in this turn.",[p.TOOL_PATH_DENIED]:"The model requested a protected or external path.",[p.PATCH_REJECTED]:"The patch violated local policy.",[p.VALIDATION_FAILED]:"Required checks failed; changes cannot be applied.",[p.APPLY_CONFLICT]:"Agent-touched files changed; nothing was overwritten.",[p.INTERNAL_ERROR]:"The Agent failed without exposing private details."}),Bi=Object.freeze({[p.INVALID_REQUEST]:"Agent 请求无效,已被拒绝。",[p.INVALID_TOKEN]:"本地 SpotPatch 会话已失效。",[p.ORIGIN_NOT_ALLOWED]:"当前页面来源未获授权。",[p.SOURCE_NOT_FOUND]:"选中目标对应的源码已不可用。",[p.SOURCE_OUTSIDE_ROOT]:"选中源码位于项目根目录之外。",[p.SOURCE_TOO_LARGE]:"选中源码超过安全大小限制。",[p.EDITOR_OPEN_FAILED]:"编辑器打开请求失败。",[p.DATA_FLOW_DISABLED]:"组件数据链路分析未启用。",[p.DATA_FLOW_SOURCE_STALE]:"选中源码已经变化,请重新选择组件。",[p.DATA_FLOW_ANALYSIS_CANCELLED]:"组件数据链路分析已取消。",[p.AI_DISABLED]:"Vite 配置未启用 AI 执行。",[p.PROVIDER_NOT_CONFIGURED]:"启动 Vite 的进程中缺少模型服务 Key 环境变量。",[p.PROVIDER_AUTH_FAILED]:"模型服务鉴权失败,请检查服务端 Key。",[p.PROVIDER_PROTOCOL_UNSUPPORTED]:"中转服务与配置的 OpenAI 兼容协议不一致。",[p.MODEL_NOT_ALLOWED]:"当前模型配置未获授权。",[p.MODEL_TOOL_CALL_UNSUPPORTED]:"当前模型未完成必要的工具调用或结果续接。",[p.PROVIDER_RATE_LIMITED]:"模型服务正在限流,请稍后重试。",[p.AGENT_BUSY]:"当前项目已有一个写入任务正在运行。",[p.AGENT_LIMIT_EXCEEDED]:"Agent 达到时间、轮次、输出或变更规模限制。",[p.AGENT_CANCELLED]:"Agent 任务已取消。",[p.EXTERNAL_HANDOFF_DISABLED]:ye,[p.EXTERNAL_HANDOFF_UNAVAILABLE]:ye,[p.HANDOFF_VALIDATION_FAILED]:ye,[p.HANDOFF_SOURCE_STALE]:ye,[p.HANDOFF_NOT_FOUND]:ye,[p.HANDOFF_EXPIRED]:ye,[p.HANDOFF_CURSOR_INVALID]:ye,[p.HANDOFF_RESPONSE_TOO_LARGE]:ye,[p.BRIDGE_UNAUTHORIZED]:ye,[p.BRIDGE_PROTOCOL_MISMATCH]:ye,[p.BRIDGE_BUSY]:ye,[p.EXTERNAL_AGENT_BUSY]:ye,[p.ACTIVE_ADAPTER_CONFLICT]:ye,[p.ACTIVE_ADAPTER_LEASE_INVALID]:ye,[p.ACTIVE_DISPATCH_INVALID]:ye,[p.SESSION_NOT_FOUND]:ye,[p.SESSION_AMBIGUOUS]:ye,[p.SESSION_CLOSED]:ye,[p.WORKTREE_DIRTY]:"运行 AI 前,请明确同意将当前本地修改纳入隔离基线。",[p.WORKTREE_NOT_REPOSITORY]:"Vite 根目录不是已初始化 Git 仓库的顶层目录。",[p.WORKTREE_OPERATION_IN_PROGRESS]:"请先完成当前 merge、rebase、cherry-pick 或 revert,再运行 AI。",[p.WORKTREE_CONFLICTED]:"请先解决全部 Git 冲突,再运行 AI。",[p.WORKTREE_LOCAL_CHANGES_TOO_LARGE]:"未跟踪文件超过安全数量或体积上限,请先精简。",[p.WORKTREE_UNTRACKED_UNSUPPORTED]:"未跟踪项已丢失、是符号链接或不是普通文件。",[p.WORKTREE_LOCAL_CHANGES_UNSUPPORTED]:"当前本地修改无法安全隔离。",[p.TOOL_DENIED]:"工具请求违反本地安全策略。",[p.TOOL_INPUT_INVALID]:"工具请求无效。",[p.TOOL_ARGUMENTS_INVALID]:"工具参数无效。",[p.TOOL_CALL_ID_CONFLICT]:"本轮工具 ID 冲突。",[p.TOOL_PATH_DENIED]:"模型请求了受保护或项目外路径。",[p.PATCH_REJECTED]:"补丁违反本地策略。",[p.VALIDATION_FAILED]:"必需检查失败,无法应用变更。",[p.APPLY_CONFLICT]:"Agent 触及文件已变化,未覆盖。",[p.INTERNAL_ERROR]:"Agent 失败,未暴露私有细节。"}),Ui=Object.freeze({adapter:"React adapter",api:"API",apiStatuses:Object.freeze({connected:"connected",failed:"failed",loading:"loading","not-required":"not required"}),available:"available",boundary:"Boundary",boundaries:Object.freeze({component:"component","nearby-lines":"nearby lines"}),browserContext:"Browser context",collectionStatuses:Object.freeze({failed:"failed",loading:"loading",ready:"ready"}),component:"Component",confidence:"Confidence",confidenceLabels:Object.freeze({exact:"exact element source",probable:"probable owning component",approximate:"nearest business container",unknown:"source not found"}),cssWarnings:"CSS warnings",lineLocation:(e,t)=>`line ${String(e)}${t===void 0?"":`, column ${String(t)}`}`,origin:"Origin",source:"Source",sourceContext:"Source context",stack:"Stack",target:(e,t)=>`Target ${String(e)}${t?" (active)":""}`,unavailable:"unavailable",unsupported:"unsupported",warning:"Warning"}),zi=Object.freeze({adapter:"React 适配器",api:"API",apiStatuses:Object.freeze({connected:"已连接",failed:"失败",loading:"加载中","not-required":"无需请求"}),available:"可用",boundary:"代码边界",boundaries:Object.freeze({component:"完整组件","nearby-lines":"附近代码"}),browserContext:"浏览器上下文",collectionStatuses:Object.freeze({failed:"失败",loading:"采集中",ready:"已就绪"}),component:"组件",confidence:"置信度",confidenceLabels:Object.freeze({exact:"精确元素源码",probable:"可能的所属组件",approximate:"最近业务容器",unknown:"未找到源码"}),cssWarnings:"CSS 警告",lineLocation:(e,t)=>`第 ${String(e)} 行${t===void 0?"":`,第 ${String(t)} 列`}`,origin:"定位来源",source:"源码",sourceContext:"源码上下文",stack:"组件栈",target:(e,t)=>`目标 ${String(e)}${t?"(当前)":""}`,unavailable:"不可用",unsupported:"不支持",warning:"警告"}),ji=Object.freeze({"en-US":Object.freeze({localeName:"EN",alternateLocaleName:"中",switchLocale:"Switch interface language to Chinese",brand:Object.freeze({name:"SpotPatch",context:"Live context",repository:"GitHub ↗",repositoryTitle:"Star SpotPatch on GitHub"}),trigger:Object.freeze({select:"Select element",stop:"Stop selecting",title:e=>`Toggle SpotPatch (${e})`}),dialog:Object.freeze({close:"Close SpotPatch",editTitle:"Plan the change",editSubtitle:"Give each selected target its own precise instruction.",previewTitle:"Review the request",previewSubtitle:"Verify the complete context before it leaves the browser."}),floatingSurface:Object.freeze({dragHandle:"Drag to move the SpotPatch workbench",resetPosition:"Reset workbench position",positionReset:"SpotPatch position reset to the lower-right corner."}),context:Object.freeze({collecting:"Collecting context",ready:"Context ready",partial:"Partial context",sourceUnavailable:"Source unavailable",selectedElement:"Selected element",selectedCount:e=>`${String(e)} elements selected`}),targets:Object.freeze({title:"Selected targets",ariaLabel:"Selected targets and change instructions",count:(e,t)=>`${String(e)} of ${String(t)}`,complete:(e,t)=>`${String(e)} of ${String(t)} described`,instructionBudget:(e,t)=>`${String(e)} / ${String(t)} characters`,instructionBudgetExceeded:(e,t)=>`${String(e)} / ${String(t)} characters — reduce the request`,statusReady:"Ready",statusPartial:"Partial",statusCollecting:"Collecting",instructionReady:"Instruction added",instructionMissing:"Needs instruction",instructionLabel:e=>`Change for ${e}`,instructionPlaceholder:"Describe the desired result for this target, including constraints…",instructionCount:(e,t)=>`${String(e)} / ${String(t)}`,activate:e=>`Edit target ${String(e)}`,remove:e=>`Remove target ${String(e)}`,removeTitle:"Remove target",addTitle:"Add another element to this request",limitTitle:e=>`Selection limit reached (${String(e)})`}),diagnostics:Object.freeze({title:"Captured context",resolving:"Resolving source…",noExactSource:"No exact source marker",promptAriaLabel:"Generated prompt"}),summary:Ui,actions:Object.freeze({addElement:"Add element",reselect:"Start over",openEditor:"Open source",openTarget:e=>`Open source for target ${String(e)}`,preview:"Preview prompt",copy:"Copy prompt",back:"Back to edit"}),agent:Object.freeze({title:"AI code agent",mode:"Execution mode",review:"Review",autoGated:"Auto gated",trustedFast:"Trusted direct",provider:"Provider",model:"Model",providerAriaLabel:"AI provider",modelAriaLabel:"AI model",providerUnavailable:"Provider configuration is unavailable.",consent:e=>`I understand selected context and allowed source may be sent to ${e}; its data policy is my responsibility.`,trustedFastConsent:e=>`Enable trusted direct mode for ${e}: send allowed project context, include current local changes, skip project validation checks, and immediately apply AI changes, including file deletions and configuration changes.`,connectionNotTested:"Optional connection check not run",workspaceNotChecked:"Local workspace not checked",checkingWorkspace:"Checking Git workspace and isolated execution…",workspaceReady:"Local workspace is ready for isolated execution",workspaceDirty:(e,t,o)=>`Local changes found · ${String(e)} staged · ${String(t)} unstaged · ${String(o)} untracked`,includeLocalChanges:"Allow the Agent to continue from my current local changes",includeLocalChangesHelp:"The Agent may edit these files. SpotPatch preserves the baseline and applies or reverts only the Agent delta.",localChangesConsentRequired:"Confirm inclusion of current local changes before running AI.",capabilityVerified:"Agent capability verified",capabilityVerifiedAnnouncement:"AI provider capability verified.",testingCapability:"Testing authentication, tools, continuation, and streaming…",applying:"Applying changes to the project.",cancelling:"Cancelling Agent job.",reverting:"Reverting the applied Agent change.",consentRequired:"Confirm remote provider data transmission before running AI.",toolsReady:"tools and streaming ready",testConnection:"Check environment",verifying:"Verifying…",run:"Run AI",cancel:"Cancel agent",discard:"Discard changes",apply:"Apply changes",revert:"Revert changes",revise:"Revise request",diffAriaLabel:"Proposed source diff",noOutput:"No output.",status:e=>Di[e]}),execution:Object.freeze({claude:"Claude",codex:"Codex",receivingTitle:"Receiving context",dispatchingTitle:e=>`Handing off to ${e}`,runningTitle:e=>`Modifying ${e}`,expandedRunningTitle:e=>`${e} is making changes`,completedTitle:"Change complete",expandedCompletedTitle:"Changes complete",failedTitle:"Execution failed",receivingStatus:"Receiving",dispatchingStatus:"Dispatching",runningStatus:"Running",checkingStatus:"Checking",completedStatus:"Done",failedStatus:"Failed",resultReturned:"The result is back in SpotPatch",resultSummary:e=>`${String(e)} ${e===1?"file":"files"}`,activityAction:(e,t)=>gr(Mi,e,t),activityLane:fr}),announcements:Object.freeze({adapterDisabled:"React inspection was disabled after an adapter failure.",selectionEnabled:"Element selection enabled.",chooseAnother:"Choose another element.",reselectAfterChange:"Choose the current elements again after the file change.",sourceLoaded:"Source context loaded.",sourceFailed:"Source context could not be loaded.",addCancelled:"Additional selection cancelled.",selectionLimit:e=>`The selection limit of ${String(e)} elements has been reached.`,chooseAdditional:(e,t)=>`Choose another element. ${String(e)} of ${String(t)} selected.`,duplicate:"That source target is already selected.",sourceProbable:"A probable React component was found without an authorized file token.",sourceMissing:"No authorized source marker was found for the selected element.",noSelectable:"No selectable element was found.",allTargetsRemoved:"All targets were removed. Choose an element to continue.",targetRemoved:"Selected target removed.",detachedTargetPreserved:"The page element was unloaded; its collected context remains selected.",contextWarning:"Browser context collection completed with a warning.",contextCollected:"Browser context collected.",editorOpening:"Opening source…",editorOpened:"Source opened in the editor.",editorFailed:"Could not open the editor. Start it or configure editor.",completeInstructions:"Add an instruction for every target and wait for context collection to finish.",promptCopied:"Prompt copied to the clipboard.",clipboardUnavailable:"Clipboard access is unavailable. Select the prompt manually.",copyFailed:"Copy failed. Select the prompt manually.",appliedTargetsDetached:"Changes applied. Reselect page elements after HMR before creating another request."}),errors:$i}),"zh-CN":Object.freeze({localeName:"中",alternateLocaleName:"EN",switchLocale:"将界面语言切换为英文",brand:Object.freeze({name:"SpotPatch",context:"实时上下文",repository:"GitHub ↗",repositoryTitle:"在 GitHub 上 Star SpotPatch"}),trigger:Object.freeze({select:"选择元素",stop:"停止选择",title:e=>`切换 SpotPatch(${e})`}),dialog:Object.freeze({close:"关闭 SpotPatch",editTitle:"规划本次修改",editSubtitle:"为每个选中目标分别写清楚修改要求。",previewTitle:"审阅修改请求",previewSubtitle:"发送给 AI 前,请核对完整上下文与每项目标说明。"}),floatingSurface:Object.freeze({dragHandle:"拖拽以移动 SpotPatch 工作台",resetPosition:"重置工作台位置",positionReset:"SpotPatch 已恢复到右下角。"}),context:Object.freeze({collecting:"正在采集上下文",ready:"上下文已就绪",partial:"部分上下文可用",sourceUnavailable:"源码位置不可用",selectedElement:"已选元素",selectedCount:e=>`已选择 ${String(e)} 个元素`}),targets:Object.freeze({title:"修改目标",ariaLabel:"已选目标与逐项目标说明",count:(e,t)=>`${String(e)} / ${String(t)}`,complete:(e,t)=>`已描述 ${String(e)} / ${String(t)}`,instructionBudget:(e,t)=>`说明字符 ${String(e)} / ${String(t)}`,instructionBudgetExceeded:(e,t)=>`说明字符 ${String(e)} / ${String(t)},请精简后继续`,statusReady:"已就绪",statusPartial:"部分可用",statusCollecting:"采集中",instructionReady:"已填写修改说明",instructionMissing:"待填写修改说明",instructionLabel:e=>`${e} 的修改说明`,instructionPlaceholder:"描述这个目标期望达到的结果,以及不能破坏的约束……",instructionCount:(e,t)=>`${String(e)} / ${String(t)}`,activate:e=>`编辑目标 ${String(e)}`,remove:e=>`移除目标 ${String(e)}`,removeTitle:"移除目标",addTitle:"继续为本次请求选择元素",limitTitle:e=>`已达到 ${String(e)} 个目标的上限`}),diagnostics:Object.freeze({title:"已采集上下文",resolving:"正在解析源码……",noExactSource:"没有精确源码标记",promptAriaLabel:"生成的 Prompt"}),summary:zi,actions:Object.freeze({addElement:"添加元素",reselect:"重新开始",openEditor:"打开源码",openTarget:e=>`打开目标 ${String(e)} 的源码`,preview:"预览 Prompt",copy:"复制 Prompt",back:"返回编辑"}),agent:Object.freeze({title:"AI 代码 Agent",mode:"执行方式",review:"审阅模式",autoGated:"受控自动模式",trustedFast:"可信极速模式",provider:"模型服务",model:"模型",providerAriaLabel:"AI 模型服务",modelAriaLabel:"AI 模型",providerUnavailable:"模型服务配置不可用。",consent:e=>`我了解选中上下文与获准源码可能发送到 ${e},并自行负责其数据策略。`,trustedFastConsent:e=>`为 ${e} 启用可信极速模式:发送获准的项目上下文、纳入当前本地修改、跳过项目验证检查,并立即应用 AI 变更,包括删除文件与配置变更。`,connectionNotTested:"尚未执行可选连接检查",workspaceNotChecked:"尚未检查本地工作区",checkingWorkspace:"正在检查 Git 工作区与隔离执行环境……",workspaceReady:"本地工作区已满足隔离执行条件",workspaceDirty:(e,t,o)=>`发现本地修改 · 暂存 ${String(e)} · 未暂存 ${String(t)} · 未跟踪 ${String(o)}`,includeLocalChanges:"允许 Agent 基于我当前的本地修改继续",includeLocalChangesHelp:"Agent 可能继续修改这些文件;SpotPatch 会保留原基线,仅应用或撤销 Agent 自己的增量。",localChangesConsentRequired:"运行 AI 前,请确认允许纳入当前本地修改。",capabilityVerified:"Agent 能力验证通过",capabilityVerifiedAnnouncement:"AI 模型服务能力验证通过。",testingCapability:"正在验证鉴权、工具调用、连续调用与流式响应……",applying:"正在将变更应用到项目。",cancelling:"正在取消 Agent 任务。",reverting:"正在撤销已应用的 Agent 变更。",consentRequired:"运行 AI 前,请先确认允许向远程模型服务传输数据。",toolsReady:"工具调用与流式响应已就绪",testConnection:"检查运行环境",verifying:"验证中……",run:"运行 AI",cancel:"取消 Agent",discard:"放弃变更",apply:"应用变更",revert:"撤销变更",revise:"修改请求",diffAriaLabel:"建议的源码差异",noOutput:"没有输出。",status:e=>Fi[e]}),execution:Object.freeze({claude:"Claude",codex:"Codex",receivingTitle:"正在接收上下文",dispatchingTitle:e=>`正在交接给 ${e}`,runningTitle:e=>`正在修改 ${e}`,expandedRunningTitle:e=>`${e} 正在执行修改`,completedTitle:"修改完成",expandedCompletedTitle:"修改已完成",failedTitle:"执行失败",receivingStatus:"接收中",dispatchingStatus:"派发中",runningStatus:"执行中",checkingStatus:"检查中",completedStatus:"完成",failedStatus:"失败",resultReturned:"结果已回流 SpotPatch",resultSummary:e=>`${String(e)} 个文件`,activityAction:(e,t)=>gr(Hi,e,t),activityLane:fr}),announcements:Object.freeze({adapterDisabled:"React 适配器异常,本次会话已停用 React 检查。",selectionEnabled:"元素选择已启用。",chooseAnother:"请选择另一个元素。",reselectAfterChange:"文件变更后,请重新选择当前页面元素。",sourceLoaded:"源码上下文已加载。",sourceFailed:"源码上下文加载失败。",addCancelled:"已取消追加选择。",selectionLimit:e=>`已达到 ${String(e)} 个元素的选择上限。`,chooseAdditional:(e,t)=>`请选择另一个元素,当前已选 ${String(e)} / ${String(t)}。`,duplicate:"该源码目标已经在当前选择中。",sourceProbable:"找到可能的 React 组件,但没有获授权的源码标记。",sourceMissing:"选中元素没有获授权的源码标记。",noSelectable:"当前位置没有可选择的元素。",allTargetsRemoved:"已移除全部目标,请重新选择元素。",targetRemoved:"已移除选中目标。",detachedTargetPreserved:"页面元素已卸载,已采集的上下文仍保留在选择中。",contextWarning:"浏览器上下文采集完成,但存在警告。",contextCollected:"浏览器上下文采集完成。",editorOpening:"正在打开源码……",editorOpened:"源码已在编辑器中打开。",editorFailed:"无法打开编辑器。请先启动编辑器或检查 editor 配置。",completeInstructions:"请为每个目标填写修改说明,并等待上下文采集完成。",promptCopied:"Prompt 已复制到剪贴板。",clipboardUnavailable:"无法访问剪贴板,请手动选择并复制 Prompt。",copyFailed:"复制失败,请手动选择并复制 Prompt。",appliedTargetsDetached:"变更已应用;HMR 后请重新选择页面元素再发起新请求。"}),errors:Bi})});function hr(e){if(e===void 0||e.trim().length===0)return;let t=e.trim().toLowerCase();return t==="zh"||t.startsWith("zh-")?"zh-CN":t==="en"||t.startsWith("en-")?"en-US":void 0}function Vi(e,t){if(e!=="auto")return e;let o=hr(t.documentElement.lang);return o!==void 0?o:t.defaultView?.navigator.languages.map(hr).find(i=>i!==void 0)??"en-US"}function mr(e,t="auto"){let o=Vi(t,e),n=new Set;return Object.freeze({locale:()=>o,messages:()=>ji[o],subscribe(i){return n.add(i),()=>{n.delete(i)}},toggle(){o=o==="en-US"?"zh-CN":"en-US";for(let i of n)i()}})}var Wi="spotpatch:floating-surface:";function qi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function yr(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function br(e){return e==="start"||e==="end"}function Gi(e){let t=qi(e);if(!(t?.version!==1||!br(t.horizontal)||!br(t.vertical)||!yr(t.xRatio)||!yr(t.yRatio)))return Object.freeze({horizontal:t.horizontal,vertical:t.vertical,xRatio:t.xRatio,yRatio:t.yRatio})}function Sr(e,t){let o=`${Wi}${t}`,n;try{n=e.sessionStorage}catch{n=void 0}return Object.freeze({clear(){try{n?.removeItem(o)}catch{}},load(){let i;try{i=n?.getItem(o)??null}catch{return}if(!(i===null||i.length>1024))try{return Gi(JSON.parse(i))}catch{return}},save(i){try{n?.setItem(o,JSON.stringify({version:1,...i}))}catch{}}})}var hn=Object.freeze({horizontal:"end",vertical:"end",xRatio:1,yRatio:1});function Gt(e,t,o){return Math.min(Math.max(e,t),o)}function At(e){return Number.isFinite(e)?Math.max(0,e):0}function Un(e){return Number.isFinite(e)?Gt(e,0,1):.5}function Ar(e){return Object.freeze({height:At(e.height),left:Number.isFinite(e.left)?e.left:0,top:Number.isFinite(e.top)?e.top:0,width:At(e.width)})}function Ki(e,t){return t==="end"?e.left+e.width:e.left}function Ji(e,t){return t==="end"?e.top+e.height:e.top}function Er(e,t,o){return o<=0?.5:Un((e-t)/o)}function zn(e,t,o,n){return Object.freeze({horizontal:o,vertical:n,xRatio:Er(e.x,t.left,t.width),yRatio:Er(e.y,t.top,t.height)})}function xr(e,t,o){let n=At(t.width),i=At(t.height),d=Ar(o),a=d.width,l=d.height,C=d.left,x=d.top,w=C+a,j=x+l,y=C+Un(e.xRatio)*a,s=x+Un(e.yRatio)*l,V=e.horizontal==="end"?y-n:y,$=e.vertical==="end"?s-i:s,A=Math.max(C,w-n),T=Math.max(x,j-i);return Object.freeze({height:i,left:Gt(V,C,A),top:Gt($,x,T),width:n})}function jn(e,t,o){let n=At(o),i=At(e.width),d=At(e.height),a=Ar(t),l=a.left+a.width,C=a.top+a.height,x=Math.max(a.left,l-i),w=Math.max(a.top,C-d),j=Gt(e.left,a.left,x),y=Gt(e.top,a.top,w),s=Math.abs(j-a.left),V=Math.abs(l-(j+i)),$=Math.abs(y-a.top),A=Math.abs(C-(y+d)),T=Math.min(s,V)<=n?s<=V?a.left:l-i:j,W=Math.min($,A)<=n?$<=A?a.top:C-d:y;return Object.freeze({height:d,left:T,top:W,width:i})}function vr(e,t,o){let n=jn(e,t,0),i=n.left+n.width/2,d=n.top+n.height/2,a=t.left+At(t.width)/2,l=t.top+At(t.height)/2,C=i===a?o.horizontal:i<a?"start":"end",x=d===l?o.vertical:d<l?"start":"end";return zn({x:Ki(n,C),y:Ji(n,x)},t,C,x)}function Ft(e,t=0){return Number.isFinite(e)?e:t}function Xi(e,t){return Math.hypot(e.x-t.x,e.y-t.y)}function Yi(e){return e.button===0&&e.isPrimary}function Zi(e){let t=e.getBoundingClientRect();return Object.freeze({height:Math.max(0,Ft(t.height)),width:Math.max(0,Ft(t.width))})}function Qi(e,t){return typeof e.requestAnimationFrame=="function"?e.requestAnimationFrame(t):e.setTimeout(()=>{t(Date.now())},0)}function Cr(e,t){if(typeof e.cancelAnimationFrame=="function"){e.cancelAnimationFrame(t);return}e.clearTimeout(t)}function Rr(e,t,o){let n=t.load()??hn,i,d,a,l,C=!1,x=new Set,w=new Set;function j(){let E=e.visualViewport,R=Math.max(0,Ft(E?.width??e.innerWidth)),O=Math.max(0,Ft(E?.height??e.innerHeight)),_=R<=o.compactViewportWidth?o.compactInset:o.desktopInset;return Object.freeze({height:Math.max(0,O-_*2),left:Ft(E?.offsetLeft??0)+_,top:Ft(E?.offsetTop??0)+_,width:Math.max(0,R-_*2)})}function y(){return j().width+o.compactInset*2<=o.compactViewportWidth}function s(E){if(E.hidden||E.dataset.motionMorphing==="true"&&E.dataset.floatingPositioned==="true")return;let R=Zi(E);if(R.width===0||R.height===0)return;let O=xr(n,R,j());return E.style.left=`${String(O.left)}px`,E.style.top=`${String(O.top)}px`,E.style.right="auto",E.style.bottom="auto",E.dataset.floatingPositioned="true",O}function V(){if(!C){d!==void 0&&(Cr(e,d),d=void 0);for(let E of x)s(E)}}function $(){C||d!==void 0||(d=Qi(e,()=>{d=void 0,V()}))}function A(E){n=E,t.save(n)}function T(E){let R=i;if(R!==void 0){i=void 0,R.handle.dataset.dragging="false",R.surface.dataset.dragging="false";try{R.handle.hasPointerCapture(R.pointerId)&&R.handle.releasePointerCapture(R.pointerId)}catch{}if(E){let O=s(R.surface);if(O!==void 0){let _=jn(O,j(),o.edgeSnapDistance);A(vr(_,j(),n)),s(R.surface)}}else n=t.load()??hn,V()}}function W(E){let R=i;if(R===void 0||E.pointerId!==R.pointerId)return;let O=Object.freeze({x:E.clientX,y:E.clientY}),_=Object.freeze({x:R.startX,y:R.startY});R.handle.dataset.dragging!=="true"&&Xi(O,_)<o.dragActivationDistance||(R.handle.dataset.dragging!=="true"&&R.onDragStart?.(),R.handle.dataset.dragging="true",R.surface.dataset.dragging="true",n=zn({x:O.x+R.anchorOffsetX,y:O.y+R.anchorOffsetY},j(),n.horizontal,n.vertical),$(),E.preventDefault())}function U(E,R,O,_){E.addEventListener(R,O,_),w.add(()=>{E.removeEventListener(R,O,_)})}function N(E,R,O={}){let _=F=>{if(C||i!==void 0||!Yi(F)||O.canStartDrag?.(F)===!1)return;let D=s(R)??R.getBoundingClientRect(),le=n.horizontal==="end"?D.left+D.width:D.left,be=n.vertical==="end"?D.top+D.height:D.top;i=Object.freeze({anchorOffsetX:le-F.clientX,anchorOffsetY:be-F.clientY,handle:E,...O.onDragStart===void 0?{}:{onDragStart:O.onDragStart},pointerId:F.pointerId,startX:F.clientX,startY:F.clientY,suppressClickOnDrag:O.suppressClickOnDrag??!1,surface:R});try{E.setPointerCapture(F.pointerId)}catch{}},ue=F=>{i?.pointerId===F.pointerId&&T(E.dataset.dragging==="true")},Oe=F=>{a===E&&(a=void 0,l!==void 0&&(e.clearTimeout(l),l=void 0),F.preventDefault(),F.stopImmediatePropagation())};U(E,"pointerdown",F=>{_(F)}),U(E,"lostpointercapture",F=>{ue(F)}),U(E,"click",F=>{Oe(F)},!0)}function m(){T(!1),n=hn,t.clear(),V()}function v(){T(!1)}function L(E){E.key!=="Escape"||i===void 0||(T(!1),E.preventDefault(),E.stopImmediatePropagation())}function M(E){if(i?.pointerId!==E.pointerId)return;let R=i,O=R.handle.dataset.dragging==="true";T(O),O&&R.suppressClickOnDrag&&(a=R.handle,l=e.setTimeout(()=>{a=void 0,l=void 0},0))}function G(E){i?.pointerId===E.pointerId&&T(!1)}return U(e,"pointermove",E=>{W(E)}),U(e,"pointerup",E=>{M(E)}),U(e,"pointercancel",E=>{G(E)}),U(e,"resize",$),U(e,"blur",v),U(e,"keydown",E=>{L(E)},!0),e.visualViewport?.addEventListener("resize",$),e.visualViewport?.addEventListener("scroll",$),w.add(()=>e.visualViewport?.removeEventListener("resize",$)),w.add(()=>e.visualViewport?.removeEventListener("scroll",$)),Object.freeze({attachDraggable:N,dispose(){if(!C){C=!0,T(!1),d!==void 0&&(Cr(e,d),d=void 0),l!==void 0&&(e.clearTimeout(l),l=void 0),a=void 0;for(let E of w)E();w.clear(),x.clear()}},isCompact:y,reconcile:V,registerSurface(E){x.add(E)},requestReconcile:$,reset:m})}var es=1500;function ts(e){let t=new Set([...e.querySelectorAll("script[nonce]")].map(o=>o.nonce?.trim()??"").filter(Boolean));if(t.size===1)return t.values().next().value}function ns(e){let t=e.createElement("style");return t.textContent=`
354
- ${lr}
353
+ `,Nc=Object.freeze({dispatchGlowRest:"0 0 0 0 rgb(124 77 255 / 0%)",dispatchGlow:"0 0 0 4px rgb(124 77 255 / 22%)"});var ji=Symbol.for("spotpatch.external-handoff.v1");function bn(){return globalThis[ji]}var Vi=Symbol.for("spotpatch.contextual-ask.v1");function Sn(){return globalThis[Vi]}var qi=Symbol.for("spotpatch.motion.v1");function Ar(){return globalThis[qi]}var Wi=Object.freeze({queued:"Queued",preparing:"Preparing",running:"Running",validating:"Validating","awaiting-review":"Awaiting review",applying:"Applying",applied:"Applied",completed:"Completed",cancelling:"Cancelling",cancelled:"Cancelled",reverting:"Reverting",reverted:"Reverted",failed:"Failed"}),Gi=Object.freeze({queued:"已排队",preparing:"准备中",running:"执行中",validating:"验证中","awaiting-review":"等待审阅",applying:"应用中",applied:"已应用",completed:"已完成",cancelling:"取消中",cancelled:"已取消",reverting:"撤销中",reverted:"已撤销",failed:"失败"}),Ki=Object.freeze({prepare:"Preparing context",dispatch:"Dispatching context",discover:"Discovering project files",search:"Searching source",read:"Reading",patch:"Generating a minimal patch",check:"Running",audit:"Auditing proposed changes",apply:"Applying verified changes",sync:"Returning results to SpotPatch",unknown:"Processing the current task"}),Ji=Object.freeze({prepare:"正在准备上下文",dispatch:"正在派发上下文",discover:"正在查找项目文件",search:"正在搜索源码",read:"正在读取",patch:"正在生成最小修改补丁",check:"正在运行",audit:"正在审计候选修改",apply:"正在应用已验证修改",sync:"正在将结果回流 SpotPatch",unknown:"正在处理当前任务"}),xr=Object.freeze({prepare:"prepare",dispatch:"dispatch",discover:"list",search:"search",read:"read",patch:"patch",check:"check",audit:"audit",apply:"apply",sync:"sync",unknown:"agent"});function vr(e,t,o){return o===void 0||o.length===0?e[t]:`${e[t]} ${o}`}function Cr(e,t){return t===void 0||t.length===0?xr[e]:`${xr[e]} · ${t}`}var Se="The external Agent handoff request failed.",Ee="外部 Agent 交接请求失败。",Xi=Object.freeze({[u.INVALID_REQUEST]:"The Agent request was rejected as invalid.",[u.INVALID_TOKEN]:"The local SpotPatch session expired.",[u.ORIGIN_NOT_ALLOWED]:"The current page origin is not authorized.",[u.SOURCE_NOT_FOUND]:"The selected source is no longer available.",[u.SOURCE_OUTSIDE_ROOT]:"The selected source is outside the project.",[u.SOURCE_TOO_LARGE]:"The selected source exceeds the safety limit.",[u.EDITOR_OPEN_FAILED]:"The editor request failed.",[u.DATA_FLOW_DISABLED]:"Component data-flow analysis is disabled.",[u.DATA_FLOW_SOURCE_STALE]:"The selected source changed. Select the component again.",[u.DATA_FLOW_ANALYSIS_CANCELLED]:"Component data-flow analysis was cancelled.",[u.AI_DISABLED]:"AI execution is disabled in Vite configuration.",[u.PROVIDER_NOT_CONFIGURED]:"The provider Key environment variable is missing on the Vite process.",[u.PROVIDER_AUTH_FAILED]:"The provider rejected authentication. Check the server-side Key.",[u.PROVIDER_PROTOCOL_UNSUPPORTED]:"The relay does not match the configured OpenAI-compatible protocol.",[u.MODEL_NOT_ALLOWED]:"The selected model profile is not allowed.",[u.MODEL_TOOL_CALL_UNSUPPORTED]:"The selected model did not start or continue the required tool call.",[u.PROVIDER_RATE_LIMITED]:"The provider is rate limited. Wait and try again.",[u.AGENT_BUSY]:"Another write Agent job is still active.",[u.AGENT_LIMIT_EXCEEDED]:"The Agent stopped at a configured time, turn, output, or size limit.",[u.AGENT_CANCELLED]:"The Agent job was cancelled.",[u.EXTERNAL_HANDOFF_DISABLED]:Se,[u.EXTERNAL_HANDOFF_UNAVAILABLE]:Se,[u.HANDOFF_VALIDATION_FAILED]:Se,[u.HANDOFF_SOURCE_STALE]:Se,[u.HANDOFF_NOT_FOUND]:Se,[u.HANDOFF_EXPIRED]:Se,[u.HANDOFF_CURSOR_INVALID]:Se,[u.HANDOFF_RESPONSE_TOO_LARGE]:Se,[u.BRIDGE_UNAUTHORIZED]:Se,[u.BRIDGE_PROTOCOL_MISMATCH]:Se,[u.BRIDGE_BUSY]:Se,[u.EXTERNAL_AGENT_BUSY]:Se,[u.ACTIVE_ADAPTER_CONFLICT]:Se,[u.ACTIVE_ADAPTER_LEASE_INVALID]:Se,[u.ACTIVE_DISPATCH_INVALID]:Se,[u.SESSION_NOT_FOUND]:Se,[u.SESSION_AMBIGUOUS]:Se,[u.SESSION_CLOSED]:Se,[u.WORKTREE_DIRTY]:"Confirm inclusion of local changes before running AI.",[u.WORKTREE_NOT_REPOSITORY]:"Vite root must be an initialized Git repository root.",[u.WORKTREE_OPERATION_IN_PROGRESS]:"Finish the active merge, rebase, cherry-pick, or revert.",[u.WORKTREE_CONFLICTED]:"Resolve all Git conflicts before running AI.",[u.WORKTREE_LOCAL_CHANGES_TOO_LARGE]:"Reduce untracked files below the safe count and size limits.",[u.WORKTREE_UNTRACKED_UNSUPPORTED]:"An untracked path is missing, linked, or not a regular file.",[u.WORKTREE_LOCAL_CHANGES_UNSUPPORTED]:"Local changes cannot be isolated safely.",[u.TOOL_DENIED]:"A tool request violated local safety policy.",[u.TOOL_INPUT_INVALID]:"Invalid tool request.",[u.TOOL_ARGUMENTS_INVALID]:"Tool arguments are invalid.",[u.TOOL_CALL_ID_CONFLICT]:"Tool ID conflicts in this turn.",[u.TOOL_PATH_DENIED]:"The model requested a protected or external path.",[u.PATCH_REJECTED]:"The patch violated local policy.",[u.VALIDATION_FAILED]:"Required checks failed; changes cannot be applied.",[u.APPLY_CONFLICT]:"Agent-touched files changed; nothing was overwritten.",[u.INTERNAL_ERROR]:"The Agent failed without exposing private details."}),Yi=Object.freeze({[u.INVALID_REQUEST]:"Agent 请求无效,已被拒绝。",[u.INVALID_TOKEN]:"本地 SpotPatch 会话已失效。",[u.ORIGIN_NOT_ALLOWED]:"当前页面来源未获授权。",[u.SOURCE_NOT_FOUND]:"选中目标对应的源码已不可用。",[u.SOURCE_OUTSIDE_ROOT]:"选中源码位于项目根目录之外。",[u.SOURCE_TOO_LARGE]:"选中源码超过安全大小限制。",[u.EDITOR_OPEN_FAILED]:"编辑器打开请求失败。",[u.DATA_FLOW_DISABLED]:"组件数据链路分析未启用。",[u.DATA_FLOW_SOURCE_STALE]:"选中源码已经变化,请重新选择组件。",[u.DATA_FLOW_ANALYSIS_CANCELLED]:"组件数据链路分析已取消。",[u.AI_DISABLED]:"Vite 配置未启用 AI 执行。",[u.PROVIDER_NOT_CONFIGURED]:"启动 Vite 的进程中缺少模型服务 Key 环境变量。",[u.PROVIDER_AUTH_FAILED]:"模型服务鉴权失败,请检查服务端 Key。",[u.PROVIDER_PROTOCOL_UNSUPPORTED]:"中转服务与配置的 OpenAI 兼容协议不一致。",[u.MODEL_NOT_ALLOWED]:"当前模型配置未获授权。",[u.MODEL_TOOL_CALL_UNSUPPORTED]:"当前模型未完成必要的工具调用或结果续接。",[u.PROVIDER_RATE_LIMITED]:"模型服务正在限流,请稍后重试。",[u.AGENT_BUSY]:"当前项目已有一个写入任务正在运行。",[u.AGENT_LIMIT_EXCEEDED]:"Agent 达到时间、轮次、输出或变更规模限制。",[u.AGENT_CANCELLED]:"Agent 任务已取消。",[u.EXTERNAL_HANDOFF_DISABLED]:Ee,[u.EXTERNAL_HANDOFF_UNAVAILABLE]:Ee,[u.HANDOFF_VALIDATION_FAILED]:Ee,[u.HANDOFF_SOURCE_STALE]:Ee,[u.HANDOFF_NOT_FOUND]:Ee,[u.HANDOFF_EXPIRED]:Ee,[u.HANDOFF_CURSOR_INVALID]:Ee,[u.HANDOFF_RESPONSE_TOO_LARGE]:Ee,[u.BRIDGE_UNAUTHORIZED]:Ee,[u.BRIDGE_PROTOCOL_MISMATCH]:Ee,[u.BRIDGE_BUSY]:Ee,[u.EXTERNAL_AGENT_BUSY]:Ee,[u.ACTIVE_ADAPTER_CONFLICT]:Ee,[u.ACTIVE_ADAPTER_LEASE_INVALID]:Ee,[u.ACTIVE_DISPATCH_INVALID]:Ee,[u.SESSION_NOT_FOUND]:Ee,[u.SESSION_AMBIGUOUS]:Ee,[u.SESSION_CLOSED]:Ee,[u.WORKTREE_DIRTY]:"运行 AI 前,请明确同意将当前本地修改纳入隔离基线。",[u.WORKTREE_NOT_REPOSITORY]:"Vite 根目录不是已初始化 Git 仓库的顶层目录。",[u.WORKTREE_OPERATION_IN_PROGRESS]:"请先完成当前 merge、rebase、cherry-pick 或 revert,再运行 AI。",[u.WORKTREE_CONFLICTED]:"请先解决全部 Git 冲突,再运行 AI。",[u.WORKTREE_LOCAL_CHANGES_TOO_LARGE]:"未跟踪文件超过安全数量或体积上限,请先精简。",[u.WORKTREE_UNTRACKED_UNSUPPORTED]:"未跟踪项已丢失、是符号链接或不是普通文件。",[u.WORKTREE_LOCAL_CHANGES_UNSUPPORTED]:"当前本地修改无法安全隔离。",[u.TOOL_DENIED]:"工具请求违反本地安全策略。",[u.TOOL_INPUT_INVALID]:"工具请求无效。",[u.TOOL_ARGUMENTS_INVALID]:"工具参数无效。",[u.TOOL_CALL_ID_CONFLICT]:"本轮工具 ID 冲突。",[u.TOOL_PATH_DENIED]:"模型请求了受保护或项目外路径。",[u.PATCH_REJECTED]:"补丁违反本地策略。",[u.VALIDATION_FAILED]:"必需检查失败,无法应用变更。",[u.APPLY_CONFLICT]:"Agent 触及文件已变化,未覆盖。",[u.INTERNAL_ERROR]:"Agent 失败,未暴露私有细节。"}),Zi=Object.freeze({instance:"Selected instance",instanceStates:{captured:"Captured element; locator describes selection time",changed:"Page content changed; snapshot preserved. Select again to confirm the current instance",detached:"Element unloaded; historical snapshot preserved",restored:"Restored snapshot; not bound to the current page"},adapter:"React adapter",api:"API",apiStatuses:Object.freeze({connected:"connected",failed:"failed",loading:"loading","not-required":"not required"}),available:"available",boundary:"Boundary",boundaries:Object.freeze({component:"component","nearby-lines":"nearby lines"}),browserContext:"Browser context",collectionStatuses:Object.freeze({failed:"failed",loading:"loading",ready:"ready"}),component:"Component",confidence:"Confidence",confidenceLabels:Object.freeze({exact:"exact element source",probable:"probable owning component",approximate:"nearest business container",unknown:"source not found"}),cssWarnings:"CSS warnings",lineLocation:(e,t)=>`line ${String(e)}${t===void 0?"":`, column ${String(t)}`}`,origin:"Origin",source:"Source",sourceContext:"Source context",stack:"Stack",target:(e,t)=>`Target ${String(e)}${t?" (active)":""}`,unavailable:"unavailable",unsupported:"unsupported",warning:"Warning"}),Qi=Object.freeze({instance:"选中实例",instanceStates:{captured:"已捕获元素;定位信息对应选择时刻",changed:"页面内容已变化,已保留快照;请重新选择以确认当前实例",detached:"元素已卸载,已保留历史快照",restored:"已恢复历史快照,未绑定当前页面"},adapter:"React 适配器",api:"API",apiStatuses:Object.freeze({connected:"已连接",failed:"失败",loading:"加载中","not-required":"无需请求"}),available:"可用",boundary:"代码边界",boundaries:Object.freeze({component:"完整组件","nearby-lines":"附近代码"}),browserContext:"浏览器上下文",collectionStatuses:Object.freeze({failed:"失败",loading:"采集中",ready:"已就绪"}),component:"组件",confidence:"置信度",confidenceLabels:Object.freeze({exact:"精确元素源码",probable:"可能的所属组件",approximate:"最近业务容器",unknown:"未找到源码"}),cssWarnings:"CSS 警告",lineLocation:(e,t)=>`第 ${String(e)} 行${t===void 0?"":`,第 ${String(t)} 列`}`,origin:"定位来源",source:"源码",sourceContext:"源码上下文",stack:"组件栈",target:(e,t)=>`目标 ${String(e)}${t?"(当前)":""}`,unavailable:"不可用",unsupported:"不支持",warning:"警告"}),es=Object.freeze({"en-US":Object.freeze({localeName:"EN",alternateLocaleName:"中",switchLocale:"Switch interface language to Chinese",brand:Object.freeze({name:"SpotPatch",context:"Live context",repository:"GitHub ↗",repositoryTitle:"Star SpotPatch on GitHub"}),trigger:Object.freeze({select:"Select element",stop:"Stop selecting",title:e=>`Toggle SpotPatch (${e})`}),dialog:Object.freeze({close:"Close SpotPatch",editTitle:"Plan the change",editSubtitle:"Give each selected target its own precise instruction.",previewTitle:"Review the request",previewSubtitle:"Verify the complete context before it leaves the browser."}),floatingSurface:Object.freeze({dragHandle:"Drag to move the SpotPatch workbench",resetPosition:"Reset workbench position",positionReset:"SpotPatch position reset to the lower-right corner."}),context:Object.freeze({collecting:"Collecting context",ready:"Context ready",partial:"Partial context",sourceUnavailable:"Source unavailable",selectedElement:"Selected element",selectedCount:e=>`${String(e)} elements selected`}),targets:Object.freeze({title:"Selected targets",ariaLabel:"Selected targets and change instructions",count:(e,t)=>`${String(e)} of ${String(t)}`,complete:(e,t)=>`${String(e)} of ${String(t)} described`,instructionBudget:(e,t)=>`${String(e)} / ${String(t)} characters`,instructionBudgetExceeded:(e,t)=>`${String(e)} / ${String(t)} characters — reduce the request`,statusReady:"Ready",statusPartial:"Partial",statusCollecting:"Collecting",instructionReady:"Instruction added",instructionMissing:"Needs instruction",instructionLabel:e=>`Change for ${e}`,instructionPlaceholder:"Describe the desired result for this target, including constraints…",instructionCount:(e,t)=>`${String(e)} / ${String(t)}`,activate:e=>`Edit target ${String(e)}`,remove:e=>`Remove target ${String(e)}`,removeTitle:"Remove target",addTitle:"Add another element to this request",limitTitle:e=>`Selection limit reached (${String(e)})`}),diagnostics:Object.freeze({title:"Captured context",resolving:"Resolving source…",noExactSource:"No exact source marker",promptAriaLabel:"Generated prompt"}),summary:Zi,actions:Object.freeze({addElement:"Add element",reselect:"Start over",openEditor:"Open source",openTarget:e=>`Open source for target ${String(e)}`,preview:"Preview prompt",copy:"Copy prompt",back:"Back to edit"}),agent:Object.freeze({title:"AI code agent",mode:"Execution mode",review:"Review",autoGated:"Auto gated",trustedFast:"Trusted direct",provider:"Provider",model:"Model",providerAriaLabel:"AI provider",modelAriaLabel:"AI model",providerUnavailable:"Provider configuration is unavailable.",consent:e=>`I understand selected context and allowed source may be sent to ${e}; its data policy is my responsibility.`,trustedFastConsent:e=>`Enable trusted direct mode for ${e}: send allowed project context, include current local changes, skip project validation checks, and immediately apply AI changes, including file deletions and configuration changes.`,connectionNotTested:"Optional connection check not run",workspaceNotChecked:"Local workspace not checked",checkingWorkspace:"Checking Git workspace and isolated execution…",workspaceReady:"Local workspace is ready for isolated execution",workspaceDirty:(e,t,o)=>`Local changes found · ${String(e)} staged · ${String(t)} unstaged · ${String(o)} untracked`,includeLocalChanges:"Allow the Agent to continue from my current local changes",includeLocalChangesHelp:"The Agent may edit these files. SpotPatch preserves the baseline and applies or reverts only the Agent delta.",localChangesConsentRequired:"Confirm inclusion of current local changes before running AI.",capabilityVerified:"Agent capability verified",capabilityVerifiedAnnouncement:"AI provider capability verified.",testingCapability:"Testing authentication, tools, continuation, and streaming…",applying:"Applying changes to the project.",cancelling:"Cancelling Agent job.",reverting:"Reverting the applied Agent change.",consentRequired:"Confirm remote provider data transmission before running AI.",toolsReady:"tools and streaming ready",testConnection:"Check environment",verifying:"Verifying…",run:"Run AI",cancel:"Cancel agent",discard:"Discard changes",apply:"Apply changes",revert:"Revert changes",revise:"Revise request",diffAriaLabel:"Proposed source diff",noOutput:"No output.",status:e=>Wi[e]}),execution:Object.freeze({claude:"Claude",codex:"Codex",receivingTitle:"Receiving context",dispatchingTitle:e=>`Handing off to ${e}`,runningTitle:e=>`Modifying ${e}`,expandedRunningTitle:e=>`${e} is making changes`,completedTitle:"Change complete",expandedCompletedTitle:"Changes complete",failedTitle:"Execution failed",receivingStatus:"Receiving",dispatchingStatus:"Dispatching",runningStatus:"Running",checkingStatus:"Checking",completedStatus:"Done",failedStatus:"Failed",resultReturned:"The result is back in SpotPatch",resultSummary:e=>`${String(e)} ${e===1?"file":"files"}`,activityAction:(e,t)=>vr(Ki,e,t),activityLane:Cr}),announcements:Object.freeze({adapterDisabled:"React inspection was disabled after an adapter failure.",selectionEnabled:"Element selection enabled.",chooseAnother:"Choose another element.",reselectAfterChange:"Choose the current elements again after the file change.",sourceLoaded:"Source context loaded.",sourceFailed:"Source context could not be loaded.",addCancelled:"Additional selection cancelled.",selectionLimit:e=>`The selection limit of ${String(e)} elements has been reached.`,chooseAdditional:(e,t)=>`Choose another element. ${String(e)} of ${String(t)} selected.`,duplicate:"That page element is already selected.",instanceBudgetExceeded:"The prompt cannot preserve every selected instance within its budget. Remove some targets or increase the context budget.",sourceProbable:"A probable React component was found without an authorized file token.",sourceMissing:"No authorized source marker was found for the selected element.",noSelectable:"No selectable element was found.",allTargetsRemoved:"All targets were removed. Choose an element to continue.",targetRemoved:"Selected target removed.",contextWarning:"Browser context collection completed with a warning.",contextCollected:"Browser context collected.",editorOpening:"Opening source…",editorOpened:"Source opened in the editor.",editorFailed:"Could not open the editor. Start it or configure editor.",completeInstructions:"Add an instruction for every target and wait for context collection to finish.",promptCopied:"Prompt copied to the clipboard.",clipboardUnavailable:"Clipboard access is unavailable. Select the prompt manually.",copyFailed:"Copy failed. Select the prompt manually.",appliedTargetsDetached:"Changes applied. Reselect page elements after HMR before creating another request."}),errors:Xi}),"zh-CN":Object.freeze({localeName:"中",alternateLocaleName:"EN",switchLocale:"将界面语言切换为英文",brand:Object.freeze({name:"SpotPatch",context:"实时上下文",repository:"GitHub ↗",repositoryTitle:"在 GitHub 上 Star SpotPatch"}),trigger:Object.freeze({select:"选择元素",stop:"停止选择",title:e=>`切换 SpotPatch(${e})`}),dialog:Object.freeze({close:"关闭 SpotPatch",editTitle:"规划本次修改",editSubtitle:"为每个选中目标分别写清楚修改要求。",previewTitle:"审阅修改请求",previewSubtitle:"发送给 AI 前,请核对完整上下文与每项目标说明。"}),floatingSurface:Object.freeze({dragHandle:"拖拽以移动 SpotPatch 工作台",resetPosition:"重置工作台位置",positionReset:"SpotPatch 已恢复到右下角。"}),context:Object.freeze({collecting:"正在采集上下文",ready:"上下文已就绪",partial:"部分上下文可用",sourceUnavailable:"源码位置不可用",selectedElement:"已选元素",selectedCount:e=>`已选择 ${String(e)} 个元素`}),targets:Object.freeze({title:"修改目标",ariaLabel:"已选目标与逐项目标说明",count:(e,t)=>`${String(e)} / ${String(t)}`,complete:(e,t)=>`已描述 ${String(e)} / ${String(t)}`,instructionBudget:(e,t)=>`说明字符 ${String(e)} / ${String(t)}`,instructionBudgetExceeded:(e,t)=>`说明字符 ${String(e)} / ${String(t)},请精简后继续`,statusReady:"已就绪",statusPartial:"部分可用",statusCollecting:"采集中",instructionReady:"已填写修改说明",instructionMissing:"待填写修改说明",instructionLabel:e=>`${e} 的修改说明`,instructionPlaceholder:"描述这个目标期望达到的结果,以及不能破坏的约束……",instructionCount:(e,t)=>`${String(e)} / ${String(t)}`,activate:e=>`编辑目标 ${String(e)}`,remove:e=>`移除目标 ${String(e)}`,removeTitle:"移除目标",addTitle:"继续为本次请求选择元素",limitTitle:e=>`已达到 ${String(e)} 个目标的上限`}),diagnostics:Object.freeze({title:"已采集上下文",resolving:"正在解析源码……",noExactSource:"没有精确源码标记",promptAriaLabel:"生成的 Prompt"}),summary:Qi,actions:Object.freeze({addElement:"添加元素",reselect:"重新开始",openEditor:"打开源码",openTarget:e=>`打开目标 ${String(e)} 的源码`,preview:"预览 Prompt",copy:"复制 Prompt",back:"返回编辑"}),agent:Object.freeze({title:"AI 代码 Agent",mode:"执行方式",review:"审阅模式",autoGated:"受控自动模式",trustedFast:"可信极速模式",provider:"模型服务",model:"模型",providerAriaLabel:"AI 模型服务",modelAriaLabel:"AI 模型",providerUnavailable:"模型服务配置不可用。",consent:e=>`我了解选中上下文与获准源码可能发送到 ${e},并自行负责其数据策略。`,trustedFastConsent:e=>`为 ${e} 启用可信极速模式:发送获准的项目上下文、纳入当前本地修改、跳过项目验证检查,并立即应用 AI 变更,包括删除文件与配置变更。`,connectionNotTested:"尚未执行可选连接检查",workspaceNotChecked:"尚未检查本地工作区",checkingWorkspace:"正在检查 Git 工作区与隔离执行环境……",workspaceReady:"本地工作区已满足隔离执行条件",workspaceDirty:(e,t,o)=>`发现本地修改 · 暂存 ${String(e)} · 未暂存 ${String(t)} · 未跟踪 ${String(o)}`,includeLocalChanges:"允许 Agent 基于我当前的本地修改继续",includeLocalChangesHelp:"Agent 可能继续修改这些文件;SpotPatch 会保留原基线,仅应用或撤销 Agent 自己的增量。",localChangesConsentRequired:"运行 AI 前,请确认允许纳入当前本地修改。",capabilityVerified:"Agent 能力验证通过",capabilityVerifiedAnnouncement:"AI 模型服务能力验证通过。",testingCapability:"正在验证鉴权、工具调用、连续调用与流式响应……",applying:"正在将变更应用到项目。",cancelling:"正在取消 Agent 任务。",reverting:"正在撤销已应用的 Agent 变更。",consentRequired:"运行 AI 前,请先确认允许向远程模型服务传输数据。",toolsReady:"工具调用与流式响应已就绪",testConnection:"检查运行环境",verifying:"验证中……",run:"运行 AI",cancel:"取消 Agent",discard:"放弃变更",apply:"应用变更",revert:"撤销变更",revise:"修改请求",diffAriaLabel:"建议的源码差异",noOutput:"没有输出。",status:e=>Gi[e]}),execution:Object.freeze({claude:"Claude",codex:"Codex",receivingTitle:"正在接收上下文",dispatchingTitle:e=>`正在交接给 ${e}`,runningTitle:e=>`正在修改 ${e}`,expandedRunningTitle:e=>`${e} 正在执行修改`,completedTitle:"修改完成",expandedCompletedTitle:"修改已完成",failedTitle:"执行失败",receivingStatus:"接收中",dispatchingStatus:"派发中",runningStatus:"执行中",checkingStatus:"检查中",completedStatus:"完成",failedStatus:"失败",resultReturned:"结果已回流 SpotPatch",resultSummary:e=>`${String(e)} 个文件`,activityAction:(e,t)=>vr(Ji,e,t),activityLane:Cr}),announcements:Object.freeze({adapterDisabled:"React 适配器异常,本次会话已停用 React 检查。",selectionEnabled:"元素选择已启用。",chooseAnother:"请选择另一个元素。",reselectAfterChange:"文件变更后,请重新选择当前页面元素。",sourceLoaded:"源码上下文已加载。",sourceFailed:"源码上下文加载失败。",addCancelled:"已取消追加选择。",selectionLimit:e=>`已达到 ${String(e)} 个元素的选择上限。`,chooseAdditional:(e,t)=>`请选择另一个元素,当前已选 ${String(e)} / ${String(t)}。`,duplicate:"该页面元素已经在当前选择中。",instanceBudgetExceeded:"上下文预算无法完整保留所有选中实例,请减少目标数量或提高上下文预算。",sourceProbable:"找到可能的 React 组件,但没有获授权的源码标记。",sourceMissing:"选中元素没有获授权的源码标记。",noSelectable:"当前位置没有可选择的元素。",allTargetsRemoved:"已移除全部目标,请重新选择元素。",targetRemoved:"已移除选中目标。",contextWarning:"浏览器上下文采集完成,但存在警告。",contextCollected:"浏览器上下文采集完成。",editorOpening:"正在打开源码……",editorOpened:"源码已在编辑器中打开。",editorFailed:"无法打开编辑器。请先启动编辑器或检查 editor 配置。",completeInstructions:"请为每个目标填写修改说明,并等待上下文采集完成。",promptCopied:"Prompt 已复制到剪贴板。",clipboardUnavailable:"无法访问剪贴板,请手动选择并复制 Prompt。",copyFailed:"复制失败,请手动选择并复制 Prompt。",appliedTargetsDetached:"变更已应用;HMR 后请重新选择页面元素再发起新请求。"}),errors:Yi})});function Rr(e){if(e===void 0||e.trim().length===0)return;let t=e.trim().toLowerCase();return t==="zh"||t.startsWith("zh-")?"zh-CN":t==="en"||t.startsWith("en-")?"en-US":void 0}function ts(e,t){if(e!=="auto")return e;let o=Rr(t.documentElement.lang);return o!==void 0?o:t.defaultView?.navigator.languages.map(Rr).find(i=>i!==void 0)??"en-US"}function Tr(e,t="auto"){let o=ts(t,e),n=new Set;return Object.freeze({locale:()=>o,messages:()=>es[o],subscribe(i){return n.add(i),()=>{n.delete(i)}},toggle(){o=o==="en-US"?"zh-CN":"en-US";for(let i of n)i()}})}var ns="spotpatch:floating-surface:";function os(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:void 0}function wr(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0&&e<=1}function Or(e){return e==="start"||e==="end"}function rs(e){let t=os(e);if(!(t?.version!==1||!Or(t.horizontal)||!Or(t.vertical)||!wr(t.xRatio)||!wr(t.yRatio)))return Object.freeze({horizontal:t.horizontal,vertical:t.vertical,xRatio:t.xRatio,yRatio:t.yRatio})}function _r(e,t){let o=`${ns}${t}`,n;try{n=e.sessionStorage}catch{n=void 0}return Object.freeze({clear(){try{n?.removeItem(o)}catch{}},load(){let i;try{i=n?.getItem(o)??null}catch{return}if(!(i===null||i.length>1024))try{return rs(JSON.parse(i))}catch{return}},save(i){try{n?.setItem(o,JSON.stringify({version:1,...i}))}catch{}}})}var En=Object.freeze({horizontal:"end",vertical:"end",xRatio:1,yRatio:1});function Xt(e,t,o){return Math.min(Math.max(e,t),o)}function xt(e){return Number.isFinite(e)?Math.max(0,e):0}function Gn(e){return Number.isFinite(e)?Xt(e,0,1):.5}function Ir(e){return Object.freeze({height:xt(e.height),left:Number.isFinite(e.left)?e.left:0,top:Number.isFinite(e.top)?e.top:0,width:xt(e.width)})}function as(e,t){return t==="end"?e.left+e.width:e.left}function is(e,t){return t==="end"?e.top+e.height:e.top}function Lr(e,t,o){return o<=0?.5:Gn((e-t)/o)}function Kn(e,t,o,n){return Object.freeze({horizontal:o,vertical:n,xRatio:Lr(e.x,t.left,t.width),yRatio:Lr(e.y,t.top,t.height)})}function kr(e,t,o){let n=xt(t.width),i=xt(t.height),d=Ir(o),s=d.width,p=d.height,x=d.left,E=d.top,v=x+s,j=E+p,O=x+Gn(e.xRatio)*s,r=E+Gn(e.yRatio)*p,F=e.horizontal==="end"?O-n:O,$=e.vertical==="end"?r-i:r,V=Math.max(x,v-n),S=Math.max(E,j-i);return Object.freeze({height:i,left:Xt(F,x,V),top:Xt($,E,S),width:n})}function Jn(e,t,o){let n=xt(o),i=xt(e.width),d=xt(e.height),s=Ir(t),p=s.left+s.width,x=s.top+s.height,E=Math.max(s.left,p-i),v=Math.max(s.top,x-d),j=Xt(e.left,s.left,E),O=Xt(e.top,s.top,v),r=Math.abs(j-s.left),F=Math.abs(p-(j+i)),$=Math.abs(O-s.top),V=Math.abs(x-(O+d)),S=Math.min(r,F)<=n?r<=F?s.left:p-i:j,T=Math.min($,V)<=n?$<=V?s.top:x-d:O;return Object.freeze({height:d,left:S,top:T,width:i})}function Nr(e,t,o){let n=Jn(e,t,0),i=n.left+n.width/2,d=n.top+n.height/2,s=t.left+xt(t.width)/2,p=t.top+xt(t.height)/2,x=i===s?o.horizontal:i<s?"start":"end",E=d===p?o.vertical:d<p?"start":"end";return Kn({x:as(n,x),y:is(n,E)},t,x,E)}function $t(e,t=0){return Number.isFinite(e)?e:t}function ss(e,t){return Math.hypot(e.x-t.x,e.y-t.y)}function cs(e){return e.button===0&&e.isPrimary}function ds(e){let t=e.getBoundingClientRect();return Object.freeze({height:Math.max(0,$t(t.height)),width:Math.max(0,$t(t.width))})}function ls(e,t){return typeof e.requestAnimationFrame=="function"?e.requestAnimationFrame(t):e.setTimeout(()=>{t(Date.now())},0)}function Pr(e,t){if(typeof e.cancelAnimationFrame=="function"){e.cancelAnimationFrame(t);return}e.clearTimeout(t)}function Dr(e,t,o){let n=t.load()??En,i,d,s,p,x=!1,E=new Set,v=new Set;function j(){let b=e.visualViewport,w=Math.max(0,$t(b?.width??e.innerWidth)),R=Math.max(0,$t(b?.height??e.innerHeight)),I=w<=o.compactViewportWidth?o.compactInset:o.desktopInset;return Object.freeze({height:Math.max(0,R-I*2),left:$t(b?.offsetLeft??0)+I,top:$t(b?.offsetTop??0)+I,width:Math.max(0,w-I*2)})}function O(){return j().width+o.compactInset*2<=o.compactViewportWidth}function r(b){if(b.hidden||b.dataset.motionMorphing==="true"&&b.dataset.floatingPositioned==="true")return;let w=ds(b);if(w.width===0||w.height===0)return;let R=kr(n,w,j());return b.style.left=`${String(R.left)}px`,b.style.top=`${String(R.top)}px`,b.style.right="auto",b.style.bottom="auto",b.dataset.floatingPositioned="true",R}function F(){if(!x){d!==void 0&&(Pr(e,d),d=void 0);for(let b of E)r(b)}}function $(){x||d!==void 0||(d=ls(e,()=>{d=void 0,F()}))}function V(b){n=b,t.save(n)}function S(b){let w=i;if(w!==void 0){i=void 0,w.handle.dataset.dragging="false",w.surface.dataset.dragging="false";try{w.handle.hasPointerCapture(w.pointerId)&&w.handle.releasePointerCapture(w.pointerId)}catch{}if(b){let R=r(w.surface);if(R!==void 0){let I=Jn(R,j(),o.edgeSnapDistance);V(Nr(I,j(),n)),r(w.surface)}}else n=t.load()??En,F()}}function T(b){let w=i;if(w===void 0||b.pointerId!==w.pointerId)return;let R=Object.freeze({x:b.clientX,y:b.clientY}),I=Object.freeze({x:w.startX,y:w.startY});w.handle.dataset.dragging!=="true"&&ss(R,I)<o.dragActivationDistance||(w.handle.dataset.dragging!=="true"&&w.onDragStart?.(),w.handle.dataset.dragging="true",w.surface.dataset.dragging="true",n=Kn({x:R.x+w.anchorOffsetX,y:R.y+w.anchorOffsetY},j(),n.horizontal,n.vertical),$(),b.preventDefault())}function q(b,w,R,I){b.addEventListener(w,R,I),v.add(()=>{b.removeEventListener(w,R,I)})}function D(b,w,R={}){let I=H=>{if(x||i!==void 0||!cs(H)||R.canStartDrag?.(H)===!1)return;let Y=r(w)??w.getBoundingClientRect(),B=n.horizontal==="end"?Y.left+Y.width:Y.left,ge=n.vertical==="end"?Y.top+Y.height:Y.top;i=Object.freeze({anchorOffsetX:B-H.clientX,anchorOffsetY:ge-H.clientY,handle:b,...R.onDragStart===void 0?{}:{onDragStart:R.onDragStart},pointerId:H.pointerId,startX:H.clientX,startY:H.clientY,suppressClickOnDrag:R.suppressClickOnDrag??!1,surface:w});try{b.setPointerCapture(H.pointerId)}catch{}},re=H=>{i?.pointerId===H.pointerId&&S(b.dataset.dragging==="true")},ue=H=>{s===b&&(s=void 0,p!==void 0&&(e.clearTimeout(p),p=void 0),H.preventDefault(),H.stopImmediatePropagation())};q(b,"pointerdown",H=>{I(H)}),q(b,"lostpointercapture",H=>{re(H)}),q(b,"click",H=>{ue(H)},!0)}function y(){S(!1),n=En,t.clear(),F()}function A(){S(!1)}function _(b){b.key!=="Escape"||i===void 0||(S(!1),b.preventDefault(),b.stopImmediatePropagation())}function U(b){if(i?.pointerId!==b.pointerId)return;let w=i,R=w.handle.dataset.dragging==="true";S(R),R&&w.suppressClickOnDrag&&(s=w.handle,p=e.setTimeout(()=>{s=void 0,p=void 0},0))}function W(b){i?.pointerId===b.pointerId&&S(!1)}return q(e,"pointermove",b=>{T(b)}),q(e,"pointerup",b=>{U(b)}),q(e,"pointercancel",b=>{W(b)}),q(e,"resize",$),q(e,"blur",A),q(e,"keydown",b=>{_(b)},!0),e.visualViewport?.addEventListener("resize",$),e.visualViewport?.addEventListener("scroll",$),v.add(()=>e.visualViewport?.removeEventListener("resize",$)),v.add(()=>e.visualViewport?.removeEventListener("scroll",$)),Object.freeze({attachDraggable:D,dispose(){if(!x){x=!0,S(!1),d!==void 0&&(Pr(e,d),d=void 0),p!==void 0&&(e.clearTimeout(p),p=void 0),s=void 0;for(let b of v)b();v.clear(),E.clear()}},isCompact:O,reconcile:F,registerSurface(b){E.add(b)},requestReconcile:$,reset:y})}var ps=1500;function us(e){let t=new Set([...e.querySelectorAll("script[nonce]")].map(o=>o.nonce?.trim()??"").filter(Boolean));if(t.size===1)return t.values().next().value}function gs(e){let t=e.createElement("style");return t.textContent=`
354
+ ${Er}
355
355
  .spotpatch-floating-surface {
356
356
  position: fixed;
357
- right: ${String(_t.desktopInset)}px;
358
- bottom: ${String(_t.desktopInset)}px;
359
- z-index: ${String(pn.controls)};
357
+ right: ${String(Lt.desktopInset)}px;
358
+ bottom: ${String(Lt.desktopInset)}px;
359
+ z-index: ${String(mn.controls)};
360
360
  box-sizing: border-box;
361
361
  overflow: hidden;
362
362
  isolation: isolate;
@@ -423,7 +423,7 @@ ${un(e.code.language,ae(t.codeLines.join(`
423
423
  pointer-events: none;
424
424
  }
425
425
  .spotpatch-highlight {
426
- z-index: ${String(pn.highlight)};
426
+ z-index: ${String(mn.highlight)};
427
427
  border: 1.5px solid var(--spotpatch-accent);
428
428
  background: var(--spotpatch-accent-tint);
429
429
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--spotpatch-accent) 12%, transparent);
@@ -450,7 +450,7 @@ ${un(e.code.language,ae(t.codeLines.join(`
450
450
  .spotpatch-selection-highlights {
451
451
  position: fixed;
452
452
  inset: 0;
453
- z-index: ${String(pn.highlight)};
453
+ z-index: ${String(mn.highlight)};
454
454
  pointer-events: none;
455
455
  }
456
456
  .spotpatch-selection-highlight {
@@ -478,13 +478,13 @@ ${un(e.code.language,ae(t.codeLines.join(`
478
478
  .spotpatch-dialog {
479
479
  position: relative;
480
480
  box-sizing: border-box;
481
- width: min(${String(_t.workbenchMaxWidth)}px, calc(100vw - ${String(_t.desktopInset*2)}px));
481
+ width: min(${String(Lt.workbenchMaxWidth)}px, calc(100vw - ${String(Lt.desktopInset*2)}px));
482
482
  outline: none;
483
483
  }
484
484
  .spotpatch-shell {
485
485
  display: flex;
486
486
  box-sizing: border-box;
487
- max-height: min(${String(_t.workbenchMaxHeight)}px, calc(100vh - ${String(_t.desktopInset*2)}px));
487
+ max-height: min(${String(Lt.workbenchMaxHeight)}px, calc(100vh - ${String(Lt.desktopInset*2)}px));
488
488
  overflow: hidden;
489
489
  flex-direction: column;
490
490
  }
@@ -965,10 +965,10 @@ ${un(e.code.language,ae(t.codeLines.join(`
965
965
  .spotpatch-target-state { display: none; }
966
966
  .spotpatch-repository { display: none; }
967
967
  }
968
- ${sr}
969
- `,t}function os(e){let t="http://www.w3.org/2000/svg",o=e.createElementNS(t,"svg");o.setAttribute("viewBox","0 0 16 16"),o.setAttribute("aria-hidden","true");let n=e.createElementNS(t,"path");return n.setAttribute("d","M8 1.5v3M8 11.5v3M1.5 8h3M11.5 8h3M11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"),o.append(n),o}function rs(e,t){return e.split(`
970
- `).find(n=>n.startsWith(`${t}: `))?.slice(t.length+2).trim()}function as(e){let t=e.target;return t instanceof Element&&t.closest("a, button, input, select, textarea, summary, [contenteditable='true']")!==null}function is(e){let t=ce(e,"","spotpatch-execution-island");t.hidden=!0,t.setAttribute("aria-hidden","true");let o=Bn(e,void 0,"spotpatch-fallback-execution-island");o.classList.add("spotpatch-execution-logo");let n=g(e,"span");return t.append(o,n),Object.freeze({canExpand:()=>!1,isExpanded:()=>!1,root:t,setExpanded:()=>{},render(i){let d=[i.headline,i.action,i.meta].filter(a=>a.length>0).join(" · ");n.textContent=d,t.setAttribute("aria-label",d)},dispose(){}})}function ss(e,t,o){return t.append(o),Object.freeze({root:t,refreshButton:ce(e,""),styles:e.createElement("style"),dispose:()=>{},render:()=>{},resetView:()=>{}})}function Tr(e,t,o=Object.freeze({enabled:!1}),n="auto",i=!1,d=!1,a="vite",l="",C=!1){let x=mr(e,n),w=e.defaultView;if(w===null)throw new Error("SpotPatch requires a document with an associated window.");let j=w,y=Rr(j,Sr(j,l),_t),s=x.messages(),V="idle",$="change",A="",T="",W=!1,U=!1,N,m,v,L,M,G,E=e.createElement("spotpatch-root");E.setAttribute(Nt,"");let R=E.attachShadow({mode:"open"}),O=g(e,"div");O.className="spotpatch-floating-surface",O.dataset.scene="pill",O.dataset.tone="neutral";let _=ce(e,s.trigger.select,"spotpatch-trigger");_.title=s.trigger.title(t),_.setAttribute("aria-pressed","false");let ue=pr(),Oe=ue?.createExecutionIsland(e),F=Oe??is(e),D=F.root,le=g(e,"div");le.className="spotpatch-highlight",le.hidden=!0;let be=g(e,"span");be.className="spotpatch-highlight-label",le.append(be);let Se=g(e,"div");Se.className="spotpatch-selection-highlights",Se.setAttribute("aria-hidden","true");let ne=g(e,"section");ne.className="spotpatch-dialog",ne.hidden=!0,ne.tabIndex=-1,ne.setAttribute("role","dialog"),ne.setAttribute("aria-labelledby","spotpatch-selection-title");let dt=g(e,"div");dt.className="spotpatch-shell";let de=g(e,"header");de.className="spotpatch-header",de.setAttribute("data-spotpatch-drag-handle","");let je=g(e,"div");je.className="spotpatch-brand-row";let ve=g(e,"div");ve.className="spotpatch-brand";let rt=g(e,"span");rt.className="spotpatch-brand-copy";let Ke=g(e,"span");Ke.className="spotpatch-brand-name";let Je=g(e,"span");Je.className="spotpatch-brand-context",rt.append(Ke,Je),ve.append(Bn(e),rt);let Q=g(e,"span");Q.className="spotpatch-header-controls";let pe=g(e,"a");pe.className="spotpatch-repository",pe.href=Pn,pe.target="_blank",pe.rel="noopener noreferrer";let De=ce(e,"","spotpatch-locale"),Xe=ce(e,"","spotpatch-reset-position");Xe.append(os(e));let Ye=ce(e,"×","spotpatch-close");Q.append(pe,De,Xe,Ye),je.append(ve,Q);let lt=g(e,"h2");lt.id="spotpatch-selection-title",lt.className="spotpatch-title";let at=g(e,"p");at.className="spotpatch-subtitle";let pt=g(e,"div");pt.className="spotpatch-target-row";let Fe=g(e,"span");Fe.className="spotpatch-target-label";let oe=g(e,"span");oe.className="spotpatch-context-state",oe.dataset.state="loading",oe.textContent=s.context.collecting,pt.append(Fe,oe),de.append(je,lt,at,pt);let Ce=g(e,"div");Ce.className="spotpatch-body";let Ze=g(e,"div");Ze.className="spotpatch-selection-panel";let z=g(e,"section");z.className="spotpatch-targets";let Ve=g(e,"div");Ve.className="spotpatch-targets-heading";let Re=g(e,"span"),bt=g(e,"span");bt.className="spotpatch-targets-meta";let Qe=g(e,"span");Qe.className="spotpatch-target-complete";let fe=g(e,"span");fe.className="spotpatch-target-budget",fe.setAttribute("aria-live","polite");let et=g(e,"span");et.className="spotpatch-target-count",bt.append(Qe,fe),pt.append(et),Ve.append(Re,bt);let tt=g(e,"div");tt.className="spotpatch-target-progress",tt.setAttribute("aria-hidden","true");let Ee=g(e,"div");Ee.className="spotpatch-target-progress-fill",tt.append(Ee);let _e=g(e,"div");_e.className="spotpatch-target-list",z.append(Ve,tt,_e);let We=g(e,"details");We.className="spotpatch-diagnostics";let xt=g(e,"summary"),qe=g(e,"span"),Ge=g(e,"span");Ge.className="spotpatch-source-peek",Ge.textContent=s.diagnostics.resolving,xt.append(qe,Ge);let ut=g(e,"pre");ut.className="spotpatch-summary",We.append(xt,ut);let I=cr(e,o,x),it=g(e,"div");function X(){W&&y.requestReconcile()}let J=d?gn()?.createPanel(e,a,x.locale,l,x.subscribe,X,Dr,Fr):void 0;it.append(z,I.root,...J===void 0?[]:[J.root]);let Me=qt()?.createPanel(e,i,x.locale,it,We,X)??ss(e,it,We);Ze.append(Me.root);let gt=g(e,"div");gt.className="spotpatch-preview-panel",gt.hidden=!0;let He=g(e,"pre");He.className="spotpatch-prompt",He.tabIndex=0,He.setAttribute("aria-label",s.diagnostics.promptAriaLabel),gt.append(He),Ce.append(Ze,gt);let ie=g(e,"footer");ie.className="spotpatch-actions";let Le=g(e,"div");Le.className="spotpatch-context-state spotpatch-editor-feedback",Le.dataset.state="idle",Le.setAttribute("role","status"),Le.setAttribute("aria-live","polite"),Le.hidden=!0;let $e=ce(e,s.actions.addElement),st=ce(e,s.actions.reselect),c=ce(e,s.actions.openEditor),u=ce(e,s.actions.preview,"spotpatch-primary"),S=ce(e,s.actions.copy,"spotpatch-primary"),B=ce(e,s.actions.back),h=g(e,"div");h.className="spotpatch-secondary-actions";let H=g(e,"div");H.className="spotpatch-primary-actions",$e.classList.add("spotpatch-icon-action"),$e.dataset.compactIcon="+",I.testButton.classList.add("spotpatch-icon-action"),I.testButton.dataset.compactIcon="✓",c.classList.add("spotpatch-secondary-action"),st.classList.add("spotpatch-secondary-action"),h.append(c,st),H.append(I.testButton,$e,I.runButton,...J===void 0?[]:[J.sendButton],u,I.cancelButton,I.applyButton,I.revertButton,I.resetButton,S,B),ie.append(Le,h,H);let q=C?fn()?.createPanel({document:e,locale:x.locale,subscribeLocale:x.subscribe,changeRoot:Me.root,changeActions:ie,announce:An,onModeChange(r,f,b){$=r,A=f,T=b,E.isConnected&&en(V)},onExecutionChange(r){N=r,U=!1,Ae()},onViewChange:X}):void 0;q!==void 0&&Ze.prepend(q.root),dt.append(de,Ce,ie),ne.append(dt);let Y=g(e,"div");Y.className="spotpatch-live",Y.setAttribute("aria-live","polite"),Y.setAttribute("aria-atomic","true");let ke=[ns(e),...ue===void 0?[]:[ue.createStyles(e)],Me.styles,...q===void 0?[]:[q.styles],...J===void 0?[]:[J.styles]],Mt=ts(e);if(Mt!==void 0)for(let r of ke)r.nonce=Mt;R.append(...ke,Se,le,O,Y),O.append(_,ne,D),e.documentElement.append(E),y.registerSurface(O);let nt=ue===void 0||Oe===void 0?void 0:ue.createController(e,Object.freeze({execution:Oe.elements,pill:_,planner:ne,surface:O}),y.reconcile),mn=()=>{nt?.cancel()};y.attachDraggable(_,O,{onDragStart:mn,suppressClickOnDrag:!0}),y.attachDraggable(de,O,{canStartDrag:r=>!y.isCompact()&&!as(r),onDragStart:mn}),y.attachDraggable(D,O,{onDragStart:mn,suppressClickOnDrag:!0}),y.reconcile();let yn=!1,Ht=!1,Kt="",Jt=!0,Be=[],Xt=0,Gn=new Set,Kn=new Set,Jn="idle",Xn=Object.freeze({component:Object.freeze({status:i?"idle":"disabled"}),page:Object.freeze({status:i?"idle":"disabled"}),observationCount:0});function Yt(){let r=Be.find(f=>f.active);return Object.freeze(r===void 0?{label:s.context.selectedElement,source:""}:{label:r.label,source:r.source})}function Lt(){let r=Yt();return r.source.length===0?r.label:`${r.label} · ${r.source}`}function Yn(){return G=new Date().toISOString(),G}function Zn(){return G??Yn()}function Zt(r){M!==void 0&&(j.clearTimeout(M),M=void 0),r&&(v=void 0,L=void 0)}function bn(r){return L===r?!1:(v===r||(Zt(!1),v=r,M=j.setTimeout(()=>{M=void 0,E.isConnected&&(L=r,N=void 0,G=void 0,U=!1,W=!1,Ae())},es)),!0)}function Nr(r){return r.startsWith("claude")?s.execution.claude:r.startsWith("codex")?s.execution.codex:r}function Qn(r){return Object.freeze({...r.detail===void 0?{}:{detail:r.detail},key:r.key,kind:r.kind,label:s.execution.activityLane(r.kind,r.detail),state:r.state})}function Dt(r,f,b,k="active"){return Object.freeze({...b===void 0?{}:{detail:b},key:r,kind:f,label:s.execution.activityLane(f,b),state:k})}function Ae(){let r=V==="inspecting",f=!W||r,b=f?{scene:r?"capturing":"pill",tone:r?"capturing":"neutral",headline:_.textContent,action:"",meta:"",recentActivities:Object.freeze([])}:!U&&N!==void 0?N:{scene:"planner",tone:"ready",headline:s.dialog.editTitle,action:s.dialog.editSubtitle,meta:s.context.ready,recentActivities:Object.freeze([])};if(nt!==void 0){nt.render(b,()=>{F.render(b)});return}F.render(b),O.dataset.scene=b.scene,O.dataset.tone=b.tone;let k=b.scene==="planner";_.hidden=!f,_.inert=!f,ne.hidden=!k,ne.inert=!k,ne.setAttribute("aria-hidden",String(!k)),D.hidden=f||k,D.inert=f||k,D.setAttribute("aria-hidden",String(f||k)),y.reconcile()}function Dr(r){if(r===null?(m=void 0,G=void 0):m!==void 0&&r.phase!=="failed"&&r.phase!=="delivery-unknown"?Sn():(r.phase==="failed"||r.phase==="delivery-unknown")&&(m=void 0),r!==null&&!U){let f=r.phase==="failed"||r.phase==="delivery-unknown",b=r.phase==="completed",k=f||b?void 0:Zn();(f||b)&&(G=void 0);let P=`dispatch:${String(r.revision)}`;if(b&&!bn(P)){N=void 0,Ae();return}let ee=Nr(r.adapterKind),Ue=Yt(),he=r.phase==="queued"||r.phase==="dispatching"||r.phase==="dispatched"?"dispatch":b?"sync":"unknown",Te=Dt(`dispatch:${String(r.revision)}:${r.phase}`,he,r.phase,f?"failure":b?"success":"active"),te=f?"failed":b?"success":r.phase==="working"?"running":"handoff";N={scene:te,tone:f?"danger":b?"success":"running",headline:b?s.execution.completedTitle:f?s.execution.failedTitle:te==="running"?s.execution.runningTitle(Ue.label):s.execution.dispatchingTitle(ee),action:b?s.execution.resultReturned:Ue.source,expandedHeadline:b?s.execution.expandedCompletedTitle:f?s.execution.failedTitle:te==="running"?s.execution.expandedRunningTitle(ee):s.execution.dispatchingTitle(ee),expandedAction:b?s.execution.resultReturned:Lt(),meta:f?s.execution.failedStatus:b?s.execution.completedStatus:te==="running"?s.execution.runningStatus:s.execution.dispatchingStatus,activity:Te,recentActivities:Object.freeze([Te]),...k===void 0?{}:{startedAt:k}}}else r===null&&(N=void 0);Ae()}function Fr(r){let f=r?.task;if(r===void 0||f===void 0||U)return;let b=f.managedPhase,k=b==="failed"||b==="cleanup-warning",P=b==="completed"||b==="review-required",ee=b==="cancelled";if(k||ee?m=void 0:m!==void 0&&Sn(),ee){N=void 0,G=void 0,Ae();return}let Ue=k||P?void 0:Zn();if((k||P)&&(G=void 0),b==="completed"&&!bn(`managed:${String(f.revision)}`)){N=void 0,Ae();return}let he=k?"failed":P?"success":b==="preparing"?"handoff":"running",Te=k?"danger":P?"success":"running",te=s.execution.codex,re=Yt(),Z=b==="preparing"?"prepare":b==="auditing"?"audit":b==="validating"?"check":b==="applying"?"apply":P?"sync":"unknown",Ie=f.checks.at(-1),vt=f.files.at(-1),ot=b==="validating"?Ie?.id:b==="auditing"||b==="applying"?vt?.path:void 0,Ct=Dt(`managed:${String(f.revision)}:${b}:${ot??""}`,Z,ot,k?"failure":P?"success":"active"),$t=Object.freeze([...f.files.slice(-2).map(ft=>Dt(`managed-file:${String(f.revision)}:${ft.path}`,"patch",ft.path,"success")),...f.checks.slice(-2).map(ft=>Dt(`managed-check:${String(f.revision)}:${ft.id}`,"check",ft.id,ft.outcome==="passed"?"success":"failure")),Ct]);N={scene:he,tone:Te,headline:P?s.execution.completedTitle:k?s.execution.failedTitle:he==="handoff"?s.execution.dispatchingTitle(te):b==="validating"?s.execution.activityAction("check",ot):s.execution.runningTitle(re.label),action:P?f.files.length===0?s.execution.resultReturned:s.execution.resultSummary(f.files.length):re.source,expandedHeadline:P?s.execution.expandedCompletedTitle:k?s.execution.failedTitle:he==="handoff"?s.execution.dispatchingTitle(te):s.execution.expandedRunningTitle(te),expandedAction:P?s.execution.resultReturned:Lt(),meta:k?s.execution.failedStatus:P?s.execution.completedStatus:b==="validating"?s.execution.checkingStatus:he==="handoff"?s.execution.dispatchingStatus:s.execution.runningStatus,activity:Ct,recentActivities:$t,...Ue===void 0?{}:{startedAt:Ue}},Ae()}function Mr(r,f){if(!W)return;Zt(!0);let b=Yn();U=!1;let k=Dt(`dispatch-start:${Lt()}`,"dispatch",Lt());N={scene:"agent-charging",tone:"running",headline:s.execution.receivingTitle,action:Lt(),expandedHeadline:s.execution.receivingTitle,expandedAction:Lt(),meta:s.execution.receivingStatus,activity:k,recentActivities:Object.freeze([k]),startedAt:b},Ae(),nt?.dispatch(r,f)}function eo(r,f){!W||r.disabled||(m=Object.freeze({source:r,target:f}))}function Sn(){let r=m;m=void 0,!(r===void 0||!r.source.isConnected||!r.target.isConnected)&&Mr(r.source,r.target)}function En(r){Jn=r,Le.dataset.state=r,Le.hidden=r==="idle",Le.textContent=r==="opening"?s.announcements.editorOpening:r==="success"?s.announcements.editorOpened:r==="error"?s.announcements.editorFailed:"",X()}function Hr(r){return r.status==="ready"?s.targets.statusReady:r.status==="warning"?s.targets.statusPartial:s.targets.statusCollecting}function Qt(r,f){let b=f===0?0:r/f;Ee.style.width=`${String(b*100)}%`}function to(r){let f=_e.querySelectorAll("textarea[data-target-instruction-id]");return Array.from(f).find(b=>r===void 0||b.dataset.targetInstructionId===r)}function no(r,f){let b=R.activeElement?.closest("textarea[data-target-instruction-id]"),k=b?.dataset.targetInstructionId,P=b?.selectionStart,ee=b?.selectionEnd;Be=r.map(re=>Object.freeze({...re})),Xt=f;let Ue=Gn;Gn=new Set(r.map(re=>re.id)),_e.replaceChildren();let he=r.filter(re=>re.instruction.trim().length>0).length,Te=r.reduce((re,Z)=>re+Z.instruction.trim().length,0);Qt(he,r.length),et.textContent=s.targets.count(r.length,f),Qe.textContent=s.targets.complete(he,r.length);let te=Te>4e3;fe.dataset.state=te?"over":"ready",fe.textContent=te?s.targets.instructionBudgetExceeded(Te,4e3):s.targets.instructionBudget(Te,4e3),$e.disabled=!Jt||r.length>=f,$e.title=r.length>=f?s.targets.limitTitle(f):s.targets.addTitle,Fe.textContent=r.length===1?r[0]?.label??s.context.selectedElement:s.context.selectedCount(r.length);for(let[re,Z]of r.entries()){let Ie=g(e,"div");Ie.className="spotpatch-target-item",Ie.dataset.active=String(Z.active),Ie.dataset.status=Z.status,Ie.dataset.targetId=Z.id,Ie.dataset.entering=String(!Ue.has(Z.id));let vt=g(e,"div");vt.className="spotpatch-target-summary";let ot=ce(e,"","spotpatch-target-select");ot.dataset.activateTargetId=Z.id,ot.setAttribute("aria-label",s.targets.activate(re+1)),ot.setAttribute("aria-expanded",String(Z.active));let Ct=g(e,"span");Ct.className="spotpatch-target-index",Ct.textContent=String(re+1);let $t=g(e,"span");$t.className="spotpatch-target-copy";let ft=g(e,"span");ft.className="spotpatch-target-name",ft.textContent=Z.label;let xn=g(e,"span");xn.className="spotpatch-target-source",xn.textContent=`${Hr(Z)} · ${Z.source}`,$t.append(ft,xn);let uo=Z.instruction.trim().length>0,tn=g(e,"span");tn.className="spotpatch-target-state",tn.dataset.complete=String(uo),tn.textContent=uo?s.targets.instructionReady:s.targets.instructionMissing,ot.append(Ct,$t,tn);let Bt=ce(e,"↗","spotpatch-target-open");Bt.dataset.openTargetId=Z.id,Bt.disabled=!Z.canOpenEditor,Bt.setAttribute("aria-label",s.actions.openTarget(re+1)),Bt.title=s.actions.openTarget(re+1);let Ut=ce(e,"×","spotpatch-target-remove");if(Ut.dataset.removeTargetId=Z.id,Ut.disabled=!Jt,Ut.setAttribute("aria-label",s.targets.remove(re+1)),Ut.title=s.targets.removeTitle,vt.append(ot,Bt,Ut),Ie.append(vt),Z.active){let vn=g(e,"label");vn.className="spotpatch-target-editor";let Cn=g(e,"span");Cn.className="spotpatch-target-editor-head";let Rn=g(e,"span");Rn.className="spotpatch-target-editor-label",Rn.textContent=s.targets.instructionLabel(Z.label);let Tn=g(e,"span");Tn.className="spotpatch-target-editor-count",Tn.textContent=s.targets.instructionCount(Z.instruction.length,2e3),Cn.append(Rn,Tn);let Rt=g(e,"textarea");Rt.rows=4,Rt.maxLength=2e3,Rt.value=Z.instruction,Rt.placeholder=s.targets.instructionPlaceholder,Rt.disabled=!Jt,Rt.dataset.targetInstructionId=Z.id,Rt.setAttribute("aria-label",s.targets.instructionLabel(Z.label)),vn.append(Cn,Rt),Ie.append(vn)}_e.append(Ie)}if(k!==void 0){let re=to(k);re?.focus({preventScroll:!0}),P!==void 0&&ee!==void 0&&re?.setSelectionRange(P,ee)}X()}function $r(r,f){Be=Be.map(te=>te.id===r?Object.freeze({...te,instruction:f}):te);let b=Array.from(_e.querySelectorAll(".spotpatch-target-item")).find(te=>te.dataset.targetId===r);if(b===void 0)return;let k=f.trim().length>0,P=b.querySelector(".spotpatch-target-state"),ee=b.querySelector(".spotpatch-target-editor-count");P!==null&&(P.dataset.complete=String(k),P.textContent=k?s.targets.instructionReady:s.targets.instructionMissing),ee!==null&&(ee.textContent=s.targets.instructionCount(f.length,2e3));let Ue=Be.filter(te=>te.instruction.trim().length>0).length;Qe.textContent=s.targets.complete(Ue,Be.length),Qt(Ue,Be.length);let he=Be.reduce((te,re)=>te+re.instruction.trim().length,0),Te=he>4e3;fe.dataset.state=Te?"over":"ready",fe.textContent=Te?s.targets.instructionBudgetExceeded(he,4e3):s.targets.instructionBudget(he,4e3)}function Br(r){let f=Kn;Kn=new Set(r.map(b=>b.id)),Se.replaceChildren();for(let[b,k]of r.entries()){let P=g(e,"div");P.className="spotpatch-selection-highlight",P.dataset.targetId=k.id,P.dataset.entering=String(!f.has(k.id)),P.dataset.active=String(k.active),P.style.transform=`translate(${String(k.rect.x)}px, ${String(k.rect.y)}px)`,P.style.width=`${String(k.rect.width)}px`,P.style.height=`${String(k.rect.height)}px`;let ee=g(e,"span");ee.textContent=`${String(b+1)} · ${k.label}`,P.append(ee),Se.append(P)}}function oo(r){let f=s.summary,b=rs(r,f.source);Ge.textContent=b??s.diagnostics.noExactSource;let k=`${f.browserContext}: ${f.collectionStatuses.ready}`,P=`${f.browserContext}: ${f.collectionStatuses.loading}`,ee=`${f.browserContext}: ${f.collectionStatuses.failed}`,Ue=`${f.api}: ${f.apiStatuses.loading}`,he=`${f.api}: ${f.apiStatuses.failed}`;r.includes(k)&&!r.includes(P)&&!r.includes(Ue)&&!r.includes(ee)&&!r.includes(he)?(oe.dataset.state="ready",oe.textContent=s.context.ready):r.includes(ee)||r.includes(he)?(oe.dataset.state="warning",oe.textContent=s.context.partial):(oe.dataset.state="loading",oe.textContent=s.context.collecting)}function ro(r,f,b){yn=f,Ht=b,Kt=r,ut.textContent=r,c.disabled=!f,u.disabled=!b,I.setContextReady(b),J?.setContextReady(b),q?.setSelectionPreview({contextReady:Be.every(k=>k.status!=="loading"),targetCount:Be.length,sourceCount:Be.filter(k=>k.canOpenEditor).length}),oo(r),X()}function en(r){V=r;let f=r==="selected",b=r==="previewing";Ze.hidden=!f,gt.hidden=!b,st.hidden=!f,$e.hidden=!f,c.hidden=!f,u.hidden=!f,h.hidden=!f,I.setSelectionVisible(f),J?.setSelectionVisible(f),q?.setSelectionVisible(f),S.hidden=!b,B.hidden=!b,lt.textContent=b?s.dialog.previewTitle:$==="ask"&&A.length>0?A:s.dialog.editTitle,at.textContent=b?s.dialog.previewSubtitle:$==="ask"&&T.length>0?T:s.dialog.editSubtitle,Ae()}function ao(){s=x.messages(),Ke.textContent=s.brand.name,Je.textContent=s.brand.context,pe.textContent=s.brand.repository,pe.title=s.brand.repositoryTitle,pe.setAttribute("aria-label",s.brand.repositoryTitle),De.textContent=s.alternateLocaleName,De.title=s.switchLocale,De.setAttribute("aria-label",s.switchLocale),Xe.title=s.floatingSurface.resetPosition,Xe.setAttribute("aria-label",s.floatingSurface.resetPosition),Ye.setAttribute("aria-label",s.dialog.close),Ye.title=s.dialog.close,de.title=s.floatingSurface.dragHandle,z.setAttribute("aria-label",s.targets.ariaLabel),Re.textContent=s.targets.title,qe.textContent=s.diagnostics.title,He.setAttribute("aria-label",s.diagnostics.promptAriaLabel),$e.textContent=s.actions.addElement,st.textContent=s.actions.reselect,c.textContent=s.actions.openEditor,u.textContent=s.actions.preview,S.textContent=s.actions.copy,B.textContent=s.actions.back,Me.render(Xn),_.title=s.trigger.title(t),_.textContent=V==="inspecting"?s.trigger.stop:s.trigger.select,en(V),En(Jn),Be.length>0?no(Be,Xt):(et.textContent=s.targets.count(0,Xt),Qe.textContent=s.targets.complete(0,0),Qt(0,0),fe.dataset.state="ready",fe.textContent=s.targets.instructionBudget(0,4e3),Fe.textContent=s.context.selectedElement),Kt.length>0?oo(Kt):(Ge.textContent=s.diagnostics.resolving,oe.textContent=s.context.collecting)}function An(r){Y.textContent="",Y.textContent=r}function io(){y.reset(),An(s.floatingSurface.positionReset)}We.addEventListener("toggle",X),De.addEventListener("click",x.toggle),Xe.addEventListener("click",io);let so=()=>{eo(I.runButton,I.root)},co=()=>{J!==void 0&&eo(J.sendButton,J.root)},lo=()=>{if(F.canExpand()&&!F.isExpanded()){nt===void 0?(F.setExpanded(!0),y.reconcile()):nt.updateLayout(()=>{F.setExpanded(!0)});return}Zt(!1),U=!0,Ae()},po=r=>{r.key!=="Escape"||!F.isExpanded()||(r.preventDefault(),r.stopPropagation(),nt===void 0?(F.setExpanded(!1),y.reconcile()):nt.updateLayout(()=>{F.setExpanded(!1)}))};I.runButton.addEventListener("click",so),J?.sendButton.addEventListener("click",co),D.addEventListener("click",lo),D.addEventListener("keydown",po);let Ur=x.subscribe(ao);return ao(),Object.freeze({host:E,triggerButton:_,addTargetButton:$e,targetList:_e,reselectButton:st,openEditorButton:c,repositoryLink:pe,previewButton:u,copyButton:S,dataFlowRefreshButton:Me.refreshButton,backButton:B,closeButton:Ye,agentProviderSelect:I.providerSelect,agentModelSelect:I.modelSelect,agentModeSelect:I.modeSelect,agentConsentCheckbox:I.consentCheckbox,agentWorkspaceConsentCheckbox:I.workspaceConsentCheckbox,agentTestButton:I.testButton,agentRunButton:I.runButton,agentCancelButton:I.cancelButton,agentApplyButton:I.applyButton,agentRevertButton:I.revertButton,agentResetButton:I.resetButton,...J===void 0?{}:{externalHandoffPanel:J},...q===void 0?{}:{contextualAskPanel:q},renderStatus(r){let f=r==="inspecting";r==="idle"||f?W=!1:W=!0,_.setAttribute("aria-pressed",String(f)),_.textContent=f?s.trigger.stop:s.trigger.select,en(r)},renderEditorStatus:En,renderDataFlow(r){Xn=r,Me.render(r),X()},showHighlight(r,f){le.hidden=!1,le.style.transform=`translate(${String(r.x)}px, ${String(r.y)}px)`,le.style.width=`${String(r.width)}px`,le.style.height=`${String(r.height)}px`,be.textContent=f,Fe.textContent=f},hideHighlight(){le.hidden=!0,be.textContent=""},showSelectionHighlights:Br,hideSelectionHighlights(){Se.replaceChildren()},showSelection(r,f,b){ro(r,f,b),W=!0,en(V==="previewing"?"previewing":"selected")},updateSelection:ro,renderTargets:no,updateTargetInstruction:$r,setPreviewEnabled(r){Ht=r,u.disabled=!r,I.setContextReady(r),J?.setContextReady(r)},hideSelection(){W=!1,U=!1,N=void 0,_e.replaceChildren(),Be=[],Xt=0,Kt="",En("idle"),et.textContent=s.targets.count(0,0),Qe.textContent=s.targets.complete(0,0),Qt(0,0),Fe.textContent=s.context.selectedElement,ut.textContent="",He.textContent="",Ge.textContent=s.diagnostics.resolving,oe.dataset.state="loading",oe.textContent=s.context.collecting,c.disabled=!0,u.disabled=!0,yn=!1,Ht=!1,I.setContextReady(!1),I.setSelectionVisible(!1),J?.setContextReady(!1),J?.setSelectionVisible(!1),q?.setSelectionVisible(!1),I.setEditingEnabled(!0),I.resetJob(),Me.resetView(),Ae()},hideSelectionTemporarily(){W=!1,U=!1,N=void 0,Ae()},showPreview(r){He.textContent=r,X()},readAgentSelection(){return I.readSelection()},agentConsentGranted(){return I.consentGranted()},setAgentProviderConsent(r){I.setProviderConsent(r)},setAgentEditingEnabled(r){Jt=r,$e.disabled=!r,st.disabled=!r,_e.querySelectorAll(".spotpatch-target-remove, .spotpatch-target-select, textarea[data-target-instruction-id]").forEach(f=>{f.disabled=!r}),c.disabled=!yn,u.disabled=!r||!Ht,J?.setContextReady(r&&Ht),I.setEditingEnabled(r),X()},renderAgentCapability(r,f,b,k){I.renderCapability(r,f,b,k),r==="error"&&(m=void 0,Ae());let P=r==="ready"&&b?.state==="agent-ready";u.classList.toggle("spotpatch-primary",!P),X()},renderAgentWorkspaceHealth(r,f,b){I.renderWorkspaceHealth(r,f,b),r==="blocked"&&(m=void 0,Ae()),X()},renderAgentJob(r,f,b,k){I.renderJob(r,f,b,k),m!==void 0&&r.status!=="failed"&&r.status!=="cancelled"&&Sn(),(r.status==="failed"||r.status==="cancelled")&&(m=void 0);let P=r.status==="awaiting-review"||r.status==="applied"||r.status==="completed"||r.status==="reverted",ee=r.status==="failed",Ue=r.status==="cancelled",he=r.status==="applied"||r.status==="completed"||r.status==="reverted",Te=P?"success":ee?"failed":r.status==="queued"||r.status==="preparing"?"handoff":"running";if(!U){if(he&&!bn(`job:${r.jobId}:${r.status}`)){N=void 0,Ae(),X();return}let te=r.providerLabel,re=Yt(),Z=Object.freeze(b.map(Qn)),Ie=b.at(-1),vt=r.status==="queued"||r.status==="preparing"?"prepare":r.status==="validating"?"check":r.status==="applying"||r.status==="reverting"?"apply":r.status==="awaiting-review"||P?"sync":"unknown",ot=Dt(`job-phase:${r.jobId}:${r.status}:${r.updatedAt}`,vt,void 0,P?"success":ee?"failure":"active"),Ct=r.status==="running"&&Ie!==void 0?Qn(Ie):ot;N=Ue?void 0:{scene:Te,tone:P?"success":ee?"danger":"running",headline:P?s.execution.completedTitle:ee?s.execution.failedTitle:Te==="handoff"?s.execution.dispatchingTitle(te):r.status==="validating"?s.execution.activityAction("check",Ie?.detail):r.status==="applying"||r.status==="reverting"?s.execution.activityAction(vt):s.execution.runningTitle(re.label),action:P?f===void 0||f.files.length===0?s.execution.resultReturned:s.execution.resultSummary(f.files.length):Ie?.detail??re.source,expandedHeadline:P?s.execution.expandedCompletedTitle:ee?s.execution.failedTitle:Te==="handoff"?s.execution.dispatchingTitle(te):s.execution.expandedRunningTitle(te),expandedAction:P?f===void 0||f.files.length===0?s.execution.resultReturned:s.execution.resultSummary(f.files.length):Lt(),meta:P?s.execution.completedStatus:ee?s.execution.failedStatus:r.status==="validating"?s.execution.checkingStatus:Te==="handoff"?s.execution.dispatchingStatus:s.execution.runningStatus,activity:Ct,recentActivities:Z.length===0?Object.freeze([ot]):Z,startedAt:r.createdAt}}Ae(),X()},resetAgentJob(){I.resetJob(),G=void 0,N!==void 0&&(N=void 0,U=!1,Ae()),X()},focusTargetInstruction(r){to(r)?.focus({preventScroll:!0})},focusPrompt(){He.focus({preventScroll:!0})},announce:An,locale:x.locale,messages:x.messages,agentWorkspaceConsentGranted:I.workspaceConsentGranted,subscribeLocale:x.subscribe,dispose(){We.removeEventListener("toggle",X),De.removeEventListener("click",x.toggle),Xe.removeEventListener("click",io),I.runButton.removeEventListener("click",so),J?.sendButton.removeEventListener("click",co),D.removeEventListener("click",lo),D.removeEventListener("keydown",po),Ur(),Me.dispose(),J?.dispose(),q?.dispose(),I.dispose(),nt?.dispose(),F.dispose(),Zt(!0),y.dispose(),E.remove()}})}function cs(e,t,o){let n=t?.relativePath??e.source.relativePath,i=e.source.line,d=e.source.column;return n!==void 0&&i!==void 0?`${n}:${String(i)}${d===void 0?"":`:${String(d)}`}`:n!==void 0?n:i!==void 0?o.lineLocation(i,d):o.unavailable}function wr(e,t){let o=[`SpotPatch: ${e.spotPatchVersion}`,`${{next:"Next.js",vite:"Vite",astro:"Astro"}[e.framework]}: ${e.frameworkVersion}`,`${t.source}: ${cs(e.resolution,e.code,t)}`,`${t.confidence}: ${e.resolution.source.confidence} (${t.confidenceLabels[e.resolution.source.confidence]})`,`${t.origin}: ${e.resolution.source.origin}`];return e.resolution.react.componentName!==void 0&&o.push(`${t.component}: ${e.resolution.react.componentName}`),e.resolution.react.componentStack.length>0&&o.push(`${t.stack}: ${e.resolution.react.componentStack.join(" > ")}`),!e.resolution.react.supported&&e.resolution.react.version!==void 0&&o.push(`React ${e.resolution.react.version}: ${t.unsupported}`),o.push(`${t.adapter}: ${e.resolution.react.supported?t.available:t.unavailable}`,`${t.api}: ${t.apiStatuses[e.apiStatus]}`,`${t.browserContext}: ${t.collectionStatuses[e.collectionStatus]}`),e.code!==void 0?o.push(`${t.boundary}: ${t.boundaries[e.code.boundary]}`):e.apiStatus==="loading"?o.push(`${t.sourceContext}: ${t.apiStatuses.loading}`):e.apiStatus==="failed"&&o.push(`${t.sourceContext}: ${t.unavailable}`),e.styles!==void 0&&(o.push(`${t.cssWarnings}: ${String(e.styles.warnings.length)}`),o.push(...e.styles.warnings.map(n=>`${t.warning}: ${n}`))),o.join(`
971
- `)}function Or(e,t){return`${e}:${t}`}var ds=Object.freeze({list_files:"discover",search_text:"search",read_file:"read",replace_text:"patch",apply_patch:"patch",run_check:"check"});function ls(e){return ds[e]??"unknown"}function ps(e){if(e.type==="tool"){let t=e.data.relativePath??e.data.checkLabel;return Object.freeze({key:`tool:${String(e.data.turn)}:${e.data.toolCallId}`,kind:ls(e.data.toolName),...t===void 0?{}:{detail:t},label:`${e.data.toolName}${t===void 0?"":` · ${t}`} · ${e.data.state}`,state:e.data.state==="started"?"active":e.data.state==="succeeded"?"success":"failure"})}if(e.type==="check")return Object.freeze({key:`check:${e.data.result.checkId}:${String(e.sequence)}`,kind:"check",detail:e.data.result.label,label:`${e.data.result.label} · ${e.data.result.status}`,state:e.data.result.status==="passed"?"success":e.data.result.status==="failed"||e.data.result.status==="timed-out"?"failure":"info"})}function _r(e){let t=m=>_o(m)??p.INTERNAL_ERROR,o=m=>e.view.messages().errors[t(m)],n=new Map,i=new Set,d=new Map,a=0,l,C,x=!1,w=!1,j=()=>e.view.readAgentSelection(),y=m=>`${m.providerProfileId}:${m.applyMode}`,s=async m=>{e.view.renderAgentWorkspaceHealth("checking");try{let v=await e.api.agentWorkspaceHealth();return m!==a||e.view.renderAgentWorkspaceHealth(v.state,v,v.errorCode),v}catch(v){throw m===a&&e.view.renderAgentWorkspaceHealth("blocked",void 0,t(v)),v}},V=m=>{l!==void 0&&e.view.renderAgentJob(l,C,Object.freeze([...d.values()]),m??l.errorCode)},$=()=>{let m=j();if(m===void 0){e.view.setAgentProviderConsent(!1),e.view.renderAgentCapability("error",e.view.messages().agent.providerUnavailable);return}e.view.setAgentProviderConsent(i.has(y(m)));let v=n.get(Or(m.providerProfileId,m.modelProfileId));v===void 0?e.view.renderAgentCapability("idle",e.view.messages().agent.connectionNotTested):e.view.renderAgentCapability("ready",e.view.messages().agent.capabilityVerified,v)},A=async m=>{let v=j();if(v===void 0)throw new Error("Agent provider selection is unavailable.");let L=Or(v.providerProfileId,v.modelProfileId),M=n.get(L);if(M!==void 0)return M;e.view.renderAgentCapability("probing",e.view.messages().agent.testingCapability);let G=await e.api.agentCapability(v);if(m!==a)return G;if(G.state!=="agent-ready")throw new K(G.errorCode??p.MODEL_TOOL_CALL_UNSUPPORTED);return n.set(L,G),e.view.renderAgentCapability("ready",e.view.messages().agent.capabilityVerified,G),e.view.announce(e.view.messages().agent.capabilityVerifiedAnnouncement),G},T=async(m,v)=>{try{let L=await e.api.agentResult(m);if(v!==a||L.snapshot.jobId!==m)return;l=L.snapshot,C=L.result,V()}catch(L){v===a&&V(t(L))}},W=async(m,v)=>{try{await e.api.agentEvents(m,L=>{if(v!==a||L.jobId!==m)return;L.type==="snapshot"&&(l=L.data.snapshot,l.status==="applied"&&!x&&(x=!0,e.onApplied()));let M=ps(L);M!==void 0&&d.set(M.key,M),V()}),v===a&&await T(m,v)}catch(L){v===a&&!(L instanceof DOMException&&L.name==="AbortError")&&V(t(L))}},U=async m=>{let v=l;if(v===void 0||w)return;w=!0;let L=a;l=Object.freeze({...v,status:m==="apply"?"applying":m==="cancel"?"cancelling":"reverting",phaseMessage:m==="apply"?e.view.messages().agent.applying:m==="cancel"?e.view.messages().agent.cancelling:e.view.messages().agent.reverting,canCancel:!1,canApply:!1,canRevert:!1}),V();try{let M=m==="apply"?await e.api.applyAgentJob(v.jobId):m==="cancel"?await e.api.cancelAgentJob(v.jobId):await e.api.revertAgentJob(v.jobId);if(L!==a)return;l=M,M.status==="applied"&&!x&&(x=!0,e.onApplied()),await T(M.jobId,L)}catch(M){if(L!==a)return;l=v,await T(v.jobId,L),V(t(M)),e.view.announce(o(M))}finally{L===a&&(w=!1)}},N=()=>{a+=1,l=void 0,C=void 0,d.clear(),x=!1,w=!1,e.view.resetAgentJob(),e.view.setAgentEditingEnabled(!0),$()};return Object.freeze({apply(){l?.canApply===!0&&U("apply")},beginSelection(){N();let m=a;e.ai.enabled&&s(m).catch(()=>{})},cancel(){l?.canCancel===!0&&U("cancel")},consentChanged(){let m=j();m!==void 0&&(e.view.agentConsentGranted()?i.add(y(m)):i.delete(y(m)))},disposeSelection(){let m=l?.canCancel===!0||l?.status==="cancelling"?l.jobId:void 0;a+=1,l=void 0,C=void 0,d.clear(),x=!1,w=!1,m!==void 0&&e.api.cancelAgentJob(m).catch(()=>{})},providerOrModelChanged(){a+=1,$(),s(a).catch(()=>{})},reset(){let m=x;N(),m?e.onReselectRequired():e.ai.enabled&&s(a).catch(()=>{})},revert(){l?.canRevert===!0&&U("revert")},run(){if(!e.ai.enabled||l!==void 0)return;let m=j(),v=e.getAnnotation();if(m===void 0||v===void 0){e.view.announce(e.view.messages().announcements.completeInstructions);return}if(!e.view.agentConsentGranted()){e.view.announce(e.view.messages().agent.consentRequired);return}i.add(y(m));let L=++a;e.view.setAgentEditingEnabled(!1),s(L).then(async M=>{if(L!==a)return;if(M.state==="blocked")throw new K(M.errorCode??p.WORKTREE_LOCAL_CHANGES_UNSUPPORTED);if(M.state==="consent-required"&&!e.view.agentWorkspaceConsentGranted())throw new K(p.WORKTREE_DIRTY);let G=await e.api.createAgentJob({annotation:v,applyMode:m.applyMode,providerProfileId:m.providerProfileId,modelProfileId:m.modelProfileId,providerDataConsent:!0,...m.applyMode==="trusted-auto"?{trustedFastModeConsent:!0}:{},workingTreeMode:M.state==="consent-required"?"include-local-changes":"require-clean"});L===a&&(l=G,C=void 0,d.clear(),V(),W(G.jobId,L))}).catch(M=>{L===a&&(e.view.setAgentEditingEnabled(!0),e.view.renderAgentCapability("error",o(M),void 0,t(M)),e.view.announce(o(M)))})},testCapability(){if(!e.ai.enabled||l!==void 0)return;let m=++a;Promise.all([A(m),s(m)]).catch(v=>{m===a&&(e.view.renderAgentCapability("error",o(v),void 0,t(v)),e.view.announce(o(v)))})}})}function Lr(e){if(typeof e.crypto.randomUUID=="function")return e.crypto.randomUUID();let t=e.crypto.getRandomValues(new Uint8Array(16));return Array.from(t,o=>o.toString(16).padStart(2,"0")).join("")}function Vn(e,t){return Object.freeze({url:t.location.href,pathname:t.location.pathname,title:e.title,viewportWidth:t.innerWidth,viewportHeight:t.innerHeight,devicePixelRatio:t.devicePixelRatio})}function kr(e){let t=Reflect.get(e,"clipboard");return typeof t=="object"&&t!==null&&"writeText"in t&&typeof t.writeText=="function"?t:void 0}var gs=Object.freeze({classNames:Object.freeze([]),matchedRules:Object.freeze([]),computed:Object.freeze({}),warnings:Object.freeze(["CSS context collection failed."])});function Wn(e){let t=e.id.length>0?`#${e.id}`:"",o=Array.from(e.classList).slice(0,2).map(n=>`.${n}`).join("");return`<${e.tagName.toLowerCase()}${t}${o}>`}function fs(e,t){let o=e.code?.relativePath??e.resolution.source.relativePath,n=e.resolution.source.line,i=e.resolution.source.column;return o===void 0?t:`${o}${n===void 0?"":`:${String(n)}`}${i===void 0?"":`:${String(i)}`}`}function hs(e){return e.apiStatus==="failed"||e.collectionStatus==="failed"?"warning":e.apiStatus==="loading"||e.collectionStatus==="loading"?"loading":"ready"}function ms(e){let t=e.document??globalThis.document,o=e.window??globalThis.window;return{document:t,window:o,mutationObserver:e.mutationObserver??globalThis.MutationObserver,resizeObserver:e.resizeObserver??globalThis.ResizeObserver}}function Ir(e,t={}){let o=ms(t),n=t.view??Tr(o.document,e.shortcut,e.ai,e.locale,e.dataFlow.enabled,e.externalAgent.enabled,e.framework,e.sessionId,e.contextualAsk.enabled),i=t.api??Lo({apiBase:e.apiBase,dataFlowReportMaxBytes:e.dataFlow.limits.reportMaxBytes,fetch:o.window.fetch.bind(o.window),sessionToken:e.sessionToken}),d=t.promptComposer??Zo({maxCharacters:e.budget.totalCharacters}),a=t.clipboard??kr(o.window.navigator),l=t.createId??(()=>Lr(o.window)),C=t.now??(()=>new Date().toISOString()),x=t.selectionSession??nr(o.window,e.sessionId,e.maxTargets),w=x.load(),j=ir({adapter:t.reactAdapter??us({...e.dataFlow.enabled?{getComponentRegistration:c=>qt()?.getComponentRegistration(c)}:{},maxComponentDepth:e.budget.maxComponentDepth}),onAdapterError(){n.announce(n.messages().announcements.adapterDisabled),e.debug&&console.warn("[spotpatch:react] Adapter failed and was disabled for this session.")}}),y=Mn,s=!1,V,$,A=w?.targets.map(c=>{let u=$n(c.source);return{id:c.id,resolution:Object.freeze({source:c.source,react:c.react}),apiStatus:u===void 0?"not-required":c.code===void 0?"failed":"connected",code:c.code,collectionStatus:"ready",dataFlowReport:void 0,dataFlowStatus:"idle",element:void 0,elementContext:c.element,instruction:c.instruction,marker:u,page:c.page,styles:c.styles}})??[],T=w?.activeTargetId,W=w?.sequence??0,U=w?.open??!1,N=!1,m=0,v=0,L=0,M,G="idle",E=!1,R="",O,_,ue,Oe,F=new Map;function D(c){y=Qo(y,c),n.renderStatus(y.status)}function le(){return A.find(c=>c.id===T)??A.at(-1)}function be(c){let u=c.resolution.react;if(u.componentSourceId!==void 0&&u.sourceVersion!==void 0)return Object.freeze({schemaVersion:1,componentSourceId:u.componentSourceId,sourceVersion:u.sourceVersion});let S=c.marker;return S===void 0?void 0:Object.freeze({schemaVersion:1,fileId:S.fileId,line:S.line,column:S.column})}function Se(){let c=qt(),u=c?.observations(o.window.location.pathname)??[],S=le();n.renderDataFlow({component:Object.freeze({status:e.dataFlow.enabled?S?.dataFlowStatus??"idle":"disabled",...S?.dataFlowReport===void 0?{}:{report:c?.mergeComponentReport(S.dataFlowReport,u)??S.dataFlowReport}}),page:Object.freeze({status:e.dataFlow.enabled?G:"disabled",...M===void 0?{}:{report:c?.mergePageReport(M,u)??M}}),observationCount:u.length})}async function ne(){if(!e.dataFlow.enabled){Se();return}let c=le(),u=c===void 0?void 0:be(c),S=A.flatMap(Y=>{let ke=be(Y);return ke===void 0?[]:[ke]}),B=++L,h=m;c!==void 0&&(c.dataFlowStatus="loading"),G=S.length===0?"idle":"loading",Se();let[H,q]=await Promise.allSettled([u===void 0?Promise.resolve(void 0):i.componentDataFlowReport(u),S.length===0?Promise.resolve(void 0):i.pageDataFlowReport({schemaVersion:1,targets:S})]);!s||B!==L||h!==m||(c!==void 0&&A.includes(c)&&(H.status==="fulfilled"?(c.dataFlowReport=H.value,c.dataFlowStatus=H.value===void 0?"idle":"ready"):(c.dataFlowReport=void 0,c.dataFlowStatus="error")),q.status==="fulfilled"?(M=q.value,G=q.value===void 0?"idle":"ready"):(M=void 0,G="error"),Se())}function dt(c){if(!(c.elementContext===void 0||c.styles===void 0))return{id:c.id,instruction:c.instruction,page:c.page,source:c.resolution.source,react:c.resolution.react,element:c.elementContext,styles:c.styles,...c.code===void 0?{}:{code:c.code}}}function de(){let c=A.flatMap(S=>{let B=dt(S);return B===void 0?[]:[B]});if(c.length===0){x.clear();return}let u=new Set(c.map(({id:S})=>S));x.save({...T!==void 0&&u.has(T)?{activeTargetId:T}:{},open:U,sequence:W,targets:c})}function je(c,u){return s&&u===m&&y.status!=="idle"&&A.includes(c)}function ve(){let c=A.reduce((u,S)=>u+S.instruction.trim().length,0);return A.length>0&&c<=4e3&&A.every(u=>u.instruction.trim().length>0&&u.elementContext!==void 0&&u.styles!==void 0&&u.apiStatus!=="loading")}function rt(){let c=A.flatMap(u=>{let S=dt(u);return S===void 0?[]:[S]});if(!(c.length===0||c.length!==A.length))return Object.freeze({locale:n.locale(),targets:c})}function Ke(){let c=n.messages().summary;return A.map((u,S)=>{let B=wr({resolution:u.resolution,...u.code===void 0?{}:{code:u.code},...u.styles===void 0?{}:{styles:u.styles},apiStatus:u.apiStatus,collectionStatus:u.collectionStatus,framework:e.framework,frameworkVersion:e.frameworkVersion,spotPatchVersion:e.spotPatchVersion},c);return`${c.target(S+1,u.id===T)}
972
- ${B}`}).join(`
968
+ ${yr}
969
+ `,t}function fs(e){let t="http://www.w3.org/2000/svg",o=e.createElementNS(t,"svg");o.setAttribute("viewBox","0 0 16 16"),o.setAttribute("aria-hidden","true");let n=e.createElementNS(t,"path");return n.setAttribute("d","M8 1.5v3M8 11.5v3M1.5 8h3M11.5 8h3M11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"),o.append(n),o}function hs(e,t){return e.split(`
970
+ `).find(n=>n.startsWith(`${t}: `))?.slice(t.length+2).trim()}function ms(e){let t=e.target;return t instanceof Element&&t.closest("a, button, input, select, textarea, summary, [contenteditable='true']")!==null}function ys(e){let t=ie(e,"","spotpatch-execution-island");t.hidden=!0,t.setAttribute("aria-hidden","true");let o=Wn(e,void 0,"spotpatch-fallback-execution-island");o.classList.add("spotpatch-execution-logo");let n=f(e,"span");return t.append(o,n),Object.freeze({canExpand:()=>!1,isExpanded:()=>!1,root:t,setExpanded:()=>{},render(i){let d=[i.headline,i.action,i.meta].filter(s=>s.length>0).join(" · ");n.textContent=d,t.setAttribute("aria-label",d)},dispose(){}})}function bs(e,t,o){return t.append(o),Object.freeze({root:t,refreshButton:ie(e,""),styles:e.createElement("style"),dispose:()=>{},render:()=>{},resetView:()=>{}})}function Mr(e,t,o=Object.freeze({enabled:!1}),n="auto",i=!1,d=!1,s="vite",p="",x=!1){let E=Tr(e,n),v=e.defaultView;if(v===null)throw new Error("SpotPatch requires a document with an associated window.");let j=v,O=Dr(j,_r(j,p),Lt),r=E.messages(),F="idle",$="change",V="",S="",T=!1,q=!1,D,y,A,_,U,W,b=e.createElement("spotpatch-root");b.setAttribute(Mt,"");let w=b.attachShadow({mode:"open"}),R=f(e,"div");R.className="spotpatch-floating-surface",R.dataset.scene="pill",R.dataset.tone="neutral";let I=ie(e,r.trigger.select,"spotpatch-trigger");I.title=r.trigger.title(t),I.setAttribute("aria-pressed","false");let re=Ar(),ue=re?.createExecutionIsland(e),H=ue??ys(e),Y=H.root,B=f(e,"div");B.className="spotpatch-highlight",B.hidden=!0;let ge=f(e,"span");ge.className="spotpatch-highlight-label",B.append(ge);let we=f(e,"div");we.className="spotpatch-selection-highlights",we.setAttribute("aria-hidden","true");let se=f(e,"section");se.className="spotpatch-dialog",se.hidden=!0,se.tabIndex=-1,se.setAttribute("role","dialog"),se.setAttribute("aria-labelledby","spotpatch-selection-title");let Fe=f(e,"div");Fe.className="spotpatch-shell";let Oe=f(e,"header");Oe.className="spotpatch-header",Oe.setAttribute("data-spotpatch-drag-handle","");let fe=f(e,"div");fe.className="spotpatch-brand-row";let _e=f(e,"div");_e.className="spotpatch-brand";let He=f(e,"span");He.className="spotpatch-brand-copy";let Qe=f(e,"span");Qe.className="spotpatch-brand-name";let ct=f(e,"span");ct.className="spotpatch-brand-context",He.append(Qe,ct),_e.append(Wn(e),He);let qe=f(e,"span");qe.className="spotpatch-header-controls";let G=f(e,"a");G.className="spotpatch-repository",G.href=Hn,G.target="_blank",G.rel="noopener noreferrer";let he=ie(e,"","spotpatch-locale"),dt=ie(e,"","spotpatch-reset-position");dt.append(fs(e));let lt=ie(e,"×","spotpatch-close");qe.append(G,he,dt,lt),fe.append(_e,qe);let et=f(e,"h2");et.id="spotpatch-selection-title",et.className="spotpatch-title";let It=f(e,"p");It.className="spotpatch-subtitle";let We=f(e,"div");We.className="spotpatch-target-row";let Ge=f(e,"span");Ge.className="spotpatch-target-label";let ee=f(e,"span");ee.className="spotpatch-context-state",ee.dataset.state="loading",ee.textContent=r.context.collecting,We.append(Ge,ee),Oe.append(fe,et,It,We);let Ce=f(e,"div");Ce.className="spotpatch-body";let Ke=f(e,"div");Ke.className="spotpatch-selection-panel";let pt=f(e,"section");pt.className="spotpatch-targets";let z=f(e,"div");z.className="spotpatch-targets-heading";let ut=f(e,"span"),me=f(e,"span");me.className="spotpatch-targets-meta";let tt=f(e,"span");tt.className="spotpatch-target-complete";let ye=f(e,"span");ye.className="spotpatch-target-budget",ye.setAttribute("aria-live","polite");let nt=f(e,"span");nt.className="spotpatch-target-count",me.append(tt,ye),We.append(nt),z.append(ut,me);let ot=f(e,"div");ot.className="spotpatch-target-progress",ot.setAttribute("aria-hidden","true");let Ae=f(e,"div");Ae.className="spotpatch-target-progress-fill",ot.append(Ae);let Le=f(e,"div");Le.className="spotpatch-target-list",pt.append(z,ot,Le);let Je=f(e,"details");Je.className="spotpatch-diagnostics";let vt=f(e,"summary"),Xe=f(e,"span"),pe=f(e,"span");pe.className="spotpatch-source-peek",pe.textContent=r.diagnostics.resolving,vt.append(Xe,pe);let ht=f(e,"pre");ht.className="spotpatch-summary",Je.append(vt,ht);let N=br(e,o,E),gt=f(e,"div");function Z(){T&&O.requestReconcile()}let X=d?bn()?.createPanel(e,s,E.locale,p,E.subscribe,Z,qr,Wr):void 0;gt.append(pt,N.root,...X===void 0?[]:[X.root]);let $e=Jt()?.createPanel(e,i,E.locale,gt,Je,Z)??bs(e,gt,Je);Ke.append($e.root);let ft=f(e,"div");ft.className="spotpatch-preview-panel",ft.hidden=!0;let Be=f(e,"pre");Be.className="spotpatch-prompt",Be.tabIndex=0,Be.setAttribute("aria-label",r.diagnostics.promptAriaLabel),ft.append(Be),Ce.append(Ke,ft);let ce=f(e,"footer");ce.className="spotpatch-actions";let Ie=f(e,"div");Ie.className="spotpatch-context-state spotpatch-editor-feedback",Ie.dataset.state="idle",Ie.setAttribute("role","status"),Ie.setAttribute("aria-live","polite"),Ie.hidden=!0;let ke=ie(e,r.actions.addElement),rt=ie(e,r.actions.reselect),Ye=ie(e,r.actions.openEditor),Ue=ie(e,r.actions.preview,"spotpatch-primary"),c=ie(e,r.actions.copy,"spotpatch-primary"),g=ie(e,r.actions.back),l=f(e,"div");l.className="spotpatch-secondary-actions";let C=f(e,"div");C.className="spotpatch-primary-actions",ke.classList.add("spotpatch-icon-action"),ke.dataset.compactIcon="+",N.testButton.classList.add("spotpatch-icon-action"),N.testButton.dataset.compactIcon="✓",Ye.classList.add("spotpatch-secondary-action"),rt.classList.add("spotpatch-secondary-action"),l.append(Ye,rt),C.append(N.testButton,ke,N.runButton,...X===void 0?[]:[X.sendButton],Ue,N.cancelButton,N.applyButton,N.revertButton,N.resetButton,c,g),ce.append(Ie,l,C);let L=x?Sn()?.createPanel({document:e,locale:E.locale,subscribeLocale:E.subscribe,changeRoot:$e.root,changeActions:ce,announce:Tn,onModeChange(a,h,m){$=a,V=h,S=m,b.isConnected&&on(F)},onExecutionChange(a){D=a,q=!1,xe()},onViewChange:Z}):void 0;L!==void 0&&Ke.prepend(L.root),Fe.append(Oe,Ce,ce),se.append(Fe);let P=f(e,"div");P.className="spotpatch-live",P.setAttribute("aria-live","polite"),P.setAttribute("aria-atomic","true");let le=[gs(e),...re===void 0?[]:[re.createStyles(e)],$e.styles,...L===void 0?[]:[L.styles],...X===void 0?[]:[X.styles]],at=us(e);if(at!==void 0)for(let a of le)a.nonce=at;w.append(...le,we,B,R,P),R.append(I,se,Y),e.documentElement.append(b),O.registerSurface(R);let Ne=re===void 0||ue===void 0?void 0:re.createController(e,Object.freeze({execution:ue.elements,pill:I,planner:se,surface:R}),O.reconcile),An=()=>{Ne?.cancel()};O.attachDraggable(I,R,{onDragStart:An,suppressClickOnDrag:!0}),O.attachDraggable(Oe,R,{canStartDrag:a=>!O.isCompact()&&!ms(a),onDragStart:An}),O.attachDraggable(Y,R,{onDragStart:An,suppressClickOnDrag:!0}),O.reconcile();let xn=!1,Bt=!1,Yt="",Zt=!0,ze=[],Qt=0,Qn=new Set,eo=new Set,to="idle",no=Object.freeze({component:Object.freeze({status:i?"idle":"disabled"}),page:Object.freeze({status:i?"idle":"disabled"}),observationCount:0});function en(){let a=ze.find(h=>h.active);return Object.freeze(a===void 0?{label:r.context.selectedElement,source:""}:{label:a.label,source:a.source})}function kt(){let a=en();return a.source.length===0?a.label:`${a.label} · ${a.source}`}function oo(){return W=new Date().toISOString(),W}function ro(){return W??oo()}function tn(a){U!==void 0&&(j.clearTimeout(U),U=void 0),a&&(A=void 0,_=void 0)}function vn(a){return _===a?!1:(A===a||(tn(!1),A=a,U=j.setTimeout(()=>{U=void 0,b.isConnected&&(_=a,D=void 0,W=void 0,q=!1,T=!1,xe())},ps)),!0)}function Vr(a){return a.startsWith("claude")?r.execution.claude:a.startsWith("codex")?r.execution.codex:a}function ao(a){return Object.freeze({...a.detail===void 0?{}:{detail:a.detail},key:a.key,kind:a.kind,label:r.execution.activityLane(a.kind,a.detail),state:a.state})}function Ft(a,h,m,k="active"){return Object.freeze({...m===void 0?{}:{detail:m},key:a,kind:h,label:r.execution.activityLane(h,m),state:k})}function xe(){let a=F==="inspecting",h=!T||a,m=h?{scene:a?"capturing":"pill",tone:a?"capturing":"neutral",headline:I.textContent,action:"",meta:"",recentActivities:Object.freeze([])}:!q&&D!==void 0?D:{scene:"planner",tone:"ready",headline:r.dialog.editTitle,action:r.dialog.editSubtitle,meta:r.context.ready,recentActivities:Object.freeze([])};if(Ne!==void 0){Ne.render(m,()=>{H.render(m)});return}H.render(m),R.dataset.scene=m.scene,R.dataset.tone=m.tone;let k=m.scene==="planner";I.hidden=!h,I.inert=!h,se.hidden=!k,se.inert=!k,se.setAttribute("aria-hidden",String(!k)),Y.hidden=h||k,Y.inert=h||k,Y.setAttribute("aria-hidden",String(h||k)),O.reconcile()}function qr(a){if(a===null?(y=void 0,W=void 0):y!==void 0&&a.phase!=="failed"&&a.phase!=="delivery-unknown"?Cn():(a.phase==="failed"||a.phase==="delivery-unknown")&&(y=void 0),a!==null&&!q){let h=a.phase==="failed"||a.phase==="delivery-unknown",m=a.phase==="completed",k=h||m?void 0:ro();(h||m)&&(W=void 0);let M=`dispatch:${String(a.revision)}`;if(m&&!vn(M)){D=void 0,xe();return}let te=Vr(a.adapterKind),je=en(),be=a.phase==="queued"||a.phase==="dispatching"||a.phase==="dispatched"?"dispatch":m?"sync":"unknown",Re=Ft(`dispatch:${String(a.revision)}:${a.phase}`,be,a.phase,h?"failure":m?"success":"active"),ne=h?"failed":m?"success":a.phase==="working"?"running":"handoff";D={scene:ne,tone:h?"danger":m?"success":"running",headline:m?r.execution.completedTitle:h?r.execution.failedTitle:ne==="running"?r.execution.runningTitle(je.label):r.execution.dispatchingTitle(te),action:m?r.execution.resultReturned:je.source,expandedHeadline:m?r.execution.expandedCompletedTitle:h?r.execution.failedTitle:ne==="running"?r.execution.expandedRunningTitle(te):r.execution.dispatchingTitle(te),expandedAction:m?r.execution.resultReturned:kt(),meta:h?r.execution.failedStatus:m?r.execution.completedStatus:ne==="running"?r.execution.runningStatus:r.execution.dispatchingStatus,activity:Re,recentActivities:Object.freeze([Re]),...k===void 0?{}:{startedAt:k}}}else a===null&&(D=void 0);xe()}function Wr(a){let h=a?.task;if(a===void 0||h===void 0||q)return;let m=h.managedPhase,k=m==="failed"||m==="cleanup-warning",M=m==="completed"||m==="review-required",te=m==="cancelled";if(k||te?y=void 0:y!==void 0&&Cn(),te){D=void 0,W=void 0,xe();return}let je=k||M?void 0:ro();if((k||M)&&(W=void 0),m==="completed"&&!vn(`managed:${String(h.revision)}`)){D=void 0,xe();return}let be=k?"failed":M?"success":m==="preparing"?"handoff":"running",Re=k?"danger":M?"success":"running",ne=r.execution.codex,oe=en(),Q=m==="preparing"?"prepare":m==="auditing"?"audit":m==="validating"?"check":m==="applying"?"apply":M?"sync":"unknown",Pe=h.checks.at(-1),Ct=h.files.at(-1),it=m==="validating"?Pe?.id:m==="auditing"||m==="applying"?Ct?.path:void 0,Rt=Ft(`managed:${String(h.revision)}:${m}:${it??""}`,Q,it,k?"failure":M?"success":"active"),Ut=Object.freeze([...h.files.slice(-2).map(mt=>Ft(`managed-file:${String(h.revision)}:${mt.path}`,"patch",mt.path,"success")),...h.checks.slice(-2).map(mt=>Ft(`managed-check:${String(h.revision)}:${mt.id}`,"check",mt.id,mt.outcome==="passed"?"success":"failure")),Rt]);D={scene:be,tone:Re,headline:M?r.execution.completedTitle:k?r.execution.failedTitle:be==="handoff"?r.execution.dispatchingTitle(ne):m==="validating"?r.execution.activityAction("check",it):r.execution.runningTitle(oe.label),action:M?h.files.length===0?r.execution.resultReturned:r.execution.resultSummary(h.files.length):oe.source,expandedHeadline:M?r.execution.expandedCompletedTitle:k?r.execution.failedTitle:be==="handoff"?r.execution.dispatchingTitle(ne):r.execution.expandedRunningTitle(ne),expandedAction:M?r.execution.resultReturned:kt(),meta:k?r.execution.failedStatus:M?r.execution.completedStatus:m==="validating"?r.execution.checkingStatus:be==="handoff"?r.execution.dispatchingStatus:r.execution.runningStatus,activity:Rt,recentActivities:Ut,...je===void 0?{}:{startedAt:je}},xe()}function Gr(a,h){if(!T)return;tn(!0);let m=oo();q=!1;let k=Ft(`dispatch-start:${kt()}`,"dispatch",kt());D={scene:"agent-charging",tone:"running",headline:r.execution.receivingTitle,action:kt(),expandedHeadline:r.execution.receivingTitle,expandedAction:kt(),meta:r.execution.receivingStatus,activity:k,recentActivities:Object.freeze([k]),startedAt:m},xe(),Ne?.dispatch(a,h)}function io(a,h){!T||a.disabled||(y=Object.freeze({source:a,target:h}))}function Cn(){let a=y;y=void 0,!(a===void 0||!a.source.isConnected||!a.target.isConnected)&&Gr(a.source,a.target)}function Rn(a){to=a,Ie.dataset.state=a,Ie.hidden=a==="idle",Ie.textContent=a==="opening"?r.announcements.editorOpening:a==="success"?r.announcements.editorOpened:a==="error"?r.announcements.editorFailed:"",Z()}function Kr(a){return a.instanceState!==void 0&&a.instanceState!=="captured"?r.summary.instanceStates[a.instanceState]:a.status==="ready"?r.targets.statusReady:a.status==="warning"?r.targets.statusPartial:r.targets.statusCollecting}function nn(a,h){let m=h===0?0:a/h;Ae.style.width=`${String(m*100)}%`}function so(a){let h=Le.querySelectorAll("textarea[data-target-instruction-id]");return Array.from(h).find(m=>a===void 0||m.dataset.targetInstructionId===a)}function co(a,h){let m=w.activeElement?.closest("textarea[data-target-instruction-id]"),k=m?.dataset.targetInstructionId,M=m?.selectionStart,te=m?.selectionEnd;ze=a.map(oe=>Object.freeze({...oe})),Qt=h;let je=Qn;Qn=new Set(a.map(oe=>oe.id)),Le.replaceChildren();let be=a.filter(oe=>oe.instruction.trim().length>0).length,Re=a.reduce((oe,Q)=>oe+Q.instruction.trim().length,0);nn(be,a.length),nt.textContent=r.targets.count(a.length,h),tt.textContent=r.targets.complete(be,a.length);let ne=Re>4e3;ye.dataset.state=ne?"over":"ready",ye.textContent=ne?r.targets.instructionBudgetExceeded(Re,4e3):r.targets.instructionBudget(Re,4e3),ke.disabled=!Zt||a.length>=h,ke.title=a.length>=h?r.targets.limitTitle(h):r.targets.addTitle,Ge.textContent=a.length===1?a[0]?.label??r.context.selectedElement:r.context.selectedCount(a.length);for(let[oe,Q]of a.entries()){let Pe=f(e,"div");Pe.className="spotpatch-target-item",Pe.dataset.active=String(Q.active),Pe.dataset.status=Q.status,Pe.dataset.targetId=Q.id,Pe.dataset.entering=String(!je.has(Q.id));let Ct=f(e,"div");Ct.className="spotpatch-target-summary";let it=ie(e,"","spotpatch-target-select");it.dataset.activateTargetId=Q.id,it.setAttribute("aria-label",r.targets.activate(oe+1)),it.setAttribute("aria-expanded",String(Q.active));let Rt=f(e,"span");Rt.className="spotpatch-target-index",Rt.textContent=String(oe+1);let Ut=f(e,"span");Ut.className="spotpatch-target-copy";let mt=f(e,"span");mt.className="spotpatch-target-name",mt.textContent=Q.label;let wn=f(e,"span");wn.className="spotpatch-target-source",wn.textContent=`${Kr(Q)} · ${Q.source}`,Ut.append(mt,wn);let bo=Q.instruction.trim().length>0,rn=f(e,"span");rn.className="spotpatch-target-state",rn.dataset.complete=String(bo),rn.textContent=bo?r.targets.instructionReady:r.targets.instructionMissing,it.append(Rt,Ut,rn);let zt=ie(e,"↗","spotpatch-target-open");zt.dataset.openTargetId=Q.id,zt.disabled=!Q.canOpenEditor,zt.setAttribute("aria-label",r.actions.openTarget(oe+1)),zt.title=r.actions.openTarget(oe+1);let jt=ie(e,"×","spotpatch-target-remove");if(jt.dataset.removeTargetId=Q.id,jt.disabled=!Zt,jt.setAttribute("aria-label",r.targets.remove(oe+1)),jt.title=r.targets.removeTitle,Ct.append(it,zt,jt),Pe.append(Ct),Q.active){let On=f(e,"label");On.className="spotpatch-target-editor";let _n=f(e,"span");_n.className="spotpatch-target-editor-head";let Ln=f(e,"span");Ln.className="spotpatch-target-editor-label",Ln.textContent=r.targets.instructionLabel(Q.label);let In=f(e,"span");In.className="spotpatch-target-editor-count",In.textContent=r.targets.instructionCount(Q.instruction.length,2e3),_n.append(Ln,In);let Tt=f(e,"textarea");Tt.rows=4,Tt.maxLength=2e3,Tt.value=Q.instruction,Tt.placeholder=r.targets.instructionPlaceholder,Tt.disabled=!Zt,Tt.dataset.targetInstructionId=Q.id,Tt.setAttribute("aria-label",r.targets.instructionLabel(Q.label)),On.append(_n,Tt),Pe.append(On)}Le.append(Pe)}if(k!==void 0){let oe=so(k);oe?.focus({preventScroll:!0}),M!==void 0&&te!==void 0&&oe?.setSelectionRange(M,te)}Z()}function Jr(a,h){ze=ze.map(ne=>ne.id===a?Object.freeze({...ne,instruction:h}):ne);let m=Array.from(Le.querySelectorAll(".spotpatch-target-item")).find(ne=>ne.dataset.targetId===a);if(m===void 0)return;let k=h.trim().length>0,M=m.querySelector(".spotpatch-target-state"),te=m.querySelector(".spotpatch-target-editor-count");M!==null&&(M.dataset.complete=String(k),M.textContent=k?r.targets.instructionReady:r.targets.instructionMissing),te!==null&&(te.textContent=r.targets.instructionCount(h.length,2e3));let je=ze.filter(ne=>ne.instruction.trim().length>0).length;tt.textContent=r.targets.complete(je,ze.length),nn(je,ze.length);let be=ze.reduce((ne,oe)=>ne+oe.instruction.trim().length,0),Re=be>4e3;ye.dataset.state=Re?"over":"ready",ye.textContent=Re?r.targets.instructionBudgetExceeded(be,4e3):r.targets.instructionBudget(be,4e3)}function Xr(a){let h=eo;eo=new Set(a.map(m=>m.id)),we.replaceChildren();for(let[m,k]of a.entries()){let M=f(e,"div");M.className="spotpatch-selection-highlight",M.dataset.targetId=k.id,M.dataset.entering=String(!h.has(k.id)),M.dataset.active=String(k.active),M.style.transform=`translate(${String(k.rect.x)}px, ${String(k.rect.y)}px)`,M.style.width=`${String(k.rect.width)}px`,M.style.height=`${String(k.rect.height)}px`;let te=f(e,"span");te.textContent=`${String(m+1)} · ${k.label}`,M.append(te),we.append(M)}}function lo(a){let h=r.summary,m=hs(a,h.source);pe.textContent=m??r.diagnostics.noExactSource;let k=`${h.browserContext}: ${h.collectionStatuses.ready}`,M=`${h.browserContext}: ${h.collectionStatuses.loading}`,te=`${h.browserContext}: ${h.collectionStatuses.failed}`,je=`${h.api}: ${h.apiStatuses.loading}`,be=`${h.api}: ${h.apiStatuses.failed}`;a.includes(k)&&!a.includes(M)&&!a.includes(je)&&!a.includes(te)&&!a.includes(be)?(ee.dataset.state="ready",ee.textContent=r.context.ready):a.includes(te)||a.includes(be)?(ee.dataset.state="warning",ee.textContent=r.context.partial):(ee.dataset.state="loading",ee.textContent=r.context.collecting)}function po(a,h,m){xn=h,Bt=m,Yt=a,ht.textContent=a,Ye.disabled=!h,Ue.disabled=!m,N.setContextReady(m),X?.setContextReady(m),L?.setSelectionPreview({contextReady:ze.every(k=>k.status!=="loading"),targetCount:ze.length,sourceCount:ze.filter(k=>k.canOpenEditor).length}),lo(a),Z()}function on(a){F=a;let h=a==="selected",m=a==="previewing";Ke.hidden=!h,ft.hidden=!m,rt.hidden=!h,ke.hidden=!h,Ye.hidden=!h,Ue.hidden=!h,l.hidden=!h,N.setSelectionVisible(h),X?.setSelectionVisible(h),L?.setSelectionVisible(h),c.hidden=!m,g.hidden=!m,et.textContent=m?r.dialog.previewTitle:$==="ask"&&V.length>0?V:r.dialog.editTitle,It.textContent=m?r.dialog.previewSubtitle:$==="ask"&&S.length>0?S:r.dialog.editSubtitle,xe()}function uo(){r=E.messages(),Qe.textContent=r.brand.name,ct.textContent=r.brand.context,G.textContent=r.brand.repository,G.title=r.brand.repositoryTitle,G.setAttribute("aria-label",r.brand.repositoryTitle),he.textContent=r.alternateLocaleName,he.title=r.switchLocale,he.setAttribute("aria-label",r.switchLocale),dt.title=r.floatingSurface.resetPosition,dt.setAttribute("aria-label",r.floatingSurface.resetPosition),lt.setAttribute("aria-label",r.dialog.close),lt.title=r.dialog.close,Oe.title=r.floatingSurface.dragHandle,pt.setAttribute("aria-label",r.targets.ariaLabel),ut.textContent=r.targets.title,Xe.textContent=r.diagnostics.title,Be.setAttribute("aria-label",r.diagnostics.promptAriaLabel),ke.textContent=r.actions.addElement,rt.textContent=r.actions.reselect,Ye.textContent=r.actions.openEditor,Ue.textContent=r.actions.preview,c.textContent=r.actions.copy,g.textContent=r.actions.back,$e.render(no),I.title=r.trigger.title(t),I.textContent=F==="inspecting"?r.trigger.stop:r.trigger.select,on(F),Rn(to),ze.length>0?co(ze,Qt):(nt.textContent=r.targets.count(0,Qt),tt.textContent=r.targets.complete(0,0),nn(0,0),ye.dataset.state="ready",ye.textContent=r.targets.instructionBudget(0,4e3),Ge.textContent=r.context.selectedElement),Yt.length>0?lo(Yt):(pe.textContent=r.diagnostics.resolving,ee.textContent=r.context.collecting)}function Tn(a){P.textContent="",P.textContent=a}function go(){O.reset(),Tn(r.floatingSurface.positionReset)}Je.addEventListener("toggle",Z),he.addEventListener("click",E.toggle),dt.addEventListener("click",go);let fo=()=>{io(N.runButton,N.root)},ho=()=>{X!==void 0&&io(X.sendButton,X.root)},mo=()=>{if(H.canExpand()&&!H.isExpanded()){Ne===void 0?(H.setExpanded(!0),O.reconcile()):Ne.updateLayout(()=>{H.setExpanded(!0)});return}tn(!1),q=!0,xe()},yo=a=>{a.key!=="Escape"||!H.isExpanded()||(a.preventDefault(),a.stopPropagation(),Ne===void 0?(H.setExpanded(!1),O.reconcile()):Ne.updateLayout(()=>{H.setExpanded(!1)}))};N.runButton.addEventListener("click",fo),X?.sendButton.addEventListener("click",ho),Y.addEventListener("click",mo),Y.addEventListener("keydown",yo);let Yr=E.subscribe(uo);return uo(),Object.freeze({host:b,triggerButton:I,addTargetButton:ke,targetList:Le,reselectButton:rt,openEditorButton:Ye,repositoryLink:G,previewButton:Ue,copyButton:c,dataFlowRefreshButton:$e.refreshButton,backButton:g,closeButton:lt,agentProviderSelect:N.providerSelect,agentModelSelect:N.modelSelect,agentModeSelect:N.modeSelect,agentConsentCheckbox:N.consentCheckbox,agentWorkspaceConsentCheckbox:N.workspaceConsentCheckbox,agentTestButton:N.testButton,agentRunButton:N.runButton,agentCancelButton:N.cancelButton,agentApplyButton:N.applyButton,agentRevertButton:N.revertButton,agentResetButton:N.resetButton,...X===void 0?{}:{externalHandoffPanel:X},...L===void 0?{}:{contextualAskPanel:L},renderStatus(a){let h=a==="inspecting";a==="idle"||h?T=!1:T=!0,I.setAttribute("aria-pressed",String(h)),I.textContent=h?r.trigger.stop:r.trigger.select,on(a)},renderEditorStatus:Rn,renderDataFlow(a){no=a,$e.render(a),Z()},showHighlight(a,h){B.hidden=!1,B.style.transform=`translate(${String(a.x)}px, ${String(a.y)}px)`,B.style.width=`${String(a.width)}px`,B.style.height=`${String(a.height)}px`,ge.textContent=h,Ge.textContent=h},hideHighlight(){B.hidden=!0,ge.textContent=""},showSelectionHighlights:Xr,hideSelectionHighlights(){we.replaceChildren()},showSelection(a,h,m){po(a,h,m),T=!0,on(F==="previewing"?"previewing":"selected")},updateSelection:po,renderTargets:co,updateTargetInstruction:Jr,setPreviewEnabled(a){Bt=a,Ue.disabled=!a,N.setContextReady(a),X?.setContextReady(a)},hideSelection(){T=!1,q=!1,D=void 0,Le.replaceChildren(),ze=[],Qt=0,Yt="",Rn("idle"),nt.textContent=r.targets.count(0,0),tt.textContent=r.targets.complete(0,0),nn(0,0),Ge.textContent=r.context.selectedElement,ht.textContent="",Be.textContent="",pe.textContent=r.diagnostics.resolving,ee.dataset.state="loading",ee.textContent=r.context.collecting,Ye.disabled=!0,Ue.disabled=!0,xn=!1,Bt=!1,N.setContextReady(!1),N.setSelectionVisible(!1),X?.setContextReady(!1),X?.setSelectionVisible(!1),L?.setSelectionVisible(!1),N.setEditingEnabled(!0),N.resetJob(),$e.resetView(),xe()},hideSelectionTemporarily(){T=!1,q=!1,D=void 0,xe()},showPreview(a){Be.textContent=a,Z()},readAgentSelection(){return N.readSelection()},agentConsentGranted(){return N.consentGranted()},setAgentProviderConsent(a){N.setProviderConsent(a)},setAgentEditingEnabled(a){Zt=a,ke.disabled=!a,rt.disabled=!a,Le.querySelectorAll(".spotpatch-target-remove, .spotpatch-target-select, textarea[data-target-instruction-id]").forEach(h=>{h.disabled=!a}),Ye.disabled=!xn,Ue.disabled=!a||!Bt,X?.setContextReady(a&&Bt),N.setEditingEnabled(a),Z()},renderAgentCapability(a,h,m,k){N.renderCapability(a,h,m,k),a==="error"&&(y=void 0,xe());let M=a==="ready"&&m?.state==="agent-ready";Ue.classList.toggle("spotpatch-primary",!M),Z()},renderAgentWorkspaceHealth(a,h,m){N.renderWorkspaceHealth(a,h,m),a==="blocked"&&(y=void 0,xe()),Z()},renderAgentJob(a,h,m,k){N.renderJob(a,h,m,k),y!==void 0&&a.status!=="failed"&&a.status!=="cancelled"&&Cn(),(a.status==="failed"||a.status==="cancelled")&&(y=void 0);let M=a.status==="awaiting-review"||a.status==="applied"||a.status==="completed"||a.status==="reverted",te=a.status==="failed",je=a.status==="cancelled",be=a.status==="applied"||a.status==="completed"||a.status==="reverted",Re=M?"success":te?"failed":a.status==="queued"||a.status==="preparing"?"handoff":"running";if(!q){if(be&&!vn(`job:${a.jobId}:${a.status}`)){D=void 0,xe(),Z();return}let ne=a.providerLabel,oe=en(),Q=Object.freeze(m.map(ao)),Pe=m.at(-1),Ct=a.status==="queued"||a.status==="preparing"?"prepare":a.status==="validating"?"check":a.status==="applying"||a.status==="reverting"?"apply":a.status==="awaiting-review"||M?"sync":"unknown",it=Ft(`job-phase:${a.jobId}:${a.status}:${a.updatedAt}`,Ct,void 0,M?"success":te?"failure":"active"),Rt=a.status==="running"&&Pe!==void 0?ao(Pe):it;D=je?void 0:{scene:Re,tone:M?"success":te?"danger":"running",headline:M?r.execution.completedTitle:te?r.execution.failedTitle:Re==="handoff"?r.execution.dispatchingTitle(ne):a.status==="validating"?r.execution.activityAction("check",Pe?.detail):a.status==="applying"||a.status==="reverting"?r.execution.activityAction(Ct):r.execution.runningTitle(oe.label),action:M?h===void 0||h.files.length===0?r.execution.resultReturned:r.execution.resultSummary(h.files.length):Pe?.detail??oe.source,expandedHeadline:M?r.execution.expandedCompletedTitle:te?r.execution.failedTitle:Re==="handoff"?r.execution.dispatchingTitle(ne):r.execution.expandedRunningTitle(ne),expandedAction:M?h===void 0||h.files.length===0?r.execution.resultReturned:r.execution.resultSummary(h.files.length):kt(),meta:M?r.execution.completedStatus:te?r.execution.failedStatus:a.status==="validating"?r.execution.checkingStatus:Re==="handoff"?r.execution.dispatchingStatus:r.execution.runningStatus,activity:Rt,recentActivities:Q.length===0?Object.freeze([it]):Q,startedAt:a.createdAt}}xe(),Z()},resetAgentJob(){N.resetJob(),W=void 0,D!==void 0&&(D=void 0,q=!1,xe()),Z()},focusTargetInstruction(a){so(a)?.focus({preventScroll:!0})},focusPrompt(){Be.focus({preventScroll:!0})},announce:Tn,locale:E.locale,messages:E.messages,agentWorkspaceConsentGranted:N.workspaceConsentGranted,subscribeLocale:E.subscribe,dispose(){Je.removeEventListener("toggle",Z),he.removeEventListener("click",E.toggle),dt.removeEventListener("click",go),N.runButton.removeEventListener("click",fo),X?.sendButton.removeEventListener("click",ho),Y.removeEventListener("click",mo),Y.removeEventListener("keydown",yo),Yr(),$e.dispose(),X?.dispose(),L?.dispose(),N.dispose(),Ne?.dispose(),H.dispose(),tn(!0),O.dispose(),b.remove()}})}function Ss(e,t,o){let n=t?.relativePath??e.source.relativePath,i=e.source.line,d=e.source.column;return n!==void 0&&i!==void 0?`${n}:${String(i)}${d===void 0?"":`:${String(d)}`}`:n!==void 0?n:i!==void 0?o.lineLocation(i,d):o.unavailable}function Fr(e,t){let o=[`SpotPatch: ${e.spotPatchVersion}`,`${{next:"Next.js",vite:"Vite",astro:"Astro"}[e.framework]}: ${e.frameworkVersion}`,`${t.source}: ${Ss(e.resolution,e.code,t)}`,`${t.confidence}: ${e.resolution.source.confidence} (${t.confidenceLabels[e.resolution.source.confidence]})`,`${t.origin}: ${e.resolution.source.origin}`];return e.instance!==void 0&&o.push(`${t.instance}: ${t.instanceStates[e.instance.state]}`),e.resolution.react.componentName!==void 0&&o.push(`${t.component}: ${e.resolution.react.componentName}`),e.resolution.react.componentStack.length>0&&o.push(`${t.stack}: ${e.resolution.react.componentStack.join(" > ")}`),!e.resolution.react.supported&&e.resolution.react.version!==void 0&&o.push(`React ${e.resolution.react.version}: ${t.unsupported}`),o.push(`${t.adapter}: ${e.resolution.react.supported?t.available:t.unavailable}`,`${t.api}: ${t.apiStatuses[e.apiStatus]}`,`${t.browserContext}: ${t.collectionStatuses[e.collectionStatus]}`),e.code!==void 0?o.push(`${t.boundary}: ${t.boundaries[e.code.boundary]}`):e.apiStatus==="loading"?o.push(`${t.sourceContext}: ${t.apiStatuses.loading}`):e.apiStatus==="failed"&&o.push(`${t.sourceContext}: ${t.unavailable}`),e.styles!==void 0&&(o.push(`${t.cssWarnings}: ${String(e.styles.warnings.length)}`),o.push(...e.styles.warnings.map(n=>`${t.warning}: ${n}`))),o.join(`
971
+ `)}function Hr(e,t){return`${e}:${t}`}var Es=Object.freeze({list_files:"discover",search_text:"search",read_file:"read",replace_text:"patch",apply_patch:"patch",run_check:"check"});function As(e){return Es[e]??"unknown"}function xs(e){if(e.type==="tool"){let t=e.data.relativePath??e.data.checkLabel;return Object.freeze({key:`tool:${String(e.data.turn)}:${e.data.toolCallId}`,kind:As(e.data.toolName),...t===void 0?{}:{detail:t},label:`${e.data.toolName}${t===void 0?"":` · ${t}`} · ${e.data.state}`,state:e.data.state==="started"?"active":e.data.state==="succeeded"?"success":"failure"})}if(e.type==="check")return Object.freeze({key:`check:${e.data.result.checkId}:${String(e.sequence)}`,kind:"check",detail:e.data.result.label,label:`${e.data.result.label} · ${e.data.result.status}`,state:e.data.result.status==="passed"?"success":e.data.result.status==="failed"||e.data.result.status==="timed-out"?"failure":"info"})}function $r(e){let t=y=>Do(y)??u.INTERNAL_ERROR,o=y=>e.view.messages().errors[t(y)],n=new Map,i=new Set,d=new Map,s=0,p,x,E=!1,v=!1,j=()=>e.view.readAgentSelection(),O=y=>`${y.providerProfileId}:${y.applyMode}`,r=async y=>{e.view.renderAgentWorkspaceHealth("checking");try{let A=await e.api.agentWorkspaceHealth();return y!==s||e.view.renderAgentWorkspaceHealth(A.state,A,A.errorCode),A}catch(A){throw y===s&&e.view.renderAgentWorkspaceHealth("blocked",void 0,t(A)),A}},F=y=>{p!==void 0&&e.view.renderAgentJob(p,x,Object.freeze([...d.values()]),y??p.errorCode)},$=()=>{let y=j();if(y===void 0){e.view.setAgentProviderConsent(!1),e.view.renderAgentCapability("error",e.view.messages().agent.providerUnavailable);return}e.view.setAgentProviderConsent(i.has(O(y)));let A=n.get(Hr(y.providerProfileId,y.modelProfileId));A===void 0?e.view.renderAgentCapability("idle",e.view.messages().agent.connectionNotTested):e.view.renderAgentCapability("ready",e.view.messages().agent.capabilityVerified,A)},V=async y=>{let A=j();if(A===void 0)throw new Error("Agent provider selection is unavailable.");let _=Hr(A.providerProfileId,A.modelProfileId),U=n.get(_);if(U!==void 0)return U;e.view.renderAgentCapability("probing",e.view.messages().agent.testingCapability);let W=await e.api.agentCapability(A);if(y!==s)return W;if(W.state!=="agent-ready")throw new K(W.errorCode??u.MODEL_TOOL_CALL_UNSUPPORTED);return n.set(_,W),e.view.renderAgentCapability("ready",e.view.messages().agent.capabilityVerified,W),e.view.announce(e.view.messages().agent.capabilityVerifiedAnnouncement),W},S=async(y,A)=>{try{let _=await e.api.agentResult(y);if(A!==s||_.snapshot.jobId!==y)return;p=_.snapshot,x=_.result,F()}catch(_){A===s&&F(t(_))}},T=async(y,A)=>{try{await e.api.agentEvents(y,_=>{if(A!==s||_.jobId!==y)return;_.type==="snapshot"&&(p=_.data.snapshot,p.status==="applied"&&!E&&(E=!0,e.onApplied()));let U=xs(_);U!==void 0&&d.set(U.key,U),F()}),A===s&&await S(y,A)}catch(_){A===s&&!(_ instanceof DOMException&&_.name==="AbortError")&&F(t(_))}},q=async y=>{let A=p;if(A===void 0||v)return;v=!0;let _=s;p=Object.freeze({...A,status:y==="apply"?"applying":y==="cancel"?"cancelling":"reverting",phaseMessage:y==="apply"?e.view.messages().agent.applying:y==="cancel"?e.view.messages().agent.cancelling:e.view.messages().agent.reverting,canCancel:!1,canApply:!1,canRevert:!1}),F();try{let U=y==="apply"?await e.api.applyAgentJob(A.jobId):y==="cancel"?await e.api.cancelAgentJob(A.jobId):await e.api.revertAgentJob(A.jobId);if(_!==s)return;p=U,U.status==="applied"&&!E&&(E=!0,e.onApplied()),await S(U.jobId,_)}catch(U){if(_!==s)return;p=A,await S(A.jobId,_),F(t(U)),e.view.announce(o(U))}finally{_===s&&(v=!1)}},D=()=>{s+=1,p=void 0,x=void 0,d.clear(),E=!1,v=!1,e.view.resetAgentJob(),e.view.setAgentEditingEnabled(!0),$()};return Object.freeze({apply(){p?.canApply===!0&&q("apply")},beginSelection(){D();let y=s;e.ai.enabled&&r(y).catch(()=>{})},cancel(){p?.canCancel===!0&&q("cancel")},consentChanged(){let y=j();y!==void 0&&(e.view.agentConsentGranted()?i.add(O(y)):i.delete(O(y)))},disposeSelection(){let y=p?.canCancel===!0||p?.status==="cancelling"?p.jobId:void 0;s+=1,p=void 0,x=void 0,d.clear(),E=!1,v=!1,y!==void 0&&e.api.cancelAgentJob(y).catch(()=>{})},providerOrModelChanged(){s+=1,$(),r(s).catch(()=>{})},reset(){let y=E;D(),y?e.onReselectRequired():e.ai.enabled&&r(s).catch(()=>{})},revert(){p?.canRevert===!0&&q("revert")},run(){if(!e.ai.enabled||p!==void 0)return;let y=j(),A=e.getAnnotation();if(y===void 0||A===void 0){e.view.announce(e.view.messages().announcements.completeInstructions);return}if(!e.view.agentConsentGranted()){e.view.announce(e.view.messages().agent.consentRequired);return}i.add(O(y));let _=++s;e.view.setAgentEditingEnabled(!1),r(_).then(async U=>{if(_!==s)return;if(U.state==="blocked")throw new K(U.errorCode??u.WORKTREE_LOCAL_CHANGES_UNSUPPORTED);if(U.state==="consent-required"&&!e.view.agentWorkspaceConsentGranted())throw new K(u.WORKTREE_DIRTY);let W=await e.api.createAgentJob({annotation:A,applyMode:y.applyMode,providerProfileId:y.providerProfileId,modelProfileId:y.modelProfileId,providerDataConsent:!0,...y.applyMode==="trusted-auto"?{trustedFastModeConsent:!0}:{},workingTreeMode:U.state==="consent-required"?"include-local-changes":"require-clean"});_===s&&(p=W,x=void 0,d.clear(),F(),T(W.jobId,_))}).catch(U=>{_===s&&(e.view.setAgentEditingEnabled(!0),e.view.renderAgentCapability("error",o(U),void 0,t(U)),e.view.announce(o(U)))})},testCapability(){if(!e.ai.enabled||p!==void 0)return;let y=++s;Promise.all([V(y),r(y)]).catch(A=>{y===s&&(e.view.renderAgentCapability("error",o(A),void 0,t(A)),e.view.announce(o(A)))})}})}function Xn(e){if(typeof e.crypto.randomUUID=="function")return e.crypto.randomUUID();let t=e.crypto.getRandomValues(new Uint8Array(16));return Array.from(t,o=>o.toString(16).padStart(2,"0")).join("")}function Yn(e,t){return Object.freeze({url:t.location.href,pathname:t.location.pathname,title:e.title,viewportWidth:t.innerWidth,viewportHeight:t.innerHeight,devicePixelRatio:t.devicePixelRatio})}function Br(e){let t=Reflect.get(e,"clipboard");return typeof t=="object"&&t!==null&&"writeText"in t&&typeof t.writeText=="function"?t:void 0}var Cs=Object.freeze({classNames:Object.freeze([]),matchedRules:Object.freeze([]),computed:Object.freeze({}),warnings:Object.freeze(["CSS context collection failed."])});function Ur(e){let t=e.id.length>0?`#${e.id}`:"",o=Array.from(e.classList).slice(0,2).map(n=>`.${n}`).join("");return`<${e.tagName.toLowerCase()}${t}${o}>`}function Rs(e,t){let o=e.code?.relativePath??e.resolution.source.relativePath,n=e.resolution.source.line,i=e.resolution.source.column;return o===void 0?t:`${o}${n===void 0?"":`:${String(n)}`}${i===void 0?"":`:${String(i)}`}`}function Ts(e){return e.apiStatus==="failed"||e.collectionStatus==="failed"||e.elementContext?.instance!==void 0&&e.elementContext.instance.state!=="captured"?"warning":e.apiStatus==="loading"||e.collectionStatus==="loading"?"loading":"ready"}function ws(e){let t=e.document??globalThis.document,o=e.window??globalThis.window;return{document:t,window:o,mutationObserver:e.mutationObserver??globalThis.MutationObserver,resizeObserver:e.resizeObserver??globalThis.ResizeObserver}}function zr(e,t={}){let o=ws(t),n=t.view??Mr(o.document,e.shortcut,e.ai,e.locale,e.dataFlow.enabled,e.externalAgent.enabled,e.framework,e.sessionId,e.contextualAsk.enabled),i=t.api??Mo({apiBase:e.apiBase,dataFlowReportMaxBytes:e.dataFlow.limits.reportMaxBytes,fetch:o.window.fetch.bind(o.window),sessionToken:e.sessionToken}),d=t.promptComposer??sr({maxCharacters:e.budget.totalCharacters}),s=t.clipboard??Br(o.window.navigator),p=t.createId??(()=>Xn(o.window)),x=t.now??(()=>new Date().toISOString()),E=t.selectionSession??ur(o.window,e.sessionId,e.maxTargets),v=E.load(),j=Xn(o.window),O=mr({adapter:t.reactAdapter??vs({...e.dataFlow.enabled?{getComponentRegistration:c=>Jt()?.getComponentRegistration(c)}:{},maxComponentDepth:e.budget.maxComponentDepth}),onAdapterError(){n.announce(n.messages().announcements.adapterDisabled),e.debug&&console.warn("[spotpatch:react] Adapter failed and was disabled for this session.")}}),r=jn,F=!1,$,V,S=v?.targets.map(c=>{let g=qn(c.source);return{id:c.id,resolution:Object.freeze({source:c.source,react:c.react}),apiStatus:g===void 0?"not-required":c.code===void 0?"failed":"connected",code:c.code,collectionStatus:"ready",dataFlowReport:void 0,dataFlowStatus:"idle",element:void 0,instanceScope:void 0,elementContext:fn(c.element,"restored"),instruction:c.instruction,marker:g,page:c.page,styles:c.styles}})??[],T=v?.activeTargetId,q=v?.sequence??0,D=v?.open??!1,y=!1,A=0,_=0,U=0,W,b="idle",w=!1,R="",I,re,ue,H,Y=new Map;function B(c){r=cr(r,c),n.renderStatus(r.status)}function ge(){return S.find(c=>c.id===T)??S.at(-1)}function we(c){let g=c.resolution.react;if(g.componentSourceId!==void 0&&g.sourceVersion!==void 0)return Object.freeze({schemaVersion:1,componentSourceId:g.componentSourceId,sourceVersion:g.sourceVersion});let l=c.marker;return l===void 0?void 0:Object.freeze({schemaVersion:1,fileId:l.fileId,line:l.line,column:l.column})}function se(){let c=Jt(),g=c?.observations(o.window.location.pathname)??[],l=ge();n.renderDataFlow({component:Object.freeze({status:e.dataFlow.enabled?l?.dataFlowStatus??"idle":"disabled",...l?.dataFlowReport===void 0?{}:{report:c?.mergeComponentReport(l.dataFlowReport,g)??l.dataFlowReport}}),page:Object.freeze({status:e.dataFlow.enabled?b:"disabled",...W===void 0?{}:{report:c?.mergePageReport(W,g)??W}}),observationCount:g.length})}async function Fe(){if(!e.dataFlow.enabled){se();return}let c=ge(),g=c===void 0?void 0:we(c),l=S.flatMap(at=>{let Ne=we(at);return Ne===void 0?[]:[Ne]}),C=++U,L=A;c!==void 0&&(c.dataFlowStatus="loading"),b=l.length===0?"idle":"loading",se();let[P,le]=await Promise.allSettled([g===void 0?Promise.resolve(void 0):i.componentDataFlowReport(g),l.length===0?Promise.resolve(void 0):i.pageDataFlowReport({schemaVersion:1,targets:l})]);!F||C!==U||L!==A||(c!==void 0&&S.includes(c)&&(P.status==="fulfilled"?(c.dataFlowReport=P.value,c.dataFlowStatus=P.value===void 0?"idle":"ready"):(c.dataFlowReport=void 0,c.dataFlowStatus="error")),le.status==="fulfilled"?(W=le.value,b=le.value===void 0?"idle":"ready"):(W=void 0,b="error"),se())}function Oe(c){if(!(c.elementContext===void 0||c.styles===void 0))return{id:c.id,instruction:c.instruction,page:c.page,source:c.resolution.source,react:c.resolution.react,element:c.elementContext,styles:c.styles,...c.code===void 0?{}:{code:c.code}}}function fe(){let c=S.flatMap(l=>{let C=Oe(l);return C===void 0?[]:[C]});if(c.length===0){E.clear();return}let g=new Set(c.map(({id:l})=>l));E.save({...T!==void 0&&g.has(T)?{activeTargetId:T}:{},open:D,sequence:q,targets:c})}function _e(c,g){return F&&g===A&&r.status!=="idle"&&S.includes(c)}function He(){let c=S.reduce((g,l)=>g+l.instruction.trim().length,0);return S.length>0&&c<=4e3&&S.every(g=>g.instruction.trim().length>0&&g.elementContext!==void 0&&g.styles!==void 0&&g.apiStatus!=="loading")}function Qe(){Xe(ue?.takeRecords()??[]);let c=S.flatMap(g=>{let l=Oe(g);return l===void 0?[]:[l]});if(!(c.length===0||c.length!==S.length))return Object.freeze({locale:n.locale(),targets:c})}function ct(){let c=n.messages().summary;return S.map((g,l)=>{let C=Fr({resolution:g.resolution,...g.elementContext?.instance===void 0?{}:{instance:g.elementContext.instance},...g.code===void 0?{}:{code:g.code},...g.styles===void 0?{}:{styles:g.styles},apiStatus:g.apiStatus,collectionStatus:g.collectionStatus,framework:e.framework,frameworkVersion:e.frameworkVersion,spotPatchVersion:e.spotPatchVersion},c);return`${c.target(l+1,g.id===T)}
972
+ ${C}`}).join(`
973
973
 
974
- `)}function Je(){let c=A.flatMap(u=>{if(!u.element?.isConnected)return[];let S=ln(u.element,o.window);return S===void 0?[]:[{id:u.id,label:Wn(u.element),rect:S,active:u.id===T}]});c.length===0?n.hideSelectionHighlights():n.showSelectionHighlights(c)}function Q(c=!1){if(A.length===0)return;n.renderTargets(A.map(h=>({id:h.id,label:h.resolution.react.componentName??(h.element===void 0?h.elementContext?.tagName??"Element":Wn(h.element)),source:fs(h,n.messages().context.sourceUnavailable),canOpenEditor:h.marker!==void 0,status:hs(h),active:h.id===T,instruction:h.instruction})),e.maxTargets),Je();let u=le(),S=Ke(),B=u?.marker!==void 0;c?n.showSelection(S,B,ve()):n.updateSelection(S,B,ve())}function pe(){if(!ve())return;let c=A.map(u=>{if(u.elementContext===void 0||u.styles===void 0)throw new Error("SpotPatch attempted to compose an incomplete target.");let S=[...u.apiStatus==="failed"?["Source context could not be loaded."]:[],...u.collectionStatus==="failed"?["Part of the browser context could not be collected."]:[]];return{instruction:u.instruction.trim(),page:u.page,source:u.resolution.source,react:u.resolution.react,element:u.elementContext,styles:u.styles,...u.code===void 0?{}:{code:u.code},warnings:S}});return fo({id:l(),locale:n.locale(),createdAt:C(),page:Vn(o.document,o.window),targets:c})}function De(c){n.showHighlight(qo(c,o.window),Wn(c))}function Xe(){O?.isConnected===!0&&O.focus({preventScroll:!0}),O=void 0}function Ye(){for(let c of F.values())o.window.clearTimeout(c);F.clear()}function lt(){m+=1,i.cancelPending(),z.disposeSelection(),Ve?.cancelPending(),Re?.cancelPending(),Ye(),_?.disconnect(),A=[],T=void 0,L+=1,M=void 0,G="idle",U=!1,N=!1,E=!1,R="",n.hideSelection(),n.hideSelectionHighlights(),x.clear(),Xe()}function at(){y.status==="inspecting"?D({type:"CANCEL"}):y.status==="selected"?D({type:"CLOSE"}):y.status==="previewing"&&(D({type:"BACK"}),D({type:"CLOSE"})),U=!1,de(),n.hideSelection(),n.hideSelectionHighlights(),Xe(),n.hideHighlight()}function pt(){if(y.status!=="inspecting"||!E||A.length===0){at();return}E=!1,D({type:"SELECT"}),n.hideHighlight(),Q(!0),n.focusTargetInstruction(T),n.announce(n.messages().announcements.addCancelled)}function Fe(){if(y.status==="inspecting"&&E){pt();return}if(y.status!=="idle"){at();return}if(A.length>0){U=!0,D({type:"RESTORE"}),N||(z.beginSelection(),N=!0),Q(!0),ne(),n.focusTargetInstruction(T),de();return}D({type:"ACTIVATE"}),n.hideSelection(),n.announce(n.messages().announcements.selectionEnabled)}function oe(c=n.messages().announcements.chooseAnother){y.status==="selected"&&(D({type:"RESELECT"}),lt(),n.hideHighlight(),n.announce(c))}function Ce(){if(y.status==="selected"){if(A.length>=e.maxTargets){n.announce(n.messages().announcements.selectionLimit(e.maxTargets));return}E=!0,D({type:"RESELECT"}),n.hideSelectionTemporarily(),n.hideHighlight(),n.announce(n.messages().announcements.chooseAdditional(A.length,e.maxTargets))}}function Ze(){m+=1,Ye(),_?.disconnect();for(let c of A)c.element=void 0;n.hideHighlight(),n.hideSelectionHighlights(),Q(),x.clear(),n.announce(n.messages().announcements.appliedTargetsDetached)}let z=_r({ai:e.ai,api:i,getAnnotation:pe,onApplied:Ze,onReselectRequired(){oe(n.messages().announcements.reselectAfterChange)},view:n}),Ve=e.externalAgent.enabled&&n.externalHandoffPanel!==void 0?gn()?.createWorkflow(o.window.fetch.bind(o.window),n.externalHandoffPanel,pe,e.sessionToken,o.window):void 0,Re=e.contextualAsk.enabled&&n.contextualAskPanel!==void 0?fn()?.createWorkflow({...a===void 0?{}:{clipboard:a},createId:l,fetch:o.window.fetch.bind(o.window),getSelection:rt,onBusyChange(c){n.setAgentEditingEnabled(!c)},onConvert(){n.focusTargetInstruction(T)},async onOpenSource(c){await i.openEditor({fileId:c.fileId,line:c.startLine,column:1})},panel:n.contextualAskPanel,sessionToken:e.sessionToken}):void 0;async function bt(c,u){let S=c.marker;if(S!==void 0)try{let B=await i.sourceContext({fileId:S.fileId,line:S.line,column:S.column,maxLines:e.budget.maxCodeLines});je(c,u)&&(c.code=B,c.apiStatus="connected",de(),Q(),n.announce(n.messages().announcements.sourceLoaded))}catch(B){je(c,u)&&(c.code=void 0,c.apiStatus="failed",de(),Q(),n.announce(n.messages().announcements.sourceFailed),e.debug&&!(B instanceof DOMException&&B.name==="AbortError")&&console.warn("[spotpatch:runtime] Source context request failed."))}}function Qe(c,u){let S=c.element;if(S===void 0)return;let B=o.window.setTimeout(()=>{if(F.delete(c.id),!je(c,u))return;let h=!1;try{c.elementContext=Uo({element:S,maxCharacters:e.budget.domCharacters})}catch{c.elementContext=void 0,h=!0}try{c.styles=Do({document:o.document,element:S,maxCharacters:e.budget.cssCharacters})}catch{c.styles=gs,h=!0}c.collectionStatus=h?"failed":"ready",de(),Q(),n.announce(h?n.messages().announcements.contextWarning:n.messages().announcements.contextCollected),e.debug&&c.styles.warnings.length>0&&console.warn(`[spotpatch:runtime] CSS collection completed with ${String(c.styles.warnings.length)} warning(s).`)},0);F.set(c.id,B)}function fe(c,u){return u!==void 0?A.find(S=>S.marker?.fileId===u.fileId&&S.marker.line===u.line&&S.marker.column===u.column):A.find(S=>S.element===c)}function et(c){let u=j.resolve(c),S=$n(u.source),B=fe(c,S);if(B!==void 0){T=B.id,E=!1,D({type:"SELECT"}),n.hideHighlight(),Q(!0),ne(),n.focusTargetInstruction(B.id),n.announce(n.messages().announcements.duplicate);return}if(A.length>=e.maxTargets){E=!1,D({type:"SELECT"}),n.hideHighlight(),Q(!0),n.announce(n.messages().announcements.selectionLimit(e.maxTargets));return}let h=A.length===0;h&&(O=o.document.activeElement instanceof HTMLElement?o.document.activeElement:void 0,R="",z.beginSelection(),N=!0,Re?.beginSelection()),W+=1;let H={id:`target-${String(W)}`,element:c,resolution:u,marker:S,page:Vn(o.document,o.window),code:void 0,elementContext:void 0,styles:void 0,instruction:"",apiStatus:S===void 0?"not-required":"loading",collectionStatus:"loading",dataFlowReport:void 0,dataFlowStatus:"idle"};A.push(H),h||Re?.selectionChanged(),T=H.id,E=!1;let q=m;D({type:"SELECT"}),n.hideHighlight(),_?.observe(c),Q(!0),U=!0,n.focusTargetInstruction(H.id),Qe(H,q),S!==void 0?bt(H,q):n.announce(u.source.confidence==="probable"?n.messages().announcements.sourceProbable:n.messages().announcements.sourceMissing),ne()}function tt(){if(V=void 0,y.status!=="inspecting"||$===void 0)return;let c=Dn(o.document,o.window,$.x,$.y);if(D({type:"HOVER"}),c===void 0){n.hideHighlight();return}De(c)}function Ee(c){y.status==="inspecting"&&($={x:c.clientX,y:c.clientY},V??=o.window.requestAnimationFrame(tt))}function _e(c){if(y.status!=="inspecting"||Ko(c.target))return;c.preventDefault(),c.stopPropagation(),c.stopImmediatePropagation();let u=Dn(o.document,o.window,c.clientX,c.clientY);if(u===void 0){n.announce(n.messages().announcements.noSelectable);return}et(u)}function We(c){if(c.key==="Escape"&&y.status!=="idle"){c.preventDefault(),y.status==="inspecting"&&E?pt():y.status==="inspecting"||y.status==="selected"?at():(D({type:"BACK"}),n.focusTargetInstruction(T));return}jo(c.target)||!Vo(c,e.shortcut,o.window.navigator.userAgent)||(c.preventDefault(),Fe())}function xt(c){if(y.status!=="selected"&&y.status!=="inspecting")return;let u=A.findIndex(h=>h.id===c);if(u<0)return;let[S]=A.splice(u,1);if(S===void 0)return;let B=F.get(S.id);if(B!==void 0&&(o.window.clearTimeout(B),F.delete(S.id)),S.element!==void 0&&_?.unobserve(S.element),T===S.id&&(T=A.at(-1)?.id),A.length===0){E=!0,y.status==="selected"&&D({type:"RESELECT"}),n.hideSelectionTemporarily(),n.hideSelectionHighlights(),M=void 0,G="idle",Se(),x.clear(),Re?.selectionChanged(),n.announce(n.messages().announcements.allTargetsRemoved);return}Q(),Re?.selectionChanged(),ne(),de(),n.announce(n.messages().announcements.targetRemoved)}function qe(){if(y.status==="idle"||A.length===0)return;let c=A.filter(u=>u.element!==void 0&&!u.element.isConnected);if(c.length>0){for(let u of c)u.element!==void 0&&(_?.unobserve(u.element),u.element=void 0);Q(),de(),n.announce(n.messages().announcements.detachedTargetPreserved);return}Je()}function Ge(c){let u=c===void 0?le():A.find(H=>H.id===c);if(y.status!=="selected"||u?.marker===void 0)return;T!==u.id&&(T=u.id,Q());let S=u.marker,B=m,h=++v;D({type:"OPEN_EDITOR"}),n.renderEditorStatus("opening"),i.openEditor({fileId:S.fileId,line:S.line,column:S.column}).then(()=>{s&&y.status==="selected"&&B===m&&h===v&&T===u.id&&A.includes(u)&&n.renderEditorStatus("success")}).catch(()=>{s&&y.status==="selected"&&B===m&&h===v&&T===u.id&&A.includes(u)&&n.renderEditorStatus("error")})}function ut(c){if(y.status!=="selected"||!(c.target instanceof HTMLTextAreaElement))return;let u=c.target.dataset.targetInstructionId,S=A.find(B=>B.id===u);S!==void 0&&(S.instruction=c.target.value,n.updateTargetInstruction(S.id,S.instruction),n.setPreviewEnabled(ve()),de())}function I(){Ge()}function it(c){e.ai.enabled&&y.status==="selected"&&c.key==="Enter"&&(c.metaKey||c.ctrlKey)&&(c.preventDefault(),z.run())}function X(){if(y.status!=="selected")return;let c=pe();if(c===void 0){n.announce(n.messages().announcements.completeInstructions);return}R=d.compose(c),D({type:"PREVIEW"}),n.showPreview(R),n.focusPrompt()}function J(){if(y.status!=="previewing"||R.length===0)return;if(a===void 0){D({type:"COPY_FAILURE"}),n.focusPrompt(),n.announce(n.messages().announcements.clipboardUnavailable);return}let c=m;a.writeText(R).then(()=>{s&&c===m&&y.status==="previewing"&&(D({type:"COPY_SUCCESS"}),n.focusTargetInstruction(T),n.announce(n.messages().announcements.promptCopied))}).catch(()=>{s&&c===m&&y.status==="previewing"&&(D({type:"COPY_FAILURE"}),n.focusPrompt(),n.announce(n.messages().announcements.copyFailed))})}function Me(){y.status==="previewing"&&(D({type:"BACK"}),n.focusTargetInstruction(T))}function gt(){if(!(!s||A.length===0)&&(Q(),y.status==="previewing")){let c=pe();c!==void 0&&(R=d.compose(c),n.showPreview(R))}}function He(c){let u=c.target;if(!(u instanceof Element))return;let S=u.closest("button[data-remove-target-id]");if(S?.dataset.removeTargetId!==void 0){xt(S.dataset.removeTargetId);return}let B=u.closest("button[data-open-target-id]");if(B?.dataset.openTargetId!==void 0){Ge(B.dataset.openTargetId);return}let H=u.closest("button[data-activate-target-id]")?.dataset.activateTargetId;y.status!=="selected"||H===void 0||!A.some(q=>q.id===H)||(T=H,Q(),ne(),n.focusTargetInstruction(H))}function ie(){oe()}function Le(){ne()}function $e(){s||(s=!0,Ve?.mount(),Re?.mount(),n.renderStatus(y.status),o.document.addEventListener("pointermove",Ee,!0),o.document.addEventListener("click",_e,!0),o.document.addEventListener("keydown",We,!0),o.window.addEventListener("scroll",qe,!0),o.window.addEventListener("resize",qe),n.triggerButton.addEventListener("click",Fe),n.addTargetButton.addEventListener("click",Ce),n.reselectButton.addEventListener("click",ie),n.targetList.addEventListener("click",He),n.targetList.addEventListener("input",ut),n.targetList.addEventListener("keydown",it),n.openEditorButton.addEventListener("click",I),n.dataFlowRefreshButton.addEventListener("click",Le),n.previewButton.addEventListener("click",X),n.copyButton.addEventListener("click",J),n.backButton.addEventListener("click",Me),n.closeButton.addEventListener("click",at),n.agentProviderSelect.addEventListener("change",z.providerOrModelChanged),n.agentModelSelect.addEventListener("change",z.providerOrModelChanged),n.agentModeSelect.addEventListener("change",z.providerOrModelChanged),n.agentConsentCheckbox.addEventListener("change",z.consentChanged),n.agentTestButton.addEventListener("click",z.testCapability),n.agentRunButton.addEventListener("click",z.run),n.agentCancelButton.addEventListener("click",z.cancel),n.agentApplyButton.addEventListener("click",z.apply),n.agentRevertButton.addEventListener("click",z.revert),n.agentResetButton.addEventListener("click",z.reset),Oe=n.subscribeLocale(gt),o.resizeObserver!==void 0&&(_=new o.resizeObserver(qe)),o.mutationObserver!==void 0&&(ue=new o.mutationObserver(qe),ue.observe(o.document.documentElement,{childList:!0,subtree:!0})),U&&A.length>0&&(D({type:"RESTORE"}),z.beginSelection(),Re?.beginSelection(),N=!0,Q(!0)),e.debug&&console.info(`[spotpatch:runtime] Mounted. Shortcut: ${e.shortcut}.`))}function st(){if(!s){Oe?.(),Oe=void 0,n.dispose(),i.cancelPending(),i.dispose(),z.disposeSelection(),Ve?.dispose(),Re?.dispose(),j.dispose();return}s=!1,Oe?.(),Oe=void 0,o.document.removeEventListener("pointermove",Ee,!0),o.document.removeEventListener("click",_e,!0),o.document.removeEventListener("keydown",We,!0),o.window.removeEventListener("scroll",qe,!0),o.window.removeEventListener("resize",qe),n.triggerButton.removeEventListener("click",Fe),n.addTargetButton.removeEventListener("click",Ce),n.reselectButton.removeEventListener("click",ie),n.targetList.removeEventListener("click",He),n.targetList.removeEventListener("input",ut),n.targetList.removeEventListener("keydown",it),n.openEditorButton.removeEventListener("click",I),n.dataFlowRefreshButton.removeEventListener("click",Le),n.previewButton.removeEventListener("click",X),n.copyButton.removeEventListener("click",J),n.backButton.removeEventListener("click",Me),n.closeButton.removeEventListener("click",at),n.agentProviderSelect.removeEventListener("change",z.providerOrModelChanged),n.agentModelSelect.removeEventListener("change",z.providerOrModelChanged),n.agentModeSelect.removeEventListener("change",z.providerOrModelChanged),n.agentConsentCheckbox.removeEventListener("change",z.consentChanged),n.agentTestButton.removeEventListener("click",z.testCapability),n.agentRunButton.removeEventListener("click",z.run),n.agentCancelButton.removeEventListener("click",z.cancel),n.agentApplyButton.removeEventListener("click",z.apply),n.agentRevertButton.removeEventListener("click",z.revert),n.agentResetButton.removeEventListener("click",z.reset),V!==void 0&&(o.window.cancelAnimationFrame(V),V=void 0),Ye(),de(),_?.disconnect(),ue?.disconnect(),_=void 0,ue=void 0,A=[],T=void 0,R="",$=void 0,O=void 0,i.cancelPending(),i.dispose(),z.disposeSelection(),Ve?.dispose(),Re?.dispose(),j.dispose(),n.dispose(),y=Mn}return Object.freeze({mount:$e,dispose:st,getState:()=>y})}var Pr="__spotpatchRuntime__";function qn(e){let t=globalThis;t[Pr]?.dispose();let o=Ir(e);return t[Pr]=o,o.mount(),o}qn({...__SPOTPATCH_RUNTIME_CONFIG__,apiBase:se});
974
+ `)}function qe(){let c=S.flatMap(g=>{if(!g.element?.isConnected)return[];let l=hn(g.element,o.window);return l===void 0?[]:[{id:g.id,label:Ur(g.element),rect:l,active:g.id===T}]});c.length===0?n.hideSelectionHighlights():n.showSelectionHighlights(c)}function G(c=!1){if(S.length===0)return;n.renderTargets(S.map(L=>({id:L.id,...L.elementContext?.instance===void 0?{}:{instanceState:L.elementContext.instance.state},label:[L.resolution.react.componentName??L.elementContext?.tagName??"Element",(L.elementContext?.instance?.label??L.elementContext?.textPreview)?.slice(0,80)].filter(Boolean).join(" · "),source:Rs(L,n.messages().context.sourceUnavailable),canOpenEditor:L.marker!==void 0,status:Ts(L),active:L.id===T,instruction:L.instruction})),e.maxTargets),qe();let g=ge(),l=ct(),C=g?.marker!==void 0;c?n.showSelection(l,C,He()):n.updateSelection(l,C,He())}function he(){if(Xe(ue?.takeRecords()??[]),!He())return;let c=S.map(g=>{if(g.elementContext===void 0||g.styles===void 0)throw new Error("SpotPatch attempted to compose an incomplete target.");let l=[...g.apiStatus==="failed"?["Source context could not be loaded."]:[],...g.collectionStatus==="failed"?["Part of the browser context could not be collected."]:[]];return{instruction:g.instruction.trim(),page:g.page,source:g.resolution.source,react:g.resolution.react,element:g.elementContext,styles:g.styles,...g.code===void 0?{}:{code:g.code},warnings:l}});return Eo({id:p(),locale:n.locale(),createdAt:x(),page:Yn(o.document,o.window),targets:c})}function dt(c){n.showHighlight(er(c,o.window),Ur(c))}function lt(){I?.isConnected===!0&&I.focus({preventScroll:!0}),I=void 0}function et(){for(let c of Y.values())o.window.clearTimeout(c);Y.clear()}function It(){A+=1,i.cancelPending(),z.disposeSelection(),ut?.cancelPending(),me?.cancelPending(),et(),re?.disconnect(),S=[],T=void 0,U+=1,W=void 0,b="idle",D=!1,y=!1,w=!1,R="",n.hideSelection(),n.hideSelectionHighlights(),E.clear(),lt()}function We(){r.status==="inspecting"?B({type:"CANCEL"}):r.status==="selected"?B({type:"CLOSE"}):r.status==="previewing"&&(B({type:"BACK"}),B({type:"CLOSE"})),D=!1,fe(),n.hideSelection(),n.hideSelectionHighlights(),lt(),n.hideHighlight()}function Ge(){if(r.status!=="inspecting"||!w||S.length===0){We();return}w=!1,B({type:"SELECT"}),n.hideHighlight(),G(!0),n.focusTargetInstruction(T),n.announce(n.messages().announcements.addCancelled)}function ee(){if(r.status==="inspecting"&&w){Ge();return}if(r.status!=="idle"){We();return}if(S.length>0){D=!0,B({type:"RESTORE"}),y||(z.beginSelection(),y=!0),G(!0),Fe(),n.focusTargetInstruction(T),fe();return}B({type:"ACTIVATE"}),n.hideSelection(),n.announce(n.messages().announcements.selectionEnabled)}function Ce(c=n.messages().announcements.chooseAnother){r.status==="selected"&&(B({type:"RESELECT"}),It(),n.hideHighlight(),n.announce(c))}function Ke(){if(r.status==="selected"){if(S.length>=e.maxTargets){n.announce(n.messages().announcements.selectionLimit(e.maxTargets));return}w=!0,B({type:"RESELECT"}),n.hideSelectionTemporarily(),n.hideHighlight(),n.announce(n.messages().announcements.chooseAdditional(S.length,e.maxTargets))}}function pt(){A+=1,et(),re?.disconnect();for(let c of S)c.element=void 0,c.instanceScope=void 0,c.elementContext!==void 0&&(c.elementContext=fn(c.elementContext,"detached"));n.hideHighlight(),n.hideSelectionHighlights(),G(),E.clear(),n.announce(n.messages().announcements.appliedTargetsDetached)}let z=$r({ai:e.ai,api:i,getAnnotation:he,onApplied:pt,onReselectRequired(){Ce(n.messages().announcements.reselectAfterChange)},view:n}),ut=e.externalAgent.enabled&&n.externalHandoffPanel!==void 0?bn()?.createWorkflow(o.window.fetch.bind(o.window),n.externalHandoffPanel,he,e.sessionToken,o.window):void 0,me=e.contextualAsk.enabled&&n.contextualAskPanel!==void 0?Sn()?.createWorkflow({...s===void 0?{}:{clipboard:s},createId:p,fetch:o.window.fetch.bind(o.window),getSelection:Qe,onBusyChange(c){n.setAgentEditingEnabled(!c)},onConvert(){n.focusTargetInstruction(T)},async onOpenSource(c){await i.openEditor({fileId:c.fileId,line:c.startLine,column:1})},panel:n.contextualAskPanel,sessionToken:e.sessionToken}):void 0;async function tt(c,g){let l=c.marker;if(l!==void 0)try{let C=await i.sourceContext({fileId:l.fileId,line:l.line,column:l.column,maxLines:e.budget.maxCodeLines});_e(c,g)&&(c.code=C,c.apiStatus="connected",fe(),G(),n.announce(n.messages().announcements.sourceLoaded))}catch(C){_e(c,g)&&(c.code=void 0,c.apiStatus="failed",fe(),G(),n.announce(n.messages().announcements.sourceFailed),e.debug&&!(C instanceof DOMException&&C.name==="AbortError")&&console.warn("[spotpatch:runtime] Source context request failed."))}}function ye(c,g){let l=c.element;if(l===void 0)return;let C=o.window.setTimeout(()=>{if(Y.delete(c.id),!_e(c,g))return;Xe(ue?.takeRecords()??[]);let L=c.elementContext===void 0;try{if(c.element!==l)throw new Error("Selected instance changed before style collection.");c.styles=Uo({document:o.document,element:l,maxCharacters:e.budget.cssCharacters})}catch{c.styles=Cs,L=!0}c.collectionStatus=L?"failed":"ready",fe(),G(),n.announce(L?n.messages().announcements.contextWarning:n.messages().announcements.contextCollected),e.debug&&c.styles.warnings.length>0&&console.warn(`[spotpatch:runtime] CSS collection completed with ${String(c.styles.warnings.length)} warning(s).`)},0);Y.set(c.id,C)}function nt(c){Xe(ue?.takeRecords()??[]);let g=O.resolve(c),l=qn(g.source),C=S.find(at=>at.element===c);if(C!==void 0){T=C.id,w=!1,B({type:"SELECT"}),n.hideHighlight(),G(!0),Fe(),n.focusTargetInstruction(C.id),n.announce(n.messages().announcements.duplicate);return}if(S.length>=e.maxTargets){w=!1,B({type:"SELECT"}),n.hideHighlight(),G(!0),n.announce(n.messages().announcements.selectionLimit(e.maxTargets));return}let L=S.length===0;L&&(I=o.document.activeElement instanceof HTMLElement?o.document.activeElement:void 0,R="",z.beginSelection(),y=!0,me?.beginSelection()),q+=1;let P={id:`target-${String(q)}`,element:c,instanceScope:void 0,resolution:g,marker:l,page:Yn(o.document,o.window),code:void 0,elementContext:void 0,styles:void 0,instruction:"",apiStatus:l===void 0?"not-required":"loading",collectionStatus:"loading",dataFlowReport:void 0,dataFlowStatus:"idle"};try{let at=Ko(c,`${j}_${P.id}`,e.budget.domCharacters);P.elementContext=at.context,P.instanceScope=at.scope}catch{P.collectionStatus="failed"}S.push(P),L||me?.selectionChanged(),T=P.id,w=!1;let le=A;B({type:"SELECT"}),n.hideHighlight(),re?.observe(c),G(!0),D=!0,n.focusTargetInstruction(P.id),ye(P,le),l!==void 0?tt(P,le):n.announce(g.source.confidence==="probable"?n.messages().announcements.sourceProbable:n.messages().announcements.sourceMissing),Fe()}function ot(){if($=void 0,r.status!=="inspecting"||V===void 0)return;let c=Un(o.document,o.window,V.x,V.y);if(B({type:"HOVER"}),c===void 0){n.hideHighlight();return}dt(c)}function Ae(c){r.status==="inspecting"&&(V={x:c.clientX,y:c.clientY},$??=o.window.requestAnimationFrame(ot))}function Le(c){if(r.status!=="inspecting"||nr(c.target))return;c.preventDefault(),c.stopPropagation(),c.stopImmediatePropagation();let g=Un(o.document,o.window,c.clientX,c.clientY);if(g===void 0){n.announce(n.messages().announcements.noSelectable);return}nt(g)}function Je(c){if(c.key==="Escape"&&r.status!=="idle"){c.preventDefault(),r.status==="inspecting"&&w?Ge():r.status==="inspecting"||r.status==="selected"?We():(B({type:"BACK"}),n.focusTargetInstruction(T));return}Yo(c.target)||!Zo(c,e.shortcut,o.window.navigator.userAgent)||(c.preventDefault(),ee())}function vt(c){if(r.status!=="selected"&&r.status!=="inspecting")return;let g=S.findIndex(L=>L.id===c);if(g<0)return;let[l]=S.splice(g,1);if(l===void 0)return;let C=Y.get(l.id);if(C!==void 0&&(o.window.clearTimeout(C),Y.delete(l.id)),l.element!==void 0&&re?.unobserve(l.element),T===l.id&&(T=S.at(-1)?.id),S.length===0){w=!0,r.status==="selected"&&B({type:"RESELECT"}),n.hideSelectionTemporarily(),n.hideSelectionHighlights(),W=void 0,b="idle",se(),E.clear(),me?.selectionChanged(),n.announce(n.messages().announcements.allTargetsRemoved);return}G(),me?.selectionChanged(),Fe(),fe(),n.announce(n.messages().announcements.targetRemoved)}function Xe(c){let g=!1;for(let l of S){if(l.element===void 0)continue;let C=l.page.url!==o.window.location.href?"changed":Jo(l.element,l.instanceScope??l.element,c);C!==void 0&&(re?.unobserve(l.element),l.element=void 0,l.instanceScope=void 0,l.elementContext!==void 0&&(l.elementContext=fn(l.elementContext,C)),g=!0)}g&&(G(),fe(),me?.selectionChanged())}function pe(){r.status==="idle"||S.length===0||(Xe(ue?.takeRecords()??[]),qe())}function ht(c){let g=c===void 0?ge():S.find(P=>P.id===c);if(r.status!=="selected"||g?.marker===void 0)return;T!==g.id&&(T=g.id,G());let l=g.marker,C=A,L=++_;B({type:"OPEN_EDITOR"}),n.renderEditorStatus("opening"),i.openEditor({fileId:l.fileId,line:l.line,column:l.column}).then(()=>{F&&r.status==="selected"&&C===A&&L===_&&T===g.id&&S.includes(g)&&n.renderEditorStatus("success")}).catch(()=>{F&&r.status==="selected"&&C===A&&L===_&&T===g.id&&S.includes(g)&&n.renderEditorStatus("error")})}function N(c){if(r.status!=="selected"||!(c.target instanceof HTMLTextAreaElement))return;let g=c.target.dataset.targetInstructionId,l=S.find(C=>C.id===g);l!==void 0&&(l.instruction=c.target.value,n.updateTargetInstruction(l.id,l.instruction),n.setPreviewEnabled(He()),fe())}function gt(){ht()}function Z(c){e.ai.enabled&&r.status==="selected"&&c.key==="Enter"&&(c.metaKey||c.ctrlKey)&&(c.preventDefault(),z.run())}function X(c){try{return d.compose(c)}catch(g){if(!(g instanceof RangeError))throw g;n.announce(n.messages().announcements.instanceBudgetExceeded);return}}function $e(){if(r.status!=="selected")return;let c=he();if(c===void 0){n.announce(n.messages().announcements.completeInstructions);return}let g=X(c);g!==void 0&&(R=g,B({type:"PREVIEW"}),n.showPreview(R),n.focusPrompt())}function ft(){if(r.status!=="previewing"||R.length===0)return;let c=he();if(c===void 0)return;let g=X(c);if(g===void 0)return;if(R=g,n.showPreview(R),s===void 0){B({type:"COPY_FAILURE"}),n.focusPrompt(),n.announce(n.messages().announcements.clipboardUnavailable);return}let l=A;s.writeText(R).then(()=>{F&&l===A&&r.status==="previewing"&&(B({type:"COPY_SUCCESS"}),n.focusTargetInstruction(T),n.announce(n.messages().announcements.promptCopied))}).catch(()=>{F&&l===A&&r.status==="previewing"&&(B({type:"COPY_FAILURE"}),n.focusPrompt(),n.announce(n.messages().announcements.copyFailed))})}function Be(){r.status==="previewing"&&(B({type:"BACK"}),n.focusTargetInstruction(T))}function ce(){if(!(!F||S.length===0)&&(G(),r.status==="previewing")){let c=he();if(c!==void 0){let g=X(c);g!==void 0&&(R=g,n.showPreview(R))}}}function Ie(c){let g=c.target;if(!(g instanceof Element))return;let l=g.closest("button[data-remove-target-id]");if(l?.dataset.removeTargetId!==void 0){vt(l.dataset.removeTargetId);return}let C=g.closest("button[data-open-target-id]");if(C?.dataset.openTargetId!==void 0){ht(C.dataset.openTargetId);return}let P=g.closest("button[data-activate-target-id]")?.dataset.activateTargetId;r.status!=="selected"||P===void 0||!S.some(le=>le.id===P)||(T=P,G(),Fe(),n.focusTargetInstruction(P))}function ke(){Ce()}function rt(){Fe()}function Ye(){F||(F=!0,ut?.mount(),me?.mount(),n.renderStatus(r.status),o.document.addEventListener("pointermove",Ae,!0),o.document.addEventListener("click",Le,!0),o.document.addEventListener("keydown",Je,!0),o.window.addEventListener("scroll",pe,!0),o.window.addEventListener("resize",pe),o.window.addEventListener("popstate",pe),o.window.addEventListener("hashchange",pe),n.triggerButton.addEventListener("click",ee),n.addTargetButton.addEventListener("click",Ke),n.reselectButton.addEventListener("click",ke),n.targetList.addEventListener("click",Ie),n.targetList.addEventListener("input",N),n.targetList.addEventListener("keydown",Z),n.openEditorButton.addEventListener("click",gt),n.dataFlowRefreshButton.addEventListener("click",rt),n.previewButton.addEventListener("click",$e),n.copyButton.addEventListener("click",ft),n.backButton.addEventListener("click",Be),n.closeButton.addEventListener("click",We),n.agentProviderSelect.addEventListener("change",z.providerOrModelChanged),n.agentModelSelect.addEventListener("change",z.providerOrModelChanged),n.agentModeSelect.addEventListener("change",z.providerOrModelChanged),n.agentConsentCheckbox.addEventListener("change",z.consentChanged),n.agentTestButton.addEventListener("click",z.testCapability),n.agentRunButton.addEventListener("click",z.run),n.agentCancelButton.addEventListener("click",z.cancel),n.agentApplyButton.addEventListener("click",z.apply),n.agentRevertButton.addEventListener("click",z.revert),n.agentResetButton.addEventListener("click",z.reset),H=n.subscribeLocale(ce),o.resizeObserver!==void 0&&(re=new o.resizeObserver(pe)),o.mutationObserver!==void 0&&(ue=new o.mutationObserver(c=>{Xe(c),qe()}),ue.observe(o.document.documentElement,{childList:!0,subtree:!0,attributes:!0,characterData:!0})),D&&S.length>0&&(B({type:"RESTORE"}),z.beginSelection(),me?.beginSelection(),y=!0,G(!0)),e.debug&&console.info(`[spotpatch:runtime] Mounted. Shortcut: ${e.shortcut}.`))}function Ue(){if(!F){H?.(),H=void 0,n.dispose(),i.cancelPending(),i.dispose(),z.disposeSelection(),ut?.dispose(),me?.dispose(),O.dispose();return}F=!1,H?.(),H=void 0,o.document.removeEventListener("pointermove",Ae,!0),o.document.removeEventListener("click",Le,!0),o.document.removeEventListener("keydown",Je,!0),o.window.removeEventListener("scroll",pe,!0),o.window.removeEventListener("resize",pe),o.window.removeEventListener("popstate",pe),o.window.removeEventListener("hashchange",pe),n.triggerButton.removeEventListener("click",ee),n.addTargetButton.removeEventListener("click",Ke),n.reselectButton.removeEventListener("click",ke),n.targetList.removeEventListener("click",Ie),n.targetList.removeEventListener("input",N),n.targetList.removeEventListener("keydown",Z),n.openEditorButton.removeEventListener("click",gt),n.dataFlowRefreshButton.removeEventListener("click",rt),n.previewButton.removeEventListener("click",$e),n.copyButton.removeEventListener("click",ft),n.backButton.removeEventListener("click",Be),n.closeButton.removeEventListener("click",We),n.agentProviderSelect.removeEventListener("change",z.providerOrModelChanged),n.agentModelSelect.removeEventListener("change",z.providerOrModelChanged),n.agentModeSelect.removeEventListener("change",z.providerOrModelChanged),n.agentConsentCheckbox.removeEventListener("change",z.consentChanged),n.agentTestButton.removeEventListener("click",z.testCapability),n.agentRunButton.removeEventListener("click",z.run),n.agentCancelButton.removeEventListener("click",z.cancel),n.agentApplyButton.removeEventListener("click",z.apply),n.agentRevertButton.removeEventListener("click",z.revert),n.agentResetButton.removeEventListener("click",z.reset),$!==void 0&&(o.window.cancelAnimationFrame($),$=void 0),et(),fe(),re?.disconnect(),ue?.disconnect(),re=void 0,ue=void 0,S=[],T=void 0,R="",V=void 0,I=void 0,i.cancelPending(),i.dispose(),z.disposeSelection(),ut?.dispose(),me?.dispose(),O.dispose(),n.dispose(),r=jn}return Object.freeze({mount:Ye,dispose:Ue,getState:()=>r})}var jr="__spotpatchRuntime__";function Zn(e){let t=globalThis;t[jr]?.dispose();let o=zr(e);return t[jr]=o,o.mount(),o}Zn({...__SPOTPATCH_RUNTIME_CONFIG__,apiBase:ae});