@iflow-ai/iflow-cli 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/iflow.js +2 -2
- package/package.json +1 -1
package/bundle/iflow.js
CHANGED
|
@@ -621,7 +621,7 @@ ${n.authUrl}
|
|
|
621
621
|
\u8FD9\u4E2A\u662F\u9519\u8BEF\u7684json\u683C\u5F0F\uFF1A
|
|
622
622
|
${e}
|
|
623
623
|
|
|
624
|
-
\u8BF7\u76F4\u63A5\u8F93\u51FA\u4E00\u4E2A\u6B63\u786E\u7684json\u683C\u5F0F\uFF1A`;try{let n=await fetch("https://apis.iflow.cn/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({model:"QWen3-4B",messages:[{role:"user",content:r}],temperature:.1,max_tokens:1e3})});if(!n.ok)throw new Error(`QWen API error: ${n.status}`);let a=(await n.json()).choices[0].message.content.trim();return a.startsWith("```json")?a=a.replace(/^```json\s*/,"").replace(/\s*```$/,""):a.startsWith("```")&&(a=a.replace(/^```\s*/,"").replace(/\s*```$/,"")),JSON.parse(a)}catch(n){throw console.error("QWen JSON fix failed:",n),n}}extractTextFromRequest(e){let r="";if(e.contents){let n=Array.isArray(e.contents)?e.contents:[e.contents];for(let i of n)if(i&&typeof i=="object"&&"parts"in i&&i.parts){let a=Array.isArray(i.parts)?i.parts:[i.parts];for(let o of a)o&&typeof o=="object"&&"text"in o&&o.text&&(r+=o.text+" ")}}return r.trim()}extractTextFromEmbedRequest(e){if(e.contents){let r=Array.isArray(e.contents)?e.contents:[e.contents];for(let n of r)if(typeof n=="object"&&n!==null&&"parts"in n&&n.parts){let i=Array.isArray(n.parts)?n.parts:[n.parts];for(let a of i)if(typeof a=="object"&&a!==null&&"text"in a&&a.text)return a.text}else{if(typeof n=="string")return n;if(typeof n=="object"&&n!==null&&"text"in n&&n.text)return n.text}}return""}extractSystemInstruction(e){let r="";if(typeof e=="string")r=e;else if(Array.isArray(e)){for(let n of e)typeof n=="object"&&n!==null&&"text"in n&&n.text&&(r+=n.text+" ");r=r.trim()}else if(typeof e=="object"&&e!==null)if("parts"in e&&e.parts){let n=Array.isArray(e.parts)?e.parts:[e.parts];for(let i of n)typeof i=="object"&&i!==null&&"text"in i&&i.text&&(r+=i.text+" ");r=r.trim()}else"text"in e&&e.text&&(r=e.text);return r}convertToOpenAITools(e){if(!e||e.length===0)return[];let r=[];for(let n of e)if(n.functionDeclarations&&Array.isArray(n.functionDeclarations))for(let i of n.functionDeclarations)r.push({type:"function",function:{name:i.name||"",description:i.description,parameters:this.convertParameters(i.parameters||i.parametersJsonSchema)}});return r}convertParameters(e){if(!e)return;let r={STRING:"string",INTEGER:"integer",NUMBER:"number",BOOLEAN:"boolean",OBJECT:"object",ARRAY:"array"};if(typeof e=="object"&&e.type){if(typeof e.type=="string"&&(r[e.type]?e.type=r[e.type]:e.type=e.type.toLowerCase()),e.properties)for(let i in e.properties){let a=e.properties[i],o={};a.type&&(o.type=r[a.type]),a.description&&(o.description=a.description),e.properties[i]=o}return e.items&&(e.items=this.convertParameters(e.items)),e}let n=i=>{if(!i)return;let a={};if(i.type)switch(i.type){case"STRING":a.type="string";break;case"INTEGER":a.type="integer";break;case"NUMBER":a.type="number";break;case"BOOLEAN":a.type="boolean";break;case"OBJECT":a.type="object";break;case"ARRAY":a.type="array";break;default:a.type=i.type.toLowerCase()}if(a.type="object",i.description&&(a.description=i.description),i.enum&&(a.enum=i.enum),i.properties){a.properties={};for(let[o,s]of Object.entries(i.properties))a.properties[o]=n(s)}return i.items&&(a.items=n(i.items)),i.required&&(a.required=i.required),a};return n(e)}mapFinishReason(e){switch(e){case"stop":return L9.STOP;case"length":return L9.MAX_TOKENS;case"content_filter":return L9.SAFETY;case"tool_calls":return L9.MALFORMED_FUNCTION_CALL;default:return L9.OTHER}}convertResponseSchema(e){if(e)return e.type==="object"||e.type==="OBJECT"?{type:"json_schema",json_schema:{name:e.name||"",description:e.description||"",schema:this.convertSchemaToJsonSchema(e),strict:!0}}:{type:"json_schema",json_schema:{name:"response_schema",description:"Generated response schema",schema:this.convertSchemaToJsonSchema(e),strict:!0}}}convertSchemaToJsonSchema(e){if(!e)return{};let r={};if(e.type)switch(e.type){case"STRING":r.type="string";break;case"INTEGER":r.type="integer";break;case"NUMBER":r.type="number";break;case"BOOLEAN":r.type="boolean";break;case"OBJECT":r.type="object";break;case"ARRAY":r.type="array";break;default:r.type=typeof e.type=="string"?e.type.toLowerCase():e.type}if(e.description&&(r.description=e.description),e.enum&&(r.enum=e.enum),e.properties){r.properties={};for(let[n,i]of Object.entries(e.properties))r.properties[n]=this.convertSchemaToJsonSchema(i)}return e.items&&(r.items=this.convertSchemaToJsonSchema(e.items)),e.required&&(r.required=e.required),r.type==="object"&&!("additionalProperties"in r)&&(r.additionalProperties=!1),r}};var Ur;(function(t){t.LOGIN_WITH_GOOGLE="oauth-personal",t.USE_GEMINI="gemini-api-key",t.USE_VERTEX_AI="vertex-ai",t.CLOUD_SHELL="cloud-shell",t.IFLOW="iflow",t.IDEA_LAB="idealab",t.OPENAI_COMPATIBLE="openai-compatible"})(Ur||(Ur={}));var p1=[Ur.IFLOW,Ur.IDEA_LAB],Qhr={[Ur.IDEA_LAB]:"https://idealab.alibaba-inc.com/api/openai/v1",[Ur.IFLOW]:F$e};async function U$e(t,e,r){let n=process.env.GEMINI_API_KEY,i=process.env.GOOGLE_API_KEY,a=process.env.GOOGLE_CLOUD_PROJECT,o=process.env.GOOGLE_CLOUD_LOCATION,s=r?.apiKey,l=r?.baseUrl||Qhr[e],u=t||xm,c={model:u,authType:e};return e===Ur.LOGIN_WITH_GOOGLE||e===Ur.CLOUD_SHELL?c:e===Ur.USE_GEMINI&&n?(c.apiKey=n,c.vertexai=!1,c.model=await M$e(c.apiKey,c.model),c):e===Ur.USE_VERTEX_AI&&(i||a&&o)?(c.apiKey=i,c.vertexai=!0,c):([...p1,Ur.OPENAI_COMPATIBLE].includes(e)&&s&&(c.apiKey=s,c.baseUrl=l,c.model=u),c)}async function k$e(t,e,r){let i={headers:{"User-Agent":`iFlowCLI/0.0.2 (${process.platform}; ${process.arch})`}};if(t.authType&&[...p1,Ur.IDEA_LAB].includes(t.authType)||t.authType===Ur.OPENAI_COMPATIBLE)return new az(t);if(t.authType===Ur.LOGIN_WITH_GOOGLE||t.authType===Ur.CLOUD_SHELL)return O$e(i,t.authType,e,r);if([...p1,Ur.OPENAI_COMPATIBLE].includes(t.authType)||t.authType===Ur.USE_GEMINI||t.authType===Ur.USE_VERTEX_AI)return new NY({apiKey:t.apiKey===""?void 0:t.apiKey,vertexai:t.vertexai,httpOptions:i}).models;throw new Error(`Error creating contentGenerator: Unsupported authType: ${t.authType}`)}var xo=class{name;displayName;description;parameterSchema;isOutputMarkdown;canUpdateOutput;constructor(e,r,n,i,a=!0,o=!1){this.name=e,this.displayName=r,this.description=n,this.parameterSchema=i,this.isOutputMarkdown=a,this.canUpdateOutput=o}get schema(){return{name:this.name,description:this.description,parameters:this.parameterSchema}}validateToolParams(e){return null}getDescription(e){return JSON.stringify(e)}shouldConfirmExecute(e,r){return Promise.resolve(!1)}},xa;(function(t){t.ProceedOnce="proceed_once",t.ProceedAlways="proceed_always",t.ProceedAlwaysServer="proceed_always_server",t.ProceedAlwaysTool="proceed_always_tool",t.ModifyWithEditor="modify_with_editor",t.Cancel="cancel"})(xa||(xa={}));import{spawn as IJe}from"node:child_process";import{StringDecoder as _Je}from"node:string_decoder";var qB="2025-06-18";var G$e=[qB,"2025-03-26","2024-11-05","2024-10-07"],oz="2.0",V$e=de.union([de.string(),de.number().int()]),H$e=de.string(),Lhr=de.object({progressToken:de.optional(V$e)}).passthrough(),Zg=de.object({_meta:de.optional(Lhr)}).passthrough(),Ph=de.object({method:de.string(),params:de.optional(Zg)}),aL=de.object({_meta:de.optional(de.object({}).passthrough())}).passthrough(),s3=de.object({method:de.string(),params:de.optional(aL)}),e2=de.object({_meta:de.optional(de.object({}).passthrough())}).passthrough(),sz=de.union([de.string(),de.number().int()]),q$e=de.object({jsonrpc:de.literal(oz),id:sz}).merge(Ph).strict(),lz=t=>q$e.safeParse(t).success,j$e=de.object({jsonrpc:de.literal(oz)}).merge(s3).strict(),$$e=t=>j$e.safeParse(t).success,Y$e=de.object({jsonrpc:de.literal(oz),id:sz,result:e2}).strict(),oL=t=>Y$e.safeParse(t).success,Kg;(function(t){t[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"})(Kg||(Kg={}));var z$e=de.object({jsonrpc:de.literal(oz),id:sz,error:de.object({code:de.number().int(),message:de.string(),data:de.optional(de.unknown())})}).strict(),W$e=t=>z$e.safeParse(t).success,j9=de.union([q$e,j$e,Y$e,z$e]),B_=e2.strict(),uz=s3.extend({method:de.literal("notifications/cancelled"),params:aL.extend({requestId:sz,reason:de.string().optional()})}),sL=de.object({name:de.string(),title:de.optional(de.string())}).passthrough(),J$e=sL.extend({version:de.string()}),Phr=de.object({experimental:de.optional(de.object({}).passthrough()),sampling:de.optional(de.object({}).passthrough()),elicitation:de.optional(de.object({}).passthrough()),roots:de.optional(de.object({listChanged:de.optional(de.boolean())}).passthrough())}).passthrough(),Uhr=Ph.extend({method:de.literal("initialize"),params:Zg.extend({protocolVersion:de.string(),capabilities:Phr,clientInfo:J$e})});var khr=de.object({experimental:de.optional(de.object({}).passthrough()),logging:de.optional(de.object({}).passthrough()),completions:de.optional(de.object({}).passthrough()),prompts:de.optional(de.object({listChanged:de.optional(de.boolean())}).passthrough()),resources:de.optional(de.object({subscribe:de.optional(de.boolean()),listChanged:de.optional(de.boolean())}).passthrough()),tools:de.optional(de.object({listChanged:de.optional(de.boolean())}).passthrough())}).passthrough(),The=e2.extend({protocolVersion:de.string(),capabilities:khr,serverInfo:J$e,instructions:de.optional(de.string())}),K$e=s3.extend({method:de.literal("notifications/initialized")}),X$e=t=>K$e.safeParse(t).success,cz=Ph.extend({method:de.literal("ping")}),Ghr=de.object({progress:de.number(),total:de.optional(de.number()),message:de.optional(de.string())}).passthrough(),dz=s3.extend({method:de.literal("notifications/progress"),params:aL.merge(Ghr).extend({progressToken:V$e})}),pz=Ph.extend({params:Zg.extend({cursor:de.optional(H$e)}).optional()}),fz=e2.extend({nextCursor:de.optional(H$e)}),Z$e=de.object({uri:de.string(),mimeType:de.optional(de.string()),_meta:de.optional(de.object({}).passthrough())}).passthrough(),eYe=Z$e.extend({text:de.string()}),tYe=Z$e.extend({blob:de.string().base64()}),rYe=sL.extend({uri:de.string(),description:de.optional(de.string()),mimeType:de.optional(de.string()),_meta:de.optional(de.object({}).passthrough())}),Vhr=sL.extend({uriTemplate:de.string(),description:de.optional(de.string()),mimeType:de.optional(de.string()),_meta:de.optional(de.object({}).passthrough())}),Hhr=pz.extend({method:de.literal("resources/list")}),whe=fz.extend({resources:de.array(rYe)}),qhr=pz.extend({method:de.literal("resources/templates/list")}),Bhe=fz.extend({resourceTemplates:de.array(Vhr)}),jhr=Ph.extend({method:de.literal("resources/read"),params:Zg.extend({uri:de.string()})}),Rhe=e2.extend({contents:de.array(de.union([eYe,tYe]))}),$hr=s3.extend({method:de.literal("notifications/resources/list_changed")}),Yhr=Ph.extend({method:de.literal("resources/subscribe"),params:Zg.extend({uri:de.string()})}),zhr=Ph.extend({method:de.literal("resources/unsubscribe"),params:Zg.extend({uri:de.string()})}),Whr=s3.extend({method:de.literal("notifications/resources/updated"),params:aL.extend({uri:de.string()})}),Jhr=de.object({name:de.string(),description:de.optional(de.string()),required:de.optional(de.boolean())}).passthrough(),Khr=sL.extend({description:de.optional(de.string()),arguments:de.optional(de.array(Jhr)),_meta:de.optional(de.object({}).passthrough())}),Xhr=pz.extend({method:de.literal("prompts/list")}),Nhe=fz.extend({prompts:de.array(Khr)}),Zhr=Ph.extend({method:de.literal("prompts/get"),params:Zg.extend({name:de.string(),arguments:de.optional(de.record(de.string()))})}),xhe=de.object({type:de.literal("text"),text:de.string(),_meta:de.optional(de.object({}).passthrough())}).passthrough(),Ohe=de.object({type:de.literal("image"),data:de.string().base64(),mimeType:de.string(),_meta:de.optional(de.object({}).passthrough())}).passthrough(),Fhe=de.object({type:de.literal("audio"),data:de.string().base64(),mimeType:de.string(),_meta:de.optional(de.object({}).passthrough())}).passthrough(),e0r=de.object({type:de.literal("resource"),resource:de.union([eYe,tYe]),_meta:de.optional(de.object({}).passthrough())}).passthrough(),t0r=rYe.extend({type:de.literal("resource_link")}),nYe=de.union([xhe,Ohe,Fhe,t0r,e0r]),r0r=de.object({role:de.enum(["user","assistant"]),content:nYe}).passthrough(),Mhe=e2.extend({description:de.optional(de.string()),messages:de.array(r0r)}),n0r=s3.extend({method:de.literal("notifications/prompts/list_changed")}),i0r=de.object({title:de.optional(de.string()),readOnlyHint:de.optional(de.boolean()),destructiveHint:de.optional(de.boolean()),idempotentHint:de.optional(de.boolean()),openWorldHint:de.optional(de.boolean())}).passthrough(),a0r=sL.extend({description:de.optional(de.string()),inputSchema:de.object({type:de.literal("object"),properties:de.optional(de.object({}).passthrough()),required:de.optional(de.array(de.string()))}).passthrough(),outputSchema:de.optional(de.object({type:de.literal("object"),properties:de.optional(de.object({}).passthrough()),required:de.optional(de.array(de.string()))}).passthrough()),annotations:de.optional(i0r),_meta:de.optional(de.object({}).passthrough())}),o0r=pz.extend({method:de.literal("tools/list")}),Qhe=fz.extend({tools:de.array(a0r)}),mz=e2.extend({content:de.array(nYe).default([]),structuredContent:de.object({}).passthrough().optional(),isError:de.optional(de.boolean())}),$Fn=mz.or(e2.extend({toolResult:de.unknown()})),s0r=Ph.extend({method:de.literal("tools/call"),params:Zg.extend({name:de.string(),arguments:de.optional(de.record(de.unknown()))})}),l0r=s3.extend({method:de.literal("notifications/tools/list_changed")}),iYe=de.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),u0r=Ph.extend({method:de.literal("logging/setLevel"),params:Zg.extend({level:iYe})}),c0r=s3.extend({method:de.literal("notifications/message"),params:aL.extend({level:iYe,logger:de.optional(de.string()),data:de.unknown()})}),d0r=de.object({name:de.string().optional()}).passthrough(),p0r=de.object({hints:de.optional(de.array(d0r)),costPriority:de.optional(de.number().min(0).max(1)),speedPriority:de.optional(de.number().min(0).max(1)),intelligencePriority:de.optional(de.number().min(0).max(1))}).passthrough(),f0r=de.object({role:de.enum(["user","assistant"]),content:de.union([xhe,Ohe,Fhe])}).passthrough(),m0r=Ph.extend({method:de.literal("sampling/createMessage"),params:Zg.extend({messages:de.array(f0r),systemPrompt:de.optional(de.string()),includeContext:de.optional(de.enum(["none","thisServer","allServers"])),temperature:de.optional(de.number()),maxTokens:de.number().int(),stopSequences:de.optional(de.array(de.string())),metadata:de.optional(de.object({}).passthrough()),modelPreferences:de.optional(p0r)})}),h0r=e2.extend({model:de.string(),stopReason:de.optional(de.enum(["endTurn","stopSequence","maxTokens"]).or(de.string())),role:de.enum(["user","assistant"]),content:de.discriminatedUnion("type",[xhe,Ohe,Fhe])}),A0r=de.object({type:de.literal("boolean"),title:de.optional(de.string()),description:de.optional(de.string()),default:de.optional(de.boolean())}).passthrough(),g0r=de.object({type:de.literal("string"),title:de.optional(de.string()),description:de.optional(de.string()),minLength:de.optional(de.number()),maxLength:de.optional(de.number()),format:de.optional(de.enum(["email","uri","date","date-time"]))}).passthrough(),E0r=de.object({type:de.enum(["number","integer"]),title:de.optional(de.string()),description:de.optional(de.string()),minimum:de.optional(de.number()),maximum:de.optional(de.number())}).passthrough(),y0r=de.object({type:de.literal("string"),title:de.optional(de.string()),description:de.optional(de.string()),enum:de.array(de.string()),enumNames:de.optional(de.array(de.string()))}).passthrough(),v0r=de.union([A0r,g0r,E0r,y0r]),C0r=Ph.extend({method:de.literal("elicitation/create"),params:Zg.extend({message:de.string(),requestedSchema:de.object({type:de.literal("object"),properties:de.record(de.string(),v0r),required:de.optional(de.array(de.string()))}).passthrough()})}),D0r=e2.extend({action:de.enum(["accept","decline","cancel"]),content:de.optional(de.record(de.string(),de.unknown()))}),S0r=de.object({type:de.literal("ref/resource"),uri:de.string()}).passthrough();var _0r=de.object({type:de.literal("ref/prompt"),name:de.string()}).passthrough(),I0r=Ph.extend({method:de.literal("completion/complete"),params:Zg.extend({ref:de.union([_0r,S0r]),argument:de.object({name:de.string(),value:de.string()}).passthrough(),context:de.optional(de.object({arguments:de.optional(de.record(de.string(),de.string()))}))})}),Lhe=e2.extend({completion:de.object({values:de.array(de.string()).max(100),total:de.optional(de.number().int()),hasMore:de.optional(de.boolean())}).passthrough()}),b0r=de.object({uri:de.string().startsWith("file://"),name:de.optional(de.string()),_meta:de.optional(de.object({}).passthrough())}).passthrough(),T0r=Ph.extend({method:de.literal("roots/list")}),w0r=e2.extend({roots:de.array(b0r)}),B0r=s3.extend({method:de.literal("notifications/roots/list_changed")}),YFn=de.union([cz,Uhr,I0r,u0r,Zhr,Xhr,Hhr,qhr,jhr,Yhr,zhr,s0r,o0r]),zFn=de.union([uz,dz,K$e,B0r]),WFn=de.union([B_,h0r,D0r,w0r]),JFn=de.union([cz,m0r,C0r,T0r]),KFn=de.union([uz,dz,c0r,Whr,$hr,l0r,n0r]),XFn=de.union([B_,The,Lhe,Mhe,Nhe,whe,Bhe,Rhe,mz,Qhe]),Xg=class extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}};var R0r=6e4,hz=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this.setNotificationHandler(uz,r=>{let n=this._requestHandlerAbortControllers.get(r.params.requestId);n?.abort(r.params.reason)}),this.setNotificationHandler(dz,r=>{this._onprogress(r)}),this.setRequestHandler(cz,r=>({}))}_setupTimeout(e,r,n,i,a=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:a,onTimeout:i})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),new Xg(Kg.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){var r,n,i;this._transport=e;let a=(r=this.transport)===null||r===void 0?void 0:r.onclose;this._transport.onclose=()=>{a?.(),this._onclose()};let o=(n=this.transport)===null||n===void 0?void 0:n.onerror;this._transport.onerror=l=>{o?.(l),this._onerror(l)};let s=(i=this._transport)===null||i===void 0?void 0:i.onmessage;this._transport.onmessage=(l,u)=>{s?.(l,u),oL(l)||W$e(l)?this._onresponse(l):lz(l)?this._onrequest(l,u):$$e(l)?this._onnotification(l):this._onerror(new Error(`Unknown message type: ${JSON.stringify(l)}`))},await this._transport.start()}_onclose(){var e;let r=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._transport=void 0,(e=this.onclose)===null||e===void 0||e.call(this);let n=new Xg(Kg.ConnectionClosed,"Connection closed");for(let i of r.values())i(n)}_onerror(e){var r;(r=this.onerror)===null||r===void 0||r.call(this,e)}_onnotification(e){var r;let n=(r=this._notificationHandlers.get(e.method))!==null&&r!==void 0?r:this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(e)).catch(i=>this._onerror(new Error(`Uncaught error in notification handler: ${i}`)))}_onrequest(e,r){var n,i,a,o;let s=(n=this._requestHandlers.get(e.method))!==null&&n!==void 0?n:this.fallbackRequestHandler;if(s===void 0){(i=this._transport)===null||i===void 0||i.send({jsonrpc:"2.0",id:e.id,error:{code:Kg.MethodNotFound,message:"Method not found"}}).catch(c=>this._onerror(new Error(`Failed to send an error response: ${c}`)));return}let l=new AbortController;this._requestHandlerAbortControllers.set(e.id,l);let u={signal:l.signal,sessionId:(a=this._transport)===null||a===void 0?void 0:a.sessionId,_meta:(o=e.params)===null||o===void 0?void 0:o._meta,sendNotification:c=>this.notification(c,{relatedRequestId:e.id}),sendRequest:(c,p,h)=>this.request(c,p,{...h,relatedRequestId:e.id}),authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo};Promise.resolve().then(()=>s(e,u)).then(c=>{var p;if(!l.signal.aborted)return(p=this._transport)===null||p===void 0?void 0:p.send({result:c,jsonrpc:"2.0",id:e.id})},c=>{var p,h;if(!l.signal.aborted)return(p=this._transport)===null||p===void 0?void 0:p.send({jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(c.code)?c.code:Kg.InternalError,message:(h=c.message)!==null&&h!==void 0?h:"Internal error"}})}).catch(c=>this._onerror(new Error(`Failed to send response: ${c}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,i=Number(r),a=this._progressHandlers.get(i);if(!a){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(i),s=this._timeoutInfo.get(i);if(s&&o&&s.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(l){o(l);return}a(n)}_onresponse(e){let r=Number(e.id),n=this._responseHandlers.get(r);if(n===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}if(this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),oL(e))n(e);else{let i=new Xg(e.error.code,e.error.message,e.error.data);n(i)}}get transport(){return this._transport}async close(){var e;await((e=this._transport)===null||e===void 0?void 0:e.close())}request(e,r,n){let{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}=n??{};return new Promise((s,l)=>{var u,c,p,h,A,y;if(!this._transport){l(new Error("Not connected"));return}((u=this._options)===null||u===void 0?void 0:u.enforceStrictCapabilities)===!0&&this.assertCapabilityForMethod(e.method),(c=n?.signal)===null||c===void 0||c.throwIfAborted();let C=this._requestMessageId++,S={...e,jsonrpc:"2.0",id:C};n?.onprogress&&(this._progressHandlers.set(C,n.onprogress),S.params={...e.params,_meta:{...((p=e.params)===null||p===void 0?void 0:p._meta)||{},progressToken:C}});let I=x=>{var P;this._responseHandlers.delete(C),this._progressHandlers.delete(C),this._cleanupTimeout(C),(P=this._transport)===null||P===void 0||P.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:C,reason:String(x)}},{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(q=>this._onerror(new Error(`Failed to send cancellation: ${q}`))),l(x)};this._responseHandlers.set(C,x=>{var P;if(!(!((P=n?.signal)===null||P===void 0)&&P.aborted)){if(x instanceof Error)return l(x);try{let q=r.parse(x.result);s(q)}catch(q){l(q)}}}),(h=n?.signal)===null||h===void 0||h.addEventListener("abort",()=>{var x;I((x=n?.signal)===null||x===void 0?void 0:x.reason)});let F=(A=n?.timeout)!==null&&A!==void 0?A:R0r,M=()=>I(new Xg(Kg.RequestTimeout,"Request timed out",{timeout:F}));this._setupTimeout(C,F,n?.maxTotalTimeout,M,(y=n?.resetTimeoutOnProgress)!==null&&y!==void 0?y:!1),this._transport.send(S,{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(x=>{this._cleanupTimeout(C),l(x)})})}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n={...e,jsonrpc:"2.0"};await this._transport.send(n,r)}setRequestHandler(e,r){let n=e.shape.method.value;this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(i,a)=>Promise.resolve(r(e.parse(i),a)))}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){this._notificationHandlers.set(e.shape.method.value,n=>Promise.resolve(r(e.parse(n))))}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function aYe(t,e){return Object.entries(e).reduce((r,[n,i])=>(i&&typeof i=="object"?r[n]=r[n]?{...r[n],...i}:i:r[n]=i,r),{...t})}var sWe=Je(oWe(),1),Oz=class extends hz{constructor(e,r){var n;super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._capabilities=(n=r?.capabilities)!==null&&n!==void 0?n:{},this._ajv=new sWe.default}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=aYe(this._capabilities,e)}assertCapability(e,r){var n;if(!(!((n=this._serverCapabilities)===null||n===void 0)&&n[e]))throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:qB,capabilities:this._capabilities,clientInfo:this._clientInfo}},The,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!G$e.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"})}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){var r,n,i,a,o;switch(e){case"logging/setLevel":if(!(!((r=this._serverCapabilities)===null||r===void 0)&&r.logging))throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!(!((n=this._serverCapabilities)===null||n===void 0)&&n.prompts))throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!(!((i=this._serverCapabilities)===null||i===void 0)&&i.resources))throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!(!((a=this._serverCapabilities)===null||a===void 0)&&a.tools))throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!(!((o=this._serverCapabilities)===null||o===void 0)&&o.completions))throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){var r;switch(e){case"notifications/roots/list_changed":if(!(!((r=this._capabilities.roots)===null||r===void 0)&&r.listChanged))throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"ping":break}}async ping(e){return this.request({method:"ping"},B_,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},Lhe,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},B_,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},Mhe,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},Nhe,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},whe,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Bhe,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},Rhe,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},B_,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},B_,r)}async callTool(e,r=mz,n){let i=await this.request({method:"tools/call",params:e},r,n),a=this.getToolOutputValidator(e.name);if(a){if(!i.structuredContent&&!i.isError)throw new Xg(Kg.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(i.structuredContent)try{if(!a(i.structuredContent))throw new Xg(Kg.InvalidParams,`Structured content does not match the tool's output schema: ${this._ajv.errorsText(a.errors)}`)}catch(o){throw o instanceof Xg?o:new Xg(Kg.InvalidParams,`Failed to validate structured content: ${o instanceof Error?o.message:String(o)}`)}}return i}cacheToolOutputSchemas(e){this._cachedToolOutputValidators.clear();for(let r of e)if(r.outputSchema)try{let n=this._ajv.compile(r.outputSchema);this._cachedToolOutputValidators.set(r.name,n)}catch{}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},Qhe,r);return this.cacheToolOutputSchemas(n.tools),n}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var KWe=Je(WWe(),1);import Lz from"node:process";import{PassThrough as Qgr}from"node:stream";var Mz=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
|
|
624
|
+
\u8BF7\u76F4\u63A5\u8F93\u51FA\u4E00\u4E2A\u6B63\u786E\u7684json\u683C\u5F0F\uFF1A`;try{let n=await fetch("https://apis.iflow.cn/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`},body:JSON.stringify({model:"QWen3-4B",messages:[{role:"user",content:r}],temperature:.1,max_tokens:1e3})});if(!n.ok)throw new Error(`QWen API error: ${n.status}`);let a=(await n.json()).choices[0].message.content.trim();return a.startsWith("```json")?a=a.replace(/^```json\s*/,"").replace(/\s*```$/,""):a.startsWith("```")&&(a=a.replace(/^```\s*/,"").replace(/\s*```$/,"")),JSON.parse(a)}catch(n){throw console.error("QWen JSON fix failed:",n),n}}extractTextFromRequest(e){let r="";if(e.contents){let n=Array.isArray(e.contents)?e.contents:[e.contents];for(let i of n)if(i&&typeof i=="object"&&"parts"in i&&i.parts){let a=Array.isArray(i.parts)?i.parts:[i.parts];for(let o of a)o&&typeof o=="object"&&"text"in o&&o.text&&(r+=o.text+" ")}}return r.trim()}extractTextFromEmbedRequest(e){if(e.contents){let r=Array.isArray(e.contents)?e.contents:[e.contents];for(let n of r)if(typeof n=="object"&&n!==null&&"parts"in n&&n.parts){let i=Array.isArray(n.parts)?n.parts:[n.parts];for(let a of i)if(typeof a=="object"&&a!==null&&"text"in a&&a.text)return a.text}else{if(typeof n=="string")return n;if(typeof n=="object"&&n!==null&&"text"in n&&n.text)return n.text}}return""}extractSystemInstruction(e){let r="";if(typeof e=="string")r=e;else if(Array.isArray(e)){for(let n of e)typeof n=="object"&&n!==null&&"text"in n&&n.text&&(r+=n.text+" ");r=r.trim()}else if(typeof e=="object"&&e!==null)if("parts"in e&&e.parts){let n=Array.isArray(e.parts)?e.parts:[e.parts];for(let i of n)typeof i=="object"&&i!==null&&"text"in i&&i.text&&(r+=i.text+" ");r=r.trim()}else"text"in e&&e.text&&(r=e.text);return r}convertToOpenAITools(e){if(!e||e.length===0)return[];let r=[];for(let n of e)if(n.functionDeclarations&&Array.isArray(n.functionDeclarations))for(let i of n.functionDeclarations)r.push({type:"function",function:{name:i.name||"",description:i.description,parameters:this.convertParameters(i.parameters||i.parametersJsonSchema)}});return r}convertParameters(e){if(!e)return;let r={STRING:"string",INTEGER:"integer",NUMBER:"number",BOOLEAN:"boolean",OBJECT:"object",ARRAY:"array"};if(typeof e=="object"&&e.type){if(typeof e.type=="string"&&(r[e.type]?e.type=r[e.type]:e.type=e.type.toLowerCase()),e.properties)for(let i in e.properties){let a=e.properties[i],o={};a.type&&(o.type=r[a.type]),a.description&&(o.description=a.description),e.properties[i]=o}return e.items&&(e.items=this.convertParameters(e.items)),e}let n=i=>{if(!i)return;let a={};if(i.type)switch(i.type){case"STRING":a.type="string";break;case"INTEGER":a.type="integer";break;case"NUMBER":a.type="number";break;case"BOOLEAN":a.type="boolean";break;case"OBJECT":a.type="object";break;case"ARRAY":a.type="array";break;default:a.type=i.type.toLowerCase()}if(a.type="object",i.description&&(a.description=i.description),i.enum&&(a.enum=i.enum),i.properties){a.properties={};for(let[o,s]of Object.entries(i.properties))a.properties[o]=n(s)}return i.items&&(a.items=n(i.items)),i.required&&(a.required=i.required),a};return n(e)}mapFinishReason(e){switch(e){case"stop":return L9.STOP;case"length":return L9.MAX_TOKENS;case"content_filter":return L9.SAFETY;case"tool_calls":return L9.MALFORMED_FUNCTION_CALL;default:return L9.OTHER}}convertResponseSchema(e){if(e)return e.type==="object"||e.type==="OBJECT"?{type:"json_schema",json_schema:{name:e.name||"",description:e.description||"",schema:this.convertSchemaToJsonSchema(e),strict:!0}}:{type:"json_schema",json_schema:{name:"response_schema",description:"Generated response schema",schema:this.convertSchemaToJsonSchema(e),strict:!0}}}convertSchemaToJsonSchema(e){if(!e)return{};let r={};if(e.type)switch(e.type){case"STRING":r.type="string";break;case"INTEGER":r.type="integer";break;case"NUMBER":r.type="number";break;case"BOOLEAN":r.type="boolean";break;case"OBJECT":r.type="object";break;case"ARRAY":r.type="array";break;default:r.type=typeof e.type=="string"?e.type.toLowerCase():e.type}if(e.description&&(r.description=e.description),e.enum&&(r.enum=e.enum),e.properties){r.properties={};for(let[n,i]of Object.entries(e.properties))r.properties[n]=this.convertSchemaToJsonSchema(i)}return e.items&&(r.items=this.convertSchemaToJsonSchema(e.items)),e.required&&(r.required=e.required),r.type==="object"&&!("additionalProperties"in r)&&(r.additionalProperties=!1),r}};var Ur;(function(t){t.LOGIN_WITH_GOOGLE="oauth-personal",t.USE_GEMINI="gemini-api-key",t.USE_VERTEX_AI="vertex-ai",t.CLOUD_SHELL="cloud-shell",t.IFLOW="iflow",t.IDEA_LAB="idealab",t.OPENAI_COMPATIBLE="openai-compatible"})(Ur||(Ur={}));var p1=[Ur.IFLOW,Ur.IDEA_LAB],Qhr={[Ur.IDEA_LAB]:"https://idealab.alibaba-inc.com/api/openai/v1",[Ur.IFLOW]:F$e};async function U$e(t,e,r){let n=process.env.GEMINI_API_KEY,i=process.env.GOOGLE_API_KEY,a=process.env.GOOGLE_CLOUD_PROJECT,o=process.env.GOOGLE_CLOUD_LOCATION,s=r?.apiKey,l=r?.baseUrl||Qhr[e],u=t||xm,c={model:u,authType:e};return e===Ur.LOGIN_WITH_GOOGLE||e===Ur.CLOUD_SHELL?c:e===Ur.USE_GEMINI&&n?(c.apiKey=n,c.vertexai=!1,c.model=await M$e(c.apiKey,c.model),c):e===Ur.USE_VERTEX_AI&&(i||a&&o)?(c.apiKey=i,c.vertexai=!0,c):([...p1,Ur.OPENAI_COMPATIBLE].includes(e)&&s&&(c.apiKey=s,c.baseUrl=l,c.model=u),c)}async function k$e(t,e,r){let i={headers:{"User-Agent":`iFlowCLI/0.1.2 (${process.platform}; ${process.arch})`}};if(t.authType&&[...p1,Ur.IDEA_LAB].includes(t.authType)||t.authType===Ur.OPENAI_COMPATIBLE)return new az(t);if(t.authType===Ur.LOGIN_WITH_GOOGLE||t.authType===Ur.CLOUD_SHELL)return O$e(i,t.authType,e,r);if([...p1,Ur.OPENAI_COMPATIBLE].includes(t.authType)||t.authType===Ur.USE_GEMINI||t.authType===Ur.USE_VERTEX_AI)return new NY({apiKey:t.apiKey===""?void 0:t.apiKey,vertexai:t.vertexai,httpOptions:i}).models;throw new Error(`Error creating contentGenerator: Unsupported authType: ${t.authType}`)}var xo=class{name;displayName;description;parameterSchema;isOutputMarkdown;canUpdateOutput;constructor(e,r,n,i,a=!0,o=!1){this.name=e,this.displayName=r,this.description=n,this.parameterSchema=i,this.isOutputMarkdown=a,this.canUpdateOutput=o}get schema(){return{name:this.name,description:this.description,parameters:this.parameterSchema}}validateToolParams(e){return null}getDescription(e){return JSON.stringify(e)}shouldConfirmExecute(e,r){return Promise.resolve(!1)}},xa;(function(t){t.ProceedOnce="proceed_once",t.ProceedAlways="proceed_always",t.ProceedAlwaysServer="proceed_always_server",t.ProceedAlwaysTool="proceed_always_tool",t.ModifyWithEditor="modify_with_editor",t.Cancel="cancel"})(xa||(xa={}));import{spawn as IJe}from"node:child_process";import{StringDecoder as _Je}from"node:string_decoder";var qB="2025-06-18";var G$e=[qB,"2025-03-26","2024-11-05","2024-10-07"],oz="2.0",V$e=de.union([de.string(),de.number().int()]),H$e=de.string(),Lhr=de.object({progressToken:de.optional(V$e)}).passthrough(),Zg=de.object({_meta:de.optional(Lhr)}).passthrough(),Ph=de.object({method:de.string(),params:de.optional(Zg)}),aL=de.object({_meta:de.optional(de.object({}).passthrough())}).passthrough(),s3=de.object({method:de.string(),params:de.optional(aL)}),e2=de.object({_meta:de.optional(de.object({}).passthrough())}).passthrough(),sz=de.union([de.string(),de.number().int()]),q$e=de.object({jsonrpc:de.literal(oz),id:sz}).merge(Ph).strict(),lz=t=>q$e.safeParse(t).success,j$e=de.object({jsonrpc:de.literal(oz)}).merge(s3).strict(),$$e=t=>j$e.safeParse(t).success,Y$e=de.object({jsonrpc:de.literal(oz),id:sz,result:e2}).strict(),oL=t=>Y$e.safeParse(t).success,Kg;(function(t){t[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"})(Kg||(Kg={}));var z$e=de.object({jsonrpc:de.literal(oz),id:sz,error:de.object({code:de.number().int(),message:de.string(),data:de.optional(de.unknown())})}).strict(),W$e=t=>z$e.safeParse(t).success,j9=de.union([q$e,j$e,Y$e,z$e]),B_=e2.strict(),uz=s3.extend({method:de.literal("notifications/cancelled"),params:aL.extend({requestId:sz,reason:de.string().optional()})}),sL=de.object({name:de.string(),title:de.optional(de.string())}).passthrough(),J$e=sL.extend({version:de.string()}),Phr=de.object({experimental:de.optional(de.object({}).passthrough()),sampling:de.optional(de.object({}).passthrough()),elicitation:de.optional(de.object({}).passthrough()),roots:de.optional(de.object({listChanged:de.optional(de.boolean())}).passthrough())}).passthrough(),Uhr=Ph.extend({method:de.literal("initialize"),params:Zg.extend({protocolVersion:de.string(),capabilities:Phr,clientInfo:J$e})});var khr=de.object({experimental:de.optional(de.object({}).passthrough()),logging:de.optional(de.object({}).passthrough()),completions:de.optional(de.object({}).passthrough()),prompts:de.optional(de.object({listChanged:de.optional(de.boolean())}).passthrough()),resources:de.optional(de.object({subscribe:de.optional(de.boolean()),listChanged:de.optional(de.boolean())}).passthrough()),tools:de.optional(de.object({listChanged:de.optional(de.boolean())}).passthrough())}).passthrough(),The=e2.extend({protocolVersion:de.string(),capabilities:khr,serverInfo:J$e,instructions:de.optional(de.string())}),K$e=s3.extend({method:de.literal("notifications/initialized")}),X$e=t=>K$e.safeParse(t).success,cz=Ph.extend({method:de.literal("ping")}),Ghr=de.object({progress:de.number(),total:de.optional(de.number()),message:de.optional(de.string())}).passthrough(),dz=s3.extend({method:de.literal("notifications/progress"),params:aL.merge(Ghr).extend({progressToken:V$e})}),pz=Ph.extend({params:Zg.extend({cursor:de.optional(H$e)}).optional()}),fz=e2.extend({nextCursor:de.optional(H$e)}),Z$e=de.object({uri:de.string(),mimeType:de.optional(de.string()),_meta:de.optional(de.object({}).passthrough())}).passthrough(),eYe=Z$e.extend({text:de.string()}),tYe=Z$e.extend({blob:de.string().base64()}),rYe=sL.extend({uri:de.string(),description:de.optional(de.string()),mimeType:de.optional(de.string()),_meta:de.optional(de.object({}).passthrough())}),Vhr=sL.extend({uriTemplate:de.string(),description:de.optional(de.string()),mimeType:de.optional(de.string()),_meta:de.optional(de.object({}).passthrough())}),Hhr=pz.extend({method:de.literal("resources/list")}),whe=fz.extend({resources:de.array(rYe)}),qhr=pz.extend({method:de.literal("resources/templates/list")}),Bhe=fz.extend({resourceTemplates:de.array(Vhr)}),jhr=Ph.extend({method:de.literal("resources/read"),params:Zg.extend({uri:de.string()})}),Rhe=e2.extend({contents:de.array(de.union([eYe,tYe]))}),$hr=s3.extend({method:de.literal("notifications/resources/list_changed")}),Yhr=Ph.extend({method:de.literal("resources/subscribe"),params:Zg.extend({uri:de.string()})}),zhr=Ph.extend({method:de.literal("resources/unsubscribe"),params:Zg.extend({uri:de.string()})}),Whr=s3.extend({method:de.literal("notifications/resources/updated"),params:aL.extend({uri:de.string()})}),Jhr=de.object({name:de.string(),description:de.optional(de.string()),required:de.optional(de.boolean())}).passthrough(),Khr=sL.extend({description:de.optional(de.string()),arguments:de.optional(de.array(Jhr)),_meta:de.optional(de.object({}).passthrough())}),Xhr=pz.extend({method:de.literal("prompts/list")}),Nhe=fz.extend({prompts:de.array(Khr)}),Zhr=Ph.extend({method:de.literal("prompts/get"),params:Zg.extend({name:de.string(),arguments:de.optional(de.record(de.string()))})}),xhe=de.object({type:de.literal("text"),text:de.string(),_meta:de.optional(de.object({}).passthrough())}).passthrough(),Ohe=de.object({type:de.literal("image"),data:de.string().base64(),mimeType:de.string(),_meta:de.optional(de.object({}).passthrough())}).passthrough(),Fhe=de.object({type:de.literal("audio"),data:de.string().base64(),mimeType:de.string(),_meta:de.optional(de.object({}).passthrough())}).passthrough(),e0r=de.object({type:de.literal("resource"),resource:de.union([eYe,tYe]),_meta:de.optional(de.object({}).passthrough())}).passthrough(),t0r=rYe.extend({type:de.literal("resource_link")}),nYe=de.union([xhe,Ohe,Fhe,t0r,e0r]),r0r=de.object({role:de.enum(["user","assistant"]),content:nYe}).passthrough(),Mhe=e2.extend({description:de.optional(de.string()),messages:de.array(r0r)}),n0r=s3.extend({method:de.literal("notifications/prompts/list_changed")}),i0r=de.object({title:de.optional(de.string()),readOnlyHint:de.optional(de.boolean()),destructiveHint:de.optional(de.boolean()),idempotentHint:de.optional(de.boolean()),openWorldHint:de.optional(de.boolean())}).passthrough(),a0r=sL.extend({description:de.optional(de.string()),inputSchema:de.object({type:de.literal("object"),properties:de.optional(de.object({}).passthrough()),required:de.optional(de.array(de.string()))}).passthrough(),outputSchema:de.optional(de.object({type:de.literal("object"),properties:de.optional(de.object({}).passthrough()),required:de.optional(de.array(de.string()))}).passthrough()),annotations:de.optional(i0r),_meta:de.optional(de.object({}).passthrough())}),o0r=pz.extend({method:de.literal("tools/list")}),Qhe=fz.extend({tools:de.array(a0r)}),mz=e2.extend({content:de.array(nYe).default([]),structuredContent:de.object({}).passthrough().optional(),isError:de.optional(de.boolean())}),$Fn=mz.or(e2.extend({toolResult:de.unknown()})),s0r=Ph.extend({method:de.literal("tools/call"),params:Zg.extend({name:de.string(),arguments:de.optional(de.record(de.unknown()))})}),l0r=s3.extend({method:de.literal("notifications/tools/list_changed")}),iYe=de.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),u0r=Ph.extend({method:de.literal("logging/setLevel"),params:Zg.extend({level:iYe})}),c0r=s3.extend({method:de.literal("notifications/message"),params:aL.extend({level:iYe,logger:de.optional(de.string()),data:de.unknown()})}),d0r=de.object({name:de.string().optional()}).passthrough(),p0r=de.object({hints:de.optional(de.array(d0r)),costPriority:de.optional(de.number().min(0).max(1)),speedPriority:de.optional(de.number().min(0).max(1)),intelligencePriority:de.optional(de.number().min(0).max(1))}).passthrough(),f0r=de.object({role:de.enum(["user","assistant"]),content:de.union([xhe,Ohe,Fhe])}).passthrough(),m0r=Ph.extend({method:de.literal("sampling/createMessage"),params:Zg.extend({messages:de.array(f0r),systemPrompt:de.optional(de.string()),includeContext:de.optional(de.enum(["none","thisServer","allServers"])),temperature:de.optional(de.number()),maxTokens:de.number().int(),stopSequences:de.optional(de.array(de.string())),metadata:de.optional(de.object({}).passthrough()),modelPreferences:de.optional(p0r)})}),h0r=e2.extend({model:de.string(),stopReason:de.optional(de.enum(["endTurn","stopSequence","maxTokens"]).or(de.string())),role:de.enum(["user","assistant"]),content:de.discriminatedUnion("type",[xhe,Ohe,Fhe])}),A0r=de.object({type:de.literal("boolean"),title:de.optional(de.string()),description:de.optional(de.string()),default:de.optional(de.boolean())}).passthrough(),g0r=de.object({type:de.literal("string"),title:de.optional(de.string()),description:de.optional(de.string()),minLength:de.optional(de.number()),maxLength:de.optional(de.number()),format:de.optional(de.enum(["email","uri","date","date-time"]))}).passthrough(),E0r=de.object({type:de.enum(["number","integer"]),title:de.optional(de.string()),description:de.optional(de.string()),minimum:de.optional(de.number()),maximum:de.optional(de.number())}).passthrough(),y0r=de.object({type:de.literal("string"),title:de.optional(de.string()),description:de.optional(de.string()),enum:de.array(de.string()),enumNames:de.optional(de.array(de.string()))}).passthrough(),v0r=de.union([A0r,g0r,E0r,y0r]),C0r=Ph.extend({method:de.literal("elicitation/create"),params:Zg.extend({message:de.string(),requestedSchema:de.object({type:de.literal("object"),properties:de.record(de.string(),v0r),required:de.optional(de.array(de.string()))}).passthrough()})}),D0r=e2.extend({action:de.enum(["accept","decline","cancel"]),content:de.optional(de.record(de.string(),de.unknown()))}),S0r=de.object({type:de.literal("ref/resource"),uri:de.string()}).passthrough();var _0r=de.object({type:de.literal("ref/prompt"),name:de.string()}).passthrough(),I0r=Ph.extend({method:de.literal("completion/complete"),params:Zg.extend({ref:de.union([_0r,S0r]),argument:de.object({name:de.string(),value:de.string()}).passthrough(),context:de.optional(de.object({arguments:de.optional(de.record(de.string(),de.string()))}))})}),Lhe=e2.extend({completion:de.object({values:de.array(de.string()).max(100),total:de.optional(de.number().int()),hasMore:de.optional(de.boolean())}).passthrough()}),b0r=de.object({uri:de.string().startsWith("file://"),name:de.optional(de.string()),_meta:de.optional(de.object({}).passthrough())}).passthrough(),T0r=Ph.extend({method:de.literal("roots/list")}),w0r=e2.extend({roots:de.array(b0r)}),B0r=s3.extend({method:de.literal("notifications/roots/list_changed")}),YFn=de.union([cz,Uhr,I0r,u0r,Zhr,Xhr,Hhr,qhr,jhr,Yhr,zhr,s0r,o0r]),zFn=de.union([uz,dz,K$e,B0r]),WFn=de.union([B_,h0r,D0r,w0r]),JFn=de.union([cz,m0r,C0r,T0r]),KFn=de.union([uz,dz,c0r,Whr,$hr,l0r,n0r]),XFn=de.union([B_,The,Lhe,Mhe,Nhe,whe,Bhe,Rhe,mz,Qhe]),Xg=class extends Error{constructor(e,r,n){super(`MCP error ${e}: ${r}`),this.code=e,this.data=n,this.name="McpError"}};var R0r=6e4,hz=class{constructor(e){this._options=e,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this.setNotificationHandler(uz,r=>{let n=this._requestHandlerAbortControllers.get(r.params.requestId);n?.abort(r.params.reason)}),this.setNotificationHandler(dz,r=>{this._onprogress(r)}),this.setRequestHandler(cz,r=>({}))}_setupTimeout(e,r,n,i,a=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(i,r),startTime:Date.now(),timeout:r,maxTotalTimeout:n,resetTimeoutOnProgress:a,onTimeout:i})}_resetTimeout(e){let r=this._timeoutInfo.get(e);if(!r)return!1;let n=Date.now()-r.startTime;if(r.maxTotalTimeout&&n>=r.maxTotalTimeout)throw this._timeoutInfo.delete(e),new Xg(Kg.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:r.maxTotalTimeout,totalElapsed:n});return clearTimeout(r.timeoutId),r.timeoutId=setTimeout(r.onTimeout,r.timeout),!0}_cleanupTimeout(e){let r=this._timeoutInfo.get(e);r&&(clearTimeout(r.timeoutId),this._timeoutInfo.delete(e))}async connect(e){var r,n,i;this._transport=e;let a=(r=this.transport)===null||r===void 0?void 0:r.onclose;this._transport.onclose=()=>{a?.(),this._onclose()};let o=(n=this.transport)===null||n===void 0?void 0:n.onerror;this._transport.onerror=l=>{o?.(l),this._onerror(l)};let s=(i=this._transport)===null||i===void 0?void 0:i.onmessage;this._transport.onmessage=(l,u)=>{s?.(l,u),oL(l)||W$e(l)?this._onresponse(l):lz(l)?this._onrequest(l,u):$$e(l)?this._onnotification(l):this._onerror(new Error(`Unknown message type: ${JSON.stringify(l)}`))},await this._transport.start()}_onclose(){var e;let r=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._transport=void 0,(e=this.onclose)===null||e===void 0||e.call(this);let n=new Xg(Kg.ConnectionClosed,"Connection closed");for(let i of r.values())i(n)}_onerror(e){var r;(r=this.onerror)===null||r===void 0||r.call(this,e)}_onnotification(e){var r;let n=(r=this._notificationHandlers.get(e.method))!==null&&r!==void 0?r:this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(e)).catch(i=>this._onerror(new Error(`Uncaught error in notification handler: ${i}`)))}_onrequest(e,r){var n,i,a,o;let s=(n=this._requestHandlers.get(e.method))!==null&&n!==void 0?n:this.fallbackRequestHandler;if(s===void 0){(i=this._transport)===null||i===void 0||i.send({jsonrpc:"2.0",id:e.id,error:{code:Kg.MethodNotFound,message:"Method not found"}}).catch(c=>this._onerror(new Error(`Failed to send an error response: ${c}`)));return}let l=new AbortController;this._requestHandlerAbortControllers.set(e.id,l);let u={signal:l.signal,sessionId:(a=this._transport)===null||a===void 0?void 0:a.sessionId,_meta:(o=e.params)===null||o===void 0?void 0:o._meta,sendNotification:c=>this.notification(c,{relatedRequestId:e.id}),sendRequest:(c,p,h)=>this.request(c,p,{...h,relatedRequestId:e.id}),authInfo:r?.authInfo,requestId:e.id,requestInfo:r?.requestInfo};Promise.resolve().then(()=>s(e,u)).then(c=>{var p;if(!l.signal.aborted)return(p=this._transport)===null||p===void 0?void 0:p.send({result:c,jsonrpc:"2.0",id:e.id})},c=>{var p,h;if(!l.signal.aborted)return(p=this._transport)===null||p===void 0?void 0:p.send({jsonrpc:"2.0",id:e.id,error:{code:Number.isSafeInteger(c.code)?c.code:Kg.InternalError,message:(h=c.message)!==null&&h!==void 0?h:"Internal error"}})}).catch(c=>this._onerror(new Error(`Failed to send response: ${c}`))).finally(()=>{this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:r,...n}=e.params,i=Number(r),a=this._progressHandlers.get(i);if(!a){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let o=this._responseHandlers.get(i),s=this._timeoutInfo.get(i);if(s&&o&&s.resetTimeoutOnProgress)try{this._resetTimeout(i)}catch(l){o(l);return}a(n)}_onresponse(e){let r=Number(e.id),n=this._responseHandlers.get(r);if(n===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}if(this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),oL(e))n(e);else{let i=new Xg(e.error.code,e.error.message,e.error.data);n(i)}}get transport(){return this._transport}async close(){var e;await((e=this._transport)===null||e===void 0?void 0:e.close())}request(e,r,n){let{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}=n??{};return new Promise((s,l)=>{var u,c,p,h,A,y;if(!this._transport){l(new Error("Not connected"));return}((u=this._options)===null||u===void 0?void 0:u.enforceStrictCapabilities)===!0&&this.assertCapabilityForMethod(e.method),(c=n?.signal)===null||c===void 0||c.throwIfAborted();let C=this._requestMessageId++,S={...e,jsonrpc:"2.0",id:C};n?.onprogress&&(this._progressHandlers.set(C,n.onprogress),S.params={...e.params,_meta:{...((p=e.params)===null||p===void 0?void 0:p._meta)||{},progressToken:C}});let I=x=>{var P;this._responseHandlers.delete(C),this._progressHandlers.delete(C),this._cleanupTimeout(C),(P=this._transport)===null||P===void 0||P.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:C,reason:String(x)}},{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(q=>this._onerror(new Error(`Failed to send cancellation: ${q}`))),l(x)};this._responseHandlers.set(C,x=>{var P;if(!(!((P=n?.signal)===null||P===void 0)&&P.aborted)){if(x instanceof Error)return l(x);try{let q=r.parse(x.result);s(q)}catch(q){l(q)}}}),(h=n?.signal)===null||h===void 0||h.addEventListener("abort",()=>{var x;I((x=n?.signal)===null||x===void 0?void 0:x.reason)});let F=(A=n?.timeout)!==null&&A!==void 0?A:R0r,M=()=>I(new Xg(Kg.RequestTimeout,"Request timed out",{timeout:F}));this._setupTimeout(C,F,n?.maxTotalTimeout,M,(y=n?.resetTimeoutOnProgress)!==null&&y!==void 0?y:!1),this._transport.send(S,{relatedRequestId:i,resumptionToken:a,onresumptiontoken:o}).catch(x=>{this._cleanupTimeout(C),l(x)})})}async notification(e,r){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(e.method);let n={...e,jsonrpc:"2.0"};await this._transport.send(n,r)}setRequestHandler(e,r){let n=e.shape.method.value;this.assertRequestHandlerCapability(n),this._requestHandlers.set(n,(i,a)=>Promise.resolve(r(e.parse(i),a)))}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw new Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,r){this._notificationHandlers.set(e.shape.method.value,n=>Promise.resolve(r(e.parse(n))))}removeNotificationHandler(e){this._notificationHandlers.delete(e)}};function aYe(t,e){return Object.entries(e).reduce((r,[n,i])=>(i&&typeof i=="object"?r[n]=r[n]?{...r[n],...i}:i:r[n]=i,r),{...t})}var sWe=Je(oWe(),1),Oz=class extends hz{constructor(e,r){var n;super(r),this._clientInfo=e,this._cachedToolOutputValidators=new Map,this._capabilities=(n=r?.capabilities)!==null&&n!==void 0?n:{},this._ajv=new sWe.default}registerCapabilities(e){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=aYe(this._capabilities,e)}assertCapability(e,r){var n;if(!(!((n=this._serverCapabilities)===null||n===void 0)&&n[e]))throw new Error(`Server does not support ${e} (required for ${r})`)}async connect(e,r){if(await super.connect(e),e.sessionId===void 0)try{let n=await this.request({method:"initialize",params:{protocolVersion:qB,capabilities:this._capabilities,clientInfo:this._clientInfo}},The,r);if(n===void 0)throw new Error(`Server sent invalid initialize result: ${n}`);if(!G$e.includes(n.protocolVersion))throw new Error(`Server's protocol version is not supported: ${n.protocolVersion}`);this._serverCapabilities=n.capabilities,this._serverVersion=n.serverInfo,e.setProtocolVersion&&e.setProtocolVersion(n.protocolVersion),this._instructions=n.instructions,await this.notification({method:"notifications/initialized"})}catch(n){throw this.close(),n}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(e){var r,n,i,a,o;switch(e){case"logging/setLevel":if(!(!((r=this._serverCapabilities)===null||r===void 0)&&r.logging))throw new Error(`Server does not support logging (required for ${e})`);break;case"prompts/get":case"prompts/list":if(!(!((n=this._serverCapabilities)===null||n===void 0)&&n.prompts))throw new Error(`Server does not support prompts (required for ${e})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!(!((i=this._serverCapabilities)===null||i===void 0)&&i.resources))throw new Error(`Server does not support resources (required for ${e})`);if(e==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw new Error(`Server does not support resource subscriptions (required for ${e})`);break;case"tools/call":case"tools/list":if(!(!((a=this._serverCapabilities)===null||a===void 0)&&a.tools))throw new Error(`Server does not support tools (required for ${e})`);break;case"completion/complete":if(!(!((o=this._serverCapabilities)===null||o===void 0)&&o.completions))throw new Error(`Server does not support completions (required for ${e})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(e){var r;switch(e){case"notifications/roots/list_changed":if(!(!((r=this._capabilities.roots)===null||r===void 0)&&r.listChanged))throw new Error(`Client does not support roots list changed notifications (required for ${e})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(e){switch(e){case"sampling/createMessage":if(!this._capabilities.sampling)throw new Error(`Client does not support sampling capability (required for ${e})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw new Error(`Client does not support elicitation capability (required for ${e})`);break;case"roots/list":if(!this._capabilities.roots)throw new Error(`Client does not support roots capability (required for ${e})`);break;case"ping":break}}async ping(e){return this.request({method:"ping"},B_,e)}async complete(e,r){return this.request({method:"completion/complete",params:e},Lhe,r)}async setLoggingLevel(e,r){return this.request({method:"logging/setLevel",params:{level:e}},B_,r)}async getPrompt(e,r){return this.request({method:"prompts/get",params:e},Mhe,r)}async listPrompts(e,r){return this.request({method:"prompts/list",params:e},Nhe,r)}async listResources(e,r){return this.request({method:"resources/list",params:e},whe,r)}async listResourceTemplates(e,r){return this.request({method:"resources/templates/list",params:e},Bhe,r)}async readResource(e,r){return this.request({method:"resources/read",params:e},Rhe,r)}async subscribeResource(e,r){return this.request({method:"resources/subscribe",params:e},B_,r)}async unsubscribeResource(e,r){return this.request({method:"resources/unsubscribe",params:e},B_,r)}async callTool(e,r=mz,n){let i=await this.request({method:"tools/call",params:e},r,n),a=this.getToolOutputValidator(e.name);if(a){if(!i.structuredContent&&!i.isError)throw new Xg(Kg.InvalidRequest,`Tool ${e.name} has an output schema but did not return structured content`);if(i.structuredContent)try{if(!a(i.structuredContent))throw new Xg(Kg.InvalidParams,`Structured content does not match the tool's output schema: ${this._ajv.errorsText(a.errors)}`)}catch(o){throw o instanceof Xg?o:new Xg(Kg.InvalidParams,`Failed to validate structured content: ${o instanceof Error?o.message:String(o)}`)}}return i}cacheToolOutputSchemas(e){this._cachedToolOutputValidators.clear();for(let r of e)if(r.outputSchema)try{let n=this._ajv.compile(r.outputSchema);this._cachedToolOutputValidators.set(r.name,n)}catch{}}getToolOutputValidator(e){return this._cachedToolOutputValidators.get(e)}async listTools(e,r){let n=await this.request({method:"tools/list",params:e},Qhe,r);return this.cacheToolOutputSchemas(n.tools),n}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}};var KWe=Je(WWe(),1);import Lz from"node:process";import{PassThrough as Qgr}from"node:stream";var Mz=class{append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){if(!this._buffer)return null;let e=this._buffer.indexOf(`
|
|
625
625
|
`);if(e===-1)return null;let r=this._buffer.toString("utf8",0,e).replace(/\r$/,"");return this._buffer=this._buffer.subarray(e+1),Mgr(r)}clear(){this._buffer=void 0}};function Mgr(t){return j9.parse(JSON.parse(t))}function JWe(t){return JSON.stringify(t)+`
|
|
626
626
|
`}var Lgr=Lz.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function Pgr(){let t={};for(let e of Lgr){let r=Lz.env[e];r!==void 0&&(r.startsWith("()")||(t[e]=r))}return t}var Qz=class{constructor(e){this._abortController=new AbortController,this._readBuffer=new Mz,this._stderrStream=null,this._serverParams=e,(e.stderr==="pipe"||e.stderr==="overlapped")&&(this._stderrStream=new Qgr)}async start(){if(this._process)throw new Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((e,r)=>{var n,i,a,o,s;this._process=(0,KWe.default)(this._serverParams.command,(n=this._serverParams.args)!==null&&n!==void 0?n:[],{env:{...Pgr(),...this._serverParams.env},stdio:["pipe","pipe",(i=this._serverParams.stderr)!==null&&i!==void 0?i:"inherit"],shell:!1,signal:this._abortController.signal,windowsHide:Lz.platform==="win32"&&Ugr(),cwd:this._serverParams.cwd}),this._process.on("error",l=>{var u,c;if(l.name==="AbortError"){(u=this.onclose)===null||u===void 0||u.call(this);return}r(l),(c=this.onerror)===null||c===void 0||c.call(this,l)}),this._process.on("spawn",()=>{e()}),this._process.on("close",l=>{var u;this._process=void 0,(u=this.onclose)===null||u===void 0||u.call(this)}),(a=this._process.stdin)===null||a===void 0||a.on("error",l=>{var u;(u=this.onerror)===null||u===void 0||u.call(this,l)}),(o=this._process.stdout)===null||o===void 0||o.on("data",l=>{this._readBuffer.append(l),this.processReadBuffer()}),(s=this._process.stdout)===null||s===void 0||s.on("error",l=>{var u;(u=this.onerror)===null||u===void 0||u.call(this,l)}),this._stderrStream&&this._process.stderr&&this._process.stderr.pipe(this._stderrStream)})}get stderr(){var e,r;return this._stderrStream?this._stderrStream:(r=(e=this._process)===null||e===void 0?void 0:e.stderr)!==null&&r!==void 0?r:null}get pid(){var e,r;return(r=(e=this._process)===null||e===void 0?void 0:e.pid)!==null&&r!==void 0?r:null}processReadBuffer(){for(var e,r;;)try{let n=this._readBuffer.readMessage();if(n===null)break;(e=this.onmessage)===null||e===void 0||e.call(this,n)}catch(n){(r=this.onerror)===null||r===void 0||r.call(this,n)}}async close(){this._abortController.abort(),this._process=void 0,this._readBuffer.clear()}send(e){return new Promise(r=>{var n;if(!(!((n=this._process)===null||n===void 0)&&n.stdin))throw new Error("Not connected");let i=JWe(e);this._process.stdin.write(i)?r():this._process.stdin.once("drain",r)})}};function Ugr(){return"type"in Lz}var Pz=class extends Error{constructor(e,r){super(e),this.name="ParseError",this.type=r.type,this.field=r.field,this.value=r.value,this.line=r.line}};function g0e(t){}function Uz(t){if(typeof t=="function")throw new TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:e=g0e,onError:r=g0e,onRetry:n=g0e,onComment:i}=t,a="",o=!0,s,l="",u="";function c(C){let S=o?C.replace(/^\xEF\xBB\xBF/,""):C,[I,F]=kgr(`${a}${S}`);for(let M of I)p(M);a=F,o=!1}function p(C){if(C===""){A();return}if(C.startsWith(":")){i&&i(C.slice(C.startsWith(": ")?2:1));return}let S=C.indexOf(":");if(S!==-1){let I=C.slice(0,S),F=C[S+1]===" "?2:1,M=C.slice(S+F);h(I,M,C);return}h(C,"",C)}function h(C,S,I){switch(C){case"event":u=S;break;case"data":l=`${l}${S}
|
|
627
627
|
`;break;case"id":s=S.includes("\0")?void 0:S;break;case"retry":/^\d+$/.test(S)?n(parseInt(S,10)):r(new Pz(`Invalid \`retry\` value: "${S}"`,{type:"invalid-retry",value:S,line:I}));break;default:r(new Pz(`Unknown field "${C.length>20?`${C.slice(0,20)}\u2026`:C}"`,{type:"unknown-field",field:C,value:S,line:I}));break}}function A(){l.length>0&&e({id:s,event:u||void 0,data:l.endsWith(`
|
|
@@ -1459,7 +1459,7 @@ Logging in with Google... Please restart Gemini CLI to continue.
|
|
|
1459
1459
|
`,e-1);return{line:r===-1?0:t.slice(0,r+1).match(/\n/g).length,column:e-r-1}}function wbe(t,e,{oneBased:r=!1}={}){if(typeof t!="string")throw new TypeError("Text parameter should be a string");if(!Number.isInteger(e))throw new TypeError("Index parameter should be an integer");if(e<0||e>t.length)throw new RangeError("Index out of bounds");let n=lAn(t,e);return r?{line:n.line+1,column:n.column+1}:n}var uAn=t=>`\\u{${t.codePointAt(0).toString(16)}}`,Bbe=class t extends Error{name="JSONError";fileName;#e;#t;#r;#n;#a;constructor(e){if(typeof e=="string")super(),this.#r=e;else{let{jsonParseError:r,fileName:n,input:i}=e;super(void 0,{cause:r}),this.#e=i,this.#t=r,this.fileName=n}Error.captureStackTrace?.(this,t)}get message(){this.#r??=`${dAn(this.#t.message)}${this.#e===""?" while parsing empty string":""}`;let{codeFrame:e}=this;return`${this.#r}${this.fileName?` in ${this.fileName}`:""}${e?`
|
|
1460
1460
|
|
|
1461
1461
|
${e}
|
|
1462
|
-
`:""}`}set message(e){this.#r=e}#i(e){if(!this.#t)return;let r=this.#e,n=cAn(r,this.#t.message);if(n)return(0,fNt.codeFrameColumns)(r,{start:n},{highlightCode:e})}get codeFrame(){return this.#n??=this.#i(!0),this.#n}get rawCodeFrame(){return this.#a??=this.#i(!1),this.#a}},cAn=(t,e)=>{let r=e.match(/in JSON at position (?<index>\d+)(?: \(line (?<line>\d+) column (?<column>\d+)\))?$/);if(!r)return;let{index:n,line:i,column:a}=r.groups;return i&&a?{line:Number(i),column:Number(a)}:wbe(t,Number(n),{oneBased:!0})},dAn=t=>t.replace(/(?<=^Unexpected token )(?<quote>')?(.)\k<quote>/,(e,r,n)=>`"${n}"(${uAn(n)})`);function Rbe(t,e,r){typeof e=="string"&&(r=e,e=void 0);try{return JSON.parse(t,e)}catch(n){throw new Bbe({jsonParseError:n,fileName:r,input:t})}}var Bxt=Je(Txt(),1);import{fileURLToPath as Fgn}from"node:url";function wxt(t){return t instanceof URL?Fgn(t):t}var Lgn=t=>Qgn.resolve(wxt(t)??".","package.json"),Pgn=(t,e)=>{let r=typeof t=="string"?Rbe(t):t;return e&&(0,Bxt.default)(r),r};async function Rxt({cwd:t,normalize:e=!0}={}){let r=await Mgn.readFile(Lgn(t),"utf8");return Pgn(r,e)}async function Nxt(t){let e=await VRt("package.json",t);if(e)return{packageJson:await Rxt({...t,cwd:Ugn.dirname(e)}),path:e}}import{fileURLToPath as kgn}from"url";import Ggn from"path";var Vgn=kgn(import.meta.url),Hgn=Ggn.dirname(Vgn),Zoe;async function aF(){if(Zoe)return Zoe;let t=await Nxt({cwd:Hgn});if(t)return Zoe=t.packageJson,Zoe}async function B5(){let t=await aF();return"0.
|
|
1462
|
+
`:""}`}set message(e){this.#r=e}#i(e){if(!this.#t)return;let r=this.#e,n=cAn(r,this.#t.message);if(n)return(0,fNt.codeFrameColumns)(r,{start:n},{highlightCode:e})}get codeFrame(){return this.#n??=this.#i(!0),this.#n}get rawCodeFrame(){return this.#a??=this.#i(!1),this.#a}},cAn=(t,e)=>{let r=e.match(/in JSON at position (?<index>\d+)(?: \(line (?<line>\d+) column (?<column>\d+)\))?$/);if(!r)return;let{index:n,line:i,column:a}=r.groups;return i&&a?{line:Number(i),column:Number(a)}:wbe(t,Number(n),{oneBased:!0})},dAn=t=>t.replace(/(?<=^Unexpected token )(?<quote>')?(.)\k<quote>/,(e,r,n)=>`"${n}"(${uAn(n)})`);function Rbe(t,e,r){typeof e=="string"&&(r=e,e=void 0);try{return JSON.parse(t,e)}catch(n){throw new Bbe({jsonParseError:n,fileName:r,input:t})}}var Bxt=Je(Txt(),1);import{fileURLToPath as Fgn}from"node:url";function wxt(t){return t instanceof URL?Fgn(t):t}var Lgn=t=>Qgn.resolve(wxt(t)??".","package.json"),Pgn=(t,e)=>{let r=typeof t=="string"?Rbe(t):t;return e&&(0,Bxt.default)(r),r};async function Rxt({cwd:t,normalize:e=!0}={}){let r=await Mgn.readFile(Lgn(t),"utf8");return Pgn(r,e)}async function Nxt(t){let e=await VRt("package.json",t);if(e)return{packageJson:await Rxt({...t,cwd:Ugn.dirname(e)}),path:e}}import{fileURLToPath as kgn}from"url";import Ggn from"path";var Vgn=kgn(import.meta.url),Hgn=Ggn.dirname(Vgn),Zoe;async function aF(){if(Zoe)return Zoe;let t=await Nxt({cwd:Hgn});if(t)return Zoe=t.packageJson,Zoe}async function B5(){let t=await aF();return"0.1.2"}var xxt={name:"memory",description:"Commands for interacting with memory.",subCommands:[{name:"show",description:"Show the current memory contents.",action:async t=>{let e=t.services.config?.getUserMemory()||"",r=t.services.config?.getGeminiMdFileCount()||0,n=e.length>0?`Current memory content from ${r} file(s):
|
|
1463
1463
|
|
|
1464
1464
|
---
|
|
1465
1465
|
${e}
|