@axhub/acp 0.1.2-beta.2 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/fallback-build-manifest.json +3 -3
  4. package/.next/server/app/_global-error.html +1 -1
  5. package/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/server/app/_not-found.html +1 -1
  12. package/.next/server/app/_not-found.rsc +1 -1
  13. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  14. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/.next/server/chunks/[root-of-the-server]__0c.r6ru._.js +2 -2
  20. package/.next/server/middleware-build-manifest.js +3 -3
  21. package/.next/server/pages/404.html +1 -1
  22. package/.next/server/pages/500.html +1 -1
  23. package/dist/lib/acp2aisdk/provider-command.mjs +15 -4
  24. package/package.json +1 -1
  25. /package/.next/static/{afQGa38bHoajAY5kxCATW → yD8uIMHTXUL6P2YTB5w5x}/_buildManifest.js +0 -0
  26. /package/.next/static/{afQGa38bHoajAY5kxCATW → yD8uIMHTXUL6P2YTB5w5x}/_clientMiddlewareManifest.js +0 -0
  27. /package/.next/static/{afQGa38bHoajAY5kxCATW → yD8uIMHTXUL6P2YTB5w5x}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  module.exports=[44376,(e,t,n)=>{t.exports=e.x("node:module",()=>require("node:module"))},81111,(e,t,n)=>{t.exports=e.x("node:stream",()=>require("node:stream"))},61095,(e,t,n)=>{t.exports=e.x("node:net",()=>require("node:net"))},10590,1594,5238,34112,e=>{"use strict";var t,n,i=e.i(62789);let o="__aui_modelContent",r=({output:e})=>{let{modelContent:t}=null!=e&&"object"==typeof e&&o in e&&Array.isArray(e[o])?{result:e.value,modelContent:e[o]}:{result:e};return void 0!==t?{type:"content",value:t.map(e=>"text"===e.type?{type:"text",text:e.text}:e.mediaType.startsWith("image/")?{type:"image-data",data:e.data,mediaType:e.mediaType}:{type:"file-data",data:e.data,mediaType:e.mediaType,...void 0!==e.filename&&{filename:e.filename}})}:"string"==typeof e?{type:"text",value:e}:{type:"json",value:e??null}},s=e=>Object.fromEntries(Object.entries(e).map(([e,t])=>[e,{...void 0!==t.description&&{description:t.description},inputSchema:(0,i.jsonSchema)(t.parameters),toModelOutput:r}]));var a=e.i(12075),l=e.i(61735);function u(e){return!!(e&&"object"==typeof e&&!Array.isArray(e))}function c(e){return"string"==typeof e?e.trim():""}function d(e){return Array.isArray(e)?e.map(c).filter(Boolean):[]}function p(e){return{action:"url"===e.mode?"cancel":"decline",_meta:{reason:"acp-ui-elicitations-require-explicit-ui"}}}function m(e){return Array.isArray(e.enum)?d(e.enum):(Array.isArray(e.oneOf)?e.oneOf:Array.isArray(e.anyOf)?e.anyOf:[]).map(e=>u(e)?c(e.const??e.value??e.title):c(e)).filter(Boolean)}let g="acp.elicitation.option_list",h=`tool-${g}`,z={type:"object",additionalProperties:!1,required:["toolCallId","message","fieldName","fieldTitle","selectionMode","options","minSelections","required"],properties:{toolCallId:{type:"string"},message:{type:"string"},fieldName:{type:"string"},fieldTitle:{type:"string"},fieldDescription:{type:"string"},selectionMode:{type:"string",enum:["single","multi"]},options:{type:"array",items:{type:"object",additionalProperties:!1,required:["id","label"],properties:{id:{type:"string"},label:{type:"string"},description:{type:"string"},disabled:{type:"boolean"}}}},defaultValue:{anyOf:[{type:"string"},{type:"array",items:{type:"string"}},{type:"null"}]},minSelections:{type:"number"},maxSelections:{type:"number"},required:{type:"boolean"}}};function f(e){return!!(e&&"object"==typeof e&&!Array.isArray(e))}function b(e){return"string"==typeof e?e.trim():""}function y(e){return Array.isArray(e)?e.map(b).filter(Boolean):[]}function w(e){if("number"==typeof e&&Number.isInteger(e)&&!(e<0))return e}function v(e){let t=y(e.enum);return t.length>0?t.map(e=>({id:e,label:e})):(Array.isArray(e.oneOf)?e.oneOf:Array.isArray(e.anyOf)?e.anyOf:[]).flatMap(e=>{if(!f(e))return[];let t=b(e.const??e.value??e.id);return t?[{id:t,label:b(e.title??e.label)||t,...b(e.description)?{description:b(e.description)}:{}}]:[]})}let j="\n[agent stderr]\n",_="[agent stderr]\n",k=/\bWARN\s+codex_acp::thread:\s+Received event for unknown submission ID:\s*(?:[0-9a-f-]+)?\s*McpStartup(?:Update|Complete)\(/;function I(e){return function(e){let t=e.replace(/\r\n/g,"\n"),n=t,i=null,o=t.indexOf(j);if(o>=0?(n=t.slice(0,o),i=t.slice(o+j.length)):t.startsWith(_)&&(n="",i=t.slice(_.length)),null===i)return t;let r=i.split("\n").filter(e=>!k.test(e)).join("\n").trim(),s=n.trim();return r?`${s}
2
2
  [agent stderr]
3
- ${r}`.trim():s||"Internal error"}(e instanceof Error?e.message:String(e))}e.s(["acpErrorToMessage",0,I],1594);var x=e.i(59639);function S(e,t){let n=x.default.env[e];if(!n)return t;let i=Number.parseInt(n,10);return Number.isFinite(i)&&i>0?i:t}function C(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if("user"===n.role)return[n]}return[]}function A(e){return e.parts.filter(e=>"text"===e.type).map(e=>e.text.trim()).filter(Boolean).join("\n\n")}function T(e){let t=A(e);if(!t)return null;let n="assistant"===e.role?"Assistant":"system"===e.role?"System":"User";return`${n}: ${t}`}let R=["model","mode","thought_level"];function P(e){return"string"==typeof e?e.trim():""}function M(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=P(e.name??e.command??e.id).replace(/^\/+/,"");return t?{name:t,description:P(e.description),input:e.input,source:"acp"}:null}function E(e){return(Array.isArray(e)?e:[]).map(M).filter(e=>!!e)}function O(e,t){if(!e)return t??null;if(!t)return e;let n={...e.capabilities??{}};for(let e of R){let i=function(e,t){var n;let i;return e?t?{...e,...t,options:t.options.length?(n=t.options,i=new Set,n.filter(e=>!(!e.value||i.has(e.value))&&(i.add(e.value),!0))):e.options,currentValue:void 0!==t.currentValue?t.currentValue:e.currentValue}:e:t??null}(n[e],t.capabilities?.[e]);i&&(n[e]=i)}return{...e,...t,capabilities:n,metadata:{...e.metadata??{availableCommands:[]},...t.metadata??{availableCommands:[]},tokenUsage:t.metadata?.tokenUsage??e.metadata?.tokenUsage??null,availableCommands:function(e,t){let n=[],i=new Set;for(let o of[...E(t),...E(e)]){let e=o.name.replace(/^\/+/,"").toLowerCase();!e||i.has(e)||(i.add(e),n.push(o))}return n}(e.metadata?.availableCommands,t.metadata?.availableCommands)}}}e.s(["mergeAcpCapabilitySnapshots",0,O],5238);var N=e.i(14691);let q={claude:{provider:"claude",sessionId:null,source:"generated-default",updatedAt:"2026-05-27T10:18:02.000Z",ttl:18e5,agentVersion:null,capabilities:{model:{key:"model",currentValue:"sonnet",configId:"model",configKey:"model",source:"fallback",options:[{value:"sonnet",label:"Sonnet",description:"Claude Sonnet 默认模型。",order:0},{value:"opus",label:"Opus",description:"Claude Opus 高能力模型。",order:1},{value:"haiku",label:"Haiku",description:"Claude Haiku 快速模型。",order:2},{value:"opusplan",label:"Opus Plan",description:"Claude Opus 规划模式。",order:3},{value:"sonnet[1m]",label:"Sonnet [1M]",description:"Claude Sonnet 长上下文模型。",order:4}]},mode:{key:"mode",currentValue:N.ACP_PROVIDER_DEFAULT_MODE_IDS.claude,configId:"mode",configKey:"mode",source:"fallback",options:[{value:"default",label:"默认",description:"使用供应商默认权限策略。",order:0},{value:"acceptEdits",label:"接受编辑",description:"允许编辑类操作更顺畅地继续。",order:1},{value:"bypassPermissions",label:"绕过权限",description:"尽量减少权限确认,适合受信任工作区。",order:2},{value:"plan",label:"计划",description:"先规划再执行,适合复杂任务。",order:3}]},thought_level:{key:"thought_level",currentValue:"none",configId:"thought_level",configKey:"thought_level",source:"fallback",options:[{value:"none",label:"无",description:"不额外请求思考深度。",order:0},{value:"think",label:"Think",description:"轻量思考。",order:1},{value:"think-hard",label:"Think Hard",description:"更深入思考。",order:2},{value:"think-harder",label:"Think Harder",description:"高强度思考。",order:3},{value:"ultrathink",label:"Ultrathink",description:"最高强度思考。",order:4}]}},metadata:{availableCommands:[],tokenUsage:null,rawSession:null}},codex:{provider:"codex",sessionId:null,source:"generated-default",updatedAt:"2026-05-26T06:24:12.704Z",ttl:18e5,agentVersion:null,capabilities:{model:{key:"model",currentValue:"gpt-5.5",configId:"model",configKey:"model",source:"fallback",options:[{value:"gpt-5.5",label:"GPT-5.5",description:"适合复杂编码、研究和真实工作场景的前沿模型。",order:0},{value:"gpt-5.4",label:"gpt-5.4",description:"适合日常编码的强力模型。",order:1},{value:"gpt-5.4-mini",label:"GPT-5.4-Mini",description:"适合简单编码任务的小型、快速且高性价比模型。",order:2},{value:"gpt-5.3-codex",label:"gpt-5.3-codex",description:"针对编码优化的模型。",order:3},{value:"gpt-5.2",label:"gpt-5.2",description:"针对专业工作和长时间运行的 agent 优化。",order:4}]},mode:{key:"mode",currentValue:N.ACP_PROVIDER_DEFAULT_MODE_IDS.codex,configId:"mode",configKey:"mode",source:"fallback",options:[{value:"read-only",label:"只读",description:"Codex 可以读取当前工作区文件。编辑文件或访问互联网需要审批。",order:0},{value:"auto",label:"默认",description:"Codex 可以读取和编辑当前工作区文件,并运行命令。访问互联网或编辑其他文件需要审批。(等同于 Agent 模式)",order:1},{value:"full-access",label:"完全访问",description:"Codex 可以编辑工作区外的文件并访问互联网,无需请求审批。使用时请谨慎。",order:2}]},thought_level:{key:"thought_level",currentValue:"xhigh",configId:"reasoning_effort",configKey:"reasoning_effort",source:"fallback",options:[{value:"low",label:"低",description:"更轻量推理,响应更快",order:0},{value:"medium",label:"中",description:"在速度和推理深度之间取得平衡,适合日常任务",order:1},{value:"high",label:"高",description:"为复杂问题提供更深的推理",order:2},{value:"xhigh",label:"极高",description:"为复杂问题提供极高推理深度",order:3}]}},metadata:{availableCommands:[],tokenUsage:null,rawSession:null}},gemini:{provider:"gemini",sessionId:null,source:"generated-default",updatedAt:"2026-05-27T10:18:02.000Z",ttl:18e5,agentVersion:null,capabilities:{model:{key:"model",currentValue:"gemini-3-pro-preview",configId:"model",configKey:"model",source:"fallback",options:[{value:"gemini-2.5-pro",label:"Gemini 2.5 Pro",description:"Gemini Pro 稳定模型。",order:0},{value:"gemini-2.5-flash",label:"Gemini 2.5 Flash",description:"Gemini Flash 快速模型。",order:1},{value:"gemini-3-pro-preview",label:"Gemini 3 Pro Preview",description:"Gemini 3 Pro 预览模型。",order:2},{value:"gemini-3-flash-preview",label:"Gemini 3 Flash Preview",description:"Gemini 3 Flash 预览模型。",order:3}]},mode:{key:"mode",currentValue:N.ACP_PROVIDER_DEFAULT_MODE_IDS.gemini,configId:"mode",configKey:"mode",source:"fallback",options:[{value:"default",label:"默认",description:"使用供应商默认权限策略。",order:0},{value:"acceptEdits",label:"接受编辑",description:"允许编辑类操作更顺畅地继续。",order:1},{value:"bypassPermissions",label:"绕过权限",description:"尽量减少权限确认,适合受信任工作区。",order:2}]},thought_level:{key:"thought_level",currentValue:"none",configId:"thought_level",configKey:"thought_level",source:"fallback",options:[{value:"none",label:"无",description:"不额外请求思考深度。",order:0}]}},metadata:{availableCommands:[],tokenUsage:null,rawSession:null}},opencode:{provider:"opencode",sessionId:null,source:"generated-default",updatedAt:"2026-05-27T10:18:02.000Z",ttl:18e5,agentVersion:null,capabilities:{model:{key:"model",currentValue:"opencode/big-pickle",configId:"model",configKey:"model",source:"fallback",options:[{value:"opencode/big-pickle",label:"OpenCode Zen/Big Pickle",description:"OpenCode 默认模型。",order:0},{value:"opencode/nemotron-3-super-free",label:"OpenCode Zen/Nemotron 3 Super Free",description:"OpenCode 可用模型。",order:1},{value:"opencode/deepseek-v4-flash-free",label:"OpenCode Zen/DeepSeek V4 Flash Free",description:"OpenCode 可用模型。",order:2}]},mode:{key:"mode",currentValue:N.ACP_PROVIDER_DEFAULT_MODE_IDS.opencode,configId:"mode",configKey:"mode",source:"fallback",options:[{value:"build",label:"build",description:"The default agent. Executes tools based on configured permissions.",order:0},{value:"plan",label:"plan",description:"Plan mode. Disallows all edit tools.",order:1}]},thought_level:{key:"thought_level",currentValue:"none",configId:"thought_level",configKey:"thought_level",source:"fallback",options:[{value:"none",label:"无",description:"不额外请求思考深度。",order:0}]}},metadata:{availableCommands:[],tokenUsage:null,rawSession:null}}};function U(e){return q[String(e??"").trim().toLowerCase()]??null}function D(e){return"string"==typeof e?e.trim():""}function $(e,t,n,i=0){let o=D(e);return o?{value:o,label:D(t)||o,description:D(n),order:i}:null}function F(e){return!e||"object"!=typeof e||Array.isArray(e)?$(e,e):$(e.value??e.id??e.modeId??e.name,e.name??e.label??e.title,e.description)}function L(e){let t=new Set;return e.filter(e=>!t.has(e.value)&&(t.add(e.value),!0))}function H(e){if(!Array.isArray(e))return[];let t=[];return e.forEach((e,n)=>{if(!e||"object"!=typeof e||Array.isArray(e)){let i=$(e,e,void 0,n);i&&t.push(i);return}if(Array.isArray(e.options))return void e.options.forEach((e,n)=>{if(!e||"object"!=typeof e||Array.isArray(e))return;let i=$(e.value??e.id,e.name??e.label,e.description,n);i&&t.push(i)});let i=$(e.value??e.id,e.name??e.label,e.description,n);i&&t.push(i)}),L(t)}function V({provider:e,sessionResponse:t}){let n=U(e),i=function({provider:e,sessionResponse:t}){var n,i;let o={};if(t){let e,i,r,s,a=(e=t.models,(i=Array.isArray(e?.availableModels)?e.availableModels:[]).length||e?.currentModelId?{key:"model",currentValue:D(e?.currentModelId)||null,options:i.map((e,t)=>$(e.modelId,e.name,e.description,t)).filter(e=>!!e),source:"session"}:null),l=(r=t.modes,(s=Array.isArray(r?.availableModes)?r.availableModes:[]).length||r?.currentModeId?{key:"mode",currentValue:D(r?.currentModeId)||null,options:s.map((e,t)=>$(e.id,e.name,e.description,t)).filter(e=>!!e),source:"session"}:null);for(let e of(a&&(o.model=a),l&&(o.mode=l),Array.isArray(n=t.configOptions)?n.filter(e=>!!(e&&"object"==typeof e&&!Array.isArray(e))):[])){let t=function(e){var t;let n=D(e.category||e.id||e.key);if("model"!==n&&"mode"!==n&&"thought_level"!==n)return null;let i=F(e.currentValue),o=F(e.value),r=L([...H(e.options),...!(t=e.schema)||"object"!=typeof t||Array.isArray(t)?[]:H(Array.isArray(t.options)&&t.options||Array.isArray(t.enum)&&t.enum||Array.isArray(t.oneOf)&&t.oneOf||Array.isArray(t.anyOf)&&t.anyOf||[]),...i?[i]:o?[o]:[]]);return{key:n,currentValue:i?.value||o?.value||r.find(e=>e.default)?.value||null,options:r,configId:D(e.id||e.key||e.category)||n,configKey:D(e.key||e.id||e.category)||n,source:"config-option"}}(e);t&&(o[t.key]={...o[t.key],...t,options:t.options.length?t.options:o[t.key]?.options??[]})}}return{provider:e,sessionId:t?.sessionId??null,updatedAt:new Date().toISOString(),ttl:void 0,source:"session",agentVersion:null,capabilities:o,metadata:{availableCommands:(Array.isArray(i=t?.availableCommands)?i:[]).map(e=>{if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=D(e.name||e.command||e.id).replace(/^\/+/,"");return t?{name:t,description:D(e.description),input:e.input,source:"acp"}:null}).filter(e=>!!e),agentCapabilities:t?.agentCapabilities,sessionCapabilities:t?.sessionCapabilities,mcpCapabilities:t?.mcpCapabilities,planCapabilities:t?.planCapabilities,clientCapabilities:t?.clientCapabilities,rawSession:t}}}({provider:e,sessionResponse:t});return O(n,i)??i}function J(e){return!!(e&&"object"==typeof e&&!Array.isArray(e))}function W(e){let t=e.model;return J(t)?t:null}function B(e){return"string"==typeof e?e.trim():""}function K(e,t){e.enqueue({type:"raw",rawValue:JSON.stringify(t)})}function G(){return{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0}}}function Y(e,t){try{return e.enqueue(t),!0}catch{return!1}}function Z(e){try{e.close?.()}catch{}}function X(e,t,n,i){for(let t of e)Y(i,{type:"text-end",id:t});for(let e of t)Y(i,{type:"reasoning-end",id:e});e.clear(),t.clear(),n.currentTextId=null,n.currentThinkingId=null}function Q(e,t){let n=new Set,i=new Set;return t.pipeThrough(new TransformStream({transform(t,o){if(J(t)){let r=t.type,s="string"==typeof t.id?t.id:null;if(("finish"===r||"error"===r||"tool-call"===r||"tool-result"===r||"tool-input-start"===r)&&X(n,i,e,o),"text-start"===r&&s)n.add(s),e.currentTextId=s;else if("text-end"===r&&s){if(!n.has(s)){e.currentTextId===s&&(e.currentTextId=null);return}n.delete(s),e.currentTextId===s&&(e.currentTextId=null)}else if("reasoning-start"===r&&s)i.add(s),e.currentThinkingId=s;else if("reasoning-end"===r&&s){if(!i.has(s)){e.currentThinkingId===s&&(e.currentThinkingId=null);return}i.delete(s),e.currentThinkingId===s&&(e.currentThinkingId=null)}}o.enqueue(t)},flush(t){X(n,i,e,t)}}))}function ee(e){let t=e.client;t&&(t.setPermissionRequestHandler?.(async e=>({outcome:{outcome:"selected",optionId:function(e,t="allow_once"){let n=(Array.isArray(e.options)?e.options:[]).map(e=>u(e)?c(e.optionId||e.id):"").filter(Boolean);return n.find(e=>e===t)||n.find(e=>e.includes(t))||n.find(e=>e.includes("allow_once"))||n.find(e=>e.includes("allow"))||n[0]||t}(e)}})),t.unstable_createElicitation=async t=>{let n,i,o,r=e.__acpUiPromptPromise,s=r?function(e,t){let n;if("form"!==e.mode)return null;let i=function(e){let t=f(e.requestedSchema)?e.requestedSchema:{},n=Object.entries(f(t.properties)?t.properties:{}).filter(e=>f(e[1]));if(1!==n.length)return null;let i=new Set(y(t.required)),[o,r]=n[0];return[o,r,i.has(o)]}(e);if(!i)return null;let[o,r,s]=i,a=r.type,l="array"===a?"multi":"single";if("array"!==a&&"string"!==a)return null;let u="multi"===l&&(n=v(f(r.items)?r.items:{})).length>0?n:v(r);if(0===u.length)return null;let c=w(r.minItems)??+!!s,d="single"===l?1:w(r.maxItems);return{toolCallId:t,message:b(e.message)||b(r.description)||"Choose an option",fieldName:o,fieldTitle:b(r.title)||o,...b(r.description)?{fieldDescription:b(r.description)}:{},selectionMode:l,options:u,defaultValue:function(e,t,n){let i=new Set(n.map(e=>e.id));if("multi"===t){let t=y(e.default).filter(e=>i.has(e));return t.length>0?t:null}let o=b(e.default);return o&&i.has(o)?o:null}(r,l,u),minSelections:c,...void 0!==d?{maxSelections:d}:{},required:s}}(t,(o=(e.__acpUiElicitationSequence??0)+1,e.__acpUiElicitationSequence=o,`acp-elicitation-${o}`)):null;if(!r||!s||e.__acpUiPendingElicitation)return p(t);let a=s.toolCallId,l=new Promise((e,t)=>{n=e,i=t});return(e.__acpUiPendingElicitation={toolCallId:a,request:t,promptPromise:r,resolve:n,reject:i},!function(e,t){let n=e.clientToolAbort,i=n?.controller;return!!n&&!!i&&(e.currentTextId&&(Y(i,{type:"text-end",id:e.currentTextId}),e.currentTextId=null),e.currentThinkingId&&(Y(i,{type:"reasoning-end",id:e.currentThinkingId}),e.currentThinkingId=null),!!Y(i,{type:"tool-call",toolCallId:t.toolCallId,toolName:g,input:JSON.stringify(t)})&&(Y(i,{type:"finish",finishReason:{unified:"tool-calls",raw:void 0},usage:G()}),Z(i),n.resolve(),!0))}(e,s))?(e.__acpUiPendingElicitation=null,p(t)):l})}async function et(e,t){let n=W(e),i=n?.connection,o=B(n?.sessionId??e.getSessionId());if(!i?.closeSession||!o)return!1;try{return await i.closeSession({sessionId:o}),!0}catch(e){return t?.warnings.push(`Failed to close ACP session "${o}" via session/close: ${e instanceof Error?e.message:String(e)}`),!1}}q.codex,e.s(["getDefaultAcpCapabilitySnapshot",0,U],34112);var en=e.i(96493),ei=e.i(64050),eo=e.i(99534),er=e.i(6138);async function es(e,t,n,i,o){let r,s="boolean"==typeof i?i:String(i??"").trim();if(""===s)return!1;let a=(r=e.model)&&"object"==typeof r?r:null,l=a?.connection,u=a?.sessionId??e.getSessionId(),c=function(e){if(!e||"fallback"===e.source)return null;let t=String(e?.configId??"").trim();return t||String(e?.key??"").trim()||null}(t.capabilitySnapshot?.capabilities[n]);if(!l?.setSessionConfigOption||!u||!c||!a)return!1;try{let e=await l.setSessionConfigOption({...function({sessionId:e,configId:t,value:n}){return"boolean"==typeof n?{sessionId:e,configId:t,type:"boolean",value:n}:{sessionId:e,configId:t,value:n}}({sessionId:u,configId:c,value:s})});return!function({metadata:e,model:t,sessionId:n,configOptions:i}){Array.isArray(i)&&(t.sessionResponse={...t.sessionResponse??{},sessionId:n,configOptions:i},e.capabilitySnapshot=V({provider:e.provider,sessionResponse:t.sessionResponse}))}({metadata:t,model:a,sessionId:u,configOptions:e?.configOptions}),!0}catch(e){return t.warnings.push(`Failed to set ACP ${o} "${s}": ${e instanceof Error?e.message:String(e)}`),!1}}async function ea(e,t){let n=String(t.thoughtLevel??"").trim();!n||await es(e,t,"thought_level",n,"thought level")||t.warnings.push(`ACP thought level "${n}" is selected, but this session does not expose a configurable thought_level option.`)}var el=e.i(34588),eu=e.i(74533),ec=e.i(2157),ed=e.i(50227);let ep="cmd.exe",em=["/opt/homebrew/bin","/usr/local/bin","/usr/bin","/bin","/usr/sbin","/sbin"],eg=["C:\\Program Files\\nodejs"];function eh(e){return"string"==typeof e?{platform:e,execPath:process.execPath,env:process.env}:{platform:e?.platform??process.platform,execPath:e?.execPath??process.execPath,env:e?.env??process.env}}function ez(e,t){let n=e[t];if("string"==typeof n&&n.length>0)return n;let i=Object.keys(e).find(e=>e.toLowerCase()===t.toLowerCase());if(!i)return;let o=e[i];return"string"==typeof o&&o.length>0?o:void 0}function ef(e,t,n){!t||e.some(e=>"win32"===n?e.toLowerCase()===t.toLowerCase():e===t)||e.push(t)}function eb(e){return(ez(e,"PATHEXT")||".COM;.EXE;.BAT;.CMD").split(";").map(e=>e.trim()).filter(Boolean).map(e=>e.startsWith(".")?e.toLowerCase():`.${e.toLowerCase()}`)}function ey(e){let{platform:t,execPath:n,env:i}=eh(e),o=function(e){let t={};for(let[n,i]of Object.entries(e))"string"==typeof i&&(t[n]=i);return t}(i),r="win32"===t?ed.default.win32:ed.default.posix,s="win32"===t?";":":",a="win32"===t?"Path":"PATH",l=(ez(o,"PATH")||"").split(s).filter(Boolean);if(ef(l,r.dirname(n),t),"win32"===t){let e=ez(o,"APPDATA");for(let n of(e&&ef(l,ed.default.win32.join(e,"npm"),t),eg))ef(l,n,t);let n=eb(o);for(let e of[".com",".exe",".bat",".cmd"])n.includes(e)||n.push(e);for(let e of(o.PATHEXT=n.map(e=>e.toUpperCase()).join(";"),Object.keys(o)))"path"===e.toLowerCase()&&delete o[e];let i=l.join(s);o[a]=i,o.PATH=i}else{for(let e of em)ef(l,e,t);delete o.Path,o[a]=l.join(s)}return o}function ew(e){return/[\\/]/.test(e)}function ev(e,t){if(!(0,ec.existsSync)(e))return!1;if("win32"===t)return!0;try{return(0,ec.accessSync)(e,ec.constants.X_OK),!0}catch{return!1}}function ej(e,t){let n=e.trim();if(!n)return n;let i=ew(n),o=ed.default.win32.extname(n)?[""]:eb(t),r=i?[""]:(ez(t,"PATH")||"").split(";").map(e=>e.trim()).filter(Boolean);for(let e of i?[n]:r.map(e=>ed.default.win32.join(e,n)))for(let t of o){let n=t?`${e}${t}`:e;if((0,ec.existsSync)(n))return n}return n}function e_(e){return[e.command,...e.args??[]].map(e=>/\s/.test(e)?JSON.stringify(e):e).join(" ")}function ek(e){let t=Error(`ACP provider command not found: ${e_(e)}`);return t.code="ENOENT",t}var eI=e.i(60199),ex=e.i(21702),eS=e.i(44376),eC=e.i(69719);let eA=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),terminal:eC.z.boolean().optional().default(!1)}),eT=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),label:eC.z.string().nullish(),name:eC.z.string(),optional:eC.z.boolean().optional().default(!1),secret:eC.z.boolean().optional().default(!0)}),eR=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string().nullish(),id:eC.z.string(),name:eC.z.string()}),eP=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string().nullish(),id:eC.z.string(),link:eC.z.string().nullish(),name:eC.z.string(),vars:eC.z.array(eT)}),eM=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),args:eC.z.array(eC.z.string()).optional(),description:eC.z.string().nullish(),env:eC.z.record(eC.z.string(),eC.z.string()).optional(),id:eC.z.string(),name:eC.z.string()}),eE=eC.z.union([eP.and(eC.z.object({type:eC.z.literal("env_var")})),eM.and(eC.z.object({type:eC.z.literal("terminal")})),eR]),eO=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),methodId:eC.z.string()}),eN=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eq=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),blob:eC.z.string(),mimeType:eC.z.string().nullish(),uri:eC.z.string()}),eU=eC.z.object({default:eC.z.boolean().nullish(),description:eC.z.string().nullish(),title:eC.z.string().nullish()}),eD=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),e$=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eF=eC.z.object({amount:eC.z.number(),currency:eC.z.string()}),eL=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),terminalId:eC.z.string()}),eH=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eV=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),newText:eC.z.string(),oldText:eC.z.string().nullish(),path:eC.z.string()}),eJ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:eC.z.string()}),eW=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eB=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eK=eC.z.union([eC.z.string(),eC.z.number(),eC.z.number(),eC.z.boolean(),eC.z.array(eC.z.string())]),eG=eC.z.object({content:eC.z.record(eC.z.string(),eK).nullish()}),eY=eC.z.intersection(eC.z.union([eG.and(eC.z.object({action:eC.z.literal("accept")})),eC.z.object({action:eC.z.literal("decline")}),eC.z.object({action:eC.z.literal("cancel")})]),eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()})),eZ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eX=eC.z.string(),eQ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),elicitationId:eX}),e0=eC.z.literal("object"),e2=eC.z.literal("string"),e1=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),e3=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),form:eZ.nullish(),url:e1.nullish()}),e5=eC.z.object({const:eC.z.string(),title:eC.z.string()}),e6=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),name:eC.z.string(),value:eC.z.string()}),e4=eC.z.union([eC.z.literal(-32700),eC.z.literal(-32600),eC.z.literal(-32601),eC.z.literal(-32602),eC.z.literal(-32603),eC.z.literal(-32800),eC.z.literal(-32e3),eC.z.literal(-32002),eC.z.literal(-32042),eC.z.number().int().min(-0x80000000,{message:"Invalid value: Expected int32 to be >= -2147483648"}).max(0x7fffffff,{message:"Invalid value: Expected int32 to be <= 2147483647"})]),e9=eC.z.object({code:e4,data:eC.z.unknown().optional(),message:eC.z.string()}),e7=eC.z.unknown(),e8=eC.z.unknown(),te=eC.z.unknown(),tt=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),readTextFile:eC.z.boolean().optional().default(!1),writeTextFile:eC.z.boolean().optional().default(!1)}),tn=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),name:eC.z.string(),value:eC.z.string()}),ti=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),name:eC.z.string(),title:eC.z.string().nullish(),version:eC.z.string()}),to=eC.z.object({default:eC.z.number().nullish(),description:eC.z.string().nullish(),maximum:eC.z.number().nullish(),minimum:eC.z.number().nullish(),title:eC.z.string().nullish()}),tr=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),ts=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),ta=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),cursor:eC.z.string().nullish(),cwd:eC.z.string().nullish()}),tl=eC.z.union([eC.z.literal("anthropic"),eC.z.literal("openai"),eC.z.literal("azure"),eC.z.literal("vertex"),eC.z.literal("bedrock"),eC.z.string()]),tu=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tc=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),logout:tu.nullish()}),td=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tp=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tm=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),acp:eC.z.boolean().optional().default(!1),http:eC.z.boolean().optional().default(!1),sse:eC.z.boolean().optional().default(!1)}),tg=eC.z.string(),th=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),connectionId:tg}),tz=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),connectionId:tg}),tf=eC.z.string(),tb=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),acpId:tf}),ty=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:tf,name:eC.z.string()}),tw=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),headers:eC.z.array(tn),name:eC.z.string(),url:eC.z.string()}),tv=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),headers:eC.z.array(tn),name:eC.z.string(),url:eC.z.string()}),tj=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),args:eC.z.array(eC.z.string()),command:eC.z.string(),env:eC.z.array(e6),name:eC.z.string()}),t_=eC.z.union([tw.and(eC.z.object({type:eC.z.literal("http")})),tv.and(eC.z.object({type:eC.z.literal("sse")})),ty.and(eC.z.object({type:eC.z.literal("acp")})),tj]),tk=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),connectionId:tg,method:eC.z.string(),params:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tI=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),connectionId:tg,method:eC.z.string(),params:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tx=eC.z.unknown(),tS=eC.z.string(),tC=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string().nullish(),modelId:tS,name:eC.z.string()}),tA=eC.z.union([eC.z.literal("error"),eC.z.literal("warning"),eC.z.literal("information"),eC.z.literal("hint")]),tT=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tR=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tP=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tM=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tE=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tO=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),maxCount:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish()}),tN=eC.z.object({diff:eC.z.string(),uri:eC.z.string()}),tq=eC.z.object({endLine:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}),startLine:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}),text:eC.z.string()}),tU=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tD=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),t$=eC.z.object({languageId:eC.z.string(),text:eC.z.string(),uri:eC.z.string()}),tF=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),maxCount:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish()}),tL=eC.z.union([eC.z.literal("rejected"),eC.z.literal("ignored"),eC.z.literal("replaced"),eC.z.literal("cancelled")]),tH=eC.z.object({excerpts:eC.z.array(tq),uri:eC.z.string()}),tV=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tJ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tW=eC.z.object({name:eC.z.string(),owner:eC.z.string(),remoteUrl:eC.z.string()}),tB=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tK=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),jump:tU.nullish(),rename:tJ.nullish(),searchAndReplace:tB.nullish()}),tG=eC.z.object({id:eC.z.string(),isRegex:eC.z.boolean().nullish(),replace:eC.z.string(),search:eC.z.string(),uri:eC.z.string()}),tY=eC.z.union([eC.z.literal("automatic"),eC.z.literal("diagnostic"),eC.z.literal("manual")]),tZ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),maxCount:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish()}),tX=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),diagnostics:tT.nullish(),editHistory:tO.nullish(),openFiles:tD.nullish(),recentFiles:tF.nullish(),relatedSnippets:tV.nullish(),userActions:tZ.nullish()}),tQ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:eC.z.array(eC.z.string()).optional(),cwd:eC.z.string(),mcpServers:eC.z.array(t_)}),t0=eC.z.object({default:eC.z.number().nullish(),description:eC.z.string().nullish(),maximum:eC.z.number().nullish(),minimum:eC.z.number().nullish(),title:eC.z.string().nullish()}),t2=eC.z.string(),t1=eC.z.union([eC.z.literal("allow_once"),eC.z.literal("allow_always"),eC.z.literal("reject_once"),eC.z.literal("reject_always")]),t3=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),kind:t1,name:eC.z.string(),optionId:t2}),t5=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),t6=eC.z.union([eC.z.literal("high"),eC.z.literal("medium"),eC.z.literal("low")]),t4=eC.z.union([eC.z.literal("pending"),eC.z.literal("in_progress"),eC.z.literal("completed")]),t9=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.string(),priority:t6,status:t4}),t7=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),entries:eC.z.array(t9)}),t8=eC.z.string(),ne=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:t8,uri:eC.z.string()}),nt=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),entries:eC.z.array(t9),id:t8}),nn=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.string(),id:t8}),ni=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:t8}),no=eC.z.union([nt.and(eC.z.object({type:eC.z.literal("items")})),ne.and(eC.z.object({type:eC.z.literal("file")})),nn.and(eC.z.object({type:eC.z.literal("markdown")}))]),nr=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),plan:no}),ns=eC.z.object({character:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}),line:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"})}),na=eC.z.object({id:eC.z.string(),position:ns,uri:eC.z.string()}),nl=eC.z.object({id:eC.z.string(),newName:eC.z.string(),position:ns,uri:eC.z.string()}),nu=eC.z.object({action:eC.z.string(),position:ns,timestampMs:eC.z.number(),uri:eC.z.string()}),nc=eC.z.union([eC.z.literal("utf-16"),eC.z.literal("utf-32"),eC.z.literal("utf-8")]),nd=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),auth:eA.optional().default({terminal:!1}),elicitation:e3.nullish(),fs:tt.optional().default({readTextFile:!1,writeTextFile:!1}),nes:tK.nullish(),planCapabilities:t5.nullish(),positionEncodings:eC.z.array(nc).optional(),terminal:eC.z.boolean().optional().default(!1)}),np=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),audio:eC.z.boolean().optional().default(!1),embeddedContext:eC.z.boolean().optional().default(!1),image:eC.z.boolean().optional().default(!1)}),nm=eC.z.number().int().gte(0).lte(65535),ng=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),clientCapabilities:nd.optional().default({auth:{terminal:!1},fs:{readTextFile:!1,writeTextFile:!1},terminal:!1}),clientInfo:ti.nullish(),protocolVersion:nm}),nh=eC.z.object({apiType:tl,baseUrl:eC.z.string()}),nz=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),current:nh.nullish(),id:eC.z.string(),required:eC.z.boolean(),supported:eC.z.array(tl)}),nf=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),providers:eC.z.array(nz)}),nb=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),ny=eC.z.object({end:ns,start:ns}),nw=eC.z.object({message:eC.z.string(),range:ny,severity:tA,uri:eC.z.string()}),nv=eC.z.object({languageId:eC.z.string(),lastFocusedMs:eC.z.number().nullish(),uri:eC.z.string(),visibleRange:ny.nullish()}),nj=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),diagnostics:eC.z.array(nw).nullish(),editHistory:eC.z.array(tN).nullish(),openFiles:eC.z.array(nv).nullish(),recentFiles:eC.z.array(t$).nullish(),relatedSnippets:eC.z.array(tH).nullish(),userActions:eC.z.array(nu).nullish()}),n_=eC.z.object({newText:eC.z.string(),range:ny}),nk=eC.z.object({cursorPosition:ns.nullish(),edits:eC.z.array(n_),id:eC.z.string(),uri:eC.z.string()}),nI=eC.z.union([nk.and(eC.z.object({kind:eC.z.literal("edit")})),na.and(eC.z.object({kind:eC.z.literal("jump")})),nl.and(eC.z.object({kind:eC.z.literal("rename")})),tG.and(eC.z.object({kind:eC.z.literal("searchAndReplace")}))]),nx=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.string()}),nS=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),nC=eC.z.union([eC.z.number(),eC.z.string()]).nullable();eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),requestId:nC});let nA=eC.z.object({requestId:nC}),nT=eC.z.enum(["assistant","user"]),nR=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),audience:eC.z.array(nT).nullish(),lastModified:eC.z.string().nullish(),priority:eC.z.number().nullish()}),nP=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),annotations:nR.nullish(),data:eC.z.string(),mimeType:eC.z.string()}),nM=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),annotations:nR.nullish(),data:eC.z.string(),mimeType:eC.z.string(),uri:eC.z.string().nullish()}),nE=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),annotations:nR.nullish(),description:eC.z.string().nullish(),mimeType:eC.z.string().nullish(),name:eC.z.string(),size:eC.z.number().nullish(),title:eC.z.string().nullish(),uri:eC.z.string()}),nO=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),optionId:t2}),nN=eC.z.union([eC.z.object({outcome:eC.z.literal("cancelled")}),nO.and(eC.z.object({outcome:eC.z.literal("selected")}))]),nq=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),outcome:nN}),nU=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),nD=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),n$=eC.z.object({currentValue:eC.z.boolean()}),nF=eC.z.string(),nL=eC.z.string(),nH=eC.z.union([eC.z.literal("mode"),eC.z.literal("model"),eC.z.literal("thought_level"),eC.z.string()]),nV=eC.z.string(),nJ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string().nullish(),name:eC.z.string(),value:nV}),nW=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),group:nF,name:eC.z.string(),options:eC.z.array(nJ)}),nB=eC.z.union([eC.z.array(nJ),eC.z.array(nW)]),nK=eC.z.object({currentValue:nV,options:nB}),nG=eC.z.intersection(eC.z.union([nK.and(eC.z.object({type:eC.z.literal("select")})),n$.and(eC.z.object({type:eC.z.literal("boolean")}))]),eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),category:nH.nullish(),description:eC.z.string().nullish(),id:nL,name:eC.z.string()})),nY=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG)}),nZ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),nX=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),nQ=eC.z.string(),n0=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:eC.z.string(),sessionId:nQ}),n2=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ}),n1=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ}),n3=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ}),n5=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),args:eC.z.array(eC.z.string()).optional(),command:eC.z.string(),cwd:eC.z.string().nullish(),env:eC.z.array(e6).optional(),outputByteLimit:eC.z.number().nullish(),sessionId:nQ}),n6=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ}),n4=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,uri:eC.z.string()}),n9=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),position:ns,sessionId:nQ,uri:eC.z.string(),version:eC.z.number(),visibleRange:ny}),n7=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),languageId:eC.z.string(),sessionId:nQ,text:eC.z.string(),uri:eC.z.string(),version:eC.z.number()}),n8=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,uri:eC.z.string()}),ie=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:eC.z.array(eC.z.string()).optional(),cwd:eC.z.string(),mcpServers:eC.z.array(t_).optional(),sessionId:nQ}),it=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,terminalId:eC.z.string()}),ii=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:eC.z.array(eC.z.string()).optional(),cwd:eC.z.string(),mcpServers:eC.z.array(t_),sessionId:nQ}),io=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),limit:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),line:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),path:eC.z.string(),sessionId:nQ}),ir=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:eC.z.string(),reason:tL.nullish(),sessionId:nQ}),is=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,terminalId:eC.z.string()}),ia=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:eC.z.array(eC.z.string()).optional(),cwd:eC.z.string(),mcpServers:eC.z.array(t_).optional(),sessionId:nQ}),il=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:eC.z.array(eC.z.string()).optional(),cwd:eC.z.string(),sessionId:nQ,title:eC.z.string().nullish(),updatedAt:eC.z.string().nullish()}),iu=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),nextCursor:eC.z.string().nullish(),sessions:eC.z.array(il)}),ic=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),title:eC.z.string().nullish(),updatedAt:eC.z.string().nullish()}),id=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),ip=eC.z.string(),im=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),currentModeId:ip}),ig=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string().nullish(),id:ip,name:eC.z.string()}),ih=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),availableModes:eC.z.array(ig),currentModeId:ip}),iz=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),availableModels:eC.z.array(tC),currentModelId:tS}),ib=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG).nullish(),models:iz.nullish(),modes:ih.nullish(),sessionId:nQ}),iy=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG).nullish(),models:iz.nullish(),modes:ih.nullish()}),iw=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG).nullish(),models:iz.nullish(),modes:ih.nullish(),sessionId:nQ}),iv=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG).nullish(),models:iz.nullish(),modes:ih.nullish()}),ij=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),i_=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:nU.nullish(),close:nD.nullish(),delete:nZ.nullish(),fork:nX.nullish(),list:id.nullish(),resume:ij.nullish()}),ik=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),apiType:tl,baseUrl:eC.z.string(),headers:eC.z.record(eC.z.string(),eC.z.string()).optional(),id:eC.z.string()}),iI=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),ix=eC.z.intersection(eC.z.union([eC.z.object({type:eC.z.literal("boolean"),value:eC.z.boolean()}),eC.z.object({value:nV})]),eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configId:nL,sessionId:nQ})),iS=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG)}),iC=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),modeId:ip,sessionId:nQ}),iA=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),iT=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),modelId:tS,sessionId:nQ}),iR=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),iP=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ}),iM=eC.z.union([eC.z.literal("end_turn"),eC.z.literal("max_tokens"),eC.z.literal("max_turn_requests"),eC.z.literal("refusal"),eC.z.literal("cancelled")]),iE=eC.z.union([eC.z.literal("email"),eC.z.literal("uri"),eC.z.literal("date"),eC.z.literal("date-time")]),iO=eC.z.object({default:eC.z.string().nullish(),description:eC.z.string().nullish(),enum:eC.z.array(eC.z.string()).nullish(),format:iE.nullish(),maxLength:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),minLength:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),oneOf:eC.z.array(e5).nullish(),pattern:eC.z.string().nullish(),title:eC.z.string().nullish()}),iN=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),context:nj.nullish(),position:ns,selection:ny.nullish(),sessionId:nQ,triggerKind:tY,uri:eC.z.string(),version:eC.z.number()}),iq=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),suggestions:eC.z.array(nI)}),iU=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),terminalId:eC.z.string()}),iD=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),exitCode:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),signal:eC.z.string().nullish()}),i$=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,terminalId:eC.z.string()}),iF=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),exitStatus:iD.nullish(),output:eC.z.string(),truncated:eC.z.boolean()}),iL=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),annotations:nR.nullish(),text:eC.z.string()}),iH=eC.z.object({range:ny.nullish(),text:eC.z.string()}),iV=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),contentChanges:eC.z.array(iH),sessionId:nQ,uri:eC.z.string(),version:eC.z.number()});eC.z.object({method:eC.z.string(),params:eC.z.union([n2,n7,iV,n4,n8,n9,n0,ir,tk,e7]).nullish()});let iJ=eC.z.union([eC.z.literal("full"),eC.z.literal("incremental")]),iW=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),syncKind:iJ}),iB=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),didChange:iW.nullish(),didClose:tR.nullish(),didFocus:tP.nullish(),didOpen:tM.nullish(),didSave:tE.nullish()}),iK=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),document:iB.nullish()}),iG=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),context:tX.nullish(),events:iK.nullish()}),iY=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),auth:tc.optional().default({}),loadSession:eC.z.boolean().optional().default(!1),mcpCapabilities:tm.optional().default({acp:!1,http:!1,sse:!1}),nes:iG.nullish(),positionEncoding:nc.nullish(),promptCapabilities:np.optional().default({audio:!1,embeddedContext:!1,image:!1}),providers:nb.nullish(),sessionCapabilities:i_.optional().default({})}),iZ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),agentCapabilities:iY.optional().default({auth:{},loadSession:!1,mcpCapabilities:{acp:!1,http:!1,sse:!1},promptCapabilities:{audio:!1,embeddedContext:!1,image:!1},sessionCapabilities:{}}),agentInfo:ti.nullish(),authMethods:eC.z.array(eE).optional().default([]),protocolVersion:nm}),iX=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),mimeType:eC.z.string().nullish(),text:eC.z.string(),uri:eC.z.string()}),iQ=eC.z.union([iX,eq]),i0=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),annotations:nR.nullish(),resource:iQ}),i2=eC.z.union([iL.and(eC.z.object({type:eC.z.literal("text")})),nM.and(eC.z.object({type:eC.z.literal("image")})),nP.and(eC.z.object({type:eC.z.literal("audio")})),nE.and(eC.z.object({type:eC.z.literal("resource_link")})),i0.and(eC.z.object({type:eC.z.literal("resource")}))]),i1=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:i2}),i3=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:i2,messageId:eC.z.string().nullish()}),i5=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),messageId:eC.z.string().nullish(),prompt:eC.z.array(i2),sessionId:nQ}),i6=eC.z.object({anyOf:eC.z.array(e5)}),i4=eC.z.union([i1.and(eC.z.object({type:eC.z.literal("content")})),eV.and(eC.z.object({type:eC.z.literal("diff")})),iU.and(eC.z.object({type:eC.z.literal("terminal")}))]),i9=eC.z.string(),i7=eC.z.object({sessionId:nQ,toolCallId:i9.nullish()}),i8=eC.z.intersection(eC.z.union([i7,nA]),eC.z.object({elicitationId:eX,url:eC.z.string().url()})),oe=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),line:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),path:eC.z.string()}),ot=eC.z.union([eC.z.literal("pending"),eC.z.literal("in_progress"),eC.z.literal("completed"),eC.z.literal("failed")]),on=eC.z.union([eC.z.literal("read"),eC.z.literal("edit"),eC.z.literal("delete"),eC.z.literal("move"),eC.z.literal("search"),eC.z.literal("execute"),eC.z.literal("think"),eC.z.literal("fetch"),eC.z.literal("switch_mode"),eC.z.literal("other")]),oi=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.array(i4).optional(),kind:on.optional(),locations:eC.z.array(oe).optional(),rawInput:eC.z.unknown().optional(),rawOutput:eC.z.unknown().optional(),status:ot.optional(),title:eC.z.string(),toolCallId:i9}),oo=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.array(i4).nullish(),kind:on.nullish(),locations:eC.z.array(oe).nullish(),rawInput:eC.z.unknown().optional(),rawOutput:eC.z.unknown().optional(),status:ot.nullish(),title:eC.z.string().nullish(),toolCallId:i9}),or=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),options:eC.z.array(t3),sessionId:nQ,toolCall:oo}),os=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),hint:eC.z.string()}),oa=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string(),input:os.nullish(),name:eC.z.string()}),ol=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),availableCommands:eC.z.array(oa)}),ou=eC.z.object({enum:eC.z.array(eC.z.string()),type:e2}),oc=eC.z.union([ou,i6]),od=eC.z.object({default:eC.z.array(eC.z.string()).nullish(),description:eC.z.string().nullish(),items:oc,maxItems:eC.z.number().nullish(),minItems:eC.z.number().nullish(),title:eC.z.string().nullish()}),op=eC.z.union([iO.and(eC.z.object({type:eC.z.literal("string")})),t0.and(eC.z.object({type:eC.z.literal("number")})),to.and(eC.z.object({type:eC.z.literal("integer")})),eU.and(eC.z.object({type:eC.z.literal("boolean")})),od.and(eC.z.object({type:eC.z.literal("array")}))]),om=eC.z.object({description:eC.z.string().nullish(),properties:eC.z.record(eC.z.string(),op).optional().default({}),required:eC.z.array(eC.z.string()).nullish(),title:eC.z.string().nullish(),type:e0.optional().default("object")}),og=eC.z.intersection(eC.z.union([i7,nA]),eC.z.object({requestedSchema:om})),oh=eC.z.intersection(eC.z.union([og.and(eC.z.object({mode:eC.z.literal("form")})),i8.and(eC.z.object({mode:eC.z.literal("url")}))]),eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),message:eC.z.string()})),oz=eC.z.object({cachedReadTokens:eC.z.number().nullish(),cachedWriteTokens:eC.z.number().nullish(),inputTokens:eC.z.number(),outputTokens:eC.z.number(),thoughtTokens:eC.z.number().nullish(),totalTokens:eC.z.number()}),of=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),stopReason:iM,usage:oz.nullish(),userMessageId:eC.z.string().nullish()});eC.z.union([eC.z.object({id:nC,result:eC.z.union([iZ,eN,nf,iI,eW,tp,iw,iy,iu,eH,ib,iv,e$,iA,iS,of,iR,iP,iq,eD,te,tx])}),eC.z.object({error:e9,id:nC})]);let ob=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),cost:eF.nullish(),size:eC.z.number(),used:eC.z.number()}),oy=eC.z.union([i3.and(eC.z.object({sessionUpdate:eC.z.literal("user_message_chunk")})),i3.and(eC.z.object({sessionUpdate:eC.z.literal("agent_message_chunk")})),i3.and(eC.z.object({sessionUpdate:eC.z.literal("agent_thought_chunk")})),oi.and(eC.z.object({sessionUpdate:eC.z.literal("tool_call")})),oo.and(eC.z.object({sessionUpdate:eC.z.literal("tool_call_update")})),t7.and(eC.z.object({sessionUpdate:eC.z.literal("plan")})),nr.and(eC.z.object({sessionUpdate:eC.z.literal("plan_update")})),ni.and(eC.z.object({sessionUpdate:eC.z.literal("plan_removed")})),ol.and(eC.z.object({sessionUpdate:eC.z.literal("available_commands_update")})),im.and(eC.z.object({sessionUpdate:eC.z.literal("current_mode_update")})),nY.and(eC.z.object({sessionUpdate:eC.z.literal("config_option_update")})),ic.and(eC.z.object({sessionUpdate:eC.z.literal("session_info_update")})),ob.and(eC.z.object({sessionUpdate:eC.z.literal("usage_update")}))]),ow=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,update:oy});eC.z.object({method:eC.z.string(),params:eC.z.union([ow,eQ,tk,e7]).nullish()});let ov=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,terminalId:eC.z.string()}),oj=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),exitCode:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),signal:eC.z.string().nullish()}),o_=eC.z.object({name:eC.z.string(),uri:eC.z.string()}),ok=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),repository:tW.nullish(),workspaceFolders:eC.z.array(o_).nullish(),workspaceUri:eC.z.string().nullish()});eC.z.object({id:nC,method:eC.z.string(),params:eC.z.union([ng,eO,ts,ik,eJ,td,tQ,ii,ta,n6,ie,ia,n3,iC,ix,i5,iT,ok,iN,n1,tI,e8]).nullish()});let oI=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.string(),path:eC.z.string(),sessionId:nQ});eC.z.object({id:nC,method:eC.z.string(),params:eC.z.union([oI,io,or,n5,i$,is,ov,it,oh,tb,tI,tz,e8]).nullish()});let ox=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()});function oS(e){return e??{}}function oC(e){let t=Promise.reject(e);return t.catch(()=>{}),t}eC.z.union([eC.z.object({id:nC,result:eC.z.union([ox,nx,nq,eL,iF,nS,oj,tr,eY,th,eB,te,tx])}),eC.z.object({error:e9,id:nC})]);class oA{connection;constructor(e,t){const n=e(this),i=async(e,t)=>{switch(e){case"fs/write_text_file":{let e=oI.parse(t);return await n.writeTextFile?.(e)??{}}case"fs/read_text_file":{let e=io.parse(t);return n.readTextFile?.(e)}case"session/request_permission":{let e=or.parse(t);return n.requestPermission(e)}case"terminal/create":{let e=n5.parse(t);return n.createTerminal?.(e)}case"terminal/output":{let e=i$.parse(t);return n.terminalOutput?.(e)}case"terminal/release":{let e=is.parse(t);return await n.releaseTerminal?.(e)??{}}case"terminal/wait_for_exit":{let e=ov.parse(t);return n.waitForTerminalExit?.(e)}case"terminal/kill":{let e=it.parse(t);return await n.killTerminal?.(e)??{}}case"elicitation/create":{if(!n.unstable_createElicitation)throw oR.methodNotFound(e);let i=oh.parse(t);return n.unstable_createElicitation(i)}default:if(n.extMethod)return n.extMethod(e,t);throw oR.methodNotFound(e)}},o=async(e,t)=>{switch(e){case"session/update":{let e=ow.parse(t);return n.sessionUpdate(e)}case"elicitation/complete":{if(!n.unstable_completeElicitation)return;let e=eQ.parse(t);return n.unstable_completeElicitation(e)}default:if(n.extNotification)return n.extNotification(e,t);throw oR.methodNotFound(e)}};this.connection=new oT(i,o,t)}initialize(e){return this.connection.sendRequest("initialize",e)}newSession(e){return this.connection.sendRequest("session/new",e)}loadSession(e){return this.connection.sendRequest("session/load",e,oS)}unstable_forkSession(e){return this.connection.sendRequest("session/fork",e)}listSessions(e){return this.connection.sendRequest("session/list",e)}unstable_deleteSession(e){return this.connection.sendRequest("session/delete",e,oS)}resumeSession(e){return this.connection.sendRequest("session/resume",e)}closeSession(e){return this.connection.sendRequest("session/close",e)}setSessionMode(e){return this.connection.sendRequest("session/set_mode",e,oS)}unstable_setSessionModel(e){return this.connection.sendRequest("session/set_model",e,oS)}setSessionConfigOption(e){return this.connection.sendRequest("session/set_config_option",e)}authenticate(e){return this.connection.sendRequest("authenticate",e,oS)}unstable_listProviders(e){return this.connection.sendRequest("providers/list",e)}unstable_setProvider(e){return this.connection.sendRequest("providers/set",e,oS)}unstable_disableProvider(e){return this.connection.sendRequest("providers/disable",e,oS)}logout(e){return this.connection.sendRequest("logout",e,oS)}prompt(e){return this.connection.sendRequest("session/prompt",e)}cancel(e){return this.connection.sendNotification("session/cancel",e)}unstable_startNes(e){return this.connection.sendRequest("nes/start",e)}unstable_suggestNes(e){return this.connection.sendRequest("nes/suggest",e)}unstable_closeNes(e){return this.connection.sendRequest("nes/close",e,oS)}unstable_didOpenDocument(e){return this.connection.sendNotification("document/didOpen",e)}unstable_didChangeDocument(e){return this.connection.sendNotification("document/didChange",e)}unstable_didCloseDocument(e){return this.connection.sendNotification("document/didClose",e)}unstable_didSaveDocument(e){return this.connection.sendNotification("document/didSave",e)}unstable_didFocusDocument(e){return this.connection.sendNotification("document/didFocus",e)}unstable_acceptNes(e){return this.connection.sendNotification("nes/accept",e)}unstable_rejectNes(e){return this.connection.sendNotification("nes/reject",e)}extMethod(e,t){return this.connection.sendRequest(e,t)}extNotification(e,t){return this.connection.sendNotification(e,t)}get signal(){return this.connection.signal}get closed(){return this.connection.closed}}class oT{pendingResponses=new Map;nextRequestId=0;requestHandler;notificationHandler;stream;writeQueue=Promise.resolve();abortController=new AbortController;closedPromise;constructor(e,t,n){this.requestHandler=e,this.notificationHandler=t,this.stream=n,this.closedPromise=new Promise(e=>{this.abortController.signal.addEventListener("abort",()=>e())}),this.receive()}get signal(){return this.abortController.signal}get closed(){return this.closedPromise}async receive(){let e;try{let e=this.stream.readable.getReader();try{for(;!this.abortController.signal.aborted;){let{value:t,done:n}=await e.read();if(n)break;if(t)try{this.processMessage(t)}catch(e){console.error("Unexpected error during message processing:",t,e),"id"in t&&void 0!==t.id&&this.sendMessage({jsonrpc:"2.0",id:t.id,error:{code:-32700,message:"Parse error"}})}}}finally{e.releaseLock()}}catch(t){e=t}finally{this.close(e)}}close(e){if(this.abortController.signal.aborted)return;let t=e??Error("ACP connection closed");for(let e of this.pendingResponses.values())e.reject(t);this.pendingResponses.clear(),this.abortController.abort(t)}async processMessage(e){if("method"in e&&"id"in e){let t=await this.tryCallRequestHandler(e.method,e.params);"error"in t&&console.error("Error handling request",e,t.error),await this.sendMessage({jsonrpc:"2.0",id:e.id,...t})}else if("method"in e){let t=await this.tryCallNotificationHandler(e.method,e.params);"error"in t&&console.error("Error handling notification",e,t.error)}else"id"in e?this.handleResponse(e):console.error("Invalid message",{message:e})}async tryCallRequestHandler(e,t){try{return{result:await this.requestHandler(e,t)??null}}catch(t){let e;if(t instanceof oR)return t.toResult();if(t instanceof eC.z.ZodError)return oR.invalidParams(t.format()).toResult();t instanceof Error?e=t.message:"object"==typeof t&&null!=t&&"message"in t&&"string"==typeof t.message&&(e=t.message);try{return oR.internalError(e?JSON.parse(e):{}).toResult()}catch{return oR.internalError({details:e}).toResult()}}}async tryCallNotificationHandler(e,t){try{return await this.notificationHandler(e,t),{result:null}}catch(t){let e;if(t instanceof oR)return t.toResult();if(t instanceof eC.z.ZodError)return oR.invalidParams(t.format()).toResult();t instanceof Error?e=t.message:"object"==typeof t&&null!=t&&"message"in t&&"string"==typeof t.message&&(e=t.message);try{return oR.internalError(e?JSON.parse(e):{}).toResult()}catch{return oR.internalError({details:e}).toResult()}}}handleResponse(e){let t=this.pendingResponses.get(e.id);if(t){if("result"in e)t.resolve(e.result);else if("error"in e){let{code:n,message:i,data:o}=e.error;t.reject(new oR(n,i,o))}this.pendingResponses.delete(e.id)}else console.error("Got response to unknown request",e.id)}sendRequest(e,t,n){if(this.abortController.signal.aborted)return oC(this.closedReason());let i=this.nextRequestId++,o=new Promise((e,t)=>{this.pendingResponses.set(i,{resolve:i=>{try{e(n?n(i):i)}catch(e){t(e)}},reject:t})});return o.catch(()=>{}),this.sendMessage({jsonrpc:"2.0",id:i,method:e,params:t}),o}sendNotification(e,t){return this.abortController.signal.aborted?oC(this.closedReason()):this.sendMessage({jsonrpc:"2.0",method:e,params:t})}closedReason(){return this.abortController.signal.reason??Error("ACP connection closed")}async sendMessage(e){return this.writeQueue=this.writeQueue.then(async()=>{let t=this.stream.writable.getWriter();try{await t.write(e)}finally{t.releaseLock()}}).catch(e=>{this.close(e)}),this.writeQueue}}class oR extends Error{code;data;constructor(e,t,n){super(t),this.code=e,this.name="RequestError",this.data=n}static parseError(e,t){return new oR(-32700,`Parse error${t?`: ${t}`:""}`,e)}static invalidRequest(e,t){return new oR(-32600,`Invalid request${t?`: ${t}`:""}`,e)}static methodNotFound(e){return new oR(-32601,`"Method not found": ${e}`,{method:e})}static invalidParams(e,t){return new oR(-32602,`Invalid params${t?`: ${t}`:""}`,e)}static internalError(e,t){return new oR(-32603,`Internal error${t?`: ${t}`:""}`,e)}static authRequired(e,t){return new oR(-32e3,`Authentication required${t?`: ${t}`:""}`,e)}static resourceNotFound(e){return new oR(-32002,`Resource not found${e?`: ${e}`:""}`,e&&{uri:e})}toResult(){return{error:{code:this.code,message:this.message,data:this.data}}}toErrorResponse(){return{code:this.code,message:this.message,data:this.data}}}var oP=e.i(81111),oM=e.i(62810),oE=e.i(61095),oO=e.i(7855),oN=e.i(51047),oN=oN;let oq=oO.custom(e=>null!==e&&("object"==typeof e||"function"==typeof e)),oU=oO.union([oO.string(),oO.number().int()]),oD=oO.string();oO.looseObject({ttl:oO.number().optional(),pollInterval:oO.number().optional()});let o$=oO.object({ttl:oO.number().optional()}),oF=oO.object({taskId:oO.string()}),oL=oO.looseObject({progressToken:oU.optional(),"io.modelcontextprotocol/related-task":oF.optional()}),oH=oO.object({_meta:oL.optional()}),oV=oH.extend({task:o$.optional()}),oJ=oO.object({method:oO.string(),params:oH.loose().optional()}),oW=oO.object({_meta:oL.optional()}),oB=oO.object({method:oO.string(),params:oW.loose().optional()}),oK=oO.looseObject({_meta:oL.optional()}),oG=oO.union([oO.string(),oO.number().int()]),oY=oO.object({jsonrpc:oO.literal("2.0"),id:oG,...oJ.shape}).strict(),oZ=oO.object({jsonrpc:oO.literal("2.0"),...oB.shape}).strict(),oX=oO.object({jsonrpc:oO.literal("2.0"),id:oG,result:oK}).strict();(t=n||(n={}))[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired";let oQ=oO.object({jsonrpc:oO.literal("2.0"),id:oG.optional(),error:oO.object({code:oO.number().int(),message:oO.string(),data:oO.unknown().optional()})}).strict();oO.union([oY,oZ,oX,oQ]),oO.union([oX,oQ]);let o0=oK.strict(),o2=oW.extend({requestId:oG.optional(),reason:oO.string().optional()}),o1=oB.extend({method:oO.literal("notifications/cancelled"),params:o2}),o3=oO.object({src:oO.string(),mimeType:oO.string().optional(),sizes:oO.array(oO.string()).optional(),theme:oO.enum(["light","dark"]).optional()}),o5=oO.object({icons:oO.array(o3).optional()}),o6=oO.object({name:oO.string(),title:oO.string().optional()}),o4=o6.extend({...o6.shape,...o5.shape,version:oO.string(),websiteUrl:oO.string().optional(),description:oO.string().optional()}),o9=oO.intersection(oO.object({applyDefaults:oO.boolean().optional()}),oO.record(oO.string(),oO.unknown())),o7=oO.preprocess(e=>e&&"object"==typeof e&&!Array.isArray(e)&&0===Object.keys(e).length?{form:{}}:e,oO.intersection(oO.object({form:o9.optional(),url:oq.optional()}),oO.record(oO.string(),oO.unknown()).optional())),o8=oO.looseObject({list:oq.optional(),cancel:oq.optional(),requests:oO.looseObject({sampling:oO.looseObject({createMessage:oq.optional()}).optional(),elicitation:oO.looseObject({create:oq.optional()}).optional()}).optional()}),re=oO.looseObject({list:oq.optional(),cancel:oq.optional(),requests:oO.looseObject({tools:oO.looseObject({call:oq.optional()}).optional()}).optional()}),rt=oO.object({experimental:oO.record(oO.string(),oq).optional(),sampling:oO.object({context:oq.optional(),tools:oq.optional()}).optional(),elicitation:o7.optional(),roots:oO.object({listChanged:oO.boolean().optional()}).optional(),tasks:o8.optional(),extensions:oO.record(oO.string(),oq).optional()}),rn=oH.extend({protocolVersion:oO.string(),capabilities:rt,clientInfo:o4}),ri=oJ.extend({method:oO.literal("initialize"),params:rn}),ro=oO.object({experimental:oO.record(oO.string(),oq).optional(),logging:oq.optional(),completions:oq.optional(),prompts:oO.object({listChanged:oO.boolean().optional()}).optional(),resources:oO.object({subscribe:oO.boolean().optional(),listChanged:oO.boolean().optional()}).optional(),tools:oO.object({listChanged:oO.boolean().optional()}).optional(),tasks:re.optional(),extensions:oO.record(oO.string(),oq).optional()}),rr=oK.extend({protocolVersion:oO.string(),capabilities:ro,serverInfo:o4,instructions:oO.string().optional()}),rs=oB.extend({method:oO.literal("notifications/initialized"),params:oW.optional()}),ra=oJ.extend({method:oO.literal("ping"),params:oH.optional()}),rl=oO.object({progress:oO.number(),total:oO.optional(oO.number()),message:oO.optional(oO.string())}),ru=oO.object({...oW.shape,...rl.shape,progressToken:oU}),rc=oB.extend({method:oO.literal("notifications/progress"),params:ru}),rd=oH.extend({cursor:oD.optional()}),rp=oJ.extend({params:rd.optional()}),rm=oK.extend({nextCursor:oD.optional()}),rg=oO.enum(["working","input_required","completed","failed","cancelled"]),rh=oO.object({taskId:oO.string(),status:rg,ttl:oO.union([oO.number(),oO.null()]),createdAt:oO.string(),lastUpdatedAt:oO.string(),pollInterval:oO.optional(oO.number()),statusMessage:oO.optional(oO.string())}),rz=oK.extend({task:rh}),rf=oW.merge(rh),rb=oB.extend({method:oO.literal("notifications/tasks/status"),params:rf}),ry=oJ.extend({method:oO.literal("tasks/get"),params:oH.extend({taskId:oO.string()})}),rw=oK.merge(rh),rv=oJ.extend({method:oO.literal("tasks/result"),params:oH.extend({taskId:oO.string()})});oK.loose();let rj=rp.extend({method:oO.literal("tasks/list")}),r_=rm.extend({tasks:oO.array(rh)}),rk=oJ.extend({method:oO.literal("tasks/cancel"),params:oH.extend({taskId:oO.string()})});oK.merge(rh);let rI=oO.object({uri:oO.string(),mimeType:oO.optional(oO.string()),_meta:oO.record(oO.string(),oO.unknown()).optional()}),rx=rI.extend({text:oO.string()}),rS=oO.string().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),rC=rI.extend({blob:rS}),rA=oO.enum(["user","assistant"]),rT=oO.object({audience:oO.array(rA).optional(),priority:oO.number().min(0).max(1).optional(),lastModified:oN.datetime({offset:!0}).optional()}),rR=oO.object({...o6.shape,...o5.shape,uri:oO.string(),description:oO.optional(oO.string()),mimeType:oO.optional(oO.string()),size:oO.optional(oO.number()),annotations:rT.optional(),_meta:oO.optional(oO.looseObject({}))}),rP=oO.object({...o6.shape,...o5.shape,uriTemplate:oO.string(),description:oO.optional(oO.string()),mimeType:oO.optional(oO.string()),annotations:rT.optional(),_meta:oO.optional(oO.looseObject({}))}),rM=rp.extend({method:oO.literal("resources/list")}),rE=rm.extend({resources:oO.array(rR)}),rO=rp.extend({method:oO.literal("resources/templates/list")}),rN=rm.extend({resourceTemplates:oO.array(rP)}),rq=oH.extend({uri:oO.string()}),rU=oJ.extend({method:oO.literal("resources/read"),params:rq}),rD=oK.extend({contents:oO.array(oO.union([rx,rC]))}),r$=oB.extend({method:oO.literal("notifications/resources/list_changed"),params:oW.optional()}),rF=oJ.extend({method:oO.literal("resources/subscribe"),params:rq}),rL=oJ.extend({method:oO.literal("resources/unsubscribe"),params:rq}),rH=oW.extend({uri:oO.string()}),rV=oB.extend({method:oO.literal("notifications/resources/updated"),params:rH}),rJ=oO.object({name:oO.string(),description:oO.optional(oO.string()),required:oO.optional(oO.boolean())}),rW=oO.object({...o6.shape,...o5.shape,description:oO.optional(oO.string()),arguments:oO.optional(oO.array(rJ)),_meta:oO.optional(oO.looseObject({}))}),rB=rp.extend({method:oO.literal("prompts/list")}),rK=rm.extend({prompts:oO.array(rW)}),rG=oH.extend({name:oO.string(),arguments:oO.record(oO.string(),oO.string()).optional()}),rY=oJ.extend({method:oO.literal("prompts/get"),params:rG}),rZ=oO.object({type:oO.literal("text"),text:oO.string(),annotations:rT.optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),rX=oO.object({type:oO.literal("image"),data:rS,mimeType:oO.string(),annotations:rT.optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),rQ=oO.object({type:oO.literal("audio"),data:rS,mimeType:oO.string(),annotations:rT.optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),r0=oO.object({type:oO.literal("tool_use"),name:oO.string(),id:oO.string(),input:oO.record(oO.string(),oO.unknown()),_meta:oO.record(oO.string(),oO.unknown()).optional()}),r2=oO.object({type:oO.literal("resource"),resource:oO.union([rx,rC]),annotations:rT.optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),r1=rR.extend({type:oO.literal("resource_link")}),r3=oO.union([rZ,rX,rQ,r1,r2]),r5=oO.object({role:rA,content:r3}),r6=oK.extend({description:oO.string().optional(),messages:oO.array(r5)}),r4=oB.extend({method:oO.literal("notifications/prompts/list_changed"),params:oW.optional()}),r9=oO.object({title:oO.string().optional(),readOnlyHint:oO.boolean().optional(),destructiveHint:oO.boolean().optional(),idempotentHint:oO.boolean().optional(),openWorldHint:oO.boolean().optional()}),r7=oO.object({taskSupport:oO.enum(["required","optional","forbidden"]).optional()}),r8=oO.object({...o6.shape,...o5.shape,description:oO.string().optional(),inputSchema:oO.object({type:oO.literal("object"),properties:oO.record(oO.string(),oq).optional(),required:oO.array(oO.string()).optional()}).catchall(oO.unknown()),outputSchema:oO.object({type:oO.literal("object"),properties:oO.record(oO.string(),oq).optional(),required:oO.array(oO.string()).optional()}).catchall(oO.unknown()).optional(),annotations:r9.optional(),execution:r7.optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),se=rp.extend({method:oO.literal("tools/list")}),st=rm.extend({tools:oO.array(r8)}),sn=oK.extend({content:oO.array(r3).default([]),structuredContent:oO.record(oO.string(),oO.unknown()).optional(),isError:oO.boolean().optional()});sn.or(oK.extend({toolResult:oO.unknown()}));let si=oV.extend({name:oO.string(),arguments:oO.record(oO.string(),oO.unknown()).optional()}),so=oJ.extend({method:oO.literal("tools/call"),params:si}),sr=oB.extend({method:oO.literal("notifications/tools/list_changed"),params:oW.optional()});oO.object({autoRefresh:oO.boolean().default(!0),debounceMs:oO.number().int().nonnegative().default(300)});let ss=oO.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),sa=oH.extend({level:ss}),sl=oJ.extend({method:oO.literal("logging/setLevel"),params:sa}),su=oW.extend({level:ss,logger:oO.string().optional(),data:oO.unknown()}),sc=oB.extend({method:oO.literal("notifications/message"),params:su}),sd=oO.object({name:oO.string().optional()}),sp=oO.object({hints:oO.array(sd).optional(),costPriority:oO.number().min(0).max(1).optional(),speedPriority:oO.number().min(0).max(1).optional(),intelligencePriority:oO.number().min(0).max(1).optional()}),sm=oO.object({mode:oO.enum(["auto","required","none"]).optional()}),sg=oO.object({type:oO.literal("tool_result"),toolUseId:oO.string().describe("The unique identifier for the corresponding tool call."),content:oO.array(r3).default([]),structuredContent:oO.object({}).loose().optional(),isError:oO.boolean().optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),sh=oO.discriminatedUnion("type",[rZ,rX,rQ]),sz=oO.discriminatedUnion("type",[rZ,rX,rQ,r0,sg]),sf=oO.object({role:rA,content:oO.union([sz,oO.array(sz)]),_meta:oO.record(oO.string(),oO.unknown()).optional()}),sb=oV.extend({messages:oO.array(sf),modelPreferences:sp.optional(),systemPrompt:oO.string().optional(),includeContext:oO.enum(["none","thisServer","allServers"]).optional(),temperature:oO.number().optional(),maxTokens:oO.number().int(),stopSequences:oO.array(oO.string()).optional(),metadata:oq.optional(),tools:oO.array(r8).optional(),toolChoice:sm.optional()}),sy=oJ.extend({method:oO.literal("sampling/createMessage"),params:sb}),sw=oK.extend({model:oO.string(),stopReason:oO.optional(oO.enum(["endTurn","stopSequence","maxTokens"]).or(oO.string())),role:rA,content:sh}),sv=oK.extend({model:oO.string(),stopReason:oO.optional(oO.enum(["endTurn","stopSequence","maxTokens","toolUse"]).or(oO.string())),role:rA,content:oO.union([sz,oO.array(sz)])}),sj=oO.object({type:oO.literal("boolean"),title:oO.string().optional(),description:oO.string().optional(),default:oO.boolean().optional()}),s_=oO.object({type:oO.literal("string"),title:oO.string().optional(),description:oO.string().optional(),minLength:oO.number().optional(),maxLength:oO.number().optional(),format:oO.enum(["email","uri","date","date-time"]).optional(),default:oO.string().optional()}),sk=oO.object({type:oO.enum(["number","integer"]),title:oO.string().optional(),description:oO.string().optional(),minimum:oO.number().optional(),maximum:oO.number().optional(),default:oO.number().optional()}),sI=oO.object({type:oO.literal("string"),title:oO.string().optional(),description:oO.string().optional(),enum:oO.array(oO.string()),default:oO.string().optional()}),sx=oO.object({type:oO.literal("string"),title:oO.string().optional(),description:oO.string().optional(),oneOf:oO.array(oO.object({const:oO.string(),title:oO.string()})),default:oO.string().optional()}),sS=oO.object({type:oO.literal("string"),title:oO.string().optional(),description:oO.string().optional(),enum:oO.array(oO.string()),enumNames:oO.array(oO.string()).optional(),default:oO.string().optional()}),sC=oO.union([sI,sx]),sA=oO.object({type:oO.literal("array"),title:oO.string().optional(),description:oO.string().optional(),minItems:oO.number().optional(),maxItems:oO.number().optional(),items:oO.object({type:oO.literal("string"),enum:oO.array(oO.string())}),default:oO.array(oO.string()).optional()}),sT=oO.object({type:oO.literal("array"),title:oO.string().optional(),description:oO.string().optional(),minItems:oO.number().optional(),maxItems:oO.number().optional(),items:oO.object({anyOf:oO.array(oO.object({const:oO.string(),title:oO.string()}))}),default:oO.array(oO.string()).optional()}),sR=oO.union([sA,sT]),sP=oO.union([sS,sC,sR]),sM=oO.union([sP,sj,s_,sk]),sE=oV.extend({mode:oO.literal("form").optional(),message:oO.string(),requestedSchema:oO.object({type:oO.literal("object"),properties:oO.record(oO.string(),sM),required:oO.array(oO.string()).optional()})}),sO=oV.extend({mode:oO.literal("url"),message:oO.string(),elicitationId:oO.string(),url:oO.string().url()}),sN=oO.union([sE,sO]),sq=oJ.extend({method:oO.literal("elicitation/create"),params:sN}),sU=oW.extend({elicitationId:oO.string()}),sD=oB.extend({method:oO.literal("notifications/elicitation/complete"),params:sU}),s$=oK.extend({action:oO.enum(["accept","decline","cancel"]),content:oO.preprocess(e=>null===e?void 0:e,oO.record(oO.string(),oO.union([oO.string(),oO.number(),oO.boolean(),oO.array(oO.string())])).optional())}),sF=oO.object({type:oO.literal("ref/resource"),uri:oO.string()}),sL=oO.object({type:oO.literal("ref/prompt"),name:oO.string()}),sH=oH.extend({ref:oO.union([sL,sF]),argument:oO.object({name:oO.string(),value:oO.string()}),context:oO.object({arguments:oO.record(oO.string(),oO.string()).optional()}).optional()}),sV=oJ.extend({method:oO.literal("completion/complete"),params:sH}),sJ=oK.extend({completion:oO.looseObject({values:oO.array(oO.string()).max(100),total:oO.optional(oO.number().int()),hasMore:oO.optional(oO.boolean())})}),sW=oO.object({uri:oO.string().startsWith("file://"),name:oO.string().optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),sB=oJ.extend({method:oO.literal("roots/list"),params:oH.optional()}),sK=oK.extend({roots:oO.array(sW)}),sG=oB.extend({method:oO.literal("notifications/roots/list_changed"),params:oW.optional()});oO.union([ra,ri,sV,sl,rY,rB,rM,rO,rU,rF,rL,so,se,ry,rv,rj,rk]),oO.union([o1,rc,rs,sG,rb]),oO.union([o0,sw,sv,s$,sK,rw,r_,rz]),oO.union([ra,sy,sq,sB,ry,rv,rj,rk]),oO.union([o1,rc,sc,rV,r$,sr,r4,rb,sD]),oO.union([o0,rr,sJ,r6,rK,rE,rN,rD,sn,st,rw,r_,rz]);class sY extends Error{constructor(e,t,n){super(`MCP error ${e}: ${t}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,t,i){return e===n.UrlElicitationRequired&&i&&i.elicitations?new sZ(i.elicitations,t):new sY(e,t,i)}}class sZ extends sY{constructor(e,t=`URL elicitation${e.length>1?"s":""} required`){super(n.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}}var sX=e.i(60526);function sQ(e,t){return{jsonrpc:"2.0",id:e,result:t}}function s0(e,t,n,i){let o={code:t,message:n};return void 0!==i&&(o.data=i),{jsonrpc:"2.0",id:e,error:o}}(0,eS.createRequire)({get url(){return`file://${e.P("lib/acp2aisdk/vendor/acp-ai-provider/package/index.mjs")}`}}.url);var s2=`
3
+ ${r}`.trim():s||"Internal error"}(e instanceof Error?e.message:String(e))}e.s(["acpErrorToMessage",0,I],1594);var x=e.i(59639);function S(e,t){let n=x.default.env[e];if(!n)return t;let i=Number.parseInt(n,10);return Number.isFinite(i)&&i>0?i:t}function C(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if("user"===n.role)return[n]}return[]}function A(e){return e.parts.filter(e=>"text"===e.type).map(e=>e.text.trim()).filter(Boolean).join("\n\n")}function T(e){let t=A(e);if(!t)return null;let n="assistant"===e.role?"Assistant":"system"===e.role?"System":"User";return`${n}: ${t}`}let R=["model","mode","thought_level"];function P(e){return"string"==typeof e?e.trim():""}function M(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=P(e.name??e.command??e.id).replace(/^\/+/,"");return t?{name:t,description:P(e.description),input:e.input,source:"acp"}:null}function E(e){return(Array.isArray(e)?e:[]).map(M).filter(e=>!!e)}function O(e,t){if(!e)return t??null;if(!t)return e;let n={...e.capabilities??{}};for(let e of R){let i=function(e,t){var n;let i;return e?t?{...e,...t,options:t.options.length?(n=t.options,i=new Set,n.filter(e=>!(!e.value||i.has(e.value))&&(i.add(e.value),!0))):e.options,currentValue:void 0!==t.currentValue?t.currentValue:e.currentValue}:e:t??null}(n[e],t.capabilities?.[e]);i&&(n[e]=i)}return{...e,...t,capabilities:n,metadata:{...e.metadata??{availableCommands:[]},...t.metadata??{availableCommands:[]},tokenUsage:t.metadata?.tokenUsage??e.metadata?.tokenUsage??null,availableCommands:function(e,t){let n=[],i=new Set;for(let o of[...E(t),...E(e)]){let e=o.name.replace(/^\/+/,"").toLowerCase();!e||i.has(e)||(i.add(e),n.push(o))}return n}(e.metadata?.availableCommands,t.metadata?.availableCommands)}}}e.s(["mergeAcpCapabilitySnapshots",0,O],5238);var N=e.i(14691);let q={claude:{provider:"claude",sessionId:null,source:"generated-default",updatedAt:"2026-05-27T10:18:02.000Z",ttl:18e5,agentVersion:null,capabilities:{model:{key:"model",currentValue:"sonnet",configId:"model",configKey:"model",source:"fallback",options:[{value:"sonnet",label:"Sonnet",description:"Claude Sonnet 默认模型。",order:0},{value:"opus",label:"Opus",description:"Claude Opus 高能力模型。",order:1},{value:"haiku",label:"Haiku",description:"Claude Haiku 快速模型。",order:2},{value:"opusplan",label:"Opus Plan",description:"Claude Opus 规划模式。",order:3},{value:"sonnet[1m]",label:"Sonnet [1M]",description:"Claude Sonnet 长上下文模型。",order:4}]},mode:{key:"mode",currentValue:N.ACP_PROVIDER_DEFAULT_MODE_IDS.claude,configId:"mode",configKey:"mode",source:"fallback",options:[{value:"default",label:"默认",description:"使用供应商默认权限策略。",order:0},{value:"acceptEdits",label:"接受编辑",description:"允许编辑类操作更顺畅地继续。",order:1},{value:"bypassPermissions",label:"绕过权限",description:"尽量减少权限确认,适合受信任工作区。",order:2},{value:"plan",label:"计划",description:"先规划再执行,适合复杂任务。",order:3}]},thought_level:{key:"thought_level",currentValue:"none",configId:"thought_level",configKey:"thought_level",source:"fallback",options:[{value:"none",label:"无",description:"不额外请求思考深度。",order:0},{value:"think",label:"Think",description:"轻量思考。",order:1},{value:"think-hard",label:"Think Hard",description:"更深入思考。",order:2},{value:"think-harder",label:"Think Harder",description:"高强度思考。",order:3},{value:"ultrathink",label:"Ultrathink",description:"最高强度思考。",order:4}]}},metadata:{availableCommands:[],tokenUsage:null,rawSession:null}},codex:{provider:"codex",sessionId:null,source:"generated-default",updatedAt:"2026-05-26T06:24:12.704Z",ttl:18e5,agentVersion:null,capabilities:{model:{key:"model",currentValue:"gpt-5.5",configId:"model",configKey:"model",source:"fallback",options:[{value:"gpt-5.5",label:"GPT-5.5",description:"适合复杂编码、研究和真实工作场景的前沿模型。",order:0},{value:"gpt-5.4",label:"gpt-5.4",description:"适合日常编码的强力模型。",order:1},{value:"gpt-5.4-mini",label:"GPT-5.4-Mini",description:"适合简单编码任务的小型、快速且高性价比模型。",order:2},{value:"gpt-5.3-codex",label:"gpt-5.3-codex",description:"针对编码优化的模型。",order:3},{value:"gpt-5.2",label:"gpt-5.2",description:"针对专业工作和长时间运行的 agent 优化。",order:4}]},mode:{key:"mode",currentValue:N.ACP_PROVIDER_DEFAULT_MODE_IDS.codex,configId:"mode",configKey:"mode",source:"fallback",options:[{value:"read-only",label:"只读",description:"Codex 可以读取当前工作区文件。编辑文件或访问互联网需要审批。",order:0},{value:"auto",label:"默认",description:"Codex 可以读取和编辑当前工作区文件,并运行命令。访问互联网或编辑其他文件需要审批。(等同于 Agent 模式)",order:1},{value:"full-access",label:"完全访问",description:"Codex 可以编辑工作区外的文件并访问互联网,无需请求审批。使用时请谨慎。",order:2}]},thought_level:{key:"thought_level",currentValue:"xhigh",configId:"reasoning_effort",configKey:"reasoning_effort",source:"fallback",options:[{value:"low",label:"低",description:"更轻量推理,响应更快",order:0},{value:"medium",label:"中",description:"在速度和推理深度之间取得平衡,适合日常任务",order:1},{value:"high",label:"高",description:"为复杂问题提供更深的推理",order:2},{value:"xhigh",label:"极高",description:"为复杂问题提供极高推理深度",order:3}]}},metadata:{availableCommands:[],tokenUsage:null,rawSession:null}},gemini:{provider:"gemini",sessionId:null,source:"generated-default",updatedAt:"2026-05-27T10:18:02.000Z",ttl:18e5,agentVersion:null,capabilities:{model:{key:"model",currentValue:"gemini-3-pro-preview",configId:"model",configKey:"model",source:"fallback",options:[{value:"gemini-2.5-pro",label:"Gemini 2.5 Pro",description:"Gemini Pro 稳定模型。",order:0},{value:"gemini-2.5-flash",label:"Gemini 2.5 Flash",description:"Gemini Flash 快速模型。",order:1},{value:"gemini-3-pro-preview",label:"Gemini 3 Pro Preview",description:"Gemini 3 Pro 预览模型。",order:2},{value:"gemini-3-flash-preview",label:"Gemini 3 Flash Preview",description:"Gemini 3 Flash 预览模型。",order:3}]},mode:{key:"mode",currentValue:N.ACP_PROVIDER_DEFAULT_MODE_IDS.gemini,configId:"mode",configKey:"mode",source:"fallback",options:[{value:"default",label:"默认",description:"使用供应商默认权限策略。",order:0},{value:"acceptEdits",label:"接受编辑",description:"允许编辑类操作更顺畅地继续。",order:1},{value:"bypassPermissions",label:"绕过权限",description:"尽量减少权限确认,适合受信任工作区。",order:2}]},thought_level:{key:"thought_level",currentValue:"none",configId:"thought_level",configKey:"thought_level",source:"fallback",options:[{value:"none",label:"无",description:"不额外请求思考深度。",order:0}]}},metadata:{availableCommands:[],tokenUsage:null,rawSession:null}},opencode:{provider:"opencode",sessionId:null,source:"generated-default",updatedAt:"2026-05-27T10:18:02.000Z",ttl:18e5,agentVersion:null,capabilities:{model:{key:"model",currentValue:"opencode/big-pickle",configId:"model",configKey:"model",source:"fallback",options:[{value:"opencode/big-pickle",label:"OpenCode Zen/Big Pickle",description:"OpenCode 默认模型。",order:0},{value:"opencode/nemotron-3-super-free",label:"OpenCode Zen/Nemotron 3 Super Free",description:"OpenCode 可用模型。",order:1},{value:"opencode/deepseek-v4-flash-free",label:"OpenCode Zen/DeepSeek V4 Flash Free",description:"OpenCode 可用模型。",order:2}]},mode:{key:"mode",currentValue:N.ACP_PROVIDER_DEFAULT_MODE_IDS.opencode,configId:"mode",configKey:"mode",source:"fallback",options:[{value:"build",label:"build",description:"The default agent. Executes tools based on configured permissions.",order:0},{value:"plan",label:"plan",description:"Plan mode. Disallows all edit tools.",order:1}]},thought_level:{key:"thought_level",currentValue:"none",configId:"thought_level",configKey:"thought_level",source:"fallback",options:[{value:"none",label:"无",description:"不额外请求思考深度。",order:0}]}},metadata:{availableCommands:[],tokenUsage:null,rawSession:null}}};function U(e){return q[String(e??"").trim().toLowerCase()]??null}function $(e){return"string"==typeof e?e.trim():""}function D(e,t,n,i=0){let o=$(e);return o?{value:o,label:$(t)||o,description:$(n),order:i}:null}function F(e){return!e||"object"!=typeof e||Array.isArray(e)?D(e,e):D(e.value??e.id??e.modeId??e.name,e.name??e.label??e.title,e.description)}function L(e){let t=new Set;return e.filter(e=>!t.has(e.value)&&(t.add(e.value),!0))}function H(e){if(!Array.isArray(e))return[];let t=[];return e.forEach((e,n)=>{if(!e||"object"!=typeof e||Array.isArray(e)){let i=D(e,e,void 0,n);i&&t.push(i);return}if(Array.isArray(e.options))return void e.options.forEach((e,n)=>{if(!e||"object"!=typeof e||Array.isArray(e))return;let i=D(e.value??e.id,e.name??e.label,e.description,n);i&&t.push(i)});let i=D(e.value??e.id,e.name??e.label,e.description,n);i&&t.push(i)}),L(t)}function V({provider:e,sessionResponse:t}){let n=U(e),i=function({provider:e,sessionResponse:t}){var n,i;let o={};if(t){let e,i,r,s,a=(e=t.models,(i=Array.isArray(e?.availableModels)?e.availableModels:[]).length||e?.currentModelId?{key:"model",currentValue:$(e?.currentModelId)||null,options:i.map((e,t)=>D(e.modelId,e.name,e.description,t)).filter(e=>!!e),source:"session"}:null),l=(r=t.modes,(s=Array.isArray(r?.availableModes)?r.availableModes:[]).length||r?.currentModeId?{key:"mode",currentValue:$(r?.currentModeId)||null,options:s.map((e,t)=>D(e.id,e.name,e.description,t)).filter(e=>!!e),source:"session"}:null);for(let e of(a&&(o.model=a),l&&(o.mode=l),Array.isArray(n=t.configOptions)?n.filter(e=>!!(e&&"object"==typeof e&&!Array.isArray(e))):[])){let t=function(e){var t;let n=$(e.category||e.id||e.key);if("model"!==n&&"mode"!==n&&"thought_level"!==n)return null;let i=F(e.currentValue),o=F(e.value),r=L([...H(e.options),...!(t=e.schema)||"object"!=typeof t||Array.isArray(t)?[]:H(Array.isArray(t.options)&&t.options||Array.isArray(t.enum)&&t.enum||Array.isArray(t.oneOf)&&t.oneOf||Array.isArray(t.anyOf)&&t.anyOf||[]),...i?[i]:o?[o]:[]]);return{key:n,currentValue:i?.value||o?.value||r.find(e=>e.default)?.value||null,options:r,configId:$(e.id||e.key||e.category)||n,configKey:$(e.key||e.id||e.category)||n,source:"config-option"}}(e);t&&(o[t.key]={...o[t.key],...t,options:t.options.length?t.options:o[t.key]?.options??[]})}}return{provider:e,sessionId:t?.sessionId??null,updatedAt:new Date().toISOString(),ttl:void 0,source:"session",agentVersion:null,capabilities:o,metadata:{availableCommands:(Array.isArray(i=t?.availableCommands)?i:[]).map(e=>{if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=$(e.name||e.command||e.id).replace(/^\/+/,"");return t?{name:t,description:$(e.description),input:e.input,source:"acp"}:null}).filter(e=>!!e),agentCapabilities:t?.agentCapabilities,sessionCapabilities:t?.sessionCapabilities,mcpCapabilities:t?.mcpCapabilities,planCapabilities:t?.planCapabilities,clientCapabilities:t?.clientCapabilities,rawSession:t}}}({provider:e,sessionResponse:t});return O(n,i)??i}function J(e){return!!(e&&"object"==typeof e&&!Array.isArray(e))}function W(e){let t=e.model;return J(t)?t:null}function B(e){return"string"==typeof e?e.trim():""}function K(e,t){e.enqueue({type:"raw",rawValue:JSON.stringify(t)})}function G(){return{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0}}}function Y(e,t){try{return e.enqueue(t),!0}catch{return!1}}function Z(e){try{e.close?.()}catch{}}function X(e,t,n,i){for(let t of e)Y(i,{type:"text-end",id:t});for(let e of t)Y(i,{type:"reasoning-end",id:e});e.clear(),t.clear(),n.currentTextId=null,n.currentThinkingId=null}function Q(e,t){let n=new Set,i=new Set;return t.pipeThrough(new TransformStream({transform(t,o){if(J(t)){let r=t.type,s="string"==typeof t.id?t.id:null;if(("finish"===r||"error"===r||"tool-call"===r||"tool-result"===r||"tool-input-start"===r)&&X(n,i,e,o),"text-start"===r&&s)n.add(s),e.currentTextId=s;else if("text-end"===r&&s){if(!n.has(s)){e.currentTextId===s&&(e.currentTextId=null);return}n.delete(s),e.currentTextId===s&&(e.currentTextId=null)}else if("reasoning-start"===r&&s)i.add(s),e.currentThinkingId=s;else if("reasoning-end"===r&&s){if(!i.has(s)){e.currentThinkingId===s&&(e.currentThinkingId=null);return}i.delete(s),e.currentThinkingId===s&&(e.currentThinkingId=null)}}o.enqueue(t)},flush(t){X(n,i,e,t)}}))}function ee(e){let t=e.client;t&&(t.setPermissionRequestHandler?.(async e=>({outcome:{outcome:"selected",optionId:function(e,t="allow_once"){let n=(Array.isArray(e.options)?e.options:[]).map(e=>u(e)?c(e.optionId||e.id):"").filter(Boolean);return n.find(e=>e===t)||n.find(e=>e.includes(t))||n.find(e=>e.includes("allow_once"))||n.find(e=>e.includes("allow"))||n[0]||t}(e)}})),t.unstable_createElicitation=async t=>{let n,i,o,r=e.__acpUiPromptPromise,s=r?function(e,t){let n;if("form"!==e.mode)return null;let i=function(e){let t=f(e.requestedSchema)?e.requestedSchema:{},n=Object.entries(f(t.properties)?t.properties:{}).filter(e=>f(e[1]));if(1!==n.length)return null;let i=new Set(y(t.required)),[o,r]=n[0];return[o,r,i.has(o)]}(e);if(!i)return null;let[o,r,s]=i,a=r.type,l="array"===a?"multi":"single";if("array"!==a&&"string"!==a)return null;let u="multi"===l&&(n=v(f(r.items)?r.items:{})).length>0?n:v(r);if(0===u.length)return null;let c=w(r.minItems)??+!!s,d="single"===l?1:w(r.maxItems);return{toolCallId:t,message:b(e.message)||b(r.description)||"Choose an option",fieldName:o,fieldTitle:b(r.title)||o,...b(r.description)?{fieldDescription:b(r.description)}:{},selectionMode:l,options:u,defaultValue:function(e,t,n){let i=new Set(n.map(e=>e.id));if("multi"===t){let t=y(e.default).filter(e=>i.has(e));return t.length>0?t:null}let o=b(e.default);return o&&i.has(o)?o:null}(r,l,u),minSelections:c,...void 0!==d?{maxSelections:d}:{},required:s}}(t,(o=(e.__acpUiElicitationSequence??0)+1,e.__acpUiElicitationSequence=o,`acp-elicitation-${o}`)):null;if(!r||!s||e.__acpUiPendingElicitation)return p(t);let a=s.toolCallId,l=new Promise((e,t)=>{n=e,i=t});return(e.__acpUiPendingElicitation={toolCallId:a,request:t,promptPromise:r,resolve:n,reject:i},!function(e,t){let n=e.clientToolAbort,i=n?.controller;return!!n&&!!i&&(e.currentTextId&&(Y(i,{type:"text-end",id:e.currentTextId}),e.currentTextId=null),e.currentThinkingId&&(Y(i,{type:"reasoning-end",id:e.currentThinkingId}),e.currentThinkingId=null),!!Y(i,{type:"tool-call",toolCallId:t.toolCallId,toolName:g,input:JSON.stringify(t)})&&(Y(i,{type:"finish",finishReason:{unified:"tool-calls",raw:void 0},usage:G()}),Z(i),n.resolve(),!0))}(e,s))?(e.__acpUiPendingElicitation=null,p(t)):l})}async function et(e,t){let n=W(e),i=n?.connection,o=B(n?.sessionId??e.getSessionId());if(!i?.closeSession||!o)return!1;try{return await i.closeSession({sessionId:o}),!0}catch(e){return t?.warnings.push(`Failed to close ACP session "${o}" via session/close: ${e instanceof Error?e.message:String(e)}`),!1}}q.codex,e.s(["getDefaultAcpCapabilitySnapshot",0,U],34112);var en=e.i(96493),ei=e.i(64050),eo=e.i(99534),er=e.i(6138);async function es(e,t,n,i,o){let r,s="boolean"==typeof i?i:String(i??"").trim();if(""===s)return!1;let a=(r=e.model)&&"object"==typeof r?r:null,l=a?.connection,u=a?.sessionId??e.getSessionId(),c=function(e){if(!e||"fallback"===e.source)return null;let t=String(e?.configId??"").trim();return t||String(e?.key??"").trim()||null}(t.capabilitySnapshot?.capabilities[n]);if(!l?.setSessionConfigOption||!u||!c||!a)return!1;try{let e=await l.setSessionConfigOption({...function({sessionId:e,configId:t,value:n}){return"boolean"==typeof n?{sessionId:e,configId:t,type:"boolean",value:n}:{sessionId:e,configId:t,value:n}}({sessionId:u,configId:c,value:s})});return!function({metadata:e,model:t,sessionId:n,configOptions:i}){Array.isArray(i)&&(t.sessionResponse={...t.sessionResponse??{},sessionId:n,configOptions:i},e.capabilitySnapshot=V({provider:e.provider,sessionResponse:t.sessionResponse}))}({metadata:t,model:a,sessionId:u,configOptions:e?.configOptions}),!0}catch(e){return t.warnings.push(`Failed to set ACP ${o} "${s}": ${e instanceof Error?e.message:String(e)}`),!1}}async function ea(e,t){let n=String(t.thoughtLevel??"").trim();!n||await es(e,t,"thought_level",n,"thought level")||t.warnings.push(`ACP thought level "${n}" is selected, but this session does not expose a configurable thought_level option.`)}var el=e.i(34588),eu=e.i(74533),ec=e.i(2157),ed=e.i(50227);let ep="cmd.exe",em=["/opt/homebrew/bin","/usr/local/bin","/usr/bin","/bin","/usr/sbin","/sbin"],eg=["C:\\Program Files\\nodejs"];function eh(e){return"string"==typeof e?{platform:e,execPath:process.execPath,env:process.env}:{platform:e?.platform??process.platform,execPath:e?.execPath??process.execPath,env:e?.env??process.env}}function ez(e,t){let n=e[t];if("string"==typeof n&&n.length>0)return n;let i=Object.keys(e).find(e=>e.toLowerCase()===t.toLowerCase());if(!i)return;let o=e[i];return"string"==typeof o&&o.length>0?o:void 0}function ef(e,t,n){!t||e.some(e=>"win32"===n?e.toLowerCase()===t.toLowerCase():e===t)||e.push(t)}function eb(e){return(ez(e,"PATHEXT")||".COM;.EXE;.BAT;.CMD").split(";").map(e=>e.trim()).filter(Boolean).map(e=>e.startsWith(".")?e.toLowerCase():`.${e.toLowerCase()}`)}function ey(e){let{platform:t,execPath:n,env:i}=eh(e),o=function(e){let t={};for(let[n,i]of Object.entries(e))"string"==typeof i&&(t[n]=i);return t}(i),r="win32"===t?ed.default.win32:ed.default.posix,s="win32"===t?";":":",a="win32"===t?"Path":"PATH",l=(ez(o,"PATH")||"").split(s).filter(Boolean);if(ef(l,r.dirname(n),t),"win32"===t){let e=ez(o,"APPDATA");for(let n of(e&&ef(l,ed.default.win32.join(e,"npm"),t),eg))ef(l,n,t);let n=eb(o);for(let e of[".com",".exe",".bat",".cmd"])n.includes(e)||n.push(e);for(let e of(o.PATHEXT=n.map(e=>e.toUpperCase()).join(";"),Object.keys(o)))"path"===e.toLowerCase()&&delete o[e];let i=l.join(s);o[a]=i,o.PATH=i}else{for(let e of em)ef(l,e,t);delete o.Path,o[a]=l.join(s)}return o}function ew(e){return/[\\/]/.test(e)}function ev(e,t){if(!(0,ec.existsSync)(e))return!1;if("win32"===t)return!0;try{return(0,ec.accessSync)(e,ec.constants.X_OK),!0}catch{return!1}}function ej(e,t){let n=e.trim();if(!n)return n;let i=ew(n),o=ed.default.win32.extname(n)?[""]:eb(t),r=i?[""]:(ez(t,"PATH")||"").split(";").map(e=>e.trim()).filter(Boolean);for(let e of i?[n]:r.map(e=>ed.default.win32.join(e,n)))for(let t of o){let n=t?`${e}${t}`:e;if((0,ec.existsSync)(n))return n}return n}function e_(e){return[e.command,...e.args??[]].map(e=>/\s/.test(e)?JSON.stringify(e):e).join(" ")}function ek(e){let t=Error(`ACP provider command not found: ${e_(e)}`);return t.code="ENOENT",t}var eI=e.i(60199),ex=e.i(21702),eS=e.i(44376),eC=e.i(69719);let eA=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),terminal:eC.z.boolean().optional().default(!1)}),eT=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),label:eC.z.string().nullish(),name:eC.z.string(),optional:eC.z.boolean().optional().default(!1),secret:eC.z.boolean().optional().default(!0)}),eR=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string().nullish(),id:eC.z.string(),name:eC.z.string()}),eP=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string().nullish(),id:eC.z.string(),link:eC.z.string().nullish(),name:eC.z.string(),vars:eC.z.array(eT)}),eM=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),args:eC.z.array(eC.z.string()).optional(),description:eC.z.string().nullish(),env:eC.z.record(eC.z.string(),eC.z.string()).optional(),id:eC.z.string(),name:eC.z.string()}),eE=eC.z.union([eP.and(eC.z.object({type:eC.z.literal("env_var")})),eM.and(eC.z.object({type:eC.z.literal("terminal")})),eR]),eO=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),methodId:eC.z.string()}),eN=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eq=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),blob:eC.z.string(),mimeType:eC.z.string().nullish(),uri:eC.z.string()}),eU=eC.z.object({default:eC.z.boolean().nullish(),description:eC.z.string().nullish(),title:eC.z.string().nullish()}),e$=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eD=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eF=eC.z.object({amount:eC.z.number(),currency:eC.z.string()}),eL=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),terminalId:eC.z.string()}),eH=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eV=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),newText:eC.z.string(),oldText:eC.z.string().nullish(),path:eC.z.string()}),eJ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:eC.z.string()}),eW=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eB=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eK=eC.z.union([eC.z.string(),eC.z.number(),eC.z.number(),eC.z.boolean(),eC.z.array(eC.z.string())]),eG=eC.z.object({content:eC.z.record(eC.z.string(),eK).nullish()}),eY=eC.z.intersection(eC.z.union([eG.and(eC.z.object({action:eC.z.literal("accept")})),eC.z.object({action:eC.z.literal("decline")}),eC.z.object({action:eC.z.literal("cancel")})]),eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()})),eZ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),eX=eC.z.string(),eQ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),elicitationId:eX}),e0=eC.z.literal("object"),e2=eC.z.literal("string"),e1=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),e3=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),form:eZ.nullish(),url:e1.nullish()}),e5=eC.z.object({const:eC.z.string(),title:eC.z.string()}),e6=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),name:eC.z.string(),value:eC.z.string()}),e4=eC.z.union([eC.z.literal(-32700),eC.z.literal(-32600),eC.z.literal(-32601),eC.z.literal(-32602),eC.z.literal(-32603),eC.z.literal(-32800),eC.z.literal(-32e3),eC.z.literal(-32002),eC.z.literal(-32042),eC.z.number().int().min(-0x80000000,{message:"Invalid value: Expected int32 to be >= -2147483648"}).max(0x7fffffff,{message:"Invalid value: Expected int32 to be <= 2147483647"})]),e9=eC.z.object({code:e4,data:eC.z.unknown().optional(),message:eC.z.string()}),e7=eC.z.unknown(),e8=eC.z.unknown(),te=eC.z.unknown(),tt=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),readTextFile:eC.z.boolean().optional().default(!1),writeTextFile:eC.z.boolean().optional().default(!1)}),tn=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),name:eC.z.string(),value:eC.z.string()}),ti=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),name:eC.z.string(),title:eC.z.string().nullish(),version:eC.z.string()}),to=eC.z.object({default:eC.z.number().nullish(),description:eC.z.string().nullish(),maximum:eC.z.number().nullish(),minimum:eC.z.number().nullish(),title:eC.z.string().nullish()}),tr=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),ts=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),ta=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),cursor:eC.z.string().nullish(),cwd:eC.z.string().nullish()}),tl=eC.z.union([eC.z.literal("anthropic"),eC.z.literal("openai"),eC.z.literal("azure"),eC.z.literal("vertex"),eC.z.literal("bedrock"),eC.z.string()]),tu=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tc=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),logout:tu.nullish()}),td=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tp=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tm=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),acp:eC.z.boolean().optional().default(!1),http:eC.z.boolean().optional().default(!1),sse:eC.z.boolean().optional().default(!1)}),tg=eC.z.string(),th=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),connectionId:tg}),tz=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),connectionId:tg}),tf=eC.z.string(),tb=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),acpId:tf}),ty=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:tf,name:eC.z.string()}),tw=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),headers:eC.z.array(tn),name:eC.z.string(),url:eC.z.string()}),tv=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),headers:eC.z.array(tn),name:eC.z.string(),url:eC.z.string()}),tj=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),args:eC.z.array(eC.z.string()),command:eC.z.string(),env:eC.z.array(e6),name:eC.z.string()}),t_=eC.z.union([tw.and(eC.z.object({type:eC.z.literal("http")})),tv.and(eC.z.object({type:eC.z.literal("sse")})),ty.and(eC.z.object({type:eC.z.literal("acp")})),tj]),tk=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),connectionId:tg,method:eC.z.string(),params:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tI=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),connectionId:tg,method:eC.z.string(),params:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tx=eC.z.unknown(),tS=eC.z.string(),tC=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string().nullish(),modelId:tS,name:eC.z.string()}),tA=eC.z.union([eC.z.literal("error"),eC.z.literal("warning"),eC.z.literal("information"),eC.z.literal("hint")]),tT=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tR=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tP=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tM=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tE=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tO=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),maxCount:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish()}),tN=eC.z.object({diff:eC.z.string(),uri:eC.z.string()}),tq=eC.z.object({endLine:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}),startLine:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}),text:eC.z.string()}),tU=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),t$=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tD=eC.z.object({languageId:eC.z.string(),text:eC.z.string(),uri:eC.z.string()}),tF=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),maxCount:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish()}),tL=eC.z.union([eC.z.literal("rejected"),eC.z.literal("ignored"),eC.z.literal("replaced"),eC.z.literal("cancelled")]),tH=eC.z.object({excerpts:eC.z.array(tq),uri:eC.z.string()}),tV=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tJ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tW=eC.z.object({name:eC.z.string(),owner:eC.z.string(),remoteUrl:eC.z.string()}),tB=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),tK=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),jump:tU.nullish(),rename:tJ.nullish(),searchAndReplace:tB.nullish()}),tG=eC.z.object({id:eC.z.string(),isRegex:eC.z.boolean().nullish(),replace:eC.z.string(),search:eC.z.string(),uri:eC.z.string()}),tY=eC.z.union([eC.z.literal("automatic"),eC.z.literal("diagnostic"),eC.z.literal("manual")]),tZ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),maxCount:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish()}),tX=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),diagnostics:tT.nullish(),editHistory:tO.nullish(),openFiles:t$.nullish(),recentFiles:tF.nullish(),relatedSnippets:tV.nullish(),userActions:tZ.nullish()}),tQ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:eC.z.array(eC.z.string()).optional(),cwd:eC.z.string(),mcpServers:eC.z.array(t_)}),t0=eC.z.object({default:eC.z.number().nullish(),description:eC.z.string().nullish(),maximum:eC.z.number().nullish(),minimum:eC.z.number().nullish(),title:eC.z.string().nullish()}),t2=eC.z.string(),t1=eC.z.union([eC.z.literal("allow_once"),eC.z.literal("allow_always"),eC.z.literal("reject_once"),eC.z.literal("reject_always")]),t3=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),kind:t1,name:eC.z.string(),optionId:t2}),t5=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),t6=eC.z.union([eC.z.literal("high"),eC.z.literal("medium"),eC.z.literal("low")]),t4=eC.z.union([eC.z.literal("pending"),eC.z.literal("in_progress"),eC.z.literal("completed")]),t9=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.string(),priority:t6,status:t4}),t7=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),entries:eC.z.array(t9)}),t8=eC.z.string(),ne=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:t8,uri:eC.z.string()}),nt=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),entries:eC.z.array(t9),id:t8}),nn=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.string(),id:t8}),ni=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:t8}),no=eC.z.union([nt.and(eC.z.object({type:eC.z.literal("items")})),ne.and(eC.z.object({type:eC.z.literal("file")})),nn.and(eC.z.object({type:eC.z.literal("markdown")}))]),nr=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),plan:no}),ns=eC.z.object({character:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}),line:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"})}),na=eC.z.object({id:eC.z.string(),position:ns,uri:eC.z.string()}),nl=eC.z.object({id:eC.z.string(),newName:eC.z.string(),position:ns,uri:eC.z.string()}),nu=eC.z.object({action:eC.z.string(),position:ns,timestampMs:eC.z.number(),uri:eC.z.string()}),nc=eC.z.union([eC.z.literal("utf-16"),eC.z.literal("utf-32"),eC.z.literal("utf-8")]),nd=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),auth:eA.optional().default({terminal:!1}),elicitation:e3.nullish(),fs:tt.optional().default({readTextFile:!1,writeTextFile:!1}),nes:tK.nullish(),planCapabilities:t5.nullish(),positionEncodings:eC.z.array(nc).optional(),terminal:eC.z.boolean().optional().default(!1)}),np=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),audio:eC.z.boolean().optional().default(!1),embeddedContext:eC.z.boolean().optional().default(!1),image:eC.z.boolean().optional().default(!1)}),nm=eC.z.number().int().gte(0).lte(65535),ng=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),clientCapabilities:nd.optional().default({auth:{terminal:!1},fs:{readTextFile:!1,writeTextFile:!1},terminal:!1}),clientInfo:ti.nullish(),protocolVersion:nm}),nh=eC.z.object({apiType:tl,baseUrl:eC.z.string()}),nz=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),current:nh.nullish(),id:eC.z.string(),required:eC.z.boolean(),supported:eC.z.array(tl)}),nf=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),providers:eC.z.array(nz)}),nb=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),ny=eC.z.object({end:ns,start:ns}),nw=eC.z.object({message:eC.z.string(),range:ny,severity:tA,uri:eC.z.string()}),nv=eC.z.object({languageId:eC.z.string(),lastFocusedMs:eC.z.number().nullish(),uri:eC.z.string(),visibleRange:ny.nullish()}),nj=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),diagnostics:eC.z.array(nw).nullish(),editHistory:eC.z.array(tN).nullish(),openFiles:eC.z.array(nv).nullish(),recentFiles:eC.z.array(tD).nullish(),relatedSnippets:eC.z.array(tH).nullish(),userActions:eC.z.array(nu).nullish()}),n_=eC.z.object({newText:eC.z.string(),range:ny}),nk=eC.z.object({cursorPosition:ns.nullish(),edits:eC.z.array(n_),id:eC.z.string(),uri:eC.z.string()}),nI=eC.z.union([nk.and(eC.z.object({kind:eC.z.literal("edit")})),na.and(eC.z.object({kind:eC.z.literal("jump")})),nl.and(eC.z.object({kind:eC.z.literal("rename")})),tG.and(eC.z.object({kind:eC.z.literal("searchAndReplace")}))]),nx=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.string()}),nS=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),nC=eC.z.union([eC.z.number(),eC.z.string()]).nullable();eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),requestId:nC});let nA=eC.z.object({requestId:nC}),nT=eC.z.enum(["assistant","user"]),nR=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),audience:eC.z.array(nT).nullish(),lastModified:eC.z.string().nullish(),priority:eC.z.number().nullish()}),nP=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),annotations:nR.nullish(),data:eC.z.string(),mimeType:eC.z.string()}),nM=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),annotations:nR.nullish(),data:eC.z.string(),mimeType:eC.z.string(),uri:eC.z.string().nullish()}),nE=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),annotations:nR.nullish(),description:eC.z.string().nullish(),mimeType:eC.z.string().nullish(),name:eC.z.string(),size:eC.z.number().nullish(),title:eC.z.string().nullish(),uri:eC.z.string()}),nO=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),optionId:t2}),nN=eC.z.union([eC.z.object({outcome:eC.z.literal("cancelled")}),nO.and(eC.z.object({outcome:eC.z.literal("selected")}))]),nq=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),outcome:nN}),nU=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),n$=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),nD=eC.z.object({currentValue:eC.z.boolean()}),nF=eC.z.string(),nL=eC.z.string(),nH=eC.z.union([eC.z.literal("mode"),eC.z.literal("model"),eC.z.literal("thought_level"),eC.z.string()]),nV=eC.z.string(),nJ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string().nullish(),name:eC.z.string(),value:nV}),nW=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),group:nF,name:eC.z.string(),options:eC.z.array(nJ)}),nB=eC.z.union([eC.z.array(nJ),eC.z.array(nW)]),nK=eC.z.object({currentValue:nV,options:nB}),nG=eC.z.intersection(eC.z.union([nK.and(eC.z.object({type:eC.z.literal("select")})),nD.and(eC.z.object({type:eC.z.literal("boolean")}))]),eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),category:nH.nullish(),description:eC.z.string().nullish(),id:nL,name:eC.z.string()})),nY=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG)}),nZ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),nX=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),nQ=eC.z.string(),n0=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:eC.z.string(),sessionId:nQ}),n2=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ}),n1=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ}),n3=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ}),n5=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),args:eC.z.array(eC.z.string()).optional(),command:eC.z.string(),cwd:eC.z.string().nullish(),env:eC.z.array(e6).optional(),outputByteLimit:eC.z.number().nullish(),sessionId:nQ}),n6=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ}),n4=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,uri:eC.z.string()}),n9=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),position:ns,sessionId:nQ,uri:eC.z.string(),version:eC.z.number(),visibleRange:ny}),n7=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),languageId:eC.z.string(),sessionId:nQ,text:eC.z.string(),uri:eC.z.string(),version:eC.z.number()}),n8=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,uri:eC.z.string()}),ie=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:eC.z.array(eC.z.string()).optional(),cwd:eC.z.string(),mcpServers:eC.z.array(t_).optional(),sessionId:nQ}),it=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,terminalId:eC.z.string()}),ii=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:eC.z.array(eC.z.string()).optional(),cwd:eC.z.string(),mcpServers:eC.z.array(t_),sessionId:nQ}),io=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),limit:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),line:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),path:eC.z.string(),sessionId:nQ}),ir=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),id:eC.z.string(),reason:tL.nullish(),sessionId:nQ}),is=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,terminalId:eC.z.string()}),ia=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:eC.z.array(eC.z.string()).optional(),cwd:eC.z.string(),mcpServers:eC.z.array(t_).optional(),sessionId:nQ}),il=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:eC.z.array(eC.z.string()).optional(),cwd:eC.z.string(),sessionId:nQ,title:eC.z.string().nullish(),updatedAt:eC.z.string().nullish()}),iu=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),nextCursor:eC.z.string().nullish(),sessions:eC.z.array(il)}),ic=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),title:eC.z.string().nullish(),updatedAt:eC.z.string().nullish()}),id=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),ip=eC.z.string(),im=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),currentModeId:ip}),ig=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string().nullish(),id:ip,name:eC.z.string()}),ih=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),availableModes:eC.z.array(ig),currentModeId:ip}),iz=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),availableModels:eC.z.array(tC),currentModelId:tS}),ib=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG).nullish(),models:iz.nullish(),modes:ih.nullish(),sessionId:nQ}),iy=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG).nullish(),models:iz.nullish(),modes:ih.nullish()}),iw=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG).nullish(),models:iz.nullish(),modes:ih.nullish(),sessionId:nQ}),iv=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG).nullish(),models:iz.nullish(),modes:ih.nullish()}),ij=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),i_=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),additionalDirectories:nU.nullish(),close:n$.nullish(),delete:nZ.nullish(),fork:nX.nullish(),list:id.nullish(),resume:ij.nullish()}),ik=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),apiType:tl,baseUrl:eC.z.string(),headers:eC.z.record(eC.z.string(),eC.z.string()).optional(),id:eC.z.string()}),iI=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),ix=eC.z.intersection(eC.z.union([eC.z.object({type:eC.z.literal("boolean"),value:eC.z.boolean()}),eC.z.object({value:nV})]),eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configId:nL,sessionId:nQ})),iS=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),configOptions:eC.z.array(nG)}),iC=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),modeId:ip,sessionId:nQ}),iA=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),iT=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),modelId:tS,sessionId:nQ}),iR=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()}),iP=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ}),iM=eC.z.union([eC.z.literal("end_turn"),eC.z.literal("max_tokens"),eC.z.literal("max_turn_requests"),eC.z.literal("refusal"),eC.z.literal("cancelled")]),iE=eC.z.union([eC.z.literal("email"),eC.z.literal("uri"),eC.z.literal("date"),eC.z.literal("date-time")]),iO=eC.z.object({default:eC.z.string().nullish(),description:eC.z.string().nullish(),enum:eC.z.array(eC.z.string()).nullish(),format:iE.nullish(),maxLength:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),minLength:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),oneOf:eC.z.array(e5).nullish(),pattern:eC.z.string().nullish(),title:eC.z.string().nullish()}),iN=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),context:nj.nullish(),position:ns,selection:ny.nullish(),sessionId:nQ,triggerKind:tY,uri:eC.z.string(),version:eC.z.number()}),iq=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),suggestions:eC.z.array(nI)}),iU=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),terminalId:eC.z.string()}),i$=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),exitCode:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),signal:eC.z.string().nullish()}),iD=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,terminalId:eC.z.string()}),iF=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),exitStatus:i$.nullish(),output:eC.z.string(),truncated:eC.z.boolean()}),iL=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),annotations:nR.nullish(),text:eC.z.string()}),iH=eC.z.object({range:ny.nullish(),text:eC.z.string()}),iV=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),contentChanges:eC.z.array(iH),sessionId:nQ,uri:eC.z.string(),version:eC.z.number()});eC.z.object({method:eC.z.string(),params:eC.z.union([n2,n7,iV,n4,n8,n9,n0,ir,tk,e7]).nullish()});let iJ=eC.z.union([eC.z.literal("full"),eC.z.literal("incremental")]),iW=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),syncKind:iJ}),iB=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),didChange:iW.nullish(),didClose:tR.nullish(),didFocus:tP.nullish(),didOpen:tM.nullish(),didSave:tE.nullish()}),iK=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),document:iB.nullish()}),iG=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),context:tX.nullish(),events:iK.nullish()}),iY=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),auth:tc.optional().default({}),loadSession:eC.z.boolean().optional().default(!1),mcpCapabilities:tm.optional().default({acp:!1,http:!1,sse:!1}),nes:iG.nullish(),positionEncoding:nc.nullish(),promptCapabilities:np.optional().default({audio:!1,embeddedContext:!1,image:!1}),providers:nb.nullish(),sessionCapabilities:i_.optional().default({})}),iZ=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),agentCapabilities:iY.optional().default({auth:{},loadSession:!1,mcpCapabilities:{acp:!1,http:!1,sse:!1},promptCapabilities:{audio:!1,embeddedContext:!1,image:!1},sessionCapabilities:{}}),agentInfo:ti.nullish(),authMethods:eC.z.array(eE).optional().default([]),protocolVersion:nm}),iX=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),mimeType:eC.z.string().nullish(),text:eC.z.string(),uri:eC.z.string()}),iQ=eC.z.union([iX,eq]),i0=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),annotations:nR.nullish(),resource:iQ}),i2=eC.z.union([iL.and(eC.z.object({type:eC.z.literal("text")})),nM.and(eC.z.object({type:eC.z.literal("image")})),nP.and(eC.z.object({type:eC.z.literal("audio")})),nE.and(eC.z.object({type:eC.z.literal("resource_link")})),i0.and(eC.z.object({type:eC.z.literal("resource")}))]),i1=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:i2}),i3=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:i2,messageId:eC.z.string().nullish()}),i5=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),messageId:eC.z.string().nullish(),prompt:eC.z.array(i2),sessionId:nQ}),i6=eC.z.object({anyOf:eC.z.array(e5)}),i4=eC.z.union([i1.and(eC.z.object({type:eC.z.literal("content")})),eV.and(eC.z.object({type:eC.z.literal("diff")})),iU.and(eC.z.object({type:eC.z.literal("terminal")}))]),i9=eC.z.string(),i7=eC.z.object({sessionId:nQ,toolCallId:i9.nullish()}),i8=eC.z.intersection(eC.z.union([i7,nA]),eC.z.object({elicitationId:eX,url:eC.z.string().url()})),oe=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),line:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),path:eC.z.string()}),ot=eC.z.union([eC.z.literal("pending"),eC.z.literal("in_progress"),eC.z.literal("completed"),eC.z.literal("failed")]),on=eC.z.union([eC.z.literal("read"),eC.z.literal("edit"),eC.z.literal("delete"),eC.z.literal("move"),eC.z.literal("search"),eC.z.literal("execute"),eC.z.literal("think"),eC.z.literal("fetch"),eC.z.literal("switch_mode"),eC.z.literal("other")]),oi=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.array(i4).optional(),kind:on.optional(),locations:eC.z.array(oe).optional(),rawInput:eC.z.unknown().optional(),rawOutput:eC.z.unknown().optional(),status:ot.optional(),title:eC.z.string(),toolCallId:i9}),oo=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.array(i4).nullish(),kind:on.nullish(),locations:eC.z.array(oe).nullish(),rawInput:eC.z.unknown().optional(),rawOutput:eC.z.unknown().optional(),status:ot.nullish(),title:eC.z.string().nullish(),toolCallId:i9}),or=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),options:eC.z.array(t3),sessionId:nQ,toolCall:oo}),os=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),hint:eC.z.string()}),oa=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),description:eC.z.string(),input:os.nullish(),name:eC.z.string()}),ol=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),availableCommands:eC.z.array(oa)}),ou=eC.z.object({enum:eC.z.array(eC.z.string()),type:e2}),oc=eC.z.union([ou,i6]),od=eC.z.object({default:eC.z.array(eC.z.string()).nullish(),description:eC.z.string().nullish(),items:oc,maxItems:eC.z.number().nullish(),minItems:eC.z.number().nullish(),title:eC.z.string().nullish()}),op=eC.z.union([iO.and(eC.z.object({type:eC.z.literal("string")})),t0.and(eC.z.object({type:eC.z.literal("number")})),to.and(eC.z.object({type:eC.z.literal("integer")})),eU.and(eC.z.object({type:eC.z.literal("boolean")})),od.and(eC.z.object({type:eC.z.literal("array")}))]),om=eC.z.object({description:eC.z.string().nullish(),properties:eC.z.record(eC.z.string(),op).optional().default({}),required:eC.z.array(eC.z.string()).nullish(),title:eC.z.string().nullish(),type:e0.optional().default("object")}),og=eC.z.intersection(eC.z.union([i7,nA]),eC.z.object({requestedSchema:om})),oh=eC.z.intersection(eC.z.union([og.and(eC.z.object({mode:eC.z.literal("form")})),i8.and(eC.z.object({mode:eC.z.literal("url")}))]),eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),message:eC.z.string()})),oz=eC.z.object({cachedReadTokens:eC.z.number().nullish(),cachedWriteTokens:eC.z.number().nullish(),inputTokens:eC.z.number(),outputTokens:eC.z.number(),thoughtTokens:eC.z.number().nullish(),totalTokens:eC.z.number()}),of=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),stopReason:iM,usage:oz.nullish(),userMessageId:eC.z.string().nullish()});eC.z.union([eC.z.object({id:nC,result:eC.z.union([iZ,eN,nf,iI,eW,tp,iw,iy,iu,eH,ib,iv,eD,iA,iS,of,iR,iP,iq,e$,te,tx])}),eC.z.object({error:e9,id:nC})]);let ob=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),cost:eF.nullish(),size:eC.z.number(),used:eC.z.number()}),oy=eC.z.union([i3.and(eC.z.object({sessionUpdate:eC.z.literal("user_message_chunk")})),i3.and(eC.z.object({sessionUpdate:eC.z.literal("agent_message_chunk")})),i3.and(eC.z.object({sessionUpdate:eC.z.literal("agent_thought_chunk")})),oi.and(eC.z.object({sessionUpdate:eC.z.literal("tool_call")})),oo.and(eC.z.object({sessionUpdate:eC.z.literal("tool_call_update")})),t7.and(eC.z.object({sessionUpdate:eC.z.literal("plan")})),nr.and(eC.z.object({sessionUpdate:eC.z.literal("plan_update")})),ni.and(eC.z.object({sessionUpdate:eC.z.literal("plan_removed")})),ol.and(eC.z.object({sessionUpdate:eC.z.literal("available_commands_update")})),im.and(eC.z.object({sessionUpdate:eC.z.literal("current_mode_update")})),nY.and(eC.z.object({sessionUpdate:eC.z.literal("config_option_update")})),ic.and(eC.z.object({sessionUpdate:eC.z.literal("session_info_update")})),ob.and(eC.z.object({sessionUpdate:eC.z.literal("usage_update")}))]),ow=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,update:oy});eC.z.object({method:eC.z.string(),params:eC.z.union([ow,eQ,tk,e7]).nullish()});let ov=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),sessionId:nQ,terminalId:eC.z.string()}),oj=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),exitCode:eC.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),signal:eC.z.string().nullish()}),o_=eC.z.object({name:eC.z.string(),uri:eC.z.string()}),ok=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),repository:tW.nullish(),workspaceFolders:eC.z.array(o_).nullish(),workspaceUri:eC.z.string().nullish()});eC.z.object({id:nC,method:eC.z.string(),params:eC.z.union([ng,eO,ts,ik,eJ,td,tQ,ii,ta,n6,ie,ia,n3,iC,ix,i5,iT,ok,iN,n1,tI,e8]).nullish()});let oI=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish(),content:eC.z.string(),path:eC.z.string(),sessionId:nQ});eC.z.object({id:nC,method:eC.z.string(),params:eC.z.union([oI,io,or,n5,iD,is,ov,it,oh,tb,tI,tz,e8]).nullish()});let ox=eC.z.object({_meta:eC.z.record(eC.z.string(),eC.z.unknown()).nullish()});function oS(e){return e??{}}function oC(e){let t=Promise.reject(e);return t.catch(()=>{}),t}eC.z.union([eC.z.object({id:nC,result:eC.z.union([ox,nx,nq,eL,iF,nS,oj,tr,eY,th,eB,te,tx])}),eC.z.object({error:e9,id:nC})]);class oA{connection;constructor(e,t){const n=e(this),i=async(e,t)=>{switch(e){case"fs/write_text_file":{let e=oI.parse(t);return await n.writeTextFile?.(e)??{}}case"fs/read_text_file":{let e=io.parse(t);return n.readTextFile?.(e)}case"session/request_permission":{let e=or.parse(t);return n.requestPermission(e)}case"terminal/create":{let e=n5.parse(t);return n.createTerminal?.(e)}case"terminal/output":{let e=iD.parse(t);return n.terminalOutput?.(e)}case"terminal/release":{let e=is.parse(t);return await n.releaseTerminal?.(e)??{}}case"terminal/wait_for_exit":{let e=ov.parse(t);return n.waitForTerminalExit?.(e)}case"terminal/kill":{let e=it.parse(t);return await n.killTerminal?.(e)??{}}case"elicitation/create":{if(!n.unstable_createElicitation)throw oR.methodNotFound(e);let i=oh.parse(t);return n.unstable_createElicitation(i)}default:if(n.extMethod)return n.extMethod(e,t);throw oR.methodNotFound(e)}},o=async(e,t)=>{switch(e){case"session/update":{let e=ow.parse(t);return n.sessionUpdate(e)}case"elicitation/complete":{if(!n.unstable_completeElicitation)return;let e=eQ.parse(t);return n.unstable_completeElicitation(e)}default:if(n.extNotification)return n.extNotification(e,t);throw oR.methodNotFound(e)}};this.connection=new oT(i,o,t)}initialize(e){return this.connection.sendRequest("initialize",e)}newSession(e){return this.connection.sendRequest("session/new",e)}loadSession(e){return this.connection.sendRequest("session/load",e,oS)}unstable_forkSession(e){return this.connection.sendRequest("session/fork",e)}listSessions(e){return this.connection.sendRequest("session/list",e)}unstable_deleteSession(e){return this.connection.sendRequest("session/delete",e,oS)}resumeSession(e){return this.connection.sendRequest("session/resume",e)}closeSession(e){return this.connection.sendRequest("session/close",e)}setSessionMode(e){return this.connection.sendRequest("session/set_mode",e,oS)}unstable_setSessionModel(e){return this.connection.sendRequest("session/set_model",e,oS)}setSessionConfigOption(e){return this.connection.sendRequest("session/set_config_option",e)}authenticate(e){return this.connection.sendRequest("authenticate",e,oS)}unstable_listProviders(e){return this.connection.sendRequest("providers/list",e)}unstable_setProvider(e){return this.connection.sendRequest("providers/set",e,oS)}unstable_disableProvider(e){return this.connection.sendRequest("providers/disable",e,oS)}logout(e){return this.connection.sendRequest("logout",e,oS)}prompt(e){return this.connection.sendRequest("session/prompt",e)}cancel(e){return this.connection.sendNotification("session/cancel",e)}unstable_startNes(e){return this.connection.sendRequest("nes/start",e)}unstable_suggestNes(e){return this.connection.sendRequest("nes/suggest",e)}unstable_closeNes(e){return this.connection.sendRequest("nes/close",e,oS)}unstable_didOpenDocument(e){return this.connection.sendNotification("document/didOpen",e)}unstable_didChangeDocument(e){return this.connection.sendNotification("document/didChange",e)}unstable_didCloseDocument(e){return this.connection.sendNotification("document/didClose",e)}unstable_didSaveDocument(e){return this.connection.sendNotification("document/didSave",e)}unstable_didFocusDocument(e){return this.connection.sendNotification("document/didFocus",e)}unstable_acceptNes(e){return this.connection.sendNotification("nes/accept",e)}unstable_rejectNes(e){return this.connection.sendNotification("nes/reject",e)}extMethod(e,t){return this.connection.sendRequest(e,t)}extNotification(e,t){return this.connection.sendNotification(e,t)}get signal(){return this.connection.signal}get closed(){return this.connection.closed}}class oT{pendingResponses=new Map;nextRequestId=0;requestHandler;notificationHandler;stream;writeQueue=Promise.resolve();abortController=new AbortController;closedPromise;constructor(e,t,n){this.requestHandler=e,this.notificationHandler=t,this.stream=n,this.closedPromise=new Promise(e=>{this.abortController.signal.addEventListener("abort",()=>e())}),this.receive()}get signal(){return this.abortController.signal}get closed(){return this.closedPromise}async receive(){let e;try{let e=this.stream.readable.getReader();try{for(;!this.abortController.signal.aborted;){let{value:t,done:n}=await e.read();if(n)break;if(t)try{this.processMessage(t)}catch(e){console.error("Unexpected error during message processing:",t,e),"id"in t&&void 0!==t.id&&this.sendMessage({jsonrpc:"2.0",id:t.id,error:{code:-32700,message:"Parse error"}})}}}finally{e.releaseLock()}}catch(t){e=t}finally{this.close(e)}}close(e){if(this.abortController.signal.aborted)return;let t=e??Error("ACP connection closed");for(let e of this.pendingResponses.values())e.reject(t);this.pendingResponses.clear(),this.abortController.abort(t)}async processMessage(e){if("method"in e&&"id"in e){let t=await this.tryCallRequestHandler(e.method,e.params);"error"in t&&console.error("Error handling request",e,t.error),await this.sendMessage({jsonrpc:"2.0",id:e.id,...t})}else if("method"in e){let t=await this.tryCallNotificationHandler(e.method,e.params);"error"in t&&console.error("Error handling notification",e,t.error)}else"id"in e?this.handleResponse(e):console.error("Invalid message",{message:e})}async tryCallRequestHandler(e,t){try{return{result:await this.requestHandler(e,t)??null}}catch(t){let e;if(t instanceof oR)return t.toResult();if(t instanceof eC.z.ZodError)return oR.invalidParams(t.format()).toResult();t instanceof Error?e=t.message:"object"==typeof t&&null!=t&&"message"in t&&"string"==typeof t.message&&(e=t.message);try{return oR.internalError(e?JSON.parse(e):{}).toResult()}catch{return oR.internalError({details:e}).toResult()}}}async tryCallNotificationHandler(e,t){try{return await this.notificationHandler(e,t),{result:null}}catch(t){let e;if(t instanceof oR)return t.toResult();if(t instanceof eC.z.ZodError)return oR.invalidParams(t.format()).toResult();t instanceof Error?e=t.message:"object"==typeof t&&null!=t&&"message"in t&&"string"==typeof t.message&&(e=t.message);try{return oR.internalError(e?JSON.parse(e):{}).toResult()}catch{return oR.internalError({details:e}).toResult()}}}handleResponse(e){let t=this.pendingResponses.get(e.id);if(t){if("result"in e)t.resolve(e.result);else if("error"in e){let{code:n,message:i,data:o}=e.error;t.reject(new oR(n,i,o))}this.pendingResponses.delete(e.id)}else console.error("Got response to unknown request",e.id)}sendRequest(e,t,n){if(this.abortController.signal.aborted)return oC(this.closedReason());let i=this.nextRequestId++,o=new Promise((e,t)=>{this.pendingResponses.set(i,{resolve:i=>{try{e(n?n(i):i)}catch(e){t(e)}},reject:t})});return o.catch(()=>{}),this.sendMessage({jsonrpc:"2.0",id:i,method:e,params:t}),o}sendNotification(e,t){return this.abortController.signal.aborted?oC(this.closedReason()):this.sendMessage({jsonrpc:"2.0",method:e,params:t})}closedReason(){return this.abortController.signal.reason??Error("ACP connection closed")}async sendMessage(e){return this.writeQueue=this.writeQueue.then(async()=>{let t=this.stream.writable.getWriter();try{await t.write(e)}finally{t.releaseLock()}}).catch(e=>{this.close(e)}),this.writeQueue}}class oR extends Error{code;data;constructor(e,t,n){super(t),this.code=e,this.name="RequestError",this.data=n}static parseError(e,t){return new oR(-32700,`Parse error${t?`: ${t}`:""}`,e)}static invalidRequest(e,t){return new oR(-32600,`Invalid request${t?`: ${t}`:""}`,e)}static methodNotFound(e){return new oR(-32601,`"Method not found": ${e}`,{method:e})}static invalidParams(e,t){return new oR(-32602,`Invalid params${t?`: ${t}`:""}`,e)}static internalError(e,t){return new oR(-32603,`Internal error${t?`: ${t}`:""}`,e)}static authRequired(e,t){return new oR(-32e3,`Authentication required${t?`: ${t}`:""}`,e)}static resourceNotFound(e){return new oR(-32002,`Resource not found${e?`: ${e}`:""}`,e&&{uri:e})}toResult(){return{error:{code:this.code,message:this.message,data:this.data}}}toErrorResponse(){return{code:this.code,message:this.message,data:this.data}}}var oP=e.i(81111),oM=e.i(62810),oE=e.i(61095),oO=e.i(7855),oN=e.i(51047),oN=oN;let oq=oO.custom(e=>null!==e&&("object"==typeof e||"function"==typeof e)),oU=oO.union([oO.string(),oO.number().int()]),o$=oO.string();oO.looseObject({ttl:oO.number().optional(),pollInterval:oO.number().optional()});let oD=oO.object({ttl:oO.number().optional()}),oF=oO.object({taskId:oO.string()}),oL=oO.looseObject({progressToken:oU.optional(),"io.modelcontextprotocol/related-task":oF.optional()}),oH=oO.object({_meta:oL.optional()}),oV=oH.extend({task:oD.optional()}),oJ=oO.object({method:oO.string(),params:oH.loose().optional()}),oW=oO.object({_meta:oL.optional()}),oB=oO.object({method:oO.string(),params:oW.loose().optional()}),oK=oO.looseObject({_meta:oL.optional()}),oG=oO.union([oO.string(),oO.number().int()]),oY=oO.object({jsonrpc:oO.literal("2.0"),id:oG,...oJ.shape}).strict(),oZ=oO.object({jsonrpc:oO.literal("2.0"),...oB.shape}).strict(),oX=oO.object({jsonrpc:oO.literal("2.0"),id:oG,result:oK}).strict();(t=n||(n={}))[t.ConnectionClosed=-32e3]="ConnectionClosed",t[t.RequestTimeout=-32001]="RequestTimeout",t[t.ParseError=-32700]="ParseError",t[t.InvalidRequest=-32600]="InvalidRequest",t[t.MethodNotFound=-32601]="MethodNotFound",t[t.InvalidParams=-32602]="InvalidParams",t[t.InternalError=-32603]="InternalError",t[t.UrlElicitationRequired=-32042]="UrlElicitationRequired";let oQ=oO.object({jsonrpc:oO.literal("2.0"),id:oG.optional(),error:oO.object({code:oO.number().int(),message:oO.string(),data:oO.unknown().optional()})}).strict();oO.union([oY,oZ,oX,oQ]),oO.union([oX,oQ]);let o0=oK.strict(),o2=oW.extend({requestId:oG.optional(),reason:oO.string().optional()}),o1=oB.extend({method:oO.literal("notifications/cancelled"),params:o2}),o3=oO.object({src:oO.string(),mimeType:oO.string().optional(),sizes:oO.array(oO.string()).optional(),theme:oO.enum(["light","dark"]).optional()}),o5=oO.object({icons:oO.array(o3).optional()}),o6=oO.object({name:oO.string(),title:oO.string().optional()}),o4=o6.extend({...o6.shape,...o5.shape,version:oO.string(),websiteUrl:oO.string().optional(),description:oO.string().optional()}),o9=oO.intersection(oO.object({applyDefaults:oO.boolean().optional()}),oO.record(oO.string(),oO.unknown())),o7=oO.preprocess(e=>e&&"object"==typeof e&&!Array.isArray(e)&&0===Object.keys(e).length?{form:{}}:e,oO.intersection(oO.object({form:o9.optional(),url:oq.optional()}),oO.record(oO.string(),oO.unknown()).optional())),o8=oO.looseObject({list:oq.optional(),cancel:oq.optional(),requests:oO.looseObject({sampling:oO.looseObject({createMessage:oq.optional()}).optional(),elicitation:oO.looseObject({create:oq.optional()}).optional()}).optional()}),re=oO.looseObject({list:oq.optional(),cancel:oq.optional(),requests:oO.looseObject({tools:oO.looseObject({call:oq.optional()}).optional()}).optional()}),rt=oO.object({experimental:oO.record(oO.string(),oq).optional(),sampling:oO.object({context:oq.optional(),tools:oq.optional()}).optional(),elicitation:o7.optional(),roots:oO.object({listChanged:oO.boolean().optional()}).optional(),tasks:o8.optional(),extensions:oO.record(oO.string(),oq).optional()}),rn=oH.extend({protocolVersion:oO.string(),capabilities:rt,clientInfo:o4}),ri=oJ.extend({method:oO.literal("initialize"),params:rn}),ro=oO.object({experimental:oO.record(oO.string(),oq).optional(),logging:oq.optional(),completions:oq.optional(),prompts:oO.object({listChanged:oO.boolean().optional()}).optional(),resources:oO.object({subscribe:oO.boolean().optional(),listChanged:oO.boolean().optional()}).optional(),tools:oO.object({listChanged:oO.boolean().optional()}).optional(),tasks:re.optional(),extensions:oO.record(oO.string(),oq).optional()}),rr=oK.extend({protocolVersion:oO.string(),capabilities:ro,serverInfo:o4,instructions:oO.string().optional()}),rs=oB.extend({method:oO.literal("notifications/initialized"),params:oW.optional()}),ra=oJ.extend({method:oO.literal("ping"),params:oH.optional()}),rl=oO.object({progress:oO.number(),total:oO.optional(oO.number()),message:oO.optional(oO.string())}),ru=oO.object({...oW.shape,...rl.shape,progressToken:oU}),rc=oB.extend({method:oO.literal("notifications/progress"),params:ru}),rd=oH.extend({cursor:o$.optional()}),rp=oJ.extend({params:rd.optional()}),rm=oK.extend({nextCursor:o$.optional()}),rg=oO.enum(["working","input_required","completed","failed","cancelled"]),rh=oO.object({taskId:oO.string(),status:rg,ttl:oO.union([oO.number(),oO.null()]),createdAt:oO.string(),lastUpdatedAt:oO.string(),pollInterval:oO.optional(oO.number()),statusMessage:oO.optional(oO.string())}),rz=oK.extend({task:rh}),rf=oW.merge(rh),rb=oB.extend({method:oO.literal("notifications/tasks/status"),params:rf}),ry=oJ.extend({method:oO.literal("tasks/get"),params:oH.extend({taskId:oO.string()})}),rw=oK.merge(rh),rv=oJ.extend({method:oO.literal("tasks/result"),params:oH.extend({taskId:oO.string()})});oK.loose();let rj=rp.extend({method:oO.literal("tasks/list")}),r_=rm.extend({tasks:oO.array(rh)}),rk=oJ.extend({method:oO.literal("tasks/cancel"),params:oH.extend({taskId:oO.string()})});oK.merge(rh);let rI=oO.object({uri:oO.string(),mimeType:oO.optional(oO.string()),_meta:oO.record(oO.string(),oO.unknown()).optional()}),rx=rI.extend({text:oO.string()}),rS=oO.string().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),rC=rI.extend({blob:rS}),rA=oO.enum(["user","assistant"]),rT=oO.object({audience:oO.array(rA).optional(),priority:oO.number().min(0).max(1).optional(),lastModified:oN.datetime({offset:!0}).optional()}),rR=oO.object({...o6.shape,...o5.shape,uri:oO.string(),description:oO.optional(oO.string()),mimeType:oO.optional(oO.string()),size:oO.optional(oO.number()),annotations:rT.optional(),_meta:oO.optional(oO.looseObject({}))}),rP=oO.object({...o6.shape,...o5.shape,uriTemplate:oO.string(),description:oO.optional(oO.string()),mimeType:oO.optional(oO.string()),annotations:rT.optional(),_meta:oO.optional(oO.looseObject({}))}),rM=rp.extend({method:oO.literal("resources/list")}),rE=rm.extend({resources:oO.array(rR)}),rO=rp.extend({method:oO.literal("resources/templates/list")}),rN=rm.extend({resourceTemplates:oO.array(rP)}),rq=oH.extend({uri:oO.string()}),rU=oJ.extend({method:oO.literal("resources/read"),params:rq}),r$=oK.extend({contents:oO.array(oO.union([rx,rC]))}),rD=oB.extend({method:oO.literal("notifications/resources/list_changed"),params:oW.optional()}),rF=oJ.extend({method:oO.literal("resources/subscribe"),params:rq}),rL=oJ.extend({method:oO.literal("resources/unsubscribe"),params:rq}),rH=oW.extend({uri:oO.string()}),rV=oB.extend({method:oO.literal("notifications/resources/updated"),params:rH}),rJ=oO.object({name:oO.string(),description:oO.optional(oO.string()),required:oO.optional(oO.boolean())}),rW=oO.object({...o6.shape,...o5.shape,description:oO.optional(oO.string()),arguments:oO.optional(oO.array(rJ)),_meta:oO.optional(oO.looseObject({}))}),rB=rp.extend({method:oO.literal("prompts/list")}),rK=rm.extend({prompts:oO.array(rW)}),rG=oH.extend({name:oO.string(),arguments:oO.record(oO.string(),oO.string()).optional()}),rY=oJ.extend({method:oO.literal("prompts/get"),params:rG}),rZ=oO.object({type:oO.literal("text"),text:oO.string(),annotations:rT.optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),rX=oO.object({type:oO.literal("image"),data:rS,mimeType:oO.string(),annotations:rT.optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),rQ=oO.object({type:oO.literal("audio"),data:rS,mimeType:oO.string(),annotations:rT.optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),r0=oO.object({type:oO.literal("tool_use"),name:oO.string(),id:oO.string(),input:oO.record(oO.string(),oO.unknown()),_meta:oO.record(oO.string(),oO.unknown()).optional()}),r2=oO.object({type:oO.literal("resource"),resource:oO.union([rx,rC]),annotations:rT.optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),r1=rR.extend({type:oO.literal("resource_link")}),r3=oO.union([rZ,rX,rQ,r1,r2]),r5=oO.object({role:rA,content:r3}),r6=oK.extend({description:oO.string().optional(),messages:oO.array(r5)}),r4=oB.extend({method:oO.literal("notifications/prompts/list_changed"),params:oW.optional()}),r9=oO.object({title:oO.string().optional(),readOnlyHint:oO.boolean().optional(),destructiveHint:oO.boolean().optional(),idempotentHint:oO.boolean().optional(),openWorldHint:oO.boolean().optional()}),r7=oO.object({taskSupport:oO.enum(["required","optional","forbidden"]).optional()}),r8=oO.object({...o6.shape,...o5.shape,description:oO.string().optional(),inputSchema:oO.object({type:oO.literal("object"),properties:oO.record(oO.string(),oq).optional(),required:oO.array(oO.string()).optional()}).catchall(oO.unknown()),outputSchema:oO.object({type:oO.literal("object"),properties:oO.record(oO.string(),oq).optional(),required:oO.array(oO.string()).optional()}).catchall(oO.unknown()).optional(),annotations:r9.optional(),execution:r7.optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),se=rp.extend({method:oO.literal("tools/list")}),st=rm.extend({tools:oO.array(r8)}),sn=oK.extend({content:oO.array(r3).default([]),structuredContent:oO.record(oO.string(),oO.unknown()).optional(),isError:oO.boolean().optional()});sn.or(oK.extend({toolResult:oO.unknown()}));let si=oV.extend({name:oO.string(),arguments:oO.record(oO.string(),oO.unknown()).optional()}),so=oJ.extend({method:oO.literal("tools/call"),params:si}),sr=oB.extend({method:oO.literal("notifications/tools/list_changed"),params:oW.optional()});oO.object({autoRefresh:oO.boolean().default(!0),debounceMs:oO.number().int().nonnegative().default(300)});let ss=oO.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),sa=oH.extend({level:ss}),sl=oJ.extend({method:oO.literal("logging/setLevel"),params:sa}),su=oW.extend({level:ss,logger:oO.string().optional(),data:oO.unknown()}),sc=oB.extend({method:oO.literal("notifications/message"),params:su}),sd=oO.object({name:oO.string().optional()}),sp=oO.object({hints:oO.array(sd).optional(),costPriority:oO.number().min(0).max(1).optional(),speedPriority:oO.number().min(0).max(1).optional(),intelligencePriority:oO.number().min(0).max(1).optional()}),sm=oO.object({mode:oO.enum(["auto","required","none"]).optional()}),sg=oO.object({type:oO.literal("tool_result"),toolUseId:oO.string().describe("The unique identifier for the corresponding tool call."),content:oO.array(r3).default([]),structuredContent:oO.object({}).loose().optional(),isError:oO.boolean().optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),sh=oO.discriminatedUnion("type",[rZ,rX,rQ]),sz=oO.discriminatedUnion("type",[rZ,rX,rQ,r0,sg]),sf=oO.object({role:rA,content:oO.union([sz,oO.array(sz)]),_meta:oO.record(oO.string(),oO.unknown()).optional()}),sb=oV.extend({messages:oO.array(sf),modelPreferences:sp.optional(),systemPrompt:oO.string().optional(),includeContext:oO.enum(["none","thisServer","allServers"]).optional(),temperature:oO.number().optional(),maxTokens:oO.number().int(),stopSequences:oO.array(oO.string()).optional(),metadata:oq.optional(),tools:oO.array(r8).optional(),toolChoice:sm.optional()}),sy=oJ.extend({method:oO.literal("sampling/createMessage"),params:sb}),sw=oK.extend({model:oO.string(),stopReason:oO.optional(oO.enum(["endTurn","stopSequence","maxTokens"]).or(oO.string())),role:rA,content:sh}),sv=oK.extend({model:oO.string(),stopReason:oO.optional(oO.enum(["endTurn","stopSequence","maxTokens","toolUse"]).or(oO.string())),role:rA,content:oO.union([sz,oO.array(sz)])}),sj=oO.object({type:oO.literal("boolean"),title:oO.string().optional(),description:oO.string().optional(),default:oO.boolean().optional()}),s_=oO.object({type:oO.literal("string"),title:oO.string().optional(),description:oO.string().optional(),minLength:oO.number().optional(),maxLength:oO.number().optional(),format:oO.enum(["email","uri","date","date-time"]).optional(),default:oO.string().optional()}),sk=oO.object({type:oO.enum(["number","integer"]),title:oO.string().optional(),description:oO.string().optional(),minimum:oO.number().optional(),maximum:oO.number().optional(),default:oO.number().optional()}),sI=oO.object({type:oO.literal("string"),title:oO.string().optional(),description:oO.string().optional(),enum:oO.array(oO.string()),default:oO.string().optional()}),sx=oO.object({type:oO.literal("string"),title:oO.string().optional(),description:oO.string().optional(),oneOf:oO.array(oO.object({const:oO.string(),title:oO.string()})),default:oO.string().optional()}),sS=oO.object({type:oO.literal("string"),title:oO.string().optional(),description:oO.string().optional(),enum:oO.array(oO.string()),enumNames:oO.array(oO.string()).optional(),default:oO.string().optional()}),sC=oO.union([sI,sx]),sA=oO.object({type:oO.literal("array"),title:oO.string().optional(),description:oO.string().optional(),minItems:oO.number().optional(),maxItems:oO.number().optional(),items:oO.object({type:oO.literal("string"),enum:oO.array(oO.string())}),default:oO.array(oO.string()).optional()}),sT=oO.object({type:oO.literal("array"),title:oO.string().optional(),description:oO.string().optional(),minItems:oO.number().optional(),maxItems:oO.number().optional(),items:oO.object({anyOf:oO.array(oO.object({const:oO.string(),title:oO.string()}))}),default:oO.array(oO.string()).optional()}),sR=oO.union([sA,sT]),sP=oO.union([sS,sC,sR]),sM=oO.union([sP,sj,s_,sk]),sE=oV.extend({mode:oO.literal("form").optional(),message:oO.string(),requestedSchema:oO.object({type:oO.literal("object"),properties:oO.record(oO.string(),sM),required:oO.array(oO.string()).optional()})}),sO=oV.extend({mode:oO.literal("url"),message:oO.string(),elicitationId:oO.string(),url:oO.string().url()}),sN=oO.union([sE,sO]),sq=oJ.extend({method:oO.literal("elicitation/create"),params:sN}),sU=oW.extend({elicitationId:oO.string()}),s$=oB.extend({method:oO.literal("notifications/elicitation/complete"),params:sU}),sD=oK.extend({action:oO.enum(["accept","decline","cancel"]),content:oO.preprocess(e=>null===e?void 0:e,oO.record(oO.string(),oO.union([oO.string(),oO.number(),oO.boolean(),oO.array(oO.string())])).optional())}),sF=oO.object({type:oO.literal("ref/resource"),uri:oO.string()}),sL=oO.object({type:oO.literal("ref/prompt"),name:oO.string()}),sH=oH.extend({ref:oO.union([sL,sF]),argument:oO.object({name:oO.string(),value:oO.string()}),context:oO.object({arguments:oO.record(oO.string(),oO.string()).optional()}).optional()}),sV=oJ.extend({method:oO.literal("completion/complete"),params:sH}),sJ=oK.extend({completion:oO.looseObject({values:oO.array(oO.string()).max(100),total:oO.optional(oO.number().int()),hasMore:oO.optional(oO.boolean())})}),sW=oO.object({uri:oO.string().startsWith("file://"),name:oO.string().optional(),_meta:oO.record(oO.string(),oO.unknown()).optional()}),sB=oJ.extend({method:oO.literal("roots/list"),params:oH.optional()}),sK=oK.extend({roots:oO.array(sW)}),sG=oB.extend({method:oO.literal("notifications/roots/list_changed"),params:oW.optional()});oO.union([ra,ri,sV,sl,rY,rB,rM,rO,rU,rF,rL,so,se,ry,rv,rj,rk]),oO.union([o1,rc,rs,sG,rb]),oO.union([o0,sw,sv,sD,sK,rw,r_,rz]),oO.union([ra,sy,sq,sB,ry,rv,rj,rk]),oO.union([o1,rc,sc,rV,rD,sr,r4,rb,s$]),oO.union([o0,rr,sJ,r6,rK,rE,rN,r$,sn,st,rw,r_,rz]);class sY extends Error{constructor(e,t,n){super(`MCP error ${e}: ${t}`),this.code=e,this.data=n,this.name="McpError"}static fromError(e,t,i){return e===n.UrlElicitationRequired&&i&&i.elicitations?new sZ(i.elicitations,t):new sY(e,t,i)}}class sZ extends sY{constructor(e,t=`URL elicitation${e.length>1?"s":""} required`){super(n.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}}var sX=e.i(60526);function sQ(e,t){return{jsonrpc:"2.0",id:e,result:t}}function s0(e,t,n,i){let o={code:t,message:n};return void 0!==i&&(o.data=i),{jsonrpc:"2.0",id:e,error:o}}(0,eS.createRequire)({get url(){return`file://${e.P("lib/acp2aisdk/vendor/acp-ai-provider/package/index.mjs")}`}}.url);var s2=`
4
4
  /* MCP Protocol Version 2024-11-05 */
5
5
  const isDeno=typeof Deno!=="undefined",MCP_VER="2024-11-05";
6
6
  let tools=[],host=null,pending=new Map,buf="",hbuf="",rid=0;
@@ -71,6 +71,6 @@ ${t}`),n}if(e instanceof Error)return t&&(e.message=`${e.message}
71
71
  [agent stderr]
72
72
  ${t}`),e;let n=Error(String(e));return t&&(n.message=`${n.message}
73
73
  [agent stderr]
74
- ${t}`),n}var ap="acp.acp_provider_agent_dynamic_tool",am=oM.object({toolCallId:oM.string().describe("The unique ID of the tool call."),toolName:oM.string().describe("The name of the tool being called."),args:oM.record(oM.unknown()).describe("The input arguments for the tool call.")}),ag=class{onSessionUpdateCallback;onPermissionRequestCallback;setSessionUpdateHandler(e){this.onSessionUpdateCallback=e}setPermissionRequestHandler(e){this.onPermissionRequestCallback=e}sessionUpdate(e){return this.onSessionUpdateCallback&&this.onSessionUpdateCallback(e),Promise.resolve()}async requestPermission(e){return this.onPermissionRequestCallback?await this.onPermissionRequestCallback(e):{outcome:{outcome:"selected",optionId:e.options[0]?.optionId||"allow"}}}writeTextFile(e){throw Error("File operations not implemented in language model client")}readTextFile(e){throw Error("File operations not implemented in language model client")}},ah=class{specificationVersion="v3";provider="acp";modelId;modeId;supportedUrls={};config;agentProcess=null;connection=null;sessionId=null;sessionResponse=null;client=null;currentModelId=null;currentModeId=null;isFreshSession=!0;stderrChunks=[];textBlockIndex=0;thinkBlockIndex=0;currentTextId=null;currentThinkingId=null;toolCallsMap=new Map;toolProxyHost=null;clientToolAbort=null;debug=new at;availableAuthMethodIds=[];constructor(e,t,n){this.modelId=e,this.modeId=t,this.config=n,this.debug.ensureAgentMessageLogFile()}resetStreamState(){this.textBlockIndex=0,this.thinkBlockIndex=0,this.currentTextId=null,this.currentThinkingId=null,this.toolCallsMap.clear(),this.clientToolAbort=null}hasToolInput(e){return null!=e&&("object"==typeof e?Object.keys(e).length>0:"string"!=typeof e||e.length>0)}normalizeToolInput(e){return e??{}}parseToolCall(e){if("tool_call"!==e.sessionUpdate)throw Error("Invalid update type for parseToolCall");let t=e.toolCallId;return{toolCallId:t,toolName:e.title||e.toolCallId,toolInput:e.rawInput??{}}}parseToolResult(e){if("tool_call_update"!==e.sessionUpdate)throw Error("Invalid update type for parseToolResult");let t=e.toolCallId,n=e.title||e.toolCallId;return{toolCallId:t,toolName:n,toolResult:e.rawOutput??e.content??null,isError:"failed"===e.status,status:e.status}}isClientToolResult(e){if(!Array.isArray(e)||0===e.length)return{isClientTool:!1};let t=e[0];if(!t?.type)return{isClientTool:!1};let n="text"===t.type&&"string"==typeof t.text?t.text:"content"===t.type&&t.content?.type==="text"?t.content.text:void 0;if(!n)return{isClientTool:!1};try{let e=JSON.parse(n);if(!0===e.isClientTool)return{isClientTool:!0,toolName:e.toolName,args:e.args}}catch{}return{isClientTool:!1}}async connectClient(){if(this.debug.ensureAgentMessageLogFile(),this.connection)return;if(!this.agentProcess){let e,t,n=this.config.session?.cwd||("function"==typeof x.default.cwd?x.default.cwd():"/");if(this.agentProcess=(0,eu.spawn)(this.config.command,this.config.args??[],{stdio:["pipe","pipe","pipe"],env:{...x.default.env,...this.config.env},cwd:n,..."win32"===x.default.platform?{windowsHide:!0}:{}}),!this.agentProcess.stdout||!this.agentProcess.stdin)throw Error("Failed to spawn agent process with stdio");this.stderrChunks=[],this.agentProcess.stderr?.on("data",e=>{let t=new TextDecoder().decode(e);this.stderrChunks.push(t),x.default.stderr.write(e)});let i=oP.Writable.toWeb(this.agentProcess.stdin),o=oP.Readable.toWeb(this.agentProcess.stdout);this.client=new ag,this.connection=new oA(()=>this.client,(e=new TextEncoder,t=new TextDecoder,{readable:new ReadableStream({async start(e){let n="",i=o.getReader();try{for(;;){let{value:o,done:r}=await i.read();if(r){n+=t.decode();break}if(!o)continue;let s=(n+=t.decode(o,{stream:!0})).split("\n");for(let t of(n=s.pop()||"",s)){let n=t.trim();if(n)try{let t=JSON.parse(n);e.enqueue(t)}catch(e){console.error("Failed to parse JSON message:",n,e)}}}let o=n.trim();if(o)try{let t=JSON.parse(o);e.enqueue(t)}catch(e){console.error("Failed to parse JSON message:",o,e)}}catch(t){e.error(t);return}finally{i.releaseLock()}e.close()}}),writable:new WritableStream({async write(t){let n=JSON.stringify(t)+"\n",o=i.getWriter();try{await o.write(e.encode(n))}finally{o.releaseLock()}}})}))}if(!this.connection)throw Error("Connection not initialized");let e={...this.config.initialize,protocolVersion:this.config.initialize?.protocolVersion??1,clientCapabilities:this.config.initialize?.clientCapabilities??{fs:{readTextFile:!1,writeTextFile:!1},terminal:!1}};try{let t=(await this.connection.initialize(e)).authMethods??[];if(this.availableAuthMethodIds=t.map(e=>e.id),t.length>0){let e=this.config.authMethodId;if(e)this.availableAuthMethodIds.includes(e)?console.log(`[acp-ai-provider] Lazy auth enabled with authMethodId="${e}". Authentication will run only when required (code -32000).`):console.log(`[acp-ai-provider] Warning: authMethodId "${e}" is not in initialize.authMethods. Lazy auth auto-retry will be skipped unless you call authenticate() with a valid method.`,JSON.stringify(t,null,2));else{let e=this.availableAuthMethodIds[0];console.log(`[acp-ai-provider] Warning: authMethodId is not configured. Lazy auth will default to the first auth method "${e}".`,JSON.stringify(t,null,2))}}}catch(e){throw ad(e,this.stderrChunks.join(""))}}async startSession(e){if(!this.connection)throw Error("Not connected");try{let t=[...this.config.session?.mcpServers??[]],n=!1;if(e&&e.length>0&&!this.toolProxyHost){for(let t of(this.debug.log("[acp-ai-provider] Setting up tool proxy for client-side tools...",e.map(e=>e.name)),this.toolProxyHost=new s1("acp-ai-sdk-tools"),e))this.toolProxyHost.registerTool(t.name,t);n=!0}if(this.toolProxyHost){let e=await this.toolProxyHost.start();t.push(e)}if(this.sessionId&&n){this.sessionResponse=await this.connection.newSession({...this.config.session,cwd:this.config.session?.cwd??x.default.cwd(),mcpServers:t}),this.sessionId=this.sessionResponse.sessionId,this.isFreshSession=!0,await this.applySessionDelay();return}if(this.sessionId)return;this.config.existingSessionId?(await this.connection.loadSession({sessionId:this.config.existingSessionId,cwd:this.config.session?.cwd??x.default.cwd(),mcpServers:t}),this.sessionId=this.config.existingSessionId,this.sessionResponse={sessionId:this.config.existingSessionId},this.isFreshSession=!1):(this.sessionResponse=await this.connection.newSession({...this.config.session,cwd:this.config.session?.cwd??x.default.cwd(),mcpServers:t}),this.sessionId=this.sessionResponse.sessionId,this.isFreshSession=!0);let{models:i,modes:o}=this.sessionResponse??{};i?.currentModelId&&(this.currentModelId=i.currentModelId),o?.currentModeId&&(this.currentModeId=o.currentModeId),this.modelId&&this.modelId!==this.currentModelId&&(await this.setModel(this.modelId),this.currentModelId=this.modelId),this.modeId&&this.modeId!==this.currentModeId&&(await this.setMode(this.modeId),this.currentModeId=this.modeId),await this.applySessionDelay()}catch(e){throw ad(e,this.stderrChunks.join(""))}}async applySessionDelay(){this.config.sessionDelayMs&&(this.debug.log(`[acp-ai-provider] Waiting ${this.config.sessionDelayMs}ms after session setup...`),await new Promise(e=>setTimeout(e,this.config.sessionDelayMs)))}resolveLazyAuthMethodId(){let e=this.config.authMethodId;return e?0===this.availableAuthMethodIds.length||this.availableAuthMethodIds.includes(e)?e:null:this.availableAuthMethodIds[0]??null}async withLazyAuthRetry(e,t){try{return await t()}catch(o){var n;if(!((n=o)&&"object"==typeof n&&"code"in n&&-32e3===n.code||n&&"object"==typeof n&&"message"in n&&String(n.message??"").toLowerCase().includes("authentication required")))throw o;let i=this.resolveLazyAuthMethodId();if(!i)throw o;return this.debug.log(`[acp-ai-provider] Authentication required during ${e} (code -32000). Running lazy authenticate with methodId="${i}" and retrying once...`),await this.authenticate(i),await t()}}async ensureConnected(e){await this.withLazyAuthRetry("session setup",async()=>{await this.connectClient(),await this.startSession(e)})}cleanup(){this.config.persistSession||this.forceCleanup()}getSessionId(){return this.sessionId}async initSession(e){let t=ae(e,!1);return await this.ensureConnected(t.length>0?t:void 0),this.sessionResponse}async authenticate(e){if(await this.connectClient(),!this.connection)throw Error("Not connected");try{await this.connection.authenticate({methodId:e})}catch(e){throw ad(e,this.stderrChunks.join(""))}}async promptWithLazyAuthRetry(e){if(!this.connection)throw Error("Not connected");try{let t=await this.withLazyAuthRetry("prompt",()=>this.connection.prompt(e));return this.debug.appendPromptResponse(t),t}catch(e){throw this.debug.appendPromptError(e),e}}async setMode(e){if(!this.connection||!this.sessionId)throw Error("Not connected. Call preconnect() first.");let t=this.sessionResponse?.modes?.availableModes;if(t&&!t.find(t=>t.id===e)){let n=t.map(e=>e.id).join(", "),i=this.sessionResponse?.modes?.currentModeId?` (Current: "${this.sessionResponse.modes.currentModeId}")`:"";throw Error(`Mode "${e}" is not available${i}. Available modes: ${n}`)}await this.connection.setSessionMode({sessionId:this.sessionId,modeId:e}),this.currentModeId=e}async setModel(e){if(!this.connection||!this.sessionId)throw Error("Not connected. Call preconnect() first.");let{models:t}=this.sessionResponse??{};if(t?.availableModels&&!t.availableModels.some(t=>t.modelId===e)){let n=t.availableModels.map(e=>e.modelId).join(", "),i=this.currentModelId?` (Current: "${this.currentModelId}")`:"";throw Error(`Model "${e}" is not available${i}. Available models: ${n}`)}await this.connection.unstable_setSessionModel({sessionId:this.sessionId,modelId:e}),this.currentModelId=e}forceCleanup(){this.toolProxyHost&&(this.toolProxyHost.stop(),this.toolProxyHost=null),this.agentProcess&&(this.agentProcess.kill(),this.agentProcess.stdin?.end(),this.agentProcess.stdout?.destroy(),this.agentProcess.stderr?.destroy(),this.agentProcess=null),this.connection=null,this.sessionId=null,this.sessionResponse=null,this.client=null,this.stderrChunks=[],this.availableAuthMethodIds=[]}emitRawContent(e,t){if("entries"in t)return void e.enqueue({type:"raw",rawValue:JSON.stringify({type:"plan",entries:t.entries})});for(let n of t.content)("diff"===n.type||"terminal"===n.type)&&e.enqueue({type:"raw",rawValue:JSON.stringify({...n,toolCallId:t.toolCallId})})}flushPendingToolCalls(e){for(let[t,n]of this.toolCallsMap.entries())n.inputAvailable||(n.inputAvailable=!0,e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:n.name,args:{}})}))}handleStreamNotification(e,t){this.debug.appendAgentMessage(t);let n=t.update;switch(n.sessionUpdate){case"plan":this.flushPendingToolCalls(e),this.emitRawContent(e,{type:"plan",entries:n.entries});break;case"agent_thought_chunk":this.flushPendingToolCalls(e),this.currentThinkingId||(this.currentThinkingId=`reasoning - ${this.thinkBlockIndex++} `,e.enqueue({type:"reasoning-start",id:this.currentThinkingId})),e.enqueue({type:"reasoning-delta",id:this.currentThinkingId,delta:"text"===n.content.type?n.content.text:""});break;case"agent_message_chunk":if(this.flushPendingToolCalls(e),this.currentThinkingId&&(e.enqueue({type:"reasoning-end",id:this.currentThinkingId}),this.currentThinkingId=null),"text"===n.content.type){let t=n.content.text;this.currentTextId||(this.currentTextId=`text - ${this.textBlockIndex++} `,e.enqueue({type:"text-start",id:this.currentTextId})),e.enqueue({type:"text-delta",id:this.currentTextId,delta:t})}break;case"tool_call":{this.currentTextId&&(e.enqueue({type:"text-end",id:this.currentTextId}),this.currentTextId=null),this.currentThinkingId&&(e.enqueue({type:"reasoning-end",id:this.currentThinkingId}),this.currentThinkingId=null);let{toolCallId:t,toolName:i,toolInput:o}=this.parseToolCall(n),r=this.toolCallsMap.get(t),s=this.hasToolInput(o);r?!r.inputAvailable&&s&&(r.inputAvailable=!0,n.title&&r.name!==n.title&&n.title!==t&&(r.name=n.title),e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:r.name,args:o})})):(this.toolCallsMap.set(t,{index:this.toolCallsMap.size,name:i,inputStarted:!0,inputAvailable:!!s}),e.enqueue({type:"tool-input-start",id:t,toolName:i}),s&&e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:i,args:o})}));break}case"tool_call_update":{let{toolCallId:t,toolName:i,toolResult:o,isError:r}=this.parseToolResult(n),s=n.status??"in_progress",a=this.toolCallsMap.get(t),l=this.normalizeToolInput("rawInput"in n?n.rawInput:void 0);if("in_progress"===s){a||(a={index:this.toolCallsMap.size,name:i,inputStarted:!0,inputAvailable:!1},this.toolCallsMap.set(t,a),e.enqueue({type:"tool-input-start",id:t,toolName:i}));let o=this.hasToolInput(l);(!a.inputAvailable||o)&&(a.inputAvailable=!0,n.title&&a.name!==n.title&&n.title!==t&&(a.name=n.title),e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:a.name,args:l})}));let r=n.content??[];r.length>0&&this.emitRawContent(e,{content:r,toolCallId:t});break}if(!["completed","failed"].includes(s))break;if(a){let i=this.hasToolInput(l);(!a.inputAvailable||i)&&(a.inputAvailable=!0,n.title&&a.name!==n.title&&n.title!==t&&(a.name=n.title),e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:a.name,args:l})}))}else a={index:this.toolCallsMap.size,name:i,inputAvailable:!0},this.toolCallsMap.set(t,a),e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:i,args:l})});let u=this.isClientToolResult(o);if(u.isClientTool){this.debug.log(`[acp-ai-provider] Detected client tool: ${u.toolName}, stopping stream`);let i=n.content??[];i.length>0&&this.emitRawContent(e,{content:i,toolCallId:t}),this.clientToolAbort&&(e.enqueue({type:"finish",finishReason:{unified:"tool-calls",raw:void 0},usage:{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0}}}),e.close(),this.clientToolAbort.resolve(),this.cleanup());break}e.enqueue({type:"tool-result",toolCallId:t,toolName:ap,result:o,...r&&{isError:!0,result:Error(function(e){if(!e||0===e.length)return"Unknown tool error";let t=[];for(let n of e)"content"===n.type&&"text"===n.content.type&&t.push(n.content.text);return t.join("\n")}(function(e){if(!e)return[];if(Array.isArray(e))return e;if("string"==typeof e)return[{type:"content",content:{type:"text",text:e}}];let t="object"==typeof e?e.content:null;return Array.isArray(t)?t.map(e=>e?.type==="content"?e:e?.type==="text"?{type:"content",content:{type:"text",text:String(e.text??"")}}:{type:"content",content:{type:"text",text:JSON.stringify(e)}}):[{type:"content",content:{type:"text",text:JSON.stringify(e)}}]}(o)))}});let c=n.content??[];c.length>0&&this.emitRawContent(e,{content:c,toolCallId:t})}}}async doGenerate(e){try{let t=ao(e.responseFormat)?e.responseFormat:null,n=t?ar(t):void 0;await this.ensureConnected();let i=s8(e,this.isFreshSession,n);this.isFreshSession=!1;let o="",r=[],s=new Map,a={enqueue:e=>{switch(e.type){case"text-delta":o+=e.delta;break;case"tool-call":{let t=JSON.parse(e.input);r.push({id:e.toolCallId,name:t.toolName,input:t.args});break}case"tool-result":{let t=r.find(t=>t.id===e.toolCallId);s.set(e.toolCallId,{name:t?.name||e.toolCallId,result:e.result,isError:e.isError})}}}},l=this.handleStreamNotification.bind(this);this.resetStreamState(),this.client&&this.client.setSessionUpdateHandler(e=>{l(a,e)});let u=await this.promptWithLazyAuthRetry({sessionId:this.sessionId,prompt:i}),c=[],d=t?as(o):o;for(let e of(d.trim()&&c.push({type:"text",text:d}),r))c.push({type:"tool-call",toolCallId:e.id,toolName:e.name,args:JSON.stringify(e.input),input:e.input,output:s.get(e.id)?.result});let p={content:c,finishReason:{unified:ac(u.stopReason),raw:u.stopReason},providerMetadata:au(u),usage:{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0}},warnings:[]};return this.cleanup(),p}catch(e){throw this.cleanup(),e}}async doStream(e){let t,n=ae(e.tools),i=ao(e.responseFormat)?e.responseFormat:null,o=i?ar(i):void 0;try{await this.ensureConnected(n.length>0?n:void 0)}catch(e){throw this.forceCleanup(),e}let r=s8(e,this.isFreshSession,o);this.isFreshSession=!1;let s=this.sessionId,a=this.client,l=()=>this.cleanup(),u=this.handleStreamNotification.bind(this),c=new ReadableStream({start:async e=>{e.enqueue({type:"stream-start",warnings:[]}),this.resetStreamState();let t=new Promise(t=>{this.clientToolAbort={controller:e,resolve:t}});try{a&&a.setSessionUpdateHandler(t=>{u(e,t)});let n=this.promptWithLazyAuthRetry({sessionId:s,prompt:r}),i=await Promise.race([n.then(e=>({type:"response",response:e})),t.then(()=>({type:"client-tool"}))]);if("client-tool"===i.type)return;let o=i.response;e.enqueue({type:"finish",finishReason:{unified:ac(o.stopReason),raw:o.stopReason},providerMetadata:au(o),usage:{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0}}}),e.close(),l()}catch(t){l(),e.enqueue({type:"error",error:ad(t,this.stderrChunks.join(""))})}},cancel:()=>{l()}});return{stream:i?c.pipeThrough((t={},new TransformStream({transform(e,n){if("text-start"===e.type){t[e.id]={startEvent:e,phase:"prefix",buffer:"",prefixStripped:!1};return}if("text-delta"===e.type){let i=t[e.id];if(!i)return void n.enqueue(e);if(i.buffer+=e.delta,"prefix"===i.phase)if(i.buffer.length>0&&!i.buffer.startsWith("`"))i.phase="streaming",n.enqueue(i.startEvent);else if(i.buffer.startsWith("```")){if(i.buffer.includes("\n")){let e=i.buffer.match(an);i.phase="streaming",e&&(i.buffer=i.buffer.slice(e[0].length),i.prefixStripped=!0),n.enqueue(i.startEvent)}}else i.buffer.length>=3&&!i.buffer.startsWith("```")&&(i.phase="streaming",n.enqueue(i.startEvent));if("streaming"===i.phase&&i.buffer.length>12){let t=i.buffer.slice(0,-12);i.buffer=i.buffer.slice(-12),aa(n,e.id,t)}return}if("text-end"===e.type){let i=t[e.id];return i?("prefix"===i.phase&&n.enqueue(i.startEvent),aa(n,e.id,al(i)),n.enqueue(e),void delete t[e.id]):void n.enqueue(e)}n.enqueue(e)},flush(e){for(let[n,i]of Object.entries(t))"prefix"===i.phase&&e.enqueue(i.startEvent),aa(e,n,al(i))}}))):c,warnings:void 0}}get tools(){return s6()}},az=class{config;model=null;constructor(e){this.config=e}languageModel(e,t){return this.model||(this.model=new ah(e,t,this.config)),e&&(this.model.modelId=e),t&&(this.model.modeId=t),this.model}call(){return this.languageModel()}get tools(){return this.model?.tools}getSessionId(){return this.model?.getSessionId()??null}initSession(e){return this.model||this.languageModel(),this.model.initSession(e)}connect(){return this.model||this.languageModel(),this.model.connectClient()}authenticate(e){this.model||this.languageModel();let t=e??this.config.authMethodId;if(!t)throw Error("No auth method configured. Pass methodId or set authMethodId in ACPProviderSettings.");return this.model.authenticate(t)}setMode(e){if(!this.model)throw Error("No model initialized. Call languageModel() first.");return this.model.setMode(e)}setModel(e){if(!this.model)throw Error("No model initialized. Call languageModel() first.");return this.model.setModel(e)}cleanup(){this.model?.forceCleanup()}};e.s(["ACPLanguageModel",0,ah,"ACPProvider",0,az,"ACP_PROVIDER_AGENT_DYNAMIC_TOOL_NAME",0,ap,"acpTools",0,function(e){for(let[t,n]of Object.entries(e))s5.set(t,n.execute);return{...e,...s6()}},"createACPProvider",0,function(e){return new az(e)},"getExecuteByName",0,s4,"hasRegisteredExecute",0,s9,"providerAgentDynamicToolSchema",0,am],92276);var af=e.i(92276);af.ACP_PROVIDER_AGENT_DYNAMIC_TOOL_NAME,af.ACPLanguageModel,af.ACPProvider;let ab=af.acpTools,ay=af.createACPProvider;async function aw(e,t){try{e.provider.languageModel(),function(e,t){let n=W(e);if(n&&!n.__acpUiCompatInstalled){let e,i,o,r,s;n.__acpUiCompatInstalled=!0,(e=n.promptWithLazyAuthRetry?.bind(n))&&!n.__acpUiOriginalPromptWithLazyAuthRetry&&(n.__acpUiOriginalPromptWithLazyAuthRetry=e,n.promptWithLazyAuthRetry=t=>{let i=e(t);return n.__acpUiPromptPromise=i,i.finally(()=>{n.__acpUiPromptPromise===i&&(n.__acpUiPromptPromise=null)}).catch(()=>{}),i}),(i=n.doStream?.bind(n))&&!n.__acpUiOriginalDoStream&&(n.__acpUiOriginalDoStream=i,n.doStream=async e=>{let t=n.__acpUiResumeElicitationResponse,o=n.__acpUiPendingElicitation;if(t&&o){let e;return n.__acpUiResumeElicitationResponse=null,e=new ReadableStream({start:async e=>{Y(e,{type:"stream-start",warnings:[]}),n.resetStreamState?.();let i=n.handleStreamNotification?.bind(n);n.client&&i&&n.client.setSessionUpdateHandler?.(t=>{i(e,t)});let r=new Promise(t=>{n.clientToolAbort={controller:e,resolve:()=>t("client-tool")}});try{n.__acpUiPendingElicitation=null,o.resolve(t);let i=await Promise.race([o.promptPromise.then(e=>({type:"response",response:e})),r.then(e=>({type:e}))]);if("client-tool"===i.type)return;let s=J(i.response)?i.response:{};Y(e,{type:"finish",finishReason:{unified:function(e){switch(e){case"end_turn":return"stop";case"max_tokens":case"max_turn_requests":return"length";default:return"other"}}(s.stopReason),raw:s.stopReason},providerMetadata:function(e){try{return{acp:JSON.parse(JSON.stringify(e))}}catch{return{acp:e}}}(i.response),usage:G()}),Z(e),n.cleanup?.()}catch(t){n.__acpUiPendingElicitation=null,n.cleanup?.(),Y(e,{type:"error",error:t}),Z(e)}},cancel:()=>{n.cleanup?.()}}),{stream:Q(n,e),warnings:void 0}}let r=await i(e);return{...r,stream:Q(n,r.stream)}}),(o=n.connectClient?.bind(n))&&(n.connectClient=async(...e)=>{let t=await o(...e);return ee(n),t}),(r=n.startSession?.bind(n))&&(n.startSession=async(...e)=>{let i=B(n.config?.existingSessionId),o=n.connection,s=o?.loadSession?.bind(o),a=Array.isArray(n.config?.session?.additionalDirectories)?n.config.session.additionalDirectories:[];i&&o?.resumeSession&&s&&(o.loadSession=async e=>{let r={...e,...a.length>0?{additionalDirectories:a}:{}};if(e.sessionId!==i)return s(r);try{let e=await o.resumeSession?.(r);return n.__acpUiResumeResponse=J(e)?e:{},e}catch(e){return t.warnings.push(`Failed to resume ACP session "${i}" via session/resume; falling back to session/load: ${e instanceof Error?e.message:String(e)}`),n.__acpUiResumeResponse=null,s(r)}});try{let o=await r(...e);return i&&n.__acpUiResumeResponse&&n.sessionId===i&&(n.sessionResponse={sessionId:i,...n.__acpUiResumeResponse},t.capabilitySnapshot=V({provider:t.provider,sessionResponse:n.sessionResponse})),o}finally{o&&s&&(o.loadSession=s)}}),(s=n.handleStreamNotification?.bind(n))&&(n.handleStreamNotification=(e,t)=>{let n=J(t.update)?t.update:null,i=n?.sessionUpdate;if(s(e,t),!n)return;if("plan_update"===i||"plan_removed"===i||"available_commands_update"===i||"current_mode_update"===i||"config_option_update"===i||"session_info_update"===i||"usage_update"===i)return void K(e,n);if("tool_call_update"!==i)return;let o=B(n.toolCallId);if(o&&Array.isArray(n.content))for(let t of n.content)J(t)&&("content"===t.type||"resource"===t.type||"resource_link"===t.type)&&K(e,"content"===t.type&&J(t.content)?{...t.content,type:t.content.type,toolCallId:o,wrapper:"content",raw:t}:{...t,toolCallId:o,raw:t})}),ee(n)}}(e.provider,e.metadata);let n=await e.provider.initSession(t),i=V({provider:e.metadata.provider,sessionResponse:n});e.metadata.acpSessionId=n.sessionId,e.metadata.capabilitySnapshot=i}catch(t){throw e.metadata.runState="error",t}}async function av(e,t){let n=(0,ex.getGlobalAcpSessionStore)();n.cleanupIdle();let i=(0,N.normalizeAcpProvider)(e.provider),o=(0,N.resolveAcpProviderConfig)(i),r=(0,ex.normalizeThreadId)(e.threadId??e.id),s=(0,ex.normalizeWorkspacePath)(e.workspacePath),a=(0,ex.createAcpSessionKey)({threadId:r,provider:i,workspacePath:s}),u=(0,eI.normalizePermissionMode)(e.permissionMode),c=e.model||null,d=e.modeId||(0,N.getAcpProviderDefaultModeId)(i),p=e.thoughtLevel||null,m=(0,er.getBuiltinToolRuntimeKey)({toolIds:e.builtinTools,builtinToolSettings:e.builtinToolSettings}),g=n.get(a);if(g)if(g.metadata.builtinToolRuntimeKey===m)return g.metadata={...g.metadata,model:c,modeId:d,thoughtLevel:p,permissionMode:u,runState:"queued",coldStart:!1,lastUsedAt:Date.now()},g;else n.cleanup(a);let h=await (0,l.getConversation)(r,s),z=h?.provider===i?h.providerSessionId??null:null,f=ey(),b=(t,n,l=[])=>{let g=function(e,t){let{platform:n,execPath:i,env:o}=eh(t),r=ey({platform:n,execPath:i,env:o}),s="win32"===n?ej(e.command,r):e.command;return"win32"===n&&s.toLowerCase()!==ep&&(/\.(cmd|bat)$/i.test(s)||!/\.(exe|com)$/i.test(s))?s.toLowerCase()===ep?e:{command:ep,args:["/d","/s","/c",[s,...e.args??[]].map(e=>(function(e){if(!e)return'""';if(!/[\s"&^|<>]/.test(e))return e;let t=e.replace(/(\\*)"/g,'$1$1\\"').replace(/(\\+)$/g,"$1$1");return`"${t}"`})(String(e))).join(" ")]}:s===e.command?e:{command:s,args:e.args}}(t,{env:f}),h=(0,el.normalizeMcpServers)(e.mcpServers),z=(0,er.mergeToolMcpServers)(h.servers,{workspacePath:s,threadId:r,toolIds:e.builtinTools,builtinToolSettings:e.builtinToolSettings}),b=(0,el.normalizeAdditionalDirectories)({additionalDirectories:e.additionalDirectories,workspacePath:s,context:e.context});return{provider:ay(function({command:e,args:t,env:n,authMethodId:i,sessionDelayMs:o,persistSession:r,workspacePath:s,mcpServers:a,additionalDirectories:l,existingSessionId:u}){return{command:e,args:t,env:n,initialize:{clientCapabilities:{fs:{readTextFile:!1,writeTextFile:!1},terminal:!1,planCapabilities:{},elicitation:{form:{},url:{}}}},session:{cwd:s,mcpServers:a,...l.length>0?{additionalDirectories:l}:{}},...u?{existingSessionId:u}:{},...i?{authMethodId:i}:{},...o?{sessionDelayMs:o}:{},persistSession:r??!0}}({command:g.command,args:g.args,env:f,authMethodId:o.authMethodId,sessionDelayMs:o.sessionDelayMs,persistSession:o.persistSession,workspacePath:s,mcpServers:z,additionalDirectories:b.directories,existingSessionId:n})),metadata:{...(0,ex.createInitialMetadata)({sessionKey:a,threadId:r,provider:i,workspacePath:s,model:c,modeId:d,thoughtLevel:p,permissionMode:u}),resumedAcpSessionId:n??null,builtinToolRuntimeKey:m,warnings:[...l,...h.warnings,...b.warnings]},promptHistoryStrategy:n?"session":"full"}},y=[{command:o.command,args:o.args},...o.fallbackCommands??[]],w=async(e,i=[])=>{let o=[],r=null;for(let[s,l]of y.entries()){let u=s<y.length-1,c=e_(l);if(!function(e,t){let{platform:n,execPath:i,env:o}=eh(t),r=ey({platform:n,execPath:i,env:o}),{command:s}=e;if("win32"===n){if(s.toLowerCase()===ep||ev(ej(s,r),n))return!0;if(ew(s))return!1;try{return(0,eu.execFileSync)("where.exe",[s],{encoding:"utf8",env:r,stdio:["ignore","pipe","ignore"]}),!0}catch{return!1}}if(ew(s))return ev(s,n);try{return(0,eu.execFileSync)("which",[s],{encoding:"utf8",env:r,stdio:["ignore","pipe","ignore"]}),!0}catch{return!1}}(l,{env:f})){let e=ek(l);if(r=e,!u)throw e;o.push(`ACP provider command unavailable (${c}); trying fallback.`);continue}let d=b(l,e,[...i,...o]);n.set(a,d);try{return await aw(d,t),d}catch(e){if(n.cleanup(a),r=e,!u||!function(e){if(!e||"object"!=typeof e)return!1;let t=e.code;if("ENOENT"===t||"EINVAL"===t)return!0;let n=e instanceof Error?e.message:String(e.message);return/\bspawn\b.+\b(ENOENT|EINVAL)\b/i.test(n)||/\b(?:ACP\s+)?connection closed\b/i.test(n)||/(not recognized as an internal or external command|command not found)/i.test(n)}(e))throw e;o.push(`ACP provider command failed (${c}); trying fallback.`)}}throw r??ek(y[0])};try{return await w(z)}catch(e){if(!z)throw e}return w(null,[`Failed to resume ACP session "${z}"; started a new session with UI message history instead.`])}async function aj(e){let{model:t,modeId:n}=e.metadata;if(t&&!await es(e.provider,e.metadata,"model",t,"model"))try{e.provider.languageModel(t,void 0),await e.provider.setModel(t)}catch(n){e.metadata.warnings.push(`Failed to set ACP model "${t}": ${n instanceof Error?n.message:String(n)}`)}if(n&&!await es(e.provider,e.metadata,"mode",n,"mode"))try{e.provider.languageModel(void 0,n),await e.provider.setMode(n)}catch(t){e.metadata.warnings.push(`Failed to set ACP mode "${n}": ${t instanceof Error?t.message:String(t)}`)}await ea(e.provider,e.metadata)}function a_(e){return e.metadata.acpSessionId=e.provider.getSessionId(),e.metadata.lastUsedAt=Date.now(),e.metadata}function ak(e){let t=(0,N.normalizeAcpProvider)(e.provider),n=(0,ex.normalizeThreadId)(e.threadId??e.id),i=(0,ex.normalizeWorkspacePath)(e.workspacePath);return(0,ex.createAcpSessionKey)({threadId:n,provider:t,workspacePath:i})}function aI(e){return!!(e&&"object"==typeof e&&!Array.isArray(e))}function ax(e){return"string"==typeof e?e.trim():""}function aS(e){let t=JSON.stringify(e)??"",n=0;for(let e=0;e<t.length;e+=1)n=31*n+t.charCodeAt(e)|0;return Math.abs(n).toString(36)}function aC(e){return(Array.isArray(e)?e:[]).flatMap(e=>{if(!aI(e))return[];let t=ax(e.name||e.command||e.id).replace(/^\/+/,"");return t?[{name:t,description:ax(e.description),input:e.input,source:"acp"}]:[]})}function aA(e,t){let n=ax(e.toolCallId);if(!n)return;let i=("diff"===t?`${ax(e.path)}:${aS(e)}`:"terminal"===t?`${ax(e.terminalId)||"terminal"}:${aS(e)}`:"resource"===t||"resource_link"===t?`${ax(e.uri)||ax(e.name)||t}:${aS(e)}`:aS(e))||aS(e);return{custom:{acpToolContent:{byToolCallId:{[n]:{["diff"===t?"diffs":"terminal"===t?"terminals":"resource"===t?"resources":"resource_link"===t?"resourceLinks":"unknown"]:{[i]:{...e,type:t,toolCallId:n,updatedAt:Date.now()}}}}}}}}function aT(e,t){if(!e)return;let n=e.metadata;switch(t.sessionUpdate){case"available_commands_update":{let e=aC(t.availableCommands);if(!n.capabilitySnapshot)break;n.capabilitySnapshot={...n.capabilitySnapshot,updatedAt:new Date().toISOString(),metadata:{...n.capabilitySnapshot.metadata,availableCommands:function(e,t){let n=new Map;for(let t of e)n.set(t.name,t);for(let e of t)n.set(e.name,e);return[...n.values()]}(n.capabilitySnapshot.metadata.availableCommands,e)}};break}case"session_info_update":{let e=ax(t.title);e&&(n.sessionTitle=e);break}case"config_option_update":{let t=e.provider.model;if(!t?.sessionResponse)break;n.capabilitySnapshot=V({provider:n.provider,sessionResponse:t.sessionResponse});break}case"usage_update":if(!n.capabilitySnapshot)break;n.capabilitySnapshot={...n.capabilitySnapshot,updatedAt:new Date().toISOString(),metadata:{...n.capabilitySnapshot.metadata,tokenUsage:t.usage??t}}}}af.getExecuteByName,af.hasRegisteredExecute,af.providerAgentDynamicToolSchema;let aR={[g]:{description:"Collect a user's ACP elicitation choice from an option list.",parameters:z}};function aP(e){return!!(e&&"object"==typeof e&&!Array.isArray(e))}async function aM(e){let t=(0,ex.getGlobalAcpSessionStore)();t.cleanupIdle();let n=ak(e),i=t.get(n),o=i?.metadata??null;return i&&o?.runState==="running"?!function(e,t=Date.now()){return e.some(e=>{let n=aP(e.content)?e.content:null,i=aP(n?.metadata)?n.metadata:null,o=aP(i?.custom)?i.custom:null,r=aP(o?.acpRun)?o.acpRun:null;if(r?.status!=="running")return!1;let s=Date.parse(String(e.updatedAt??""));return Number.isFinite(s)&&s>=t-3e5})}((await (0,l.loadConversationMessages)(o.threadId,"ai-sdk/v6",o.workspacePath,"runtime")).messages)?(i.metadata.runState="aborted",a_(i),(0,l.touchConversationFromRuntime)(i.metadata),t.cleanup(n),(0,l.closeConversationSession)(i.metadata),null):i.metadata:o}async function aE(e){let t=(0,ex.getGlobalAcpSessionStore)();t.cleanupIdle();let n=ak(e),i=t.get(n),o=i?.metadata??null;i&&(i.metadata.runState="aborted",a_(i),(0,l.touchConversationFromRuntime)(i.metadata),await et(i.provider,i.metadata));let r=t.cleanup(n);return(0,l.closeConversationSession)(o),{cancelled:!!i,cleaned:r,metadata:o,remainingSessions:t.list()}}async function aO(e,t={}){await (0,eo.persistRequestRuntimeMessages)(e);let n={...e.tools??{}};delete n[g];let i={...ab(s(n)),...s(aR)},o=await av(e,i),r=(0,ex.getGlobalAcpSessionStore)(),p=function(e,t){var n,i;let o=function(e){let t=e.at(-1);if(t?.role!=="assistant")return null;for(let e=t.parts.length-1;e>=0;e--){let n=t.parts[e];if(!f(n)||n.type!==h&&("dynamic-tool"!==n.type||b(n.toolName)!==g))continue;let i=b(n.toolCallId);if(i){if("output-available"===n.state)return{toolCallId:i,result:f(n.output)?n.output:{action:"cancel"}};if("output-denied"===n.state)return{toolCallId:i,result:{action:"decline"}};if("output-error"===n.state)return{toolCallId:i,result:{action:"cancel"}}}}return null}(t);if(!o)return{status:"none"};let r=W(e);if(!r)return{status:"stale",toolCallId:o.toolCallId,reason:"ACP provider model is not initialized."};let s=r.__acpUiPendingElicitation;return s?s.toolCallId!==o.toolCallId?{status:"stale",toolCallId:o.toolCallId,reason:`Pending ACP elicitation "${s.toolCallId}" does not match result "${o.toolCallId}".`}:(n=s.request,r.__acpUiResumeElicitationResponse=f(i=o.result)?"cancel"===i.action||"decline"===i.action?{action:i.action}:"accept"===i.action&&f(i.content)?{action:"accept",content:function(e,t){let n,i,o,r=(n=u(e.requestedSchema)?e.requestedSchema:{},i=u(n.properties)?n.properties:{},o=new Set(d(n.required)),Object.entries(i).flatMap(([e,t])=>{let n;if(!u(t))return[];let i="array"===t.type?"array":Array.isArray(t.enum)||Array.isArray(t.oneOf)?"enum":"number"===t.type?"number":"integer"===t.type?"integer":"boolean"===t.type?"boolean":"string";return[{name:e,type:i,title:c(t.title)||e,description:c(t.description),required:o.has(e),options:"enum"===i||"array"===i?"array"===i&&(n=m(u(t.items)?t.items:{})).length>0?n:m(t):[]}]})),s={};for(let e of r){let n=function(e,t){if(null==t||""===t)return e.required?"":void 0;if("boolean"===e.type)return!!t;if("number"===e.type){let e=Number(t);return Number.isFinite(e)?e:void 0}if("integer"===e.type){let e=Number(t);return Number.isInteger(e)?e:void 0}return"array"===e.type?Array.isArray(t)?t.map(c).filter(Boolean):d(String(t).split(",")):String(t).trim()}(e,t[e.name]);void 0!==n&&(s[e.name]=n)}return s}(n,i.content)}:{action:"cancel"}:{action:"cancel"},{status:"staged",toolCallId:o.toolCallId}):{status:"stale",toolCallId:o.toolCallId,reason:"No pending ACP elicitation is waiting for this result."}}(o.provider,e.messages);if(o.metadata.runState="running",await (0,l.touchConversationFromRuntime)(o.metadata),"staged"!==p.status&&await aj(o),"stale"===p.status)return o.metadata.runState="error",o.metadata.warnings.push(p.reason),a_(o),await (0,eo.persistRuntimeMessages)({request:e,messages:e.messages,runState:"error",acpSessionId:o.metadata.acpSessionId,error:p.reason}).catch(e=>{o.metadata.warnings.push(`Failed to persist stale elicitation runtime messages: ${e instanceof Error?e.message:String(e)}`),a_(o)}),(0,l.touchConversationFromRuntime)(o.metadata),{response:(0,en.createDirectMessageResponse)(o.metadata,"ACP 选项请求已经失效,无法继续这次选择。"),metadata:o.metadata};let z=()=>{o.metadata.runState="aborted",a_(o),et(o.provider,o.metadata).finally(()=>{r.cleanup(o.metadata.sessionKey)})};t.abortSignal?.aborted?z():t.abortSignal?.addEventListener("abort",z,{once:!0});let y="staged"===p.status?[]:function(e,t){if(!(t?.version==="2"&&Array.isArray(t.items))||!(t.items.length>0))return e;let n=e.findLastIndex(e=>"user"===e.role);return -1===n?e:e.map((e,i)=>{var o;if(i!==n)return e;let r=e.parts.filter(e=>"file"===e.type);return{...e,parts:[{type:"text",text:(o=e.parts.filter(e=>"text"===e.type).map(e=>e.text).join("\n\n").trim(),['<dynamic_context version="2">',JSON.stringify(t,null,2).replaceAll("</","<\\/"),"</dynamic_context>\n\n<user_message>",o,"</user_message>"].join("\n"))},...r]}})}(e.messages,e.context),w="staged"===p.status?{messages:[]}:"session"===o.promptHistoryStrategy?{messages:C(y)}:function(e){let t,n=S("ACP_UI_FALLBACK_HISTORY_MAX_MESSAGES",24),i=S("ACP_UI_FALLBACK_HISTORY_MAX_CHARS",64e3),o=e.flatMap(e=>{let t,n=0===(t=e.parts.filter(t=>"text"===t.type?t.text.trim().length>0:"user"===e.role&&"file"===t.type&&!!t.url)).length?null:{...e,parts:t};return n?[n]:[]}).slice(-n),r=o.findLast(e=>"user"===e.role),s=[],a=0;for(let e=o.length-1;e>=0;e--){let t=o[e],n=function(e){let t=e.role.length;for(let n of e.parts)"text"===n.type&&(t+=n.text.length),"file"===n.type&&(t+=n.mediaType.length+n.url.length,n.filename&&(t+=n.filename.length));return t}(t);if(t!==r&&s.length>0&&a+n>i)break;s.unshift(t),a+=n}let l=(t=s.findIndex(e=>"assistant"!==e.role))<=0?s:-1===t?[]:s.slice(t),u=function(e){let t=e.findLastIndex(e=>"user"===e.role);if(-1===t)return null;let n=e[t],i=e.slice(0,t).map(T).filter(e=>!!e),o=A(n),r=[i.length>0?["Previous conversation context for continuity only:",...i,"Current user request:"].join("\n\n"):"",o].filter(Boolean).join("\n\n").trim(),s=[...r?[{type:"text",text:r}]:[],...n.parts.filter(e=>"file"===e.type)];return 0===s.length?null:{...n,role:"user",parts:s}}(l);if(u)return{messages:[u],warning:l.length<e.length||l.length>1?`Fresh ACP session prompt history was condensed into one handoff message from ${l.length} useful messages and ${e.length} UI messages. Tool, reasoning, data, source, and step parts were not replayed.`:void 0};let c=C(e);return{messages:c,warning:c.length>0?"Fresh ACP session prompt history had no text/file history after filtering; replayed only the latest user message.":void 0}}(y),v=w.messages;w.warning&&o.metadata.warnings.push(w.warning),o.promptHistoryStrategy="session";let j="staged"===p.status?[{role:"user",content:"Continue after ACP elicitation."}]:await (0,a.convertToModelMessages)(v),_=(0,a.streamText)({includeRawChunks:!0,model:o.provider.languageModel(o.metadata.model||void 0,o.metadata.modeId||void 0),messages:j,system:e.system,tools:i,abortSignal:t.abortSignal}).toUIMessageStreamResponse({originalMessages:e.messages,generateMessageId:()=>`assistant-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,headers:(0,en.createRuntimeHeaders)(o.metadata),consumeSseStream:a.consumeStream,messageMetadata:({part:e})=>(function(e,t){if("raw"!==e.type)return;let n=function(e){if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}(e.rawValue);if(aI(n)){if("plan"===n.type&&Array.isArray(n.entries))return{custom:{acpPlan:i=n.entries,acpPlans:{latestId:"legacy",byId:{legacy:{id:"legacy",type:"items",entries:i,updatedAt:Date.now()}}}}};if("plan_update"===n.sessionUpdate&&aI(n.plan)){var i,o=n.plan;let e=ax(o.id),t=ax(o.type)||"items";return e?{custom:{..."items"===t&&Array.isArray(o.entries)?{acpPlan:o.entries}:{},acpPlans:{latestId:e,byId:{[e]:{...o,id:e,type:t,updatedAt:Date.now()}},removed:{[e]:!1}}}}:void 0}if("plan_removed"===n.sessionUpdate){let e=ax(n.id);return e?{custom:{acpPlans:{removed:{[e]:!0},byId:{[e]:{id:e,type:"removed",removed:!0,updatedAt:Date.now()}}}}}:void 0}return"available_commands_update"===n.sessionUpdate?(aT(t,n),{custom:{acpAvailableCommands:{byName:Object.fromEntries(aC(n.availableCommands).map(e=>[e.name,e])),updatedAt:Date.now()}}}):"config_option_update"===n.sessionUpdate||"session_info_update"===n.sessionUpdate||"usage_update"===n.sessionUpdate?(aT(t,n),{custom:{acpSessionUpdate:{[ax(n.sessionUpdate)||"unknown"]:n,updatedAt:Date.now()}}}):"diff"===n.type?aA(n,"diff"):"terminal"===n.type?aA(n,"terminal"):"resource"===n.type?aA(n,"resource"):"resource_link"===n.type?aA(n,"resource_link"):ax(n.toolCallId)?aA(n,"unknown"):{custom:{acpRaw:{[aS(n)]:n}}}}})(e,o),onFinish:async({isAborted:n,responseMessage:i})=>{o.metadata.runState=n?"aborted":"completed",await (0,eo.persistRuntimeMessages)({request:e,messages:[...e.messages,i],runState:o.metadata.runState,acpSessionId:o.metadata.acpSessionId,runMetadataMessageId:i.id}).catch(e=>{o.metadata.warnings.push(`Failed to persist ${o.metadata.runState} runtime messages: ${e instanceof Error?e.message:String(e)}`),a_(o)}),a_(o),(0,l.touchConversationFromRuntime)(o.metadata),n?et(o.provider,o.metadata).finally(()=>{r.cleanup(o.metadata.sessionKey)}):r.touch(o.metadata.sessionKey),t.abortSignal?.removeEventListener("abort",z)},onError:n=>{let i=I(n);return"aborted"!==o.metadata.runState&&(o.metadata.runState="error"),(0,eo.persistRuntimeMessages)({request:e,messages:e.messages,runState:o.metadata.runState,acpSessionId:o.metadata.acpSessionId,error:i}).catch(e=>{o.metadata.warnings.push(`Failed to persist errored runtime messages: ${e instanceof Error?e.message:String(e)}`),a_(o)}),a_(o),(0,l.touchConversationFromRuntime)(o.metadata),t.abortSignal?.removeEventListener("abort",z),i}});return{response:await (0,ei.createResumableUIMessageStreamResponse)({request:e,metadata:o.metadata,response:_}),metadata:a_(o)}}e.s(["cancelAcpSession",0,aE,"getAcpSessionMetadata",0,function(e){let t=(0,ex.getGlobalAcpSessionStore)();return t.cleanupIdle(),t.get(ak(e))?.metadata??null},"listAcpSessionMetadata",0,function(){let e=(0,ex.getGlobalAcpSessionStore)();return e.cleanupIdle(),e.list()},"reconcileAcpSessionWithRuntimeMessages",0,aM,"streamAcpChat",0,aO],10590)}];
74
+ ${t}`),n}var ap="acp.acp_provider_agent_dynamic_tool",am=oM.object({toolCallId:oM.string().describe("The unique ID of the tool call."),toolName:oM.string().describe("The name of the tool being called."),args:oM.record(oM.unknown()).describe("The input arguments for the tool call.")}),ag=class{onSessionUpdateCallback;onPermissionRequestCallback;setSessionUpdateHandler(e){this.onSessionUpdateCallback=e}setPermissionRequestHandler(e){this.onPermissionRequestCallback=e}sessionUpdate(e){return this.onSessionUpdateCallback&&this.onSessionUpdateCallback(e),Promise.resolve()}async requestPermission(e){return this.onPermissionRequestCallback?await this.onPermissionRequestCallback(e):{outcome:{outcome:"selected",optionId:e.options[0]?.optionId||"allow"}}}writeTextFile(e){throw Error("File operations not implemented in language model client")}readTextFile(e){throw Error("File operations not implemented in language model client")}},ah=class{specificationVersion="v3";provider="acp";modelId;modeId;supportedUrls={};config;agentProcess=null;connection=null;sessionId=null;sessionResponse=null;client=null;currentModelId=null;currentModeId=null;isFreshSession=!0;stderrChunks=[];textBlockIndex=0;thinkBlockIndex=0;currentTextId=null;currentThinkingId=null;toolCallsMap=new Map;toolProxyHost=null;clientToolAbort=null;debug=new at;availableAuthMethodIds=[];constructor(e,t,n){this.modelId=e,this.modeId=t,this.config=n,this.debug.ensureAgentMessageLogFile()}resetStreamState(){this.textBlockIndex=0,this.thinkBlockIndex=0,this.currentTextId=null,this.currentThinkingId=null,this.toolCallsMap.clear(),this.clientToolAbort=null}hasToolInput(e){return null!=e&&("object"==typeof e?Object.keys(e).length>0:"string"!=typeof e||e.length>0)}normalizeToolInput(e){return e??{}}parseToolCall(e){if("tool_call"!==e.sessionUpdate)throw Error("Invalid update type for parseToolCall");let t=e.toolCallId;return{toolCallId:t,toolName:e.title||e.toolCallId,toolInput:e.rawInput??{}}}parseToolResult(e){if("tool_call_update"!==e.sessionUpdate)throw Error("Invalid update type for parseToolResult");let t=e.toolCallId,n=e.title||e.toolCallId;return{toolCallId:t,toolName:n,toolResult:e.rawOutput??e.content??null,isError:"failed"===e.status,status:e.status}}isClientToolResult(e){if(!Array.isArray(e)||0===e.length)return{isClientTool:!1};let t=e[0];if(!t?.type)return{isClientTool:!1};let n="text"===t.type&&"string"==typeof t.text?t.text:"content"===t.type&&t.content?.type==="text"?t.content.text:void 0;if(!n)return{isClientTool:!1};try{let e=JSON.parse(n);if(!0===e.isClientTool)return{isClientTool:!0,toolName:e.toolName,args:e.args}}catch{}return{isClientTool:!1}}async connectClient(){if(this.debug.ensureAgentMessageLogFile(),this.connection)return;if(!this.agentProcess){let e,t,n=this.config.session?.cwd||("function"==typeof x.default.cwd?x.default.cwd():"/");if(this.agentProcess=(0,eu.spawn)(this.config.command,this.config.args??[],{stdio:["pipe","pipe","pipe"],env:{...x.default.env,...this.config.env},cwd:n,..."win32"===x.default.platform?{windowsHide:!0}:{}}),!this.agentProcess.stdout||!this.agentProcess.stdin)throw Error("Failed to spawn agent process with stdio");this.stderrChunks=[],this.agentProcess.stderr?.on("data",e=>{let t=new TextDecoder().decode(e);this.stderrChunks.push(t),x.default.stderr.write(e)});let i=oP.Writable.toWeb(this.agentProcess.stdin),o=oP.Readable.toWeb(this.agentProcess.stdout);this.client=new ag,this.connection=new oA(()=>this.client,(e=new TextEncoder,t=new TextDecoder,{readable:new ReadableStream({async start(e){let n="",i=o.getReader();try{for(;;){let{value:o,done:r}=await i.read();if(r){n+=t.decode();break}if(!o)continue;let s=(n+=t.decode(o,{stream:!0})).split("\n");for(let t of(n=s.pop()||"",s)){let n=t.trim();if(n)try{let t=JSON.parse(n);e.enqueue(t)}catch(e){console.error("Failed to parse JSON message:",n,e)}}}let o=n.trim();if(o)try{let t=JSON.parse(o);e.enqueue(t)}catch(e){console.error("Failed to parse JSON message:",o,e)}}catch(t){e.error(t);return}finally{i.releaseLock()}e.close()}}),writable:new WritableStream({async write(t){let n=JSON.stringify(t)+"\n",o=i.getWriter();try{await o.write(e.encode(n))}finally{o.releaseLock()}}})}))}if(!this.connection)throw Error("Connection not initialized");let e={...this.config.initialize,protocolVersion:this.config.initialize?.protocolVersion??1,clientCapabilities:this.config.initialize?.clientCapabilities??{fs:{readTextFile:!1,writeTextFile:!1},terminal:!1}};try{let t=(await this.connection.initialize(e)).authMethods??[];if(this.availableAuthMethodIds=t.map(e=>e.id),t.length>0){let e=this.config.authMethodId;if(e)this.availableAuthMethodIds.includes(e)?console.log(`[acp-ai-provider] Lazy auth enabled with authMethodId="${e}". Authentication will run only when required (code -32000).`):console.log(`[acp-ai-provider] Warning: authMethodId "${e}" is not in initialize.authMethods. Lazy auth auto-retry will be skipped unless you call authenticate() with a valid method.`,JSON.stringify(t,null,2));else{let e=this.availableAuthMethodIds[0];console.log(`[acp-ai-provider] Warning: authMethodId is not configured. Lazy auth will default to the first auth method "${e}".`,JSON.stringify(t,null,2))}}}catch(e){throw ad(e,this.stderrChunks.join(""))}}async startSession(e){if(!this.connection)throw Error("Not connected");try{let t=[...this.config.session?.mcpServers??[]],n=!1;if(e&&e.length>0&&!this.toolProxyHost){for(let t of(this.debug.log("[acp-ai-provider] Setting up tool proxy for client-side tools...",e.map(e=>e.name)),this.toolProxyHost=new s1("acp-ai-sdk-tools"),e))this.toolProxyHost.registerTool(t.name,t);n=!0}if(this.toolProxyHost){let e=await this.toolProxyHost.start();t.push(e)}if(this.sessionId&&n){this.sessionResponse=await this.connection.newSession({...this.config.session,cwd:this.config.session?.cwd??x.default.cwd(),mcpServers:t}),this.sessionId=this.sessionResponse.sessionId,this.isFreshSession=!0,await this.applySessionDelay();return}if(this.sessionId)return;this.config.existingSessionId?(await this.connection.loadSession({sessionId:this.config.existingSessionId,cwd:this.config.session?.cwd??x.default.cwd(),mcpServers:t}),this.sessionId=this.config.existingSessionId,this.sessionResponse={sessionId:this.config.existingSessionId},this.isFreshSession=!1):(this.sessionResponse=await this.connection.newSession({...this.config.session,cwd:this.config.session?.cwd??x.default.cwd(),mcpServers:t}),this.sessionId=this.sessionResponse.sessionId,this.isFreshSession=!0);let{models:i,modes:o}=this.sessionResponse??{};i?.currentModelId&&(this.currentModelId=i.currentModelId),o?.currentModeId&&(this.currentModeId=o.currentModeId),this.modelId&&this.modelId!==this.currentModelId&&(await this.setModel(this.modelId),this.currentModelId=this.modelId),this.modeId&&this.modeId!==this.currentModeId&&(await this.setMode(this.modeId),this.currentModeId=this.modeId),await this.applySessionDelay()}catch(e){throw ad(e,this.stderrChunks.join(""))}}async applySessionDelay(){this.config.sessionDelayMs&&(this.debug.log(`[acp-ai-provider] Waiting ${this.config.sessionDelayMs}ms after session setup...`),await new Promise(e=>setTimeout(e,this.config.sessionDelayMs)))}resolveLazyAuthMethodId(){let e=this.config.authMethodId;return e?0===this.availableAuthMethodIds.length||this.availableAuthMethodIds.includes(e)?e:null:this.availableAuthMethodIds[0]??null}async withLazyAuthRetry(e,t){try{return await t()}catch(o){var n;if(!((n=o)&&"object"==typeof n&&"code"in n&&-32e3===n.code||n&&"object"==typeof n&&"message"in n&&String(n.message??"").toLowerCase().includes("authentication required")))throw o;let i=this.resolveLazyAuthMethodId();if(!i)throw o;return this.debug.log(`[acp-ai-provider] Authentication required during ${e} (code -32000). Running lazy authenticate with methodId="${i}" and retrying once...`),await this.authenticate(i),await t()}}async ensureConnected(e){await this.withLazyAuthRetry("session setup",async()=>{await this.connectClient(),await this.startSession(e)})}cleanup(){this.config.persistSession||this.forceCleanup()}getSessionId(){return this.sessionId}async initSession(e){let t=ae(e,!1);return await this.ensureConnected(t.length>0?t:void 0),this.sessionResponse}async authenticate(e){if(await this.connectClient(),!this.connection)throw Error("Not connected");try{await this.connection.authenticate({methodId:e})}catch(e){throw ad(e,this.stderrChunks.join(""))}}async promptWithLazyAuthRetry(e){if(!this.connection)throw Error("Not connected");try{let t=await this.withLazyAuthRetry("prompt",()=>this.connection.prompt(e));return this.debug.appendPromptResponse(t),t}catch(e){throw this.debug.appendPromptError(e),e}}async setMode(e){if(!this.connection||!this.sessionId)throw Error("Not connected. Call preconnect() first.");let t=this.sessionResponse?.modes?.availableModes;if(t&&!t.find(t=>t.id===e)){let n=t.map(e=>e.id).join(", "),i=this.sessionResponse?.modes?.currentModeId?` (Current: "${this.sessionResponse.modes.currentModeId}")`:"";throw Error(`Mode "${e}" is not available${i}. Available modes: ${n}`)}await this.connection.setSessionMode({sessionId:this.sessionId,modeId:e}),this.currentModeId=e}async setModel(e){if(!this.connection||!this.sessionId)throw Error("Not connected. Call preconnect() first.");let{models:t}=this.sessionResponse??{};if(t?.availableModels&&!t.availableModels.some(t=>t.modelId===e)){let n=t.availableModels.map(e=>e.modelId).join(", "),i=this.currentModelId?` (Current: "${this.currentModelId}")`:"";throw Error(`Model "${e}" is not available${i}. Available models: ${n}`)}await this.connection.unstable_setSessionModel({sessionId:this.sessionId,modelId:e}),this.currentModelId=e}forceCleanup(){this.toolProxyHost&&(this.toolProxyHost.stop(),this.toolProxyHost=null),this.agentProcess&&(this.agentProcess.kill(),this.agentProcess.stdin?.end(),this.agentProcess.stdout?.destroy(),this.agentProcess.stderr?.destroy(),this.agentProcess=null),this.connection=null,this.sessionId=null,this.sessionResponse=null,this.client=null,this.stderrChunks=[],this.availableAuthMethodIds=[]}emitRawContent(e,t){if("entries"in t)return void e.enqueue({type:"raw",rawValue:JSON.stringify({type:"plan",entries:t.entries})});for(let n of t.content)("diff"===n.type||"terminal"===n.type)&&e.enqueue({type:"raw",rawValue:JSON.stringify({...n,toolCallId:t.toolCallId})})}flushPendingToolCalls(e){for(let[t,n]of this.toolCallsMap.entries())n.inputAvailable||(n.inputAvailable=!0,e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:n.name,args:{}})}))}handleStreamNotification(e,t){this.debug.appendAgentMessage(t);let n=t.update;switch(n.sessionUpdate){case"plan":this.flushPendingToolCalls(e),this.emitRawContent(e,{type:"plan",entries:n.entries});break;case"agent_thought_chunk":this.flushPendingToolCalls(e),this.currentThinkingId||(this.currentThinkingId=`reasoning - ${this.thinkBlockIndex++} `,e.enqueue({type:"reasoning-start",id:this.currentThinkingId})),e.enqueue({type:"reasoning-delta",id:this.currentThinkingId,delta:"text"===n.content.type?n.content.text:""});break;case"agent_message_chunk":if(this.flushPendingToolCalls(e),this.currentThinkingId&&(e.enqueue({type:"reasoning-end",id:this.currentThinkingId}),this.currentThinkingId=null),"text"===n.content.type){let t=n.content.text;this.currentTextId||(this.currentTextId=`text - ${this.textBlockIndex++} `,e.enqueue({type:"text-start",id:this.currentTextId})),e.enqueue({type:"text-delta",id:this.currentTextId,delta:t})}break;case"tool_call":{this.currentTextId&&(e.enqueue({type:"text-end",id:this.currentTextId}),this.currentTextId=null),this.currentThinkingId&&(e.enqueue({type:"reasoning-end",id:this.currentThinkingId}),this.currentThinkingId=null);let{toolCallId:t,toolName:i,toolInput:o}=this.parseToolCall(n),r=this.toolCallsMap.get(t),s=this.hasToolInput(o);r?!r.inputAvailable&&s&&(r.inputAvailable=!0,n.title&&r.name!==n.title&&n.title!==t&&(r.name=n.title),e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:r.name,args:o})})):(this.toolCallsMap.set(t,{index:this.toolCallsMap.size,name:i,inputStarted:!0,inputAvailable:!!s}),e.enqueue({type:"tool-input-start",id:t,toolName:i}),s&&e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:i,args:o})}));break}case"tool_call_update":{let{toolCallId:t,toolName:i,toolResult:o,isError:r}=this.parseToolResult(n),s=n.status??"in_progress",a=this.toolCallsMap.get(t),l=this.normalizeToolInput("rawInput"in n?n.rawInput:void 0);if("in_progress"===s){a||(a={index:this.toolCallsMap.size,name:i,inputStarted:!0,inputAvailable:!1},this.toolCallsMap.set(t,a),e.enqueue({type:"tool-input-start",id:t,toolName:i}));let o=this.hasToolInput(l);(!a.inputAvailable||o)&&(a.inputAvailable=!0,n.title&&a.name!==n.title&&n.title!==t&&(a.name=n.title),e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:a.name,args:l})}));let r=n.content??[];r.length>0&&this.emitRawContent(e,{content:r,toolCallId:t});break}if(!["completed","failed"].includes(s))break;if(a){let i=this.hasToolInput(l);(!a.inputAvailable||i)&&(a.inputAvailable=!0,n.title&&a.name!==n.title&&n.title!==t&&(a.name=n.title),e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:a.name,args:l})}))}else a={index:this.toolCallsMap.size,name:i,inputAvailable:!0},this.toolCallsMap.set(t,a),e.enqueue({type:"tool-call",toolCallId:t,toolName:ap,input:JSON.stringify({toolCallId:t,toolName:i,args:l})});let u=this.isClientToolResult(o);if(u.isClientTool){this.debug.log(`[acp-ai-provider] Detected client tool: ${u.toolName}, stopping stream`);let i=n.content??[];i.length>0&&this.emitRawContent(e,{content:i,toolCallId:t}),this.clientToolAbort&&(e.enqueue({type:"finish",finishReason:{unified:"tool-calls",raw:void 0},usage:{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0}}}),e.close(),this.clientToolAbort.resolve(),this.cleanup());break}e.enqueue({type:"tool-result",toolCallId:t,toolName:ap,result:o,...r&&{isError:!0,result:Error(function(e){if(!e||0===e.length)return"Unknown tool error";let t=[];for(let n of e)"content"===n.type&&"text"===n.content.type&&t.push(n.content.text);return t.join("\n")}(function(e){if(!e)return[];if(Array.isArray(e))return e;if("string"==typeof e)return[{type:"content",content:{type:"text",text:e}}];let t="object"==typeof e?e.content:null;return Array.isArray(t)?t.map(e=>e?.type==="content"?e:e?.type==="text"?{type:"content",content:{type:"text",text:String(e.text??"")}}:{type:"content",content:{type:"text",text:JSON.stringify(e)}}):[{type:"content",content:{type:"text",text:JSON.stringify(e)}}]}(o)))}});let c=n.content??[];c.length>0&&this.emitRawContent(e,{content:c,toolCallId:t})}}}async doGenerate(e){try{let t=ao(e.responseFormat)?e.responseFormat:null,n=t?ar(t):void 0;await this.ensureConnected();let i=s8(e,this.isFreshSession,n);this.isFreshSession=!1;let o="",r=[],s=new Map,a={enqueue:e=>{switch(e.type){case"text-delta":o+=e.delta;break;case"tool-call":{let t=JSON.parse(e.input);r.push({id:e.toolCallId,name:t.toolName,input:t.args});break}case"tool-result":{let t=r.find(t=>t.id===e.toolCallId);s.set(e.toolCallId,{name:t?.name||e.toolCallId,result:e.result,isError:e.isError})}}}},l=this.handleStreamNotification.bind(this);this.resetStreamState(),this.client&&this.client.setSessionUpdateHandler(e=>{l(a,e)});let u=await this.promptWithLazyAuthRetry({sessionId:this.sessionId,prompt:i}),c=[],d=t?as(o):o;for(let e of(d.trim()&&c.push({type:"text",text:d}),r))c.push({type:"tool-call",toolCallId:e.id,toolName:e.name,args:JSON.stringify(e.input),input:e.input,output:s.get(e.id)?.result});let p={content:c,finishReason:{unified:ac(u.stopReason),raw:u.stopReason},providerMetadata:au(u),usage:{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0}},warnings:[]};return this.cleanup(),p}catch(e){throw this.cleanup(),e}}async doStream(e){let t,n=ae(e.tools),i=ao(e.responseFormat)?e.responseFormat:null,o=i?ar(i):void 0;try{await this.ensureConnected(n.length>0?n:void 0)}catch(e){throw this.forceCleanup(),e}let r=s8(e,this.isFreshSession,o);this.isFreshSession=!1;let s=this.sessionId,a=this.client,l=()=>this.cleanup(),u=this.handleStreamNotification.bind(this),c=new ReadableStream({start:async e=>{e.enqueue({type:"stream-start",warnings:[]}),this.resetStreamState();let t=new Promise(t=>{this.clientToolAbort={controller:e,resolve:t}});try{a&&a.setSessionUpdateHandler(t=>{u(e,t)});let n=this.promptWithLazyAuthRetry({sessionId:s,prompt:r}),i=await Promise.race([n.then(e=>({type:"response",response:e})),t.then(()=>({type:"client-tool"}))]);if("client-tool"===i.type)return;let o=i.response;e.enqueue({type:"finish",finishReason:{unified:ac(o.stopReason),raw:o.stopReason},providerMetadata:au(o),usage:{inputTokens:{total:void 0,noCache:void 0,cacheRead:void 0,cacheWrite:void 0},outputTokens:{total:void 0,text:void 0,reasoning:void 0}}}),e.close(),l()}catch(t){l(),e.enqueue({type:"error",error:ad(t,this.stderrChunks.join(""))})}},cancel:()=>{l()}});return{stream:i?c.pipeThrough((t={},new TransformStream({transform(e,n){if("text-start"===e.type){t[e.id]={startEvent:e,phase:"prefix",buffer:"",prefixStripped:!1};return}if("text-delta"===e.type){let i=t[e.id];if(!i)return void n.enqueue(e);if(i.buffer+=e.delta,"prefix"===i.phase)if(i.buffer.length>0&&!i.buffer.startsWith("`"))i.phase="streaming",n.enqueue(i.startEvent);else if(i.buffer.startsWith("```")){if(i.buffer.includes("\n")){let e=i.buffer.match(an);i.phase="streaming",e&&(i.buffer=i.buffer.slice(e[0].length),i.prefixStripped=!0),n.enqueue(i.startEvent)}}else i.buffer.length>=3&&!i.buffer.startsWith("```")&&(i.phase="streaming",n.enqueue(i.startEvent));if("streaming"===i.phase&&i.buffer.length>12){let t=i.buffer.slice(0,-12);i.buffer=i.buffer.slice(-12),aa(n,e.id,t)}return}if("text-end"===e.type){let i=t[e.id];return i?("prefix"===i.phase&&n.enqueue(i.startEvent),aa(n,e.id,al(i)),n.enqueue(e),void delete t[e.id]):void n.enqueue(e)}n.enqueue(e)},flush(e){for(let[n,i]of Object.entries(t))"prefix"===i.phase&&e.enqueue(i.startEvent),aa(e,n,al(i))}}))):c,warnings:void 0}}get tools(){return s6()}},az=class{config;model=null;constructor(e){this.config=e}languageModel(e,t){return this.model||(this.model=new ah(e,t,this.config)),e&&(this.model.modelId=e),t&&(this.model.modeId=t),this.model}call(){return this.languageModel()}get tools(){return this.model?.tools}getSessionId(){return this.model?.getSessionId()??null}initSession(e){return this.model||this.languageModel(),this.model.initSession(e)}connect(){return this.model||this.languageModel(),this.model.connectClient()}authenticate(e){this.model||this.languageModel();let t=e??this.config.authMethodId;if(!t)throw Error("No auth method configured. Pass methodId or set authMethodId in ACPProviderSettings.");return this.model.authenticate(t)}setMode(e){if(!this.model)throw Error("No model initialized. Call languageModel() first.");return this.model.setMode(e)}setModel(e){if(!this.model)throw Error("No model initialized. Call languageModel() first.");return this.model.setModel(e)}cleanup(){this.model?.forceCleanup()}};e.s(["ACPLanguageModel",0,ah,"ACPProvider",0,az,"ACP_PROVIDER_AGENT_DYNAMIC_TOOL_NAME",0,ap,"acpTools",0,function(e){for(let[t,n]of Object.entries(e))s5.set(t,n.execute);return{...e,...s6()}},"createACPProvider",0,function(e){return new az(e)},"getExecuteByName",0,s4,"hasRegisteredExecute",0,s9,"providerAgentDynamicToolSchema",0,am],92276);var af=e.i(92276);af.ACP_PROVIDER_AGENT_DYNAMIC_TOOL_NAME,af.ACPLanguageModel,af.ACPProvider;let ab=af.acpTools,ay=af.createACPProvider;async function aw(e,t){try{e.provider.languageModel(),function(e,t){let n=W(e);if(n&&!n.__acpUiCompatInstalled){let e,i,o,r,s;n.__acpUiCompatInstalled=!0,(e=n.promptWithLazyAuthRetry?.bind(n))&&!n.__acpUiOriginalPromptWithLazyAuthRetry&&(n.__acpUiOriginalPromptWithLazyAuthRetry=e,n.promptWithLazyAuthRetry=t=>{let i=e(t);return n.__acpUiPromptPromise=i,i.finally(()=>{n.__acpUiPromptPromise===i&&(n.__acpUiPromptPromise=null)}).catch(()=>{}),i}),(i=n.doStream?.bind(n))&&!n.__acpUiOriginalDoStream&&(n.__acpUiOriginalDoStream=i,n.doStream=async e=>{let t=n.__acpUiResumeElicitationResponse,o=n.__acpUiPendingElicitation;if(t&&o){let e;return n.__acpUiResumeElicitationResponse=null,e=new ReadableStream({start:async e=>{Y(e,{type:"stream-start",warnings:[]}),n.resetStreamState?.();let i=n.handleStreamNotification?.bind(n);n.client&&i&&n.client.setSessionUpdateHandler?.(t=>{i(e,t)});let r=new Promise(t=>{n.clientToolAbort={controller:e,resolve:()=>t("client-tool")}});try{n.__acpUiPendingElicitation=null,o.resolve(t);let i=await Promise.race([o.promptPromise.then(e=>({type:"response",response:e})),r.then(e=>({type:e}))]);if("client-tool"===i.type)return;let s=J(i.response)?i.response:{};Y(e,{type:"finish",finishReason:{unified:function(e){switch(e){case"end_turn":return"stop";case"max_tokens":case"max_turn_requests":return"length";default:return"other"}}(s.stopReason),raw:s.stopReason},providerMetadata:function(e){try{return{acp:JSON.parse(JSON.stringify(e))}}catch{return{acp:e}}}(i.response),usage:G()}),Z(e),n.cleanup?.()}catch(t){n.__acpUiPendingElicitation=null,n.cleanup?.(),Y(e,{type:"error",error:t}),Z(e)}},cancel:()=>{n.cleanup?.()}}),{stream:Q(n,e),warnings:void 0}}let r=await i(e);return{...r,stream:Q(n,r.stream)}}),(o=n.connectClient?.bind(n))&&(n.connectClient=async(...e)=>{let t=await o(...e);return ee(n),t}),(r=n.startSession?.bind(n))&&(n.startSession=async(...e)=>{let i=B(n.config?.existingSessionId),o=n.connection,s=o?.loadSession?.bind(o),a=Array.isArray(n.config?.session?.additionalDirectories)?n.config.session.additionalDirectories:[];i&&o?.resumeSession&&s&&(o.loadSession=async e=>{let r={...e,...a.length>0?{additionalDirectories:a}:{}};if(e.sessionId!==i)return s(r);try{let e=await o.resumeSession?.(r);return n.__acpUiResumeResponse=J(e)?e:{},e}catch(e){return t.warnings.push(`Failed to resume ACP session "${i}" via session/resume; falling back to session/load: ${e instanceof Error?e.message:String(e)}`),n.__acpUiResumeResponse=null,s(r)}});try{let o=await r(...e);return i&&n.__acpUiResumeResponse&&n.sessionId===i&&(n.sessionResponse={sessionId:i,...n.__acpUiResumeResponse},t.capabilitySnapshot=V({provider:t.provider,sessionResponse:n.sessionResponse})),o}finally{o&&s&&(o.loadSession=s)}}),(s=n.handleStreamNotification?.bind(n))&&(n.handleStreamNotification=(e,t)=>{let n=J(t.update)?t.update:null,i=n?.sessionUpdate;if(s(e,t),!n)return;if("plan_update"===i||"plan_removed"===i||"available_commands_update"===i||"current_mode_update"===i||"config_option_update"===i||"session_info_update"===i||"usage_update"===i)return void K(e,n);if("tool_call_update"!==i)return;let o=B(n.toolCallId);if(o&&Array.isArray(n.content))for(let t of n.content)J(t)&&("content"===t.type||"resource"===t.type||"resource_link"===t.type)&&K(e,"content"===t.type&&J(t.content)?{...t.content,type:t.content.type,toolCallId:o,wrapper:"content",raw:t}:{...t,toolCallId:o,raw:t})}),ee(n)}}(e.provider,e.metadata);let n=await e.provider.initSession(t),i=V({provider:e.metadata.provider,sessionResponse:n});e.metadata.acpSessionId=n.sessionId,e.metadata.capabilitySnapshot=i}catch(t){throw e.metadata.runState="error",t}}async function av(e,t){let n=(0,ex.getGlobalAcpSessionStore)();n.cleanupIdle();let i=(0,N.normalizeAcpProvider)(e.provider),o=(0,N.resolveAcpProviderConfig)(i),r=(0,ex.normalizeThreadId)(e.threadId??e.id),s=(0,ex.normalizeWorkspacePath)(e.workspacePath),a=(0,ex.createAcpSessionKey)({threadId:r,provider:i,workspacePath:s}),u=(0,eI.normalizePermissionMode)(e.permissionMode),c=e.model||null,d=e.modeId||(0,N.getAcpProviderDefaultModeId)(i),p=e.thoughtLevel||null,m=(0,er.getBuiltinToolRuntimeKey)({toolIds:e.builtinTools,builtinToolSettings:e.builtinToolSettings}),g=n.get(a);if(g)if(g.metadata.builtinToolRuntimeKey===m)return g.metadata={...g.metadata,model:c,modeId:d,thoughtLevel:p,permissionMode:u,runState:"queued",coldStart:!1,lastUsedAt:Date.now()},g;else n.cleanup(a);let h=await (0,l.getConversation)(r,s),z=h?.provider===i?h.providerSessionId??null:null,f=ey(),b=(t,n,l=[])=>{let g=function(e,t){let{platform:n,execPath:i,env:o}=eh(t),r=ey({platform:n,execPath:i,env:o});return function(e,t,n){var i;let o="win32"===t?ej(e.command,n):e.command;return"win32"===t&&o.toLowerCase()!==ep&&(/\.(cmd|bat)$/i.test(o)||!/\.(exe|com)$/i.test(o))?o.toLowerCase()===ep?e:{command:ep,args:["/d","/s","/c",(i=e.command,[ew(i)?o:/\.(cmd|bat)$/i.test(o)?i:o,...e.args??[]].map(e=>(function(e){if(!e)return'""';let t=e.replace(/\^/g,"^^").replace(/([&|<>])/g,"^$1");if(!/[\s"]/.test(t))return t;let n=t.replace(/(\\*)"/g,'$1$1\\"').replace(/(\\+)$/g,"$1$1");return`"${n}"`})(String(e))).join(" "))]}:o===e.command?e:{command:o,args:e.args}}(e,n,r)}(t,{env:f}),h=(0,el.normalizeMcpServers)(e.mcpServers),z=(0,er.mergeToolMcpServers)(h.servers,{workspacePath:s,threadId:r,toolIds:e.builtinTools,builtinToolSettings:e.builtinToolSettings}),b=(0,el.normalizeAdditionalDirectories)({additionalDirectories:e.additionalDirectories,workspacePath:s,context:e.context});return{provider:ay(function({command:e,args:t,env:n,authMethodId:i,sessionDelayMs:o,persistSession:r,workspacePath:s,mcpServers:a,additionalDirectories:l,existingSessionId:u}){return{command:e,args:t,env:n,initialize:{clientCapabilities:{fs:{readTextFile:!1,writeTextFile:!1},terminal:!1,planCapabilities:{},elicitation:{form:{},url:{}}}},session:{cwd:s,mcpServers:a,...l.length>0?{additionalDirectories:l}:{}},...u?{existingSessionId:u}:{},...i?{authMethodId:i}:{},...o?{sessionDelayMs:o}:{},persistSession:r??!0}}({command:g.command,args:g.args,env:f,authMethodId:o.authMethodId,sessionDelayMs:o.sessionDelayMs,persistSession:o.persistSession,workspacePath:s,mcpServers:z,additionalDirectories:b.directories,existingSessionId:n})),metadata:{...(0,ex.createInitialMetadata)({sessionKey:a,threadId:r,provider:i,workspacePath:s,model:c,modeId:d,thoughtLevel:p,permissionMode:u}),resumedAcpSessionId:n??null,builtinToolRuntimeKey:m,warnings:[...l,...h.warnings,...b.warnings]},promptHistoryStrategy:n?"session":"full"}},y=[{command:o.command,args:o.args},...o.fallbackCommands??[]],w=async(e,i=[])=>{let o=[],r=null;for(let[s,l]of y.entries()){let u=s<y.length-1,c=e_(l);if(!function(e,t){let{platform:n,execPath:i,env:o}=eh(t),r=ey({platform:n,execPath:i,env:o}),{command:s}=e;if("win32"===n){if(s.toLowerCase()===ep||ev(ej(s,r),n))return!0;if(ew(s))return!1;try{return(0,eu.execFileSync)("where.exe",[s],{encoding:"utf8",env:r,stdio:["ignore","pipe","ignore"]}),!0}catch{return!1}}if(ew(s))return ev(s,n);try{return(0,eu.execFileSync)("which",[s],{encoding:"utf8",env:r,stdio:["ignore","pipe","ignore"]}),!0}catch{return!1}}(l,{env:f})){let e=ek(l);if(r=e,!u)throw e;o.push(`ACP provider command unavailable (${c}); trying fallback.`);continue}let d=b(l,e,[...i,...o]);n.set(a,d);try{return await aw(d,t),d}catch(e){if(n.cleanup(a),r=e,!u||!function(e){if(!e||"object"!=typeof e)return!1;let t=e.code;if("ENOENT"===t||"EINVAL"===t)return!0;let n=e instanceof Error?e.message:String(e.message);return/\bspawn\b.+\b(ENOENT|EINVAL)\b/i.test(n)||/\b(?:ACP\s+)?connection closed\b/i.test(n)||/(not recognized as an internal or external command|command not found)/i.test(n)}(e))throw e;o.push(`ACP provider command failed (${c}); trying fallback.`)}}throw r??ek(y[0])};try{return await w(z)}catch(e){if(!z)throw e}return w(null,[`Failed to resume ACP session "${z}"; started a new session with UI message history instead.`])}async function aj(e){let{model:t,modeId:n}=e.metadata;if(t&&!await es(e.provider,e.metadata,"model",t,"model"))try{e.provider.languageModel(t,void 0),await e.provider.setModel(t)}catch(n){e.metadata.warnings.push(`Failed to set ACP model "${t}": ${n instanceof Error?n.message:String(n)}`)}if(n&&!await es(e.provider,e.metadata,"mode",n,"mode"))try{e.provider.languageModel(void 0,n),await e.provider.setMode(n)}catch(t){e.metadata.warnings.push(`Failed to set ACP mode "${n}": ${t instanceof Error?t.message:String(t)}`)}await ea(e.provider,e.metadata)}function a_(e){return e.metadata.acpSessionId=e.provider.getSessionId(),e.metadata.lastUsedAt=Date.now(),e.metadata}function ak(e){let t=(0,N.normalizeAcpProvider)(e.provider),n=(0,ex.normalizeThreadId)(e.threadId??e.id),i=(0,ex.normalizeWorkspacePath)(e.workspacePath);return(0,ex.createAcpSessionKey)({threadId:n,provider:t,workspacePath:i})}function aI(e){return!!(e&&"object"==typeof e&&!Array.isArray(e))}function ax(e){return"string"==typeof e?e.trim():""}function aS(e){let t=JSON.stringify(e)??"",n=0;for(let e=0;e<t.length;e+=1)n=31*n+t.charCodeAt(e)|0;return Math.abs(n).toString(36)}function aC(e){return(Array.isArray(e)?e:[]).flatMap(e=>{if(!aI(e))return[];let t=ax(e.name||e.command||e.id).replace(/^\/+/,"");return t?[{name:t,description:ax(e.description),input:e.input,source:"acp"}]:[]})}function aA(e,t){let n=ax(e.toolCallId);if(!n)return;let i=("diff"===t?`${ax(e.path)}:${aS(e)}`:"terminal"===t?`${ax(e.terminalId)||"terminal"}:${aS(e)}`:"resource"===t||"resource_link"===t?`${ax(e.uri)||ax(e.name)||t}:${aS(e)}`:aS(e))||aS(e);return{custom:{acpToolContent:{byToolCallId:{[n]:{["diff"===t?"diffs":"terminal"===t?"terminals":"resource"===t?"resources":"resource_link"===t?"resourceLinks":"unknown"]:{[i]:{...e,type:t,toolCallId:n,updatedAt:Date.now()}}}}}}}}function aT(e,t){if(!e)return;let n=e.metadata;switch(t.sessionUpdate){case"available_commands_update":{let e=aC(t.availableCommands);if(!n.capabilitySnapshot)break;n.capabilitySnapshot={...n.capabilitySnapshot,updatedAt:new Date().toISOString(),metadata:{...n.capabilitySnapshot.metadata,availableCommands:function(e,t){let n=new Map;for(let t of e)n.set(t.name,t);for(let e of t)n.set(e.name,e);return[...n.values()]}(n.capabilitySnapshot.metadata.availableCommands,e)}};break}case"session_info_update":{let e=ax(t.title);e&&(n.sessionTitle=e);break}case"config_option_update":{let t=e.provider.model;if(!t?.sessionResponse)break;n.capabilitySnapshot=V({provider:n.provider,sessionResponse:t.sessionResponse});break}case"usage_update":if(!n.capabilitySnapshot)break;n.capabilitySnapshot={...n.capabilitySnapshot,updatedAt:new Date().toISOString(),metadata:{...n.capabilitySnapshot.metadata,tokenUsage:t.usage??t}}}}af.getExecuteByName,af.hasRegisteredExecute,af.providerAgentDynamicToolSchema;let aR={[g]:{description:"Collect a user's ACP elicitation choice from an option list.",parameters:z}};function aP(e){return!!(e&&"object"==typeof e&&!Array.isArray(e))}async function aM(e){let t=(0,ex.getGlobalAcpSessionStore)();t.cleanupIdle();let n=ak(e),i=t.get(n),o=i?.metadata??null;return i&&o?.runState==="running"?!function(e,t=Date.now()){return e.some(e=>{let n=aP(e.content)?e.content:null,i=aP(n?.metadata)?n.metadata:null,o=aP(i?.custom)?i.custom:null,r=aP(o?.acpRun)?o.acpRun:null;if(r?.status!=="running")return!1;let s=Date.parse(String(e.updatedAt??""));return Number.isFinite(s)&&s>=t-3e5})}((await (0,l.loadConversationMessages)(o.threadId,"ai-sdk/v6",o.workspacePath,"runtime")).messages)?(i.metadata.runState="aborted",a_(i),(0,l.touchConversationFromRuntime)(i.metadata),t.cleanup(n),(0,l.closeConversationSession)(i.metadata),null):i.metadata:o}async function aE(e){let t=(0,ex.getGlobalAcpSessionStore)();t.cleanupIdle();let n=ak(e),i=t.get(n),o=i?.metadata??null;i&&(i.metadata.runState="aborted",a_(i),(0,l.touchConversationFromRuntime)(i.metadata),await et(i.provider,i.metadata));let r=t.cleanup(n);return(0,l.closeConversationSession)(o),{cancelled:!!i,cleaned:r,metadata:o,remainingSessions:t.list()}}async function aO(e,t={}){await (0,eo.persistRequestRuntimeMessages)(e);let n={...e.tools??{}};delete n[g];let i={...ab(s(n)),...s(aR)},o=await av(e,i),r=(0,ex.getGlobalAcpSessionStore)(),p=function(e,t){var n,i;let o=function(e){let t=e.at(-1);if(t?.role!=="assistant")return null;for(let e=t.parts.length-1;e>=0;e--){let n=t.parts[e];if(!f(n)||n.type!==h&&("dynamic-tool"!==n.type||b(n.toolName)!==g))continue;let i=b(n.toolCallId);if(i){if("output-available"===n.state)return{toolCallId:i,result:f(n.output)?n.output:{action:"cancel"}};if("output-denied"===n.state)return{toolCallId:i,result:{action:"decline"}};if("output-error"===n.state)return{toolCallId:i,result:{action:"cancel"}}}}return null}(t);if(!o)return{status:"none"};let r=W(e);if(!r)return{status:"stale",toolCallId:o.toolCallId,reason:"ACP provider model is not initialized."};let s=r.__acpUiPendingElicitation;return s?s.toolCallId!==o.toolCallId?{status:"stale",toolCallId:o.toolCallId,reason:`Pending ACP elicitation "${s.toolCallId}" does not match result "${o.toolCallId}".`}:(n=s.request,r.__acpUiResumeElicitationResponse=f(i=o.result)?"cancel"===i.action||"decline"===i.action?{action:i.action}:"accept"===i.action&&f(i.content)?{action:"accept",content:function(e,t){let n,i,o,r=(n=u(e.requestedSchema)?e.requestedSchema:{},i=u(n.properties)?n.properties:{},o=new Set(d(n.required)),Object.entries(i).flatMap(([e,t])=>{let n;if(!u(t))return[];let i="array"===t.type?"array":Array.isArray(t.enum)||Array.isArray(t.oneOf)?"enum":"number"===t.type?"number":"integer"===t.type?"integer":"boolean"===t.type?"boolean":"string";return[{name:e,type:i,title:c(t.title)||e,description:c(t.description),required:o.has(e),options:"enum"===i||"array"===i?"array"===i&&(n=m(u(t.items)?t.items:{})).length>0?n:m(t):[]}]})),s={};for(let e of r){let n=function(e,t){if(null==t||""===t)return e.required?"":void 0;if("boolean"===e.type)return!!t;if("number"===e.type){let e=Number(t);return Number.isFinite(e)?e:void 0}if("integer"===e.type){let e=Number(t);return Number.isInteger(e)?e:void 0}return"array"===e.type?Array.isArray(t)?t.map(c).filter(Boolean):d(String(t).split(",")):String(t).trim()}(e,t[e.name]);void 0!==n&&(s[e.name]=n)}return s}(n,i.content)}:{action:"cancel"}:{action:"cancel"},{status:"staged",toolCallId:o.toolCallId}):{status:"stale",toolCallId:o.toolCallId,reason:"No pending ACP elicitation is waiting for this result."}}(o.provider,e.messages);if(o.metadata.runState="running",await (0,l.touchConversationFromRuntime)(o.metadata),"staged"!==p.status&&await aj(o),"stale"===p.status)return o.metadata.runState="error",o.metadata.warnings.push(p.reason),a_(o),await (0,eo.persistRuntimeMessages)({request:e,messages:e.messages,runState:"error",acpSessionId:o.metadata.acpSessionId,error:p.reason}).catch(e=>{o.metadata.warnings.push(`Failed to persist stale elicitation runtime messages: ${e instanceof Error?e.message:String(e)}`),a_(o)}),(0,l.touchConversationFromRuntime)(o.metadata),{response:(0,en.createDirectMessageResponse)(o.metadata,"ACP 选项请求已经失效,无法继续这次选择。"),metadata:o.metadata};let z=()=>{o.metadata.runState="aborted",a_(o),et(o.provider,o.metadata).finally(()=>{r.cleanup(o.metadata.sessionKey)})};t.abortSignal?.aborted?z():t.abortSignal?.addEventListener("abort",z,{once:!0});let y="staged"===p.status?[]:function(e,t){if(!(t?.version==="2"&&Array.isArray(t.items))||!(t.items.length>0))return e;let n=e.findLastIndex(e=>"user"===e.role);return -1===n?e:e.map((e,i)=>{var o;if(i!==n)return e;let r=e.parts.filter(e=>"file"===e.type);return{...e,parts:[{type:"text",text:(o=e.parts.filter(e=>"text"===e.type).map(e=>e.text).join("\n\n").trim(),['<dynamic_context version="2">',JSON.stringify(t,null,2).replaceAll("</","<\\/"),"</dynamic_context>\n\n<user_message>",o,"</user_message>"].join("\n"))},...r]}})}(e.messages,e.context),w="staged"===p.status?{messages:[]}:"session"===o.promptHistoryStrategy?{messages:C(y)}:function(e){let t,n=S("ACP_UI_FALLBACK_HISTORY_MAX_MESSAGES",24),i=S("ACP_UI_FALLBACK_HISTORY_MAX_CHARS",64e3),o=e.flatMap(e=>{let t,n=0===(t=e.parts.filter(t=>"text"===t.type?t.text.trim().length>0:"user"===e.role&&"file"===t.type&&!!t.url)).length?null:{...e,parts:t};return n?[n]:[]}).slice(-n),r=o.findLast(e=>"user"===e.role),s=[],a=0;for(let e=o.length-1;e>=0;e--){let t=o[e],n=function(e){let t=e.role.length;for(let n of e.parts)"text"===n.type&&(t+=n.text.length),"file"===n.type&&(t+=n.mediaType.length+n.url.length,n.filename&&(t+=n.filename.length));return t}(t);if(t!==r&&s.length>0&&a+n>i)break;s.unshift(t),a+=n}let l=(t=s.findIndex(e=>"assistant"!==e.role))<=0?s:-1===t?[]:s.slice(t),u=function(e){let t=e.findLastIndex(e=>"user"===e.role);if(-1===t)return null;let n=e[t],i=e.slice(0,t).map(T).filter(e=>!!e),o=A(n),r=[i.length>0?["Previous conversation context for continuity only:",...i,"Current user request:"].join("\n\n"):"",o].filter(Boolean).join("\n\n").trim(),s=[...r?[{type:"text",text:r}]:[],...n.parts.filter(e=>"file"===e.type)];return 0===s.length?null:{...n,role:"user",parts:s}}(l);if(u)return{messages:[u],warning:l.length<e.length||l.length>1?`Fresh ACP session prompt history was condensed into one handoff message from ${l.length} useful messages and ${e.length} UI messages. Tool, reasoning, data, source, and step parts were not replayed.`:void 0};let c=C(e);return{messages:c,warning:c.length>0?"Fresh ACP session prompt history had no text/file history after filtering; replayed only the latest user message.":void 0}}(y),v=w.messages;w.warning&&o.metadata.warnings.push(w.warning),o.promptHistoryStrategy="session";let j="staged"===p.status?[{role:"user",content:"Continue after ACP elicitation."}]:await (0,a.convertToModelMessages)(v),_=(0,a.streamText)({includeRawChunks:!0,model:o.provider.languageModel(o.metadata.model||void 0,o.metadata.modeId||void 0),messages:j,system:e.system,tools:i,abortSignal:t.abortSignal}).toUIMessageStreamResponse({originalMessages:e.messages,generateMessageId:()=>`assistant-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,headers:(0,en.createRuntimeHeaders)(o.metadata),consumeSseStream:a.consumeStream,messageMetadata:({part:e})=>(function(e,t){if("raw"!==e.type)return;let n=function(e){if("string"!=typeof e)return e;try{return JSON.parse(e)}catch{return null}}(e.rawValue);if(aI(n)){if("plan"===n.type&&Array.isArray(n.entries))return{custom:{acpPlan:i=n.entries,acpPlans:{latestId:"legacy",byId:{legacy:{id:"legacy",type:"items",entries:i,updatedAt:Date.now()}}}}};if("plan_update"===n.sessionUpdate&&aI(n.plan)){var i,o=n.plan;let e=ax(o.id),t=ax(o.type)||"items";return e?{custom:{..."items"===t&&Array.isArray(o.entries)?{acpPlan:o.entries}:{},acpPlans:{latestId:e,byId:{[e]:{...o,id:e,type:t,updatedAt:Date.now()}},removed:{[e]:!1}}}}:void 0}if("plan_removed"===n.sessionUpdate){let e=ax(n.id);return e?{custom:{acpPlans:{removed:{[e]:!0},byId:{[e]:{id:e,type:"removed",removed:!0,updatedAt:Date.now()}}}}}:void 0}return"available_commands_update"===n.sessionUpdate?(aT(t,n),{custom:{acpAvailableCommands:{byName:Object.fromEntries(aC(n.availableCommands).map(e=>[e.name,e])),updatedAt:Date.now()}}}):"config_option_update"===n.sessionUpdate||"session_info_update"===n.sessionUpdate||"usage_update"===n.sessionUpdate?(aT(t,n),{custom:{acpSessionUpdate:{[ax(n.sessionUpdate)||"unknown"]:n,updatedAt:Date.now()}}}):"diff"===n.type?aA(n,"diff"):"terminal"===n.type?aA(n,"terminal"):"resource"===n.type?aA(n,"resource"):"resource_link"===n.type?aA(n,"resource_link"):ax(n.toolCallId)?aA(n,"unknown"):{custom:{acpRaw:{[aS(n)]:n}}}}})(e,o),onFinish:async({isAborted:n,responseMessage:i})=>{o.metadata.runState=n?"aborted":"completed",await (0,eo.persistRuntimeMessages)({request:e,messages:[...e.messages,i],runState:o.metadata.runState,acpSessionId:o.metadata.acpSessionId,runMetadataMessageId:i.id}).catch(e=>{o.metadata.warnings.push(`Failed to persist ${o.metadata.runState} runtime messages: ${e instanceof Error?e.message:String(e)}`),a_(o)}),a_(o),(0,l.touchConversationFromRuntime)(o.metadata),n?et(o.provider,o.metadata).finally(()=>{r.cleanup(o.metadata.sessionKey)}):r.touch(o.metadata.sessionKey),t.abortSignal?.removeEventListener("abort",z)},onError:n=>{let i=I(n);return"aborted"!==o.metadata.runState&&(o.metadata.runState="error"),(0,eo.persistRuntimeMessages)({request:e,messages:e.messages,runState:o.metadata.runState,acpSessionId:o.metadata.acpSessionId,error:i}).catch(e=>{o.metadata.warnings.push(`Failed to persist errored runtime messages: ${e instanceof Error?e.message:String(e)}`),a_(o)}),a_(o),(0,l.touchConversationFromRuntime)(o.metadata),t.abortSignal?.removeEventListener("abort",z),i}});return{response:await (0,ei.createResumableUIMessageStreamResponse)({request:e,metadata:o.metadata,response:_}),metadata:a_(o)}}e.s(["cancelAcpSession",0,aE,"getAcpSessionMetadata",0,function(e){let t=(0,ex.getGlobalAcpSessionStore)();return t.cleanupIdle(),t.get(ak(e))?.metadata??null},"listAcpSessionMetadata",0,function(){let e=(0,ex.getGlobalAcpSessionStore)();return e.cleanupIdle(),e.list()},"reconcileAcpSessionWithRuntimeMessages",0,aM,"streamAcpChat",0,aO],10590)}];
75
75
 
76
76
  //# sourceMappingURL=%5Broot-of-the-server%5D__0c.r6ru._.js.map