@axhub/acp 0.1.2-beta.0 → 0.1.2-beta.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.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/acp/capabilities/route.js +1 -1
- package/.next/server/app/api/acp/capabilities/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/cancel/route.js +1 -1
- package/.next/server/app/api/chat/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/resume/[streamId]/route.js +1 -1
- package/.next/server/app/api/chat/resume/[streamId]/route.js.nft.json +1 -1
- package/.next/server/app/api/chat/route.js +1 -1
- package/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/.next/server/app/api/conversations/[threadId]/messages/route.js +2 -2
- package/.next/server/app/api/conversations/[threadId]/runtime/route.js +1 -1
- package/.next/server/app/api/conversations/[threadId]/runtime/route.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/thread/[threadId]/page_client-reference-manifest.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0aovkxs._.js +1 -1
- package/.next/server/chunks/[root-of-the-server]__0c.r6ru._.js +5 -5
- package/.next/server/chunks/{[root-of-the-server]__04pn6ap._.js → [root-of-the-server]__0cki6-w._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0gmxr~m._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0zn3~pq._.js → [root-of-the-server]__0lfmu8f._.js} +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0lbwo2g._.js → [root-of-the-server]__0m33tyh._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0o2epta._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0ml.1wa._.js → [root-of-the-server]__0on1ayi._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__0os92l7._.js +1 -1
- package/.next/server/chunks/{[root-of-the-server]__0zmyki-._.js → [root-of-the-server]__0va2ld4._.js} +1 -1
- package/.next/server/chunks/[root-of-the-server]__13xepwb._.js +1 -1
- package/.next/server/chunks/ssr/_03.pm1z._.js +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/{0r125n-._y5ny.js → 0g95d4qshh~b1.js} +1 -1
- package/README.md +9 -3
- package/bin/acp.mjs +3 -3
- package/bin/defaults.mjs +3 -0
- package/dist/lib/acp2aisdk/provider-command.d.ts +22 -0
- package/dist/lib/acp2aisdk/provider-command.mjs +268 -0
- package/dist/lib/acp2aisdk/provider-registry.mjs +35 -2
- package/dist/lib/acp2aisdk/session-runtime.mjs +54 -16
- package/dist/lib/acp2aisdk/types.d.ts +7 -4
- package/dist/public-api/server.d.ts +1 -1
- package/package.json +2 -2
- /package/.next/static/{0241KNhzDEg6VFWZ_e_qK → afQGa38bHoajAY5kxCATW}/_buildManifest.js +0 -0
- /package/.next/static/{0241KNhzDEg6VFWZ_e_qK → afQGa38bHoajAY5kxCATW}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{0241KNhzDEg6VFWZ_e_qK → afQGa38bHoajAY5kxCATW}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
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
|
|
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 M(e){return"string"==typeof e?e.trim():""}function P(e){if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=M(e.name??e.command??e.id).replace(/^\/+/,"");return t?{name:t,description:M(e.description),input:e.input,source:"acp"}:null}function E(e){return(Array.isArray(e)?e:[]).map(P).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 q=e.i(14691);let N={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:q.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:q.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:q.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:q.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 N[String(e??"").trim().toLowerCase()]??null}function D(e){return"string"==typeof e?e.trim():""}function F(e,t,n,i=0){let o=D(e);return o?{value:o,label:D(t)||o,description:D(n),order:i}:null}function $(e){return!e||"object"!=typeof e||Array.isArray(e)?F(e,e):F(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 V(e){if(!Array.isArray(e))return[];let t=[];return e.forEach((e,n)=>{if(!e||"object"!=typeof e||Array.isArray(e)){let i=F(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=F(e.value??e.id,e.name??e.label,e.description,n);i&&t.push(i)});let i=F(e.value??e.id,e.name??e.label,e.description,n);i&&t.push(i)}),L(t)}function J({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)=>F(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)=>F(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=$(e.currentValue),o=$(e.value),r=L([...V(e.options),...!(t=e.schema)||"object"!=typeof t||Array.isArray(t)?[]:V(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 H(e){return!!(e&&"object"==typeof e&&!Array.isArray(e))}function W(e){let t=e.model;return H(t)?t:null}function K(e){return"string"==typeof e?e.trim():""}function B(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 Q(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 X(e,t){let n=new Set,i=new Set;return t.pipeThrough(new TransformStream({transform(t,o){if(H(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)&&Q(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){Q(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)?d(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 d=w(r.minItems)??+!!s,c="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:d,...void 0!==c?{maxSelections:c}:{},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:h,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=K(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}}N.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(),d=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||!d||!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:d,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=J({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(60199),ed=e.i(21702),ec=e.i(44376),ep=e.i(69719);let em=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),terminal:ep.z.boolean().optional().default(!1)}),eh=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),label:ep.z.string().nullish(),name:ep.z.string(),optional:ep.z.boolean().optional().default(!1),secret:ep.z.boolean().optional().default(!0)}),eg=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),description:ep.z.string().nullish(),id:ep.z.string(),name:ep.z.string()}),ez=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),description:ep.z.string().nullish(),id:ep.z.string(),link:ep.z.string().nullish(),name:ep.z.string(),vars:ep.z.array(eh)}),ef=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),args:ep.z.array(ep.z.string()).optional(),description:ep.z.string().nullish(),env:ep.z.record(ep.z.string(),ep.z.string()).optional(),id:ep.z.string(),name:ep.z.string()}),eb=ep.z.union([ez.and(ep.z.object({type:ep.z.literal("env_var")})),ef.and(ep.z.object({type:ep.z.literal("terminal")})),eg]),ey=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),methodId:ep.z.string()}),ew=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),ev=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),blob:ep.z.string(),mimeType:ep.z.string().nullish(),uri:ep.z.string()}),e_=ep.z.object({default:ep.z.boolean().nullish(),description:ep.z.string().nullish(),title:ep.z.string().nullish()}),ej=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),ek=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),eI=ep.z.object({amount:ep.z.number(),currency:ep.z.string()}),ex=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),terminalId:ep.z.string()}),eS=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),eC=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),newText:ep.z.string(),oldText:ep.z.string().nullish(),path:ep.z.string()}),eA=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),id:ep.z.string()}),eT=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),eR=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),eM=ep.z.union([ep.z.string(),ep.z.number(),ep.z.number(),ep.z.boolean(),ep.z.array(ep.z.string())]),eP=ep.z.object({content:ep.z.record(ep.z.string(),eM).nullish()}),eE=ep.z.intersection(ep.z.union([eP.and(ep.z.object({action:ep.z.literal("accept")})),ep.z.object({action:ep.z.literal("decline")}),ep.z.object({action:ep.z.literal("cancel")})]),ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()})),eO=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),eq=ep.z.string(),eN=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),elicitationId:eq}),eU=ep.z.literal("object"),eD=ep.z.literal("string"),eF=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),e$=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),form:eO.nullish(),url:eF.nullish()}),eL=ep.z.object({const:ep.z.string(),title:ep.z.string()}),eV=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),name:ep.z.string(),value:ep.z.string()}),eJ=ep.z.union([ep.z.literal(-32700),ep.z.literal(-32600),ep.z.literal(-32601),ep.z.literal(-32602),ep.z.literal(-32603),ep.z.literal(-32800),ep.z.literal(-32e3),ep.z.literal(-32002),ep.z.literal(-32042),ep.z.number().int().min(-0x80000000,{message:"Invalid value: Expected int32 to be >= -2147483648"}).max(0x7fffffff,{message:"Invalid value: Expected int32 to be <= 2147483647"})]),eH=ep.z.object({code:eJ,data:ep.z.unknown().optional(),message:ep.z.string()}),eW=ep.z.unknown(),eK=ep.z.unknown(),eB=ep.z.unknown(),eG=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),readTextFile:ep.z.boolean().optional().default(!1),writeTextFile:ep.z.boolean().optional().default(!1)}),eY=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),name:ep.z.string(),value:ep.z.string()}),eZ=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),name:ep.z.string(),title:ep.z.string().nullish(),version:ep.z.string()}),eQ=ep.z.object({default:ep.z.number().nullish(),description:ep.z.string().nullish(),maximum:ep.z.number().nullish(),minimum:ep.z.number().nullish(),title:ep.z.string().nullish()}),eX=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),e0=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),e2=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),cursor:ep.z.string().nullish(),cwd:ep.z.string().nullish()}),e1=ep.z.union([ep.z.literal("anthropic"),ep.z.literal("openai"),ep.z.literal("azure"),ep.z.literal("vertex"),ep.z.literal("bedrock"),ep.z.string()]),e3=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),e5=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),logout:e3.nullish()}),e6=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),e4=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),e9=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),acp:ep.z.boolean().optional().default(!1),http:ep.z.boolean().optional().default(!1),sse:ep.z.boolean().optional().default(!1)}),e7=ep.z.string(),e8=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),connectionId:e7}),te=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),connectionId:e7}),tt=ep.z.string(),tn=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),acpId:tt}),ti=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),id:tt,name:ep.z.string()}),to=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),headers:ep.z.array(eY),name:ep.z.string(),url:ep.z.string()}),tr=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),headers:ep.z.array(eY),name:ep.z.string(),url:ep.z.string()}),ts=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),args:ep.z.array(ep.z.string()),command:ep.z.string(),env:ep.z.array(eV),name:ep.z.string()}),ta=ep.z.union([to.and(ep.z.object({type:ep.z.literal("http")})),tr.and(ep.z.object({type:ep.z.literal("sse")})),ti.and(ep.z.object({type:ep.z.literal("acp")})),ts]),tl=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),connectionId:e7,method:ep.z.string(),params:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),tu=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),connectionId:e7,method:ep.z.string(),params:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),td=ep.z.unknown(),tc=ep.z.string(),tp=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),description:ep.z.string().nullish(),modelId:tc,name:ep.z.string()}),tm=ep.z.union([ep.z.literal("error"),ep.z.literal("warning"),ep.z.literal("information"),ep.z.literal("hint")]),th=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),tg=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),tz=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),tf=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),tb=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),ty=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),maxCount:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish()}),tw=ep.z.object({diff:ep.z.string(),uri:ep.z.string()}),tv=ep.z.object({endLine:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}),startLine:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}),text:ep.z.string()}),t_=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),tj=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),tk=ep.z.object({languageId:ep.z.string(),text:ep.z.string(),uri:ep.z.string()}),tI=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),maxCount:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish()}),tx=ep.z.union([ep.z.literal("rejected"),ep.z.literal("ignored"),ep.z.literal("replaced"),ep.z.literal("cancelled")]),tS=ep.z.object({excerpts:ep.z.array(tv),uri:ep.z.string()}),tC=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),tA=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),tT=ep.z.object({name:ep.z.string(),owner:ep.z.string(),remoteUrl:ep.z.string()}),tR=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),tM=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),jump:t_.nullish(),rename:tA.nullish(),searchAndReplace:tR.nullish()}),tP=ep.z.object({id:ep.z.string(),isRegex:ep.z.boolean().nullish(),replace:ep.z.string(),search:ep.z.string(),uri:ep.z.string()}),tE=ep.z.union([ep.z.literal("automatic"),ep.z.literal("diagnostic"),ep.z.literal("manual")]),tO=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),maxCount:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish()}),tq=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),diagnostics:th.nullish(),editHistory:ty.nullish(),openFiles:tj.nullish(),recentFiles:tI.nullish(),relatedSnippets:tC.nullish(),userActions:tO.nullish()}),tN=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),additionalDirectories:ep.z.array(ep.z.string()).optional(),cwd:ep.z.string(),mcpServers:ep.z.array(ta)}),tU=ep.z.object({default:ep.z.number().nullish(),description:ep.z.string().nullish(),maximum:ep.z.number().nullish(),minimum:ep.z.number().nullish(),title:ep.z.string().nullish()}),tD=ep.z.string(),tF=ep.z.union([ep.z.literal("allow_once"),ep.z.literal("allow_always"),ep.z.literal("reject_once"),ep.z.literal("reject_always")]),t$=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),kind:tF,name:ep.z.string(),optionId:tD}),tL=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),tV=ep.z.union([ep.z.literal("high"),ep.z.literal("medium"),ep.z.literal("low")]),tJ=ep.z.union([ep.z.literal("pending"),ep.z.literal("in_progress"),ep.z.literal("completed")]),tH=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),content:ep.z.string(),priority:tV,status:tJ}),tW=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),entries:ep.z.array(tH)}),tK=ep.z.string(),tB=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),id:tK,uri:ep.z.string()}),tG=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),entries:ep.z.array(tH),id:tK}),tY=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),content:ep.z.string(),id:tK}),tZ=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),id:tK}),tQ=ep.z.union([tG.and(ep.z.object({type:ep.z.literal("items")})),tB.and(ep.z.object({type:ep.z.literal("file")})),tY.and(ep.z.object({type:ep.z.literal("markdown")}))]),tX=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),plan:tQ}),t0=ep.z.object({character:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}),line:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"})}),t2=ep.z.object({id:ep.z.string(),position:t0,uri:ep.z.string()}),t1=ep.z.object({id:ep.z.string(),newName:ep.z.string(),position:t0,uri:ep.z.string()}),t3=ep.z.object({action:ep.z.string(),position:t0,timestampMs:ep.z.number(),uri:ep.z.string()}),t5=ep.z.union([ep.z.literal("utf-16"),ep.z.literal("utf-32"),ep.z.literal("utf-8")]),t6=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),auth:em.optional().default({terminal:!1}),elicitation:e$.nullish(),fs:eG.optional().default({readTextFile:!1,writeTextFile:!1}),nes:tM.nullish(),planCapabilities:tL.nullish(),positionEncodings:ep.z.array(t5).optional(),terminal:ep.z.boolean().optional().default(!1)}),t4=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),audio:ep.z.boolean().optional().default(!1),embeddedContext:ep.z.boolean().optional().default(!1),image:ep.z.boolean().optional().default(!1)}),t9=ep.z.number().int().gte(0).lte(65535),t7=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),clientCapabilities:t6.optional().default({auth:{terminal:!1},fs:{readTextFile:!1,writeTextFile:!1},terminal:!1}),clientInfo:eZ.nullish(),protocolVersion:t9}),t8=ep.z.object({apiType:e1,baseUrl:ep.z.string()}),ne=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),current:t8.nullish(),id:ep.z.string(),required:ep.z.boolean(),supported:ep.z.array(e1)}),nt=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),providers:ep.z.array(ne)}),nn=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),ni=ep.z.object({end:t0,start:t0}),no=ep.z.object({message:ep.z.string(),range:ni,severity:tm,uri:ep.z.string()}),nr=ep.z.object({languageId:ep.z.string(),lastFocusedMs:ep.z.number().nullish(),uri:ep.z.string(),visibleRange:ni.nullish()}),ns=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),diagnostics:ep.z.array(no).nullish(),editHistory:ep.z.array(tw).nullish(),openFiles:ep.z.array(nr).nullish(),recentFiles:ep.z.array(tk).nullish(),relatedSnippets:ep.z.array(tS).nullish(),userActions:ep.z.array(t3).nullish()}),na=ep.z.object({newText:ep.z.string(),range:ni}),nl=ep.z.object({cursorPosition:t0.nullish(),edits:ep.z.array(na),id:ep.z.string(),uri:ep.z.string()}),nu=ep.z.union([nl.and(ep.z.object({kind:ep.z.literal("edit")})),t2.and(ep.z.object({kind:ep.z.literal("jump")})),t1.and(ep.z.object({kind:ep.z.literal("rename")})),tP.and(ep.z.object({kind:ep.z.literal("searchAndReplace")}))]),nd=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),content:ep.z.string()}),nc=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),np=ep.z.union([ep.z.number(),ep.z.string()]).nullable();ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),requestId:np});let nm=ep.z.object({requestId:np}),nh=ep.z.enum(["assistant","user"]),ng=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),audience:ep.z.array(nh).nullish(),lastModified:ep.z.string().nullish(),priority:ep.z.number().nullish()}),nz=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),annotations:ng.nullish(),data:ep.z.string(),mimeType:ep.z.string()}),nf=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),annotations:ng.nullish(),data:ep.z.string(),mimeType:ep.z.string(),uri:ep.z.string().nullish()}),nb=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),annotations:ng.nullish(),description:ep.z.string().nullish(),mimeType:ep.z.string().nullish(),name:ep.z.string(),size:ep.z.number().nullish(),title:ep.z.string().nullish(),uri:ep.z.string()}),ny=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),optionId:tD}),nw=ep.z.union([ep.z.object({outcome:ep.z.literal("cancelled")}),ny.and(ep.z.object({outcome:ep.z.literal("selected")}))]),nv=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),outcome:nw}),n_=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),nj=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),nk=ep.z.object({currentValue:ep.z.boolean()}),nI=ep.z.string(),nx=ep.z.string(),nS=ep.z.union([ep.z.literal("mode"),ep.z.literal("model"),ep.z.literal("thought_level"),ep.z.string()]),nC=ep.z.string(),nA=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),description:ep.z.string().nullish(),name:ep.z.string(),value:nC}),nT=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),group:nI,name:ep.z.string(),options:ep.z.array(nA)}),nR=ep.z.union([ep.z.array(nA),ep.z.array(nT)]),nM=ep.z.object({currentValue:nC,options:nR}),nP=ep.z.intersection(ep.z.union([nM.and(ep.z.object({type:ep.z.literal("select")})),nk.and(ep.z.object({type:ep.z.literal("boolean")}))]),ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),category:nS.nullish(),description:ep.z.string().nullish(),id:nx,name:ep.z.string()})),nE=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),configOptions:ep.z.array(nP)}),nO=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),nq=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),nN=ep.z.string(),nU=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),id:ep.z.string(),sessionId:nN}),nD=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN}),nF=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN}),n$=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN}),nL=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),args:ep.z.array(ep.z.string()).optional(),command:ep.z.string(),cwd:ep.z.string().nullish(),env:ep.z.array(eV).optional(),outputByteLimit:ep.z.number().nullish(),sessionId:nN}),nV=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN}),nJ=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN,uri:ep.z.string()}),nH=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),position:t0,sessionId:nN,uri:ep.z.string(),version:ep.z.number(),visibleRange:ni}),nW=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),languageId:ep.z.string(),sessionId:nN,text:ep.z.string(),uri:ep.z.string(),version:ep.z.number()}),nK=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN,uri:ep.z.string()}),nB=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),additionalDirectories:ep.z.array(ep.z.string()).optional(),cwd:ep.z.string(),mcpServers:ep.z.array(ta).optional(),sessionId:nN}),nG=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN,terminalId:ep.z.string()}),nY=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),additionalDirectories:ep.z.array(ep.z.string()).optional(),cwd:ep.z.string(),mcpServers:ep.z.array(ta),sessionId:nN}),nZ=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),limit:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),line:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),path:ep.z.string(),sessionId:nN}),nQ=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),id:ep.z.string(),reason:tx.nullish(),sessionId:nN}),nX=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN,terminalId:ep.z.string()}),n0=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),additionalDirectories:ep.z.array(ep.z.string()).optional(),cwd:ep.z.string(),mcpServers:ep.z.array(ta).optional(),sessionId:nN}),n2=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),additionalDirectories:ep.z.array(ep.z.string()).optional(),cwd:ep.z.string(),sessionId:nN,title:ep.z.string().nullish(),updatedAt:ep.z.string().nullish()}),n1=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),nextCursor:ep.z.string().nullish(),sessions:ep.z.array(n2)}),n3=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),title:ep.z.string().nullish(),updatedAt:ep.z.string().nullish()}),n5=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),n6=ep.z.string(),n4=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),currentModeId:n6}),n9=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),description:ep.z.string().nullish(),id:n6,name:ep.z.string()}),n7=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),availableModes:ep.z.array(n9),currentModeId:n6}),n8=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),availableModels:ep.z.array(tp),currentModelId:tc}),ie=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),configOptions:ep.z.array(nP).nullish(),models:n8.nullish(),modes:n7.nullish(),sessionId:nN}),it=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),configOptions:ep.z.array(nP).nullish(),models:n8.nullish(),modes:n7.nullish()}),ii=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),configOptions:ep.z.array(nP).nullish(),models:n8.nullish(),modes:n7.nullish(),sessionId:nN}),io=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),configOptions:ep.z.array(nP).nullish(),models:n8.nullish(),modes:n7.nullish()}),ir=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),is=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),additionalDirectories:n_.nullish(),close:nj.nullish(),delete:nO.nullish(),fork:nq.nullish(),list:n5.nullish(),resume:ir.nullish()}),ia=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),apiType:e1,baseUrl:ep.z.string(),headers:ep.z.record(ep.z.string(),ep.z.string()).optional(),id:ep.z.string()}),il=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),iu=ep.z.intersection(ep.z.union([ep.z.object({type:ep.z.literal("boolean"),value:ep.z.boolean()}),ep.z.object({value:nC})]),ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),configId:nx,sessionId:nN})),id=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),configOptions:ep.z.array(nP)}),ic=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),modeId:n6,sessionId:nN}),ip=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),im=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),modelId:tc,sessionId:nN}),ih=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()}),ig=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN}),iz=ep.z.union([ep.z.literal("end_turn"),ep.z.literal("max_tokens"),ep.z.literal("max_turn_requests"),ep.z.literal("refusal"),ep.z.literal("cancelled")]),ib=ep.z.union([ep.z.literal("email"),ep.z.literal("uri"),ep.z.literal("date"),ep.z.literal("date-time")]),iy=ep.z.object({default:ep.z.string().nullish(),description:ep.z.string().nullish(),enum:ep.z.array(ep.z.string()).nullish(),format:ib.nullish(),maxLength:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),minLength:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),oneOf:ep.z.array(eL).nullish(),pattern:ep.z.string().nullish(),title:ep.z.string().nullish()}),iw=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),context:ns.nullish(),position:t0,selection:ni.nullish(),sessionId:nN,triggerKind:tE,uri:ep.z.string(),version:ep.z.number()}),iv=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),suggestions:ep.z.array(nu)}),i_=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),terminalId:ep.z.string()}),ij=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),exitCode:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),signal:ep.z.string().nullish()}),ik=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN,terminalId:ep.z.string()}),iI=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),exitStatus:ij.nullish(),output:ep.z.string(),truncated:ep.z.boolean()}),ix=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),annotations:ng.nullish(),text:ep.z.string()}),iS=ep.z.object({range:ni.nullish(),text:ep.z.string()}),iC=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),contentChanges:ep.z.array(iS),sessionId:nN,uri:ep.z.string(),version:ep.z.number()});ep.z.object({method:ep.z.string(),params:ep.z.union([nD,nW,iC,nJ,nK,nH,nU,nQ,tl,eW]).nullish()});let iA=ep.z.union([ep.z.literal("full"),ep.z.literal("incremental")]),iT=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),syncKind:iA}),iR=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),didChange:iT.nullish(),didClose:tg.nullish(),didFocus:tz.nullish(),didOpen:tf.nullish(),didSave:tb.nullish()}),iM=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),document:iR.nullish()}),iP=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),context:tq.nullish(),events:iM.nullish()}),iE=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),auth:e5.optional().default({}),loadSession:ep.z.boolean().optional().default(!1),mcpCapabilities:e9.optional().default({acp:!1,http:!1,sse:!1}),nes:iP.nullish(),positionEncoding:t5.nullish(),promptCapabilities:t4.optional().default({audio:!1,embeddedContext:!1,image:!1}),providers:nn.nullish(),sessionCapabilities:is.optional().default({})}),iO=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),agentCapabilities:iE.optional().default({auth:{},loadSession:!1,mcpCapabilities:{acp:!1,http:!1,sse:!1},promptCapabilities:{audio:!1,embeddedContext:!1,image:!1},sessionCapabilities:{}}),agentInfo:eZ.nullish(),authMethods:ep.z.array(eb).optional().default([]),protocolVersion:t9}),iq=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),mimeType:ep.z.string().nullish(),text:ep.z.string(),uri:ep.z.string()}),iN=ep.z.union([iq,ev]),iU=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),annotations:ng.nullish(),resource:iN}),iD=ep.z.union([ix.and(ep.z.object({type:ep.z.literal("text")})),nf.and(ep.z.object({type:ep.z.literal("image")})),nz.and(ep.z.object({type:ep.z.literal("audio")})),nb.and(ep.z.object({type:ep.z.literal("resource_link")})),iU.and(ep.z.object({type:ep.z.literal("resource")}))]),iF=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),content:iD}),i$=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),content:iD,messageId:ep.z.string().nullish()}),iL=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),messageId:ep.z.string().nullish(),prompt:ep.z.array(iD),sessionId:nN}),iV=ep.z.object({anyOf:ep.z.array(eL)}),iJ=ep.z.union([iF.and(ep.z.object({type:ep.z.literal("content")})),eC.and(ep.z.object({type:ep.z.literal("diff")})),i_.and(ep.z.object({type:ep.z.literal("terminal")}))]),iH=ep.z.string(),iW=ep.z.object({sessionId:nN,toolCallId:iH.nullish()}),iK=ep.z.intersection(ep.z.union([iW,nm]),ep.z.object({elicitationId:eq,url:ep.z.string().url()})),iB=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),line:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),path:ep.z.string()}),iG=ep.z.union([ep.z.literal("pending"),ep.z.literal("in_progress"),ep.z.literal("completed"),ep.z.literal("failed")]),iY=ep.z.union([ep.z.literal("read"),ep.z.literal("edit"),ep.z.literal("delete"),ep.z.literal("move"),ep.z.literal("search"),ep.z.literal("execute"),ep.z.literal("think"),ep.z.literal("fetch"),ep.z.literal("switch_mode"),ep.z.literal("other")]),iZ=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),content:ep.z.array(iJ).optional(),kind:iY.optional(),locations:ep.z.array(iB).optional(),rawInput:ep.z.unknown().optional(),rawOutput:ep.z.unknown().optional(),status:iG.optional(),title:ep.z.string(),toolCallId:iH}),iQ=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),content:ep.z.array(iJ).nullish(),kind:iY.nullish(),locations:ep.z.array(iB).nullish(),rawInput:ep.z.unknown().optional(),rawOutput:ep.z.unknown().optional(),status:iG.nullish(),title:ep.z.string().nullish(),toolCallId:iH}),iX=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),options:ep.z.array(t$),sessionId:nN,toolCall:iQ}),i0=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),hint:ep.z.string()}),i2=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),description:ep.z.string(),input:i0.nullish(),name:ep.z.string()}),i1=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),availableCommands:ep.z.array(i2)}),i3=ep.z.object({enum:ep.z.array(ep.z.string()),type:eD}),i5=ep.z.union([i3,iV]),i6=ep.z.object({default:ep.z.array(ep.z.string()).nullish(),description:ep.z.string().nullish(),items:i5,maxItems:ep.z.number().nullish(),minItems:ep.z.number().nullish(),title:ep.z.string().nullish()}),i4=ep.z.union([iy.and(ep.z.object({type:ep.z.literal("string")})),tU.and(ep.z.object({type:ep.z.literal("number")})),eQ.and(ep.z.object({type:ep.z.literal("integer")})),e_.and(ep.z.object({type:ep.z.literal("boolean")})),i6.and(ep.z.object({type:ep.z.literal("array")}))]),i9=ep.z.object({description:ep.z.string().nullish(),properties:ep.z.record(ep.z.string(),i4).optional().default({}),required:ep.z.array(ep.z.string()).nullish(),title:ep.z.string().nullish(),type:eU.optional().default("object")}),i7=ep.z.intersection(ep.z.union([iW,nm]),ep.z.object({requestedSchema:i9})),i8=ep.z.intersection(ep.z.union([i7.and(ep.z.object({mode:ep.z.literal("form")})),iK.and(ep.z.object({mode:ep.z.literal("url")}))]),ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),message:ep.z.string()})),oe=ep.z.object({cachedReadTokens:ep.z.number().nullish(),cachedWriteTokens:ep.z.number().nullish(),inputTokens:ep.z.number(),outputTokens:ep.z.number(),thoughtTokens:ep.z.number().nullish(),totalTokens:ep.z.number()}),ot=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),stopReason:iz,usage:oe.nullish(),userMessageId:ep.z.string().nullish()});ep.z.union([ep.z.object({id:np,result:ep.z.union([iO,ew,nt,il,eT,e4,ii,it,n1,eS,ie,io,ek,ip,id,ot,ih,ig,iv,ej,eB,td])}),ep.z.object({error:eH,id:np})]);let on=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),cost:eI.nullish(),size:ep.z.number(),used:ep.z.number()}),oi=ep.z.union([i$.and(ep.z.object({sessionUpdate:ep.z.literal("user_message_chunk")})),i$.and(ep.z.object({sessionUpdate:ep.z.literal("agent_message_chunk")})),i$.and(ep.z.object({sessionUpdate:ep.z.literal("agent_thought_chunk")})),iZ.and(ep.z.object({sessionUpdate:ep.z.literal("tool_call")})),iQ.and(ep.z.object({sessionUpdate:ep.z.literal("tool_call_update")})),tW.and(ep.z.object({sessionUpdate:ep.z.literal("plan")})),tX.and(ep.z.object({sessionUpdate:ep.z.literal("plan_update")})),tZ.and(ep.z.object({sessionUpdate:ep.z.literal("plan_removed")})),i1.and(ep.z.object({sessionUpdate:ep.z.literal("available_commands_update")})),n4.and(ep.z.object({sessionUpdate:ep.z.literal("current_mode_update")})),nE.and(ep.z.object({sessionUpdate:ep.z.literal("config_option_update")})),n3.and(ep.z.object({sessionUpdate:ep.z.literal("session_info_update")})),on.and(ep.z.object({sessionUpdate:ep.z.literal("usage_update")}))]),oo=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN,update:oi});ep.z.object({method:ep.z.string(),params:ep.z.union([oo,eN,tl,eW]).nullish()});let or=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),sessionId:nN,terminalId:ep.z.string()}),os=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),exitCode:ep.z.number().int().gte(0).max(0xffffffff,{message:"Invalid value: Expected uint32 to be <= 4294967295"}).nullish(),signal:ep.z.string().nullish()}),oa=ep.z.object({name:ep.z.string(),uri:ep.z.string()}),ol=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),repository:tT.nullish(),workspaceFolders:ep.z.array(oa).nullish(),workspaceUri:ep.z.string().nullish()});ep.z.object({id:np,method:ep.z.string(),params:ep.z.union([t7,ey,e0,ia,eA,e6,tN,nY,e2,nV,nB,n0,n$,ic,iu,iL,im,ol,iw,nF,tu,eK]).nullish()});let ou=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish(),content:ep.z.string(),path:ep.z.string(),sessionId:nN});ep.z.object({id:np,method:ep.z.string(),params:ep.z.union([ou,nZ,iX,nL,ik,nX,or,nG,i8,tn,tu,te,eK]).nullish()});let od=ep.z.object({_meta:ep.z.record(ep.z.string(),ep.z.unknown()).nullish()});function oc(e){return e??{}}function op(e){let t=Promise.reject(e);return t.catch(()=>{}),t}ep.z.union([ep.z.object({id:np,result:ep.z.union([od,nd,nv,ex,iI,nc,os,eX,eE,e8,eR,eB,td])}),ep.z.object({error:eH,id:np})]);class om{connection;constructor(e,t){const n=e(this),i=async(e,t)=>{switch(e){case"fs/write_text_file":{let e=ou.parse(t);return await n.writeTextFile?.(e)??{}}case"fs/read_text_file":{let e=nZ.parse(t);return n.readTextFile?.(e)}case"session/request_permission":{let e=iX.parse(t);return n.requestPermission(e)}case"terminal/create":{let e=nL.parse(t);return n.createTerminal?.(e)}case"terminal/output":{let e=ik.parse(t);return n.terminalOutput?.(e)}case"terminal/release":{let e=nX.parse(t);return await n.releaseTerminal?.(e)??{}}case"terminal/wait_for_exit":{let e=or.parse(t);return n.waitForTerminalExit?.(e)}case"terminal/kill":{let e=nG.parse(t);return await n.killTerminal?.(e)??{}}case"elicitation/create":{if(!n.unstable_createElicitation)throw og.methodNotFound(e);let i=i8.parse(t);return n.unstable_createElicitation(i)}default:if(n.extMethod)return n.extMethod(e,t);throw og.methodNotFound(e)}},o=async(e,t)=>{switch(e){case"session/update":{let e=oo.parse(t);return n.sessionUpdate(e)}case"elicitation/complete":{if(!n.unstable_completeElicitation)return;let e=eN.parse(t);return n.unstable_completeElicitation(e)}default:if(n.extNotification)return n.extNotification(e,t);throw og.methodNotFound(e)}};this.connection=new oh(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,oc)}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,oc)}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,oc)}unstable_setSessionModel(e){return this.connection.sendRequest("session/set_model",e,oc)}setSessionConfigOption(e){return this.connection.sendRequest("session/set_config_option",e)}authenticate(e){return this.connection.sendRequest("authenticate",e,oc)}unstable_listProviders(e){return this.connection.sendRequest("providers/list",e)}unstable_setProvider(e){return this.connection.sendRequest("providers/set",e,oc)}unstable_disableProvider(e){return this.connection.sendRequest("providers/disable",e,oc)}logout(e){return this.connection.sendRequest("logout",e,oc)}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,oc)}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 oh{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 og)return t.toResult();if(t instanceof ep.z.ZodError)return og.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 og.internalError(e?JSON.parse(e):{}).toResult()}catch{return og.internalError({details:e}).toResult()}}}async tryCallNotificationHandler(e,t){try{return await this.notificationHandler(e,t),{result:null}}catch(t){let e;if(t instanceof og)return t.toResult();if(t instanceof ep.z.ZodError)return og.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 og.internalError(e?JSON.parse(e):{}).toResult()}catch{return og.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 og(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 op(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?op(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 og 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 og(-32700,`Parse error${t?`: ${t}`:""}`,e)}static invalidRequest(e,t){return new og(-32600,`Invalid request${t?`: ${t}`:""}`,e)}static methodNotFound(e){return new og(-32601,`"Method not found": ${e}`,{method:e})}static invalidParams(e,t){return new og(-32602,`Invalid params${t?`: ${t}`:""}`,e)}static internalError(e,t){return new og(-32603,`Internal error${t?`: ${t}`:""}`,e)}static authRequired(e,t){return new og(-32e3,`Authentication required${t?`: ${t}`:""}`,e)}static resourceNotFound(e){return new og(-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 oz=e.i(74533),of=e.i(81111),ob=e.i(62810),oy=e.i(61095),ow=e.i(7855),ov=e.i(51047),ov=ov;let o_=ow.custom(e=>null!==e&&("object"==typeof e||"function"==typeof e)),oj=ow.union([ow.string(),ow.number().int()]),ok=ow.string();ow.looseObject({ttl:ow.number().optional(),pollInterval:ow.number().optional()});let oI=ow.object({ttl:ow.number().optional()}),ox=ow.object({taskId:ow.string()}),oS=ow.looseObject({progressToken:oj.optional(),"io.modelcontextprotocol/related-task":ox.optional()}),oC=ow.object({_meta:oS.optional()}),oA=oC.extend({task:oI.optional()}),oT=ow.object({method:ow.string(),params:oC.loose().optional()}),oR=ow.object({_meta:oS.optional()}),oM=ow.object({method:ow.string(),params:oR.loose().optional()}),oP=ow.looseObject({_meta:oS.optional()}),oE=ow.union([ow.string(),ow.number().int()]),oO=ow.object({jsonrpc:ow.literal("2.0"),id:oE,...oT.shape}).strict(),oq=ow.object({jsonrpc:ow.literal("2.0"),...oM.shape}).strict(),oN=ow.object({jsonrpc:ow.literal("2.0"),id:oE,result:oP}).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 oU=ow.object({jsonrpc:ow.literal("2.0"),id:oE.optional(),error:ow.object({code:ow.number().int(),message:ow.string(),data:ow.unknown().optional()})}).strict();ow.union([oO,oq,oN,oU]),ow.union([oN,oU]);let oD=oP.strict(),oF=oR.extend({requestId:oE.optional(),reason:ow.string().optional()}),o$=oM.extend({method:ow.literal("notifications/cancelled"),params:oF}),oL=ow.object({src:ow.string(),mimeType:ow.string().optional(),sizes:ow.array(ow.string()).optional(),theme:ow.enum(["light","dark"]).optional()}),oV=ow.object({icons:ow.array(oL).optional()}),oJ=ow.object({name:ow.string(),title:ow.string().optional()}),oH=oJ.extend({...oJ.shape,...oV.shape,version:ow.string(),websiteUrl:ow.string().optional(),description:ow.string().optional()}),oW=ow.intersection(ow.object({applyDefaults:ow.boolean().optional()}),ow.record(ow.string(),ow.unknown())),oK=ow.preprocess(e=>e&&"object"==typeof e&&!Array.isArray(e)&&0===Object.keys(e).length?{form:{}}:e,ow.intersection(ow.object({form:oW.optional(),url:o_.optional()}),ow.record(ow.string(),ow.unknown()).optional())),oB=ow.looseObject({list:o_.optional(),cancel:o_.optional(),requests:ow.looseObject({sampling:ow.looseObject({createMessage:o_.optional()}).optional(),elicitation:ow.looseObject({create:o_.optional()}).optional()}).optional()}),oG=ow.looseObject({list:o_.optional(),cancel:o_.optional(),requests:ow.looseObject({tools:ow.looseObject({call:o_.optional()}).optional()}).optional()}),oY=ow.object({experimental:ow.record(ow.string(),o_).optional(),sampling:ow.object({context:o_.optional(),tools:o_.optional()}).optional(),elicitation:oK.optional(),roots:ow.object({listChanged:ow.boolean().optional()}).optional(),tasks:oB.optional(),extensions:ow.record(ow.string(),o_).optional()}),oZ=oC.extend({protocolVersion:ow.string(),capabilities:oY,clientInfo:oH}),oQ=oT.extend({method:ow.literal("initialize"),params:oZ}),oX=ow.object({experimental:ow.record(ow.string(),o_).optional(),logging:o_.optional(),completions:o_.optional(),prompts:ow.object({listChanged:ow.boolean().optional()}).optional(),resources:ow.object({subscribe:ow.boolean().optional(),listChanged:ow.boolean().optional()}).optional(),tools:ow.object({listChanged:ow.boolean().optional()}).optional(),tasks:oG.optional(),extensions:ow.record(ow.string(),o_).optional()}),o0=oP.extend({protocolVersion:ow.string(),capabilities:oX,serverInfo:oH,instructions:ow.string().optional()}),o2=oM.extend({method:ow.literal("notifications/initialized"),params:oR.optional()}),o1=oT.extend({method:ow.literal("ping"),params:oC.optional()}),o3=ow.object({progress:ow.number(),total:ow.optional(ow.number()),message:ow.optional(ow.string())}),o5=ow.object({...oR.shape,...o3.shape,progressToken:oj}),o6=oM.extend({method:ow.literal("notifications/progress"),params:o5}),o4=oC.extend({cursor:ok.optional()}),o9=oT.extend({params:o4.optional()}),o7=oP.extend({nextCursor:ok.optional()}),o8=ow.enum(["working","input_required","completed","failed","cancelled"]),re=ow.object({taskId:ow.string(),status:o8,ttl:ow.union([ow.number(),ow.null()]),createdAt:ow.string(),lastUpdatedAt:ow.string(),pollInterval:ow.optional(ow.number()),statusMessage:ow.optional(ow.string())}),rt=oP.extend({task:re}),rn=oR.merge(re),ri=oM.extend({method:ow.literal("notifications/tasks/status"),params:rn}),ro=oT.extend({method:ow.literal("tasks/get"),params:oC.extend({taskId:ow.string()})}),rr=oP.merge(re),rs=oT.extend({method:ow.literal("tasks/result"),params:oC.extend({taskId:ow.string()})});oP.loose();let ra=o9.extend({method:ow.literal("tasks/list")}),rl=o7.extend({tasks:ow.array(re)}),ru=oT.extend({method:ow.literal("tasks/cancel"),params:oC.extend({taskId:ow.string()})});oP.merge(re);let rd=ow.object({uri:ow.string(),mimeType:ow.optional(ow.string()),_meta:ow.record(ow.string(),ow.unknown()).optional()}),rc=rd.extend({text:ow.string()}),rp=ow.string().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),rm=rd.extend({blob:rp}),rh=ow.enum(["user","assistant"]),rg=ow.object({audience:ow.array(rh).optional(),priority:ow.number().min(0).max(1).optional(),lastModified:ov.datetime({offset:!0}).optional()}),rz=ow.object({...oJ.shape,...oV.shape,uri:ow.string(),description:ow.optional(ow.string()),mimeType:ow.optional(ow.string()),size:ow.optional(ow.number()),annotations:rg.optional(),_meta:ow.optional(ow.looseObject({}))}),rf=ow.object({...oJ.shape,...oV.shape,uriTemplate:ow.string(),description:ow.optional(ow.string()),mimeType:ow.optional(ow.string()),annotations:rg.optional(),_meta:ow.optional(ow.looseObject({}))}),rb=o9.extend({method:ow.literal("resources/list")}),ry=o7.extend({resources:ow.array(rz)}),rw=o9.extend({method:ow.literal("resources/templates/list")}),rv=o7.extend({resourceTemplates:ow.array(rf)}),r_=oC.extend({uri:ow.string()}),rj=oT.extend({method:ow.literal("resources/read"),params:r_}),rk=oP.extend({contents:ow.array(ow.union([rc,rm]))}),rI=oM.extend({method:ow.literal("notifications/resources/list_changed"),params:oR.optional()}),rx=oT.extend({method:ow.literal("resources/subscribe"),params:r_}),rS=oT.extend({method:ow.literal("resources/unsubscribe"),params:r_}),rC=oR.extend({uri:ow.string()}),rA=oM.extend({method:ow.literal("notifications/resources/updated"),params:rC}),rT=ow.object({name:ow.string(),description:ow.optional(ow.string()),required:ow.optional(ow.boolean())}),rR=ow.object({...oJ.shape,...oV.shape,description:ow.optional(ow.string()),arguments:ow.optional(ow.array(rT)),_meta:ow.optional(ow.looseObject({}))}),rM=o9.extend({method:ow.literal("prompts/list")}),rP=o7.extend({prompts:ow.array(rR)}),rE=oC.extend({name:ow.string(),arguments:ow.record(ow.string(),ow.string()).optional()}),rO=oT.extend({method:ow.literal("prompts/get"),params:rE}),rq=ow.object({type:ow.literal("text"),text:ow.string(),annotations:rg.optional(),_meta:ow.record(ow.string(),ow.unknown()).optional()}),rN=ow.object({type:ow.literal("image"),data:rp,mimeType:ow.string(),annotations:rg.optional(),_meta:ow.record(ow.string(),ow.unknown()).optional()}),rU=ow.object({type:ow.literal("audio"),data:rp,mimeType:ow.string(),annotations:rg.optional(),_meta:ow.record(ow.string(),ow.unknown()).optional()}),rD=ow.object({type:ow.literal("tool_use"),name:ow.string(),id:ow.string(),input:ow.record(ow.string(),ow.unknown()),_meta:ow.record(ow.string(),ow.unknown()).optional()}),rF=ow.object({type:ow.literal("resource"),resource:ow.union([rc,rm]),annotations:rg.optional(),_meta:ow.record(ow.string(),ow.unknown()).optional()}),r$=rz.extend({type:ow.literal("resource_link")}),rL=ow.union([rq,rN,rU,r$,rF]),rV=ow.object({role:rh,content:rL}),rJ=oP.extend({description:ow.string().optional(),messages:ow.array(rV)}),rH=oM.extend({method:ow.literal("notifications/prompts/list_changed"),params:oR.optional()}),rW=ow.object({title:ow.string().optional(),readOnlyHint:ow.boolean().optional(),destructiveHint:ow.boolean().optional(),idempotentHint:ow.boolean().optional(),openWorldHint:ow.boolean().optional()}),rK=ow.object({taskSupport:ow.enum(["required","optional","forbidden"]).optional()}),rB=ow.object({...oJ.shape,...oV.shape,description:ow.string().optional(),inputSchema:ow.object({type:ow.literal("object"),properties:ow.record(ow.string(),o_).optional(),required:ow.array(ow.string()).optional()}).catchall(ow.unknown()),outputSchema:ow.object({type:ow.literal("object"),properties:ow.record(ow.string(),o_).optional(),required:ow.array(ow.string()).optional()}).catchall(ow.unknown()).optional(),annotations:rW.optional(),execution:rK.optional(),_meta:ow.record(ow.string(),ow.unknown()).optional()}),rG=o9.extend({method:ow.literal("tools/list")}),rY=o7.extend({tools:ow.array(rB)}),rZ=oP.extend({content:ow.array(rL).default([]),structuredContent:ow.record(ow.string(),ow.unknown()).optional(),isError:ow.boolean().optional()});rZ.or(oP.extend({toolResult:ow.unknown()}));let rQ=oA.extend({name:ow.string(),arguments:ow.record(ow.string(),ow.unknown()).optional()}),rX=oT.extend({method:ow.literal("tools/call"),params:rQ}),r0=oM.extend({method:ow.literal("notifications/tools/list_changed"),params:oR.optional()});ow.object({autoRefresh:ow.boolean().default(!0),debounceMs:ow.number().int().nonnegative().default(300)});let r2=ow.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),r1=oC.extend({level:r2}),r3=oT.extend({method:ow.literal("logging/setLevel"),params:r1}),r5=oR.extend({level:r2,logger:ow.string().optional(),data:ow.unknown()}),r6=oM.extend({method:ow.literal("notifications/message"),params:r5}),r4=ow.object({name:ow.string().optional()}),r9=ow.object({hints:ow.array(r4).optional(),costPriority:ow.number().min(0).max(1).optional(),speedPriority:ow.number().min(0).max(1).optional(),intelligencePriority:ow.number().min(0).max(1).optional()}),r7=ow.object({mode:ow.enum(["auto","required","none"]).optional()}),r8=ow.object({type:ow.literal("tool_result"),toolUseId:ow.string().describe("The unique identifier for the corresponding tool call."),content:ow.array(rL).default([]),structuredContent:ow.object({}).loose().optional(),isError:ow.boolean().optional(),_meta:ow.record(ow.string(),ow.unknown()).optional()}),se=ow.discriminatedUnion("type",[rq,rN,rU]),st=ow.discriminatedUnion("type",[rq,rN,rU,rD,r8]),sn=ow.object({role:rh,content:ow.union([st,ow.array(st)]),_meta:ow.record(ow.string(),ow.unknown()).optional()}),si=oA.extend({messages:ow.array(sn),modelPreferences:r9.optional(),systemPrompt:ow.string().optional(),includeContext:ow.enum(["none","thisServer","allServers"]).optional(),temperature:ow.number().optional(),maxTokens:ow.number().int(),stopSequences:ow.array(ow.string()).optional(),metadata:o_.optional(),tools:ow.array(rB).optional(),toolChoice:r7.optional()}),so=oT.extend({method:ow.literal("sampling/createMessage"),params:si}),sr=oP.extend({model:ow.string(),stopReason:ow.optional(ow.enum(["endTurn","stopSequence","maxTokens"]).or(ow.string())),role:rh,content:se}),ss=oP.extend({model:ow.string(),stopReason:ow.optional(ow.enum(["endTurn","stopSequence","maxTokens","toolUse"]).or(ow.string())),role:rh,content:ow.union([st,ow.array(st)])}),sa=ow.object({type:ow.literal("boolean"),title:ow.string().optional(),description:ow.string().optional(),default:ow.boolean().optional()}),sl=ow.object({type:ow.literal("string"),title:ow.string().optional(),description:ow.string().optional(),minLength:ow.number().optional(),maxLength:ow.number().optional(),format:ow.enum(["email","uri","date","date-time"]).optional(),default:ow.string().optional()}),su=ow.object({type:ow.enum(["number","integer"]),title:ow.string().optional(),description:ow.string().optional(),minimum:ow.number().optional(),maximum:ow.number().optional(),default:ow.number().optional()}),sd=ow.object({type:ow.literal("string"),title:ow.string().optional(),description:ow.string().optional(),enum:ow.array(ow.string()),default:ow.string().optional()}),sc=ow.object({type:ow.literal("string"),title:ow.string().optional(),description:ow.string().optional(),oneOf:ow.array(ow.object({const:ow.string(),title:ow.string()})),default:ow.string().optional()}),sp=ow.object({type:ow.literal("string"),title:ow.string().optional(),description:ow.string().optional(),enum:ow.array(ow.string()),enumNames:ow.array(ow.string()).optional(),default:ow.string().optional()}),sm=ow.union([sd,sc]),sh=ow.object({type:ow.literal("array"),title:ow.string().optional(),description:ow.string().optional(),minItems:ow.number().optional(),maxItems:ow.number().optional(),items:ow.object({type:ow.literal("string"),enum:ow.array(ow.string())}),default:ow.array(ow.string()).optional()}),sg=ow.object({type:ow.literal("array"),title:ow.string().optional(),description:ow.string().optional(),minItems:ow.number().optional(),maxItems:ow.number().optional(),items:ow.object({anyOf:ow.array(ow.object({const:ow.string(),title:ow.string()}))}),default:ow.array(ow.string()).optional()}),sz=ow.union([sh,sg]),sf=ow.union([sp,sm,sz]),sb=ow.union([sf,sa,sl,su]),sy=oA.extend({mode:ow.literal("form").optional(),message:ow.string(),requestedSchema:ow.object({type:ow.literal("object"),properties:ow.record(ow.string(),sb),required:ow.array(ow.string()).optional()})}),sw=oA.extend({mode:ow.literal("url"),message:ow.string(),elicitationId:ow.string(),url:ow.string().url()}),sv=ow.union([sy,sw]),s_=oT.extend({method:ow.literal("elicitation/create"),params:sv}),sj=oR.extend({elicitationId:ow.string()}),sk=oM.extend({method:ow.literal("notifications/elicitation/complete"),params:sj}),sI=oP.extend({action:ow.enum(["accept","decline","cancel"]),content:ow.preprocess(e=>null===e?void 0:e,ow.record(ow.string(),ow.union([ow.string(),ow.number(),ow.boolean(),ow.array(ow.string())])).optional())}),sx=ow.object({type:ow.literal("ref/resource"),uri:ow.string()}),sS=ow.object({type:ow.literal("ref/prompt"),name:ow.string()}),sC=oC.extend({ref:ow.union([sS,sx]),argument:ow.object({name:ow.string(),value:ow.string()}),context:ow.object({arguments:ow.record(ow.string(),ow.string()).optional()}).optional()}),sA=oT.extend({method:ow.literal("completion/complete"),params:sC}),sT=oP.extend({completion:ow.looseObject({values:ow.array(ow.string()).max(100),total:ow.optional(ow.number().int()),hasMore:ow.optional(ow.boolean())})}),sR=ow.object({uri:ow.string().startsWith("file://"),name:ow.string().optional(),_meta:ow.record(ow.string(),ow.unknown()).optional()}),sM=oT.extend({method:ow.literal("roots/list"),params:oC.optional()}),sP=oP.extend({roots:ow.array(sR)}),sE=oM.extend({method:ow.literal("notifications/roots/list_changed"),params:oR.optional()});ow.union([o1,oQ,sA,r3,rO,rM,rb,rw,rj,rx,rS,rX,rG,ro,rs,ra,ru]),ow.union([o$,o6,o2,sE,ri]),ow.union([oD,sr,ss,sI,sP,rr,rl,rt]),ow.union([o1,so,s_,sM,ro,rs,ra,ru]),ow.union([o$,o6,r6,rA,rI,r0,rH,ri,sk]),ow.union([oD,o0,sT,rJ,rP,ry,rv,rk,rZ,rY,rr,rl,rt]);class sO 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 sq(i.elicitations,t):new sO(e,t,i)}}class sq extends sO{constructor(e,t=`URL elicitation${e.length>1?"s":""} required`){super(n.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}}var sN=e.i(2157),sU=e.i(60526),sD=e.i(50227);function sF(e,t){return{jsonrpc:"2.0",id:e,result:t}}function s$(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,ec.createRequire)({get url(){return`file://${e.P("lib/acp2aisdk/vendor/acp-ai-provider/package/index.mjs")}`}}.url);var sL=`
|
|
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=`
|
|
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;
|
|
@@ -64,13 +64,13 @@ init().then(async()=>{
|
|
|
64
64
|
process.stdin.on("data",c=>{buf+=c;let ls=buf.split("\\n");buf=ls.pop();for(let l of ls)if(l.trim())handle(l)});
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
|
-
`.trim().replace(/\n/g,""),
|
|
68
|
-
`)}catch{}}serializeError(e){return e instanceof Error?{name:e.name,message:e.message,stack:e.stack,...void 0!==e.code?{code:e.code}:{},...void 0!==e.data?{data:e.data}:{}}:e}},
|
|
67
|
+
`.trim().replace(/\n/g,""),s1=class{server=null;connections=[];tools=new Map;serverName;port=0;constructor(e="acp-tool-proxy"){this.serverName=e}registerTool(e,t){this.tools.set(e,t)}registerTools(e){for(let[t,n]of Object.entries(e))this.registerTool(t,n)}getToolDefinitions(){let e=[];for(let[t,n]of this.tools.entries())e.push({name:t,description:n.description||`Tool: ${t}`,inputSchema:n.inputSchema||{type:"object",properties:{}}});return e}async start(){return this.server||await this.startServer(),this.getServerConfig()}getServerConfig(){return{name:this.serverName,command:"node",args:["-e",s2],env:[{name:"ACP_TOOL_PROXY_PORT",value:String(this.port)}]}}startServer(){return new Promise((e,t)=>{this.server=(0,oE.createServer)(e=>{this.handleConnection(e)}),this.server.on("error",e=>{t(e)}),this.server.listen(0,"127.0.0.1",()=>{let n=this.server.address();"object"==typeof n&&n?(this.port=n.port,e()):t(Error("Failed to get server address"))})})}handleConnection(e){this.connections.push(e);let t="";e.on("data",n=>{let i=(t+=n.toString()).split("\n");for(let n of(t=i.pop()||"",i)){if(!n.trim())continue;let t=function(e){try{let t=JSON.parse(e);if("2.0"!==t.jsonrpc)return null;return t}catch{return null}}(n);t&&"method"in t&&this.handleRequest(e,t).catch(e=>console.error("[ToolProxy] Error handling request:",e))}}),e.on("close",()=>{this.connections=this.connections.filter(t=>t!==e)}),e.on("error",e=>{console.error("[ToolProxy] Socket error:",e)})}async handleRequest(e,t){try{if("callHandler"===t.method){let n,i=t.params,o=this.tools.get(i.name);if(!o)return void this.sendResponse(e,s0(t.id,-32601,`Tool not found: ${i.name}`));if(!o.execute){let n={content:[{type:"text",text:JSON.stringify({isClientTool:!0,toolName:i.name,args:i.args})}],isError:!1};this.sendResponse(e,sQ(t.id,n));return}let r=await o.execute(i.args,{toolCallId:i.name,messages:[]}),s=sn.safeParse(r);n=s.success?s.data:{content:[{type:"text",text:"string"==typeof r?r:JSON.stringify(r)}]},this.sendResponse(e,sQ(t.id,n))}else if("getTools"===t.method){let n=this.getToolDefinitions();this.sendResponse(e,sQ(t.id,n))}else this.sendResponse(e,s0(t.id,-32601,`Unknown method: ${t.method}`))}catch(n){this.sendResponse(e,s0(t.id,-32603,n instanceof Error?n.message:String(n)))}}sendResponse(e,t){e.write(JSON.stringify(t)+"\n")}stop(){for(let e of this.connections)e.destroy();this.connections=[],this.server&&(this.server.close(),this.server=null),this.port=0}},s3="acp.acp_provider_agent_dynamic_tool",s5=new Map;function s6(){return{[s3]:(0,i.tool)({type:"provider",id:s3,args:{},inputSchema:(0,i.jsonSchema)({})})}}function s4(e){return s5.get(e)}function s9(e){return s5.has(e)}var s7={system:"System: ",assistant:"Assistant: ",tool:"Result: "};function s8(e,t,n){let o=t?e.prompt:e.prompt.filter(e=>"user"===e.role).slice(-1),r=[];for(let e of(n&&r.push({type:"text",text:n}),o)){let t=s7[e.role]||"";if("string"==typeof e.content){r.push({type:"text",text:`${t}${e.content} `});continue}if(!Array.isArray(e.content))continue;let n=!0;for(let o of e.content){let e=n?t:"";if("text"===o.type&&(r.push({type:"text",text:e+o.text}),n=!1),"tool-call"===o.type){let t=`[Tool Call: ${o.toolName}(${JSON.stringify(o.input)})]`;r.push({type:"text",text:e+t}),n=!1}if("tool-result"===o.type){let t=JSON.stringify(o.result??o.output)??"null";r.push({type:"text",text:e+t}),n=!1}if("file"===o.type){var s,a;let e=(s=o.mediaType).startsWith("image/")?"image":s.startsWith("audio/")?"audio":null;if(e){let t;"string"==typeof o.data?t=(a=o.data).includes(",")?a.split(",")[1]:a:o.data instanceof Uint8Array&&(t=(0,i.convertUint8ArrayToBase64)(o.data)),void 0!==t&&r.push({type:e,mimeType:o.mediaType,data:t})}}}}return r}function ae(e,t=!0){let n=[];if(!e)return n;for(let o of Array.isArray(e)?e:Object.entries(e).map(([e,t])=>({type:"function",name:e,...t})))if("function"===o.type){let e=o.inputSchema;if(s9(o.name)&&e){let r=s4(o.name);n.push({...o,name:o.name,inputSchema:t?e:(0,i.asSchema)(e).jsonSchema,execute:r})}}return n}var at=class{agentMessageLogFilePath=null;isEnabled(){let e=x.default.env.ACP_AI_PROVIDER_DEBUG;return"1"===e||"true"===e}log(...e){this.isEnabled()&&console.log(...e)}ensureAgentMessageLogFile(){if(this.agentMessageLogFilePath||!this.isEnabled())return;let e=(0,ec.mkdtempSync)((0,ed.join)((0,sX.tmpdir)(),"acp-ai-provider-"));this.agentMessageLogFilePath=(0,ed.join)(e,"agent-messages.ndjson"),this.log(`[acp-ai-provider] Agent message log: ${this.agentMessageLogFilePath}`)}appendAgentMessage(e){this.appendLogEntry({timestamp:new Date().toISOString(),kind:"notification",notification:e})}appendPromptResponse(e){this.appendLogEntry({timestamp:new Date().toISOString(),kind:"prompt-response",response:e})}appendPromptError(e){this.appendLogEntry({timestamp:new Date().toISOString(),kind:"prompt-error",error:this.serializeError(e)})}appendLogEntry(e){if(this.ensureAgentMessageLogFile(),this.agentMessageLogFilePath)try{(0,ec.appendFileSync)(this.agentMessageLogFilePath,`${JSON.stringify(e)}
|
|
68
|
+
`)}catch{}}serializeError(e){return e instanceof Error?{name:e.name,message:e.message,stack:e.stack,...void 0!==e.code?{code:e.code}:{},...void 0!==e.data?{data:e.data}:{}}:e}},an=/^```(?:\w+)?\s*\n/,ai=/\n?```\s*$/;function ao(e){return e?.type==="json"}function ar(e){let t=[];return t.push("[Structured Output Instruction]","You MUST respond with a single valid JSON value.","Do NOT wrap JSON in markdown fences (no ```json blocks).","Do NOT add explanations, comments, or any other text before or after the JSON.","Your entire response must be ONLY the JSON value, nothing else."),e.name&&t.push(`Output name: ${e.name}`),e.description&&t.push(`Output description: ${e.description}`),e.schema&&t.push("The JSON value MUST conform to this JSON Schema:",JSON.stringify(e.schema,null,2)),t.push("[End Structured Output Instruction]"),t.join("\n")}function as(e){let t=e.trim(),n=t.match(/^```(?:\w+)?\s*\n?([\s\S]*?)\n?\s*```\s*$/);return n?n[1].trim():t}function aa(e,t,n){n&&e.enqueue({type:"text-delta",id:t,delta:n})}function al(e){return e.prefixStripped?e.buffer.replace(ai,"").trimEnd():as(e.buffer)}function au(e){return{acp:JSON.parse(JSON.stringify(e))}}function ac(e){switch(e){case"end_turn":return"stop";case"max_tokens":case"max_turn_requests":return"length";default:return"other"}}function ad(e,t){if(null!==e&&"object"==typeof e&&"code"in e&&"message"in e&&"number"==typeof e.code&&"string"==typeof e.message){let n=Error(e.message);return n.name="ACPError",n.code=e.code,n.data=e.data,t&&(n.message=`${n.message}
|
|
69
69
|
[agent stderr]
|
|
70
70
|
${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 s8="acp.acp_provider_agent_dynamic_tool",ae=ob.object({toolCallId:ob.string().describe("The unique ID of the tool call."),toolName:ob.string().describe("The name of the tool being called."),args:ob.record(ob.unknown()).describe("The input arguments for the tool call.")}),at=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")}},an=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 sQ;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,oz.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=of.Writable.toWeb(this.agentProcess.stdin),o=of.Readable.toWeb(this.agentProcess.stdout);this.client=new at,this.connection=new om(()=>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 s7(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 sV("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 s7(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=sZ(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 s7(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:s8,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:s8,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:s8,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:s8,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:s8,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:s8,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:s8,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 d=n.content??[];d.length>0&&this.emitRawContent(e,{content:d,toolCallId:t})}}}async doGenerate(e){try{let t=s2(e.responseFormat)?e.responseFormat:null,n=t?s1(t):void 0;await this.ensureConnected();let i=sY(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}),d=[],c=t?s3(o):o;for(let e of(c.trim()&&d.push({type:"text",text:c}),r))d.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:d,finishReason:{unified:s9(u.stopReason),raw:u.stopReason},providerMetadata:s4(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=sZ(e.tools),i=s2(e.responseFormat)?e.responseFormat:null,o=i?s1(i):void 0;try{await this.ensureConnected(n.length>0?n:void 0)}catch(e){throw this.forceCleanup(),e}let r=sY(e,this.isFreshSession,o);this.isFreshSession=!1;let s=this.sessionId,a=this.client,l=()=>this.cleanup(),u=this.handleStreamNotification.bind(this),d=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:s9(o.stopReason),raw:o.stopReason},providerMetadata:s4(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:s7(t,this.stderrChunks.join(""))})}},cancel:()=>{l()}});return{stream:i?d.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(sX);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),s5(n,e.id,t)}return}if("text-end"===e.type){let i=t[e.id];return i?("prefix"===i.phase&&n.enqueue(i.startEvent),s5(n,e.id,s6(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),s5(e,n,s6(i))}}))):d,warnings:void 0}}get tools(){return sW()}},ai=class{config;model=null;constructor(e){this.config=e}languageModel(e,t){return this.model||(this.model=new an(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,an,"ACPProvider",0,ai,"ACP_PROVIDER_AGENT_DYNAMIC_TOOL_NAME",0,s8,"acpTools",0,function(e){for(let[t,n]of Object.entries(e))sH.set(t,n.execute);return{...e,...sW()}},"createACPProvider",0,function(e){return new ai(e)},"getExecuteByName",0,sK,"hasRegisteredExecute",0,sB,"providerAgentDynamicToolSchema",0,ae],92276);var ao=e.i(92276);ao.ACP_PROVIDER_AGENT_DYNAMIC_TOOL_NAME,ao.ACPLanguageModel,ao.ACPProvider;let ar=ao.acpTools,as=ao.createACPProvider;async function aa(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=H(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:X(n,e),warnings:void 0}}let r=await i(e);return{...r,stream:X(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=K(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=H(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=J({provider:t.provider,sessionResponse:n.sessionResponse})),o}finally{o&&s&&(o.loadSession=s)}}),(s=n.handleStreamNotification?.bind(n))&&(n.handleStreamNotification=(e,t)=>{let n=H(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 B(e,n);if("tool_call_update"!==i)return;let o=K(n.toolCallId);if(o&&Array.isArray(n.content))for(let t of n.content)H(t)&&("content"===t.type||"resource"===t.type||"resource_link"===t.type)&&B(e,"content"===t.type&&H(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=J({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 al(e,t){let n=(0,ed.getGlobalAcpSessionStore)();n.cleanupIdle();let i=(0,q.normalizeAcpProvider)(e.provider),o=(0,q.resolveAcpProviderConfig)(i),r=(0,ed.normalizeThreadId)(e.threadId??e.id),s=(0,ed.normalizeWorkspacePath)(e.workspacePath),a=(0,ed.createAcpSessionKey)({threadId:r,provider:i,workspacePath:s}),u=(0,eu.normalizePermissionMode)(e.permissionMode),d=e.model||null,c=e.modeId||(0,q.getAcpProviderDefaultModeId)(i),p=e.thoughtLevel||null,m=(0,er.getBuiltinToolRuntimeKey)({toolIds:e.builtinTools,builtinToolSettings:e.builtinToolSettings}),h=n.get(a);if(h)if(h.metadata.builtinToolRuntimeKey===m)return h.metadata={...h.metadata,model:d,modeId:c,thoughtLevel:p,permissionMode:u,runState:"queued",coldStart:!1,lastUsedAt:Date.now()},h;else n.cleanup(a);let g=await (0,l.getConversation)(r,s),z=g?.provider===i?g.providerSessionId??null:null,f=(t,n=[])=>{let l=(0,el.normalizeMcpServers)(e.mcpServers),h=(0,er.mergeToolMcpServers)(l.servers,{workspacePath:s,threadId:r,toolIds:e.builtinTools,builtinToolSettings:e.builtinToolSettings}),g=(0,el.normalizeAdditionalDirectories)({additionalDirectories:e.additionalDirectories,workspacePath:s,context:e.context});return{provider:as(function({command:e,args:t,authMethodId:n,sessionDelayMs:i,persistSession:o,workspacePath:r,mcpServers:s,additionalDirectories:a,existingSessionId:l}){let u={cwd:r,mcpServers:s,...a.length>0?{additionalDirectories:a}:{}};return{command:e,args:t,env:{...x.default.env},initialize:{clientCapabilities:{fs:{readTextFile:!1,writeTextFile:!1},terminal:!1,planCapabilities:{},elicitation:{form:{},url:{}}}},session:u,...l?{existingSessionId:l}:{},...n?{authMethodId:n}:{},...i?{sessionDelayMs:i}:{},persistSession:o??!0}}({command:o.command,args:o.args,authMethodId:o.authMethodId,sessionDelayMs:o.sessionDelayMs,persistSession:o.persistSession,workspacePath:s,mcpServers:h,additionalDirectories:g.directories,existingSessionId:t})),metadata:{...(0,ed.createInitialMetadata)({sessionKey:a,threadId:r,provider:i,workspacePath:s,model:d,modeId:c,thoughtLevel:p,permissionMode:u}),resumedAcpSessionId:t??null,builtinToolRuntimeKey:m,warnings:[...n,...l.warnings,...g.warnings]},promptHistoryStrategy:t?"session":"full"}},b=f(z);n.set(a,b);try{return await aa(b,t),b}catch(e){if(n.cleanup(a),!z)throw e}let y=f(null,[`Failed to resume ACP session "${z}"; started a new session with UI message history instead.`]);return n.set(a,y),await aa(y,t),y}async function au(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 ad(e){return e.metadata.acpSessionId=e.provider.getSessionId(),e.metadata.lastUsedAt=Date.now(),e.metadata}function ac(e){let t=(0,q.normalizeAcpProvider)(e.provider),n=(0,ed.normalizeThreadId)(e.threadId??e.id),i=(0,ed.normalizeWorkspacePath)(e.workspacePath);return(0,ed.createAcpSessionKey)({threadId:n,provider:t,workspacePath:i})}function ap(e){return!!(e&&"object"==typeof e&&!Array.isArray(e))}function am(e){return"string"==typeof e?e.trim():""}function ah(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 ag(e){return(Array.isArray(e)?e:[]).flatMap(e=>{if(!ap(e))return[];let t=am(e.name||e.command||e.id).replace(/^\/+/,"");return t?[{name:t,description:am(e.description),input:e.input,source:"acp"}]:[]})}function az(e,t){let n=am(e.toolCallId);if(!n)return;let i=("diff"===t?`${am(e.path)}:${ah(e)}`:"terminal"===t?`${am(e.terminalId)||"terminal"}:${ah(e)}`:"resource"===t||"resource_link"===t?`${am(e.uri)||am(e.name)||t}:${ah(e)}`:ah(e))||ah(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 af(e,t){if(!e)return;let n=e.metadata;switch(t.sessionUpdate){case"available_commands_update":{let e=ag(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=am(t.title);e&&(n.sessionTitle=e);break}case"config_option_update":{let t=e.provider.model;if(!t?.sessionResponse)break;n.capabilitySnapshot=J({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}}}}ao.getExecuteByName,ao.hasRegisteredExecute,ao.providerAgentDynamicToolSchema;let ab={[h]:{description:"Collect a user's ACP elicitation choice from an option list.",parameters:z}};function ay(e){return!!(e&&"object"==typeof e&&!Array.isArray(e))}async function aw(e){let t=(0,ed.getGlobalAcpSessionStore)();t.cleanupIdle();let n=ac(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=ay(e.content)?e.content:null,i=ay(n?.metadata)?n.metadata:null,o=ay(i?.custom)?i.custom:null,r=ay(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",ad(i),(0,l.touchConversationFromRuntime)(i.metadata),t.cleanup(n),(0,l.closeConversationSession)(i.metadata),null):i.metadata:o}async function av(e){let t=(0,ed.getGlobalAcpSessionStore)();t.cleanupIdle();let n=ac(e),i=t.get(n),o=i?.metadata??null;i&&(i.metadata.runState="aborted",ad(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 a_(e,t={}){await (0,eo.persistRequestRuntimeMessages)(e);let n={...e.tools??{}};delete n[h];let i={...ar(s(n)),...s(ab)},o=await al(e,i),r=(0,ed.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!==g&&("dynamic-tool"!==n.type||b(n.toolName)!==h))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(c(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:d(t.title)||e,description:d(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(d).filter(Boolean):c(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 au(o),"stale"===p.status)return o.metadata.runState="error",o.metadata.warnings.push(p.reason),ad(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)}`),ad(o)}),(0,l.touchConversationFromRuntime)(o.metadata),{response:(0,en.createDirectMessageResponse)(o.metadata,"ACP 选项请求已经失效,无法继续这次选择。"),metadata:o.metadata};let z=()=>{o.metadata.runState="aborted",ad(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 d=C(e);return{messages:d,warning:d.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 _="staged"===p.status?[{role:"user",content:"Continue after ACP elicitation."}]:await (0,a.convertToModelMessages)(v),j=(0,a.streamText)({includeRawChunks:!0,model:o.provider.languageModel(o.metadata.model||void 0,o.metadata.modeId||void 0),messages:_,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(ap(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&&ap(n.plan)){var i,o=n.plan;let e=am(o.id),t=am(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=am(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?(af(t,n),{custom:{acpAvailableCommands:{byName:Object.fromEntries(ag(n.availableCommands).map(e=>[e.name,e])),updatedAt:Date.now()}}}):"config_option_update"===n.sessionUpdate||"session_info_update"===n.sessionUpdate||"usage_update"===n.sessionUpdate?(af(t,n),{custom:{acpSessionUpdate:{[am(n.sessionUpdate)||"unknown"]:n,updatedAt:Date.now()}}}):"diff"===n.type?az(n,"diff"):"terminal"===n.type?az(n,"terminal"):"resource"===n.type?az(n,"resource"):"resource_link"===n.type?az(n,"resource_link"):am(n.toolCallId)?az(n,"unknown"):{custom:{acpRaw:{[ah(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)}`),ad(o)}),ad(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)}`),ad(o)}),ad(o),(0,l.touchConversationFromRuntime)(o.metadata),t.abortSignal?.removeEventListener("abort",z),i}});return{response:await (0,ei.createResumableUIMessageStreamResponse)({request:e,metadata:o.metadata,response:j}),metadata:ad(o)}}e.s(["cancelAcpSession",0,av,"getAcpSessionMetadata",0,function(e){let t=(0,ed.getGlobalAcpSessionStore)();return t.cleanupIdle(),t.get(ac(e))?.metadata??null},"listAcpSessionMetadata",0,function(){let e=(0,ed.getGlobalAcpSessionStore)();return e.cleanupIdle(),e.list()},"reconcileAcpSessionWithRuntimeMessages",0,aw,"streamAcpChat",0,a_],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}),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)}];
|
|
75
75
|
|
|
76
76
|
//# sourceMappingURL=%5Broot-of-the-server%5D__0c.r6ru._.js.map
|