zen-code 4.9.0 → 4.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.js +55 -55
- package/package.json +1 -1
package/dist/app.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import{d as u4,e as x4}from"./chunk-j7a40ww9.js";import{f as g,g as VZ}from"./chunk-30sq2w0d.js";import{i as G$,j as u$,k as V1,m as I1,n as x$,o as Y0}from"./chunk-32ase1cw.js";import{p as a$,q as l,r as n,s as K1,t as L6,u as Z1,v as hZ}from"./chunk-mjzeawnq.js";import"./chunk-heasksrr.js";import{A as q$,B as EZ,C as HZ,D as j$,E as k1,F as U$,x as f4,y as P3,z as S0}from"./chunk-cs73xbzz.js";import{G as O4,H as v6,I as q4,K as zZ,L as _Z,M as B1}from"./chunk-rncpxz1b.js";import{N as t,O as gZ}from"./chunk-hfve7nf5.js";import{P as T6,Q as xY,S as D6,T as y$,V as T$}from"./chunk-va71tsw3.js";import"./chunk-jxsfzfac.js";import{ca as J0,da as r1}from"./chunk-02vv5584.js";import{ea as D,fa as z,ga as G,ha as k6,ia as S$,ka as NZ,la as R4,ma as H4,na as o1,oa as y1,pa as M,qa as h1,sa as P0,ua as DZ,va as L3}from"./chunk-nwy6n6b6.js";import{Ca as r6}from"./chunk-g7pm00z7.js";import{Da as S4}from"./chunk-1y82m5kn.js";import{Fa as h4,Ga as T4,Ha as k4,Ia as C4,Ka as s3}from"./chunk-5x8nxw0t.js";import"./chunk-zwxjkwqd.js";import"./chunk-13nyfrmm.js";import"./chunk-5rr85f28.js";import"./chunk-cggjws6a.js";import"./chunk-cyexd09c.js";import"./chunk-r2h3x9zv.js";import"./chunk-1ttywx0y.js";import{ub as A,xb as M8,yb as T1}from"./chunk-kba8akjs.js";class G4{renderers=new Map;register($,Z){this.renderers.set($,Z)}get($){return this.renderers.get($)}has($){return this.renderers.has($)}list(){return Array.from(this.renderers.keys())}unregister($){this.renderers.delete($)}clear(){this.renderers.clear()}}var A0;var F$=M8(()=>{A0=new G4});var pZ=A(D(),1);var j6=A(M(),1),mZ=new T6({defaultOptions:{queries:{retry:($,Z)=>{if(Z instanceof TypeError&&Z.message.includes("fetch"))return $<2;return!1},refetchOnWindowFocus:!1,refetchOnMount:!0,refetchOnReconnect:!1,staleTime:300000,gcTime:600000,networkMode:"online"},mutations:{retry:1,networkMode:"online"}}});function V6({children:$}){return j6.jsxDEV(D6,{client:mZ,children:$},void 0,!1,void 0,this)}async function h6($,Z,Y,J){let X={threadId:Z,graphId:Y,runId:J};try{let Q=(await $.get(Z)).values;if(!Q?.messages||!Array.isArray(Q.messages)||Q.messages.length===0)return;let _=await I1.getTitleGenerator()(Q,{thread_id:Z,graph_id:Y,run_id:J});if(_){if(!await $.setTitleIfNull(Z,_))return}}catch(K){console.warn("Failed to generate thread title:",{...X,error:K instanceof Error?K.message:String(K)})}}var E6={async search($){let Z=Object.entries(G$).map(([K,Q])=>({assistant_id:K,graph_id:K,config:{},metadata:{},version:1,name:K,description:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString()}));if($?.graphId)Z=Z.filter((K)=>K.graph_id===$.graphId);if($?.metadata&&Object.keys($.metadata).length>0)Z=Z.filter((K)=>{return Object.entries($.metadata).every(([Q,W])=>{return K.metadata&&K.metadata[Q]===W})});if($?.sortBy)Z.sort((K,Q)=>{let W=K[$.sortBy],_=Q[$.sortBy],O=W<_?-1:W>_?1:0;return $.sortOrder==="desc"?-O:O});let Y=$?.offset??0,J=$?.limit;return J?Z.slice(Y,Y+J):Z.slice(Y)},async count($){return(await this.search($)).length},async get($){if(!Object.entries(G$).find(([Y,J])=>Y===$))throw Error(`Assistant not found: ${$}`);return{assistant_id:$,graph_id:$,config:{},created_at:new Date().toISOString(),updated_at:new Date().toISOString(),metadata:{},version:1,name:$,description:""}},async delete($){throw Error("Deleting assistants is not supported. Assistants are generated from registered graphs.")},async update($,Z){throw Error("Updating assistants is not supported. Assistants are generated from registered graphs.")},async getGraph($,Z){let Y={};return(await(await V1($,Y)).getGraphAsync({...Y,xray:Z?.xray??void 0})).toJSON()},async getSchemas($){let Y=(await V1($,{})).builder;return console.log(Y),{graph_id:$,state_schema:Y._inputDefinition,input_schema:Y._inputDefinition,output_schema:Y._outputDefinition,config_schema:Y._configSchema,context_schema:Y._configSchema}},async getVersions($,Z){let Y=await this.get($),J=Z?.offset??0,X=Z?.limit;return X?[Y].slice(J,J+X):[Y].slice(J)},async setLatest($,Z){let Y=await this.get($);return Y.version=Z,Y},async create($){if(console.warn("⚠️ Creating assistants is not supported. Assistants are generated from registered graphs. Returning mock data."),!Object.keys(G$).includes($.graphId)){if($.ifExists==="raise")throw Error(`Graph not found: ${$.graphId}`)}return{assistant_id:$.assistantId||$.graphId,graph_id:$.graphId,name:$.name||$.graphId,description:$.description||"",metadata:$.metadata||{},config:$.config||{},version:1,created_at:new Date().toISOString(),updated_at:new Date().toISOString()}}},c$=()=>{let $=()=>{return I1.globalThreadsManager};return{assistants:E6,get threads(){return I1.globalThreadsManager},runs:{list(Z,Y){return $().listRuns(Z,Y)},async cancel(Z,Y,J,X){return await I1.globalMessageQueue.cancelQueue(Y)},async*stream(Z,Y,J){J.config={...J.config??{},configurable:{...J.config?.configurable??{},graph_id:Y,thread_id:Z}};let X=$(),K=X.createRun(Z,Y,J);try{for await(let W of Y0(X,K,J,{attempt:0,getGraph:V1}))yield W;let Q=await K;await h6(X,Z,Y,Q.run_id)}catch(Q){try{let W=await K;await h6(X,Z,Y,W.run_id)}catch{}throw Q}},async*joinStream(Z,Y,J){let X=J&&typeof J==="object"&&"signal"in J?J:{},K=(J instanceof AbortSignal?J:X.signal)||new AbortController().signal,Q=null,W=null;try{Q=await I1.globalMessageQueue.getQueue(Y);let _=await Q.getAll();for(let O of _){if(K.aborted)return;if(yield{id:O.id,event:O.event,data:O.data},O.event==="__stream_end__"||O.event==="__stream_error__"||O.event==="__stream_cancel__")return}W=Q.onDataReceive();for await(let O of W){if(K.aborted)break;let{event:N,data:U}=O;if(yield{id:O.id,event:N,data:U},O.event==="__stream_end__"||O.event==="__stream_error__"||O.event==="__stream_cancel__")break}}catch(_){if(!(_ instanceof Error)||!_.message.includes("does not exist"))console.warn("Join stream failed:",_)}finally{if(W)try{await W.return(void 0)}catch(_){}}}}}};import{entrypoint as bX,getPreviousState as BX,getConfig as PX,Command as fX}from"@langchain/langgraph";import{schemaMetaRegistry as vX}from"@langchain/langgraph/zod";import{z as s}from"zod";var b0=($,Z)=>$.constructor.name===Z.name,O1=new Map;O1.set(s.ZodBoolean.name,()=>!1),O1.set(s.ZodNumber.name,()=>0),O1.set(s.ZodString.name,()=>""),O1.set(s.ZodArray.name,()=>[]),O1.set(s.ZodRecord.name,()=>({})),O1.set(s.ZodDefault.name,($)=>$.def.defaultValue),O1.set(s.ZodPipe.name,($)=>a0($.def.in)),O1.set(s.ZodOptional.name,($)=>b0($.def.innerType,s.ZodDefault)?$.def.innerType.def.defaultValue:void 0),O1.set(s.ZodTuple.name,($)=>{let Z=[];for(let Y of $.def.items)Z.push(a0(Y));return Z}),O1.set(s.ZodPipe.name,($)=>a0($.def.in)),O1.set(s.ZodUnion.name,($)=>a0($.def.options[0])),O1.set(s.ZodObject.name,($)=>B0($)),O1.set(s.ZodRecord.name,($)=>B0($)),O1.set(s.ZodIntersection.name,($)=>B0($));function a0($){let Z=$.constructor.name;if(!O1.has(Z)){console.warn("getSchemaDefaultForField: Unhandled type",$.constructor.name);return}return O1.get(Z)($)}function B0($){if(b0($,s.ZodRecord))return{};if(b0($,s.ZodPipe))return B0($.def.in);if(b0($,s.ZodIntersection))return{...B0($.def.left),...B0($.def.right)};if(b0($,s.ZodUnion)){for(let Z of $.def.options)if(b0(Z,s.ZodObject))return B0(Z);return console.warn("getSchemaDefaultObject: No object found in union, returning empty object"),{}}return b0($,s.ZodObject)?Object.fromEntries(Object.entries($.shape).map(([Z,Y])=>[Z,a0(Y)]).filter((Z)=>Z[1]!==void 0)):(console.warn(`getSchemaDefaultObject: Expected object schema, got ${$.constructor.name}`),{})}import{tool as kX,HumanMessage as yX}from"langchain";import{z as X0}from"zod";var DX=X0.object({task_store:X0.record(X0.string(),X0.any()).default({})}),VX=X0.object({task_id:X0.string().optional().describe("The task id to ask the subagent, if not provided, will use the tool call id"),subagent_id:X0.string(),task_description:X0.string().describe("Describe the user state and what you want the subagent to do."),data_transfer:X0.any().optional().describe("Data to transfer to the subagent.")});import H from"zod";var V=c$(),cZ=H.object({thread_id:H.string().optional(),thread_ts:H.string().optional()}).catchall(H.unknown()),h0=H.object({tags:H.array(H.string()).optional(),recursion_limit:H.number().int().optional(),configurable:cZ.optional()}).catchall(H.unknown()).describe("The configuration of an assistant.");H.object({assistant_id:H.string(),graph_id:H.string(),config:h0,created_at:H.string(),updated_at:H.string(),metadata:H.object({}).catchall(H.any())});var i1=H.object({source:H.union([H.literal("input"),H.literal("loop"),H.literal("update"),H.string()]).optional(),step:H.number().optional(),writes:H.any().nullable().optional(),parents:H.any().optional()}).catchall(H.unknown()),g6=H.object({node:H.string(),input:H.unknown().optional()}),d$=H.object({update:H.union([H.any(),H.array(H.tuple([H.string(),H.any()]))]).nullable().optional(),resume:H.unknown().optional(),goto:H.union([g6,H.array(g6),H.string(),H.array(H.string())]).optional()});H.object({limit:H.number().int().optional(),offset:H.number().int().optional()});var q1=H.object({thread_id:H.string()}),s0=H.object({thread_id:H.string(),run_id:H.string()}),uZ=H.object({graph_id:H.string().optional(),metadata:i1.optional(),limit:H.number().int().optional(),offset:H.number().int().optional(),sort_by:H.enum(["assistant_id","graph_id","name","created_at","updated_at"]).optional(),sort_order:H.enum(["asc","desc"]).optional()}),xZ=H.object({graph_id:H.string().optional(),metadata:i1.optional()}),dZ=H.object({xray:H.union([H.string(),H.boolean(),H.number()]).optional()}),p6=H.object({name:H.string().optional(),description:H.string().optional(),metadata:i1.optional(),config:h0.optional()}).optional(),lZ=H.object({assistant_id:H.string().optional(),graph_id:H.string().describe("The ID of graph to create an assistant from."),name:H.string().optional(),description:H.string().optional(),metadata:i1.optional(),config:h0.optional(),if_exists:H.enum(["raise","do_nothing"]).optional()}),iZ=H.object({assistant_id:H.union([H.string(),H.string()]),checkpoint_id:H.string().optional(),input:H.any().optional(),command:d$.optional(),metadata:i1.optional(),config:h0.optional(),webhook:H.string().optional(),interrupt_before:H.union([H.literal("*"),H.array(H.string())]).optional(),interrupt_after:H.union([H.literal("*"),H.array(H.string())]).optional(),on_disconnect:H.enum(["cancel","continue"]).optional().default("continue"),multitask_strategy:H.enum(["reject","rollback","interrupt","enqueue"]).optional(),stream_mode:H.array(H.enum(["values","messages","messages-tuple","updates","events","debug","custom"])).optional(),stream_subgraphs:H.boolean().optional(),stream_resumable:H.boolean().optional(),after_seconds:H.number().optional(),if_not_exists:H.enum(["create","reject"]).optional(),on_completion:H.enum(["complete","continue"]).optional(),feedback_keys:H.array(H.string()).optional(),langsmith_tracer:H.unknown().optional()}).describe("Payload for creating a stateful run."),oZ=H.object({limit:H.coerce.number().int().optional().default(10),offset:H.coerce.number().int().optional().default(0),status:H.enum(["pending","running","error","success","timeout","interrupted"]).optional()}),rZ=H.object({wait:H.coerce.boolean().optional().default(!1),action:H.enum(["interrupt","rollback"]).optional().default("interrupt")}),nZ=H.object({cancel_on_disconnect:H.coerce.boolean().optional().default(!1),last_event_id:H.string().optional(),stream_mode:H.enum(["values","messages","messages-tuple","updates","events","debug","custom"]).optional()}),aZ=H.object({thread_id:H.string().describe("The ID of thread. If not provided, an ID is generated.").optional(),metadata:i1.optional(),if_exists:H.union([H.literal("raise"),H.literal("do_nothing")]).optional()}).describe("Payload for creating a thread."),m6=H.object({ids:H.array(H.string()).describe("List of thread IDs to include. Others are excluded.").optional(),metadata:i1.describe("Metadata to search for.").optional(),status:H.enum(["idle","busy","interrupted","error"]).describe("Filter by thread status.").optional(),values:H.any().describe("Filter by thread values.").optional(),limit:H.number().int().gte(1).lte(1000).describe("Maximum number to return.").optional(),offset:H.number().int().gte(0).describe("Offset to start from.").optional(),sort_by:H.enum(["thread_id","status","created_at","updated_at"]).describe("Sort by field.").optional(),sort_order:H.enum(["asc","desc"]).describe("Sort order.").optional(),select:H.array(H.enum(["thread_id","created_at","updated_at","metadata","config","context","status","values","interrupts","title"])).describe("Specify which fields to return. If not provided, all fields are returned.").optional(),without_details:H.boolean().describe("Whether to return values.").optional()}).describe("Payload for listing threads.");H.object({values:H.union([H.record(H.string(),H.unknown()),H.array(H.record(H.string(),H.unknown()))]).nullish()}).describe("Payload for adding state to a thread.");var sZ=H.object({metadata:i1.optional(),status:H.enum(["idle","busy","interrupted","error"]).optional(),values:H.any().optional()}).describe("Payload for patching a thread."),c6=H.object({assistant_id:H.string(),input:H.any().optional(),command:d$.optional(),metadata:i1.optional(),config:h0.optional(),webhook:H.string().optional(),interrupt_before:H.union([H.literal("*"),H.array(H.string())]).optional(),interrupt_after:H.union([H.literal("*"),H.array(H.string())]).optional(),on_disconnect:H.enum(["cancel","continue"]).optional().default("continue"),multitask_strategy:H.enum(["reject","rollback","interrupt","enqueue"]).optional(),stream_mode:H.array(H.enum(["values","messages","messages-tuple","updates","events","debug","custom"])).optional(),stream_subgraphs:H.boolean().optional(),stream_resumable:H.boolean().optional(),after_seconds:H.number().optional(),if_not_exists:H.enum(["create","reject"]).optional(),on_completion:H.enum(["complete","continue"]).optional(),feedback_keys:H.array(H.string()).optional(),langsmith_tracer:H.unknown().optional()}).describe("Payload for creating a run (background/wait)."),tZ=H.object({cancel_on_disconnect:H.coerce.boolean().optional().default(!1)}),eZ=H.object({cancel_on_disconnect:H.coerce.boolean().optional().default(!1)}),O$=H.object({assistant_id:H.string().describe("The assistant ID or graph name to run."),input:H.any().optional().describe("The input to the graph."),command:d$.optional(),metadata:i1.optional().describe("Metadata to assign to the run."),config:h0.optional(),context:H.object({}).catchall(H.any()).optional().describe("Static context added to the assistant."),webhook:H.string().optional(),interrupt_before:H.union([H.literal("*"),H.array(H.string())]).optional(),interrupt_after:H.union([H.literal("*"),H.array(H.string())]).optional(),stream_mode:H.union([H.enum(["values","messages","messages-tuple","tasks","checkpoints","updates","events","debug","custom"]),H.array(H.enum(["values","messages","messages-tuple","tasks","checkpoints","updates","events","debug","custom"]))]).optional().default(["values"]),feedback_keys:H.array(H.string()).optional(),stream_subgraphs:H.boolean().optional().default(!1),stream_resumable:H.boolean().optional().default(!1)}).describe("Payload for creating a stateless run."),$2=H.array(O$).min(1).describe("Payload for creating a batch of stateless runs."),Z2=H.object({action:H.enum(["interrupt","rollback"]).optional().default("interrupt").describe("Action to take when cancelling the run."),wait:H.coerce.boolean().optional().default(!1)}),Y2=H.union([H.object({status:H.enum(["pending","running","all"]).describe("Filter runs by status to cancel.")}),H.object({thread_id:H.string().describe("The ID of the thread containing runs to cancel.")}),H.object({run_ids:H.array(H.string()).min(1).describe("List of run IDs to cancel.")})]);function $1($,Z){let Y=Z.split("/").filter((K)=>K),J=new URL($).pathname.split("/").filter((K)=>K),X={};return Y.forEach((K,Q)=>{if(K.startsWith(":")){let W=K.slice(1);X[W]=J[Q]}}),X}function j1($){let Z=new URL($).searchParams,Y={};return Z.forEach((J,X)=>{if(!isNaN(Number(J))&&J!=="")Y[X]=Number(J);else if(J==="true"||J==="false")Y[X]=J==="true";else Y[X]=J}),Y}function y($,Z){let Y=$.safeParse(Z);if(!Y.success)throw new l$(Y.error.issues);return Y.data}class l$ extends Error{errors;constructor($){super("Validation failed");this.name="ValidationError",this.errors=$}}function h($,Z=200,Y){return new Response(JSON.stringify($),{status:Z,headers:{"Content-Type":"application/json",...Y}})}function T($,Z=500){if($ instanceof l$)return h({error:"Validation Error",details:$.errors},400);return h({error:$ instanceof Error?$.message:"Unknown error"},Z)}function i$($){let Z,Y=!1,J=new AbortController,X=new ReadableStream({async start(K){Z=K;let Q=new TextEncoder,W={signal:J.signal,writeSSE:async({data:_,event:O,id:N})=>{if(Y||J.signal.aborted)return;try{let U="";if(N)U+=`id: ${N}
|
|
1
|
+
import{d as u4,e as x4}from"./chunk-j7a40ww9.js";import{f as g,g as VZ}from"./chunk-30sq2w0d.js";import{i as G$,j as u$,k as V1,m as I1,n as x$,o as Y0}from"./chunk-32ase1cw.js";import{p as a$,q as l,r as n,s as K1,t as L6,u as $1,v as hZ}from"./chunk-mjzeawnq.js";import"./chunk-heasksrr.js";import{A as q$,B as EZ,C as HZ,D as j$,E as k1,F as U$,x as f4,y as P3,z as S0}from"./chunk-cs73xbzz.js";import{G as O4,H as v6,I as q4,K as zZ,L as _Z,M as B1}from"./chunk-rncpxz1b.js";import{N as Z1,O as gZ}from"./chunk-hfve7nf5.js";import{P as T6,Q as uY,S as D6,T as y$,V as T$}from"./chunk-va71tsw3.js";import"./chunk-jxsfzfac.js";import{ca as J0,da as r1}from"./chunk-02vv5584.js";import{ea as D,fa as z,ga as G,ha as k6,ia as S$,ka as NZ,la as R4,ma as H4,na as o1,oa as y1,pa as M,qa as h1,sa as P0,ua as DZ,va as L3}from"./chunk-nwy6n6b6.js";import{Ca as r6}from"./chunk-g7pm00z7.js";import{Da as S4}from"./chunk-1y82m5kn.js";import{Fa as h4,Ga as T4,Ha as k4,Ia as C4,Ka as s3}from"./chunk-5x8nxw0t.js";import"./chunk-zwxjkwqd.js";import"./chunk-13nyfrmm.js";import"./chunk-5rr85f28.js";import"./chunk-cggjws6a.js";import"./chunk-cyexd09c.js";import"./chunk-r2h3x9zv.js";import"./chunk-1ttywx0y.js";import{ub as A,xb as w8,yb as T1}from"./chunk-kba8akjs.js";class G4{renderers=new Map;register($,Z){this.renderers.set($,Z)}get($){return this.renderers.get($)}has($){return this.renderers.has($)}list(){return Array.from(this.renderers.keys())}unregister($){this.renderers.delete($)}clear(){this.renderers.clear()}}var A0;var F$=w8(()=>{A0=new G4});var j6=A(M(),1),pZ=new T6({defaultOptions:{queries:{retry:($,Z)=>{if(Z instanceof TypeError&&Z.message.includes("fetch"))return $<2;return!1},refetchOnWindowFocus:!1,refetchOnMount:!0,refetchOnReconnect:!1,staleTime:300000,gcTime:600000,networkMode:"online"},mutations:{retry:1,networkMode:"online"}}});function V6({children:$}){return j6.jsxDEV(D6,{client:pZ,children:$},void 0,!1,void 0,this)}async function h6($,Z,Y,J){let X={threadId:Z,graphId:Y,runId:J};try{let Q=(await $.get(Z)).values;if(!Q?.messages||!Array.isArray(Q.messages)||Q.messages.length===0)return;let _=await I1.getTitleGenerator()(Q,{thread_id:Z,graph_id:Y,run_id:J});if(_){if(!await $.setTitleIfNull(Z,_))return}}catch(K){console.warn("Failed to generate thread title:",{...X,error:K instanceof Error?K.message:String(K)})}}var E6={async search($){let Z=Object.entries(G$).map(([K,Q])=>({assistant_id:K,graph_id:K,config:{},metadata:{},version:1,name:K,description:"",created_at:new Date().toISOString(),updated_at:new Date().toISOString()}));if($?.graphId)Z=Z.filter((K)=>K.graph_id===$.graphId);if($?.metadata&&Object.keys($.metadata).length>0)Z=Z.filter((K)=>{return Object.entries($.metadata).every(([Q,W])=>{return K.metadata&&K.metadata[Q]===W})});if($?.sortBy)Z.sort((K,Q)=>{let W=K[$.sortBy],_=Q[$.sortBy],O=W<_?-1:W>_?1:0;return $.sortOrder==="desc"?-O:O});let Y=$?.offset??0,J=$?.limit;return J?Z.slice(Y,Y+J):Z.slice(Y)},async count($){return(await this.search($)).length},async get($){if(!Object.entries(G$).find(([Y,J])=>Y===$))throw Error(`Assistant not found: ${$}`);return{assistant_id:$,graph_id:$,config:{},created_at:new Date().toISOString(),updated_at:new Date().toISOString(),metadata:{},version:1,name:$,description:""}},async delete($){throw Error("Deleting assistants is not supported. Assistants are generated from registered graphs.")},async update($,Z){throw Error("Updating assistants is not supported. Assistants are generated from registered graphs.")},async getGraph($,Z){let Y={};return(await(await V1($,Y)).getGraphAsync({...Y,xray:Z?.xray??void 0})).toJSON()},async getSchemas($){let Y=(await V1($,{})).builder;return console.log(Y),{graph_id:$,state_schema:Y._inputDefinition,input_schema:Y._inputDefinition,output_schema:Y._outputDefinition,config_schema:Y._configSchema,context_schema:Y._configSchema}},async getVersions($,Z){let Y=await this.get($),J=Z?.offset??0,X=Z?.limit;return X?[Y].slice(J,J+X):[Y].slice(J)},async setLatest($,Z){let Y=await this.get($);return Y.version=Z,Y},async create($){if(console.warn("⚠️ Creating assistants is not supported. Assistants are generated from registered graphs. Returning mock data."),!Object.keys(G$).includes($.graphId)){if($.ifExists==="raise")throw Error(`Graph not found: ${$.graphId}`)}return{assistant_id:$.assistantId||$.graphId,graph_id:$.graphId,name:$.name||$.graphId,description:$.description||"",metadata:$.metadata||{},config:$.config||{},version:1,created_at:new Date().toISOString(),updated_at:new Date().toISOString()}}},c$=()=>{let $=()=>{return I1.globalThreadsManager};return{assistants:E6,get threads(){return I1.globalThreadsManager},runs:{list(Z,Y){return $().listRuns(Z,Y)},async cancel(Z,Y,J,X){return await I1.globalMessageQueue.cancelQueue(Y)},async*stream(Z,Y,J){J.config={...J.config??{},configurable:{...J.config?.configurable??{},graph_id:Y,thread_id:Z}};let X=$(),K=X.createRun(Z,Y,J);try{for await(let W of Y0(X,K,J,{attempt:0,getGraph:V1}))yield W;let Q=await K;await h6(X,Z,Y,Q.run_id)}catch(Q){try{let W=await K;await h6(X,Z,Y,W.run_id)}catch{}throw Q}},async*joinStream(Z,Y,J){let X=J&&typeof J==="object"&&"signal"in J?J:{},K=(J instanceof AbortSignal?J:X.signal)||new AbortController().signal,Q=null,W=null;try{Q=await I1.globalMessageQueue.getQueue(Y);let _=await Q.getAll();for(let O of _){if(K.aborted)return;if(yield{id:O.id,event:O.event,data:O.data},O.event==="__stream_end__"||O.event==="__stream_error__"||O.event==="__stream_cancel__")return}W=Q.onDataReceive();for await(let O of W){if(K.aborted)break;let{event:N,data:U}=O;if(yield{id:O.id,event:N,data:U},O.event==="__stream_end__"||O.event==="__stream_error__"||O.event==="__stream_cancel__")break}}catch(_){if(!(_ instanceof Error)||!_.message.includes("does not exist"))console.warn("Join stream failed:",_)}finally{if(W)try{await W.return(void 0)}catch(_){}}}}}};import{entrypoint as RX,getPreviousState as bX,getConfig as BX,Command as PX}from"@langchain/langgraph";import{schemaMetaRegistry as CX}from"@langchain/langgraph/zod";import{z as s}from"zod";var b0=($,Z)=>$.constructor.name===Z.name,O1=new Map;O1.set(s.ZodBoolean.name,()=>!1),O1.set(s.ZodNumber.name,()=>0),O1.set(s.ZodString.name,()=>""),O1.set(s.ZodArray.name,()=>[]),O1.set(s.ZodRecord.name,()=>({})),O1.set(s.ZodDefault.name,($)=>$.def.defaultValue),O1.set(s.ZodPipe.name,($)=>a0($.def.in)),O1.set(s.ZodOptional.name,($)=>b0($.def.innerType,s.ZodDefault)?$.def.innerType.def.defaultValue:void 0),O1.set(s.ZodTuple.name,($)=>{let Z=[];for(let Y of $.def.items)Z.push(a0(Y));return Z}),O1.set(s.ZodPipe.name,($)=>a0($.def.in)),O1.set(s.ZodUnion.name,($)=>a0($.def.options[0])),O1.set(s.ZodObject.name,($)=>B0($)),O1.set(s.ZodRecord.name,($)=>B0($)),O1.set(s.ZodIntersection.name,($)=>B0($));function a0($){let Z=$.constructor.name;if(!O1.has(Z)){console.warn("getSchemaDefaultForField: Unhandled type",$.constructor.name);return}return O1.get(Z)($)}function B0($){if(b0($,s.ZodRecord))return{};if(b0($,s.ZodPipe))return B0($.def.in);if(b0($,s.ZodIntersection))return{...B0($.def.left),...B0($.def.right)};if(b0($,s.ZodUnion)){for(let Z of $.def.options)if(b0(Z,s.ZodObject))return B0(Z);return console.warn("getSchemaDefaultObject: No object found in union, returning empty object"),{}}return b0($,s.ZodObject)?Object.fromEntries(Object.entries($.shape).map(([Z,Y])=>[Z,a0(Y)]).filter((Z)=>Z[1]!==void 0)):(console.warn(`getSchemaDefaultObject: Expected object schema, got ${$.constructor.name}`),{})}import{tool as IX,HumanMessage as kX}from"langchain";import{z as X0}from"zod";var TX=X0.object({task_store:X0.record(X0.string(),X0.any()).default({})}),DX=X0.object({task_id:X0.string().optional().describe("The task id to ask the subagent, if not provided, will use the tool call id"),subagent_id:X0.string(),task_description:X0.string().describe("Describe the user state and what you want the subagent to do."),data_transfer:X0.any().optional().describe("Data to transfer to the subagent.")});import H from"zod";var V=c$(),mZ=H.object({thread_id:H.string().optional(),thread_ts:H.string().optional()}).catchall(H.unknown()),h0=H.object({tags:H.array(H.string()).optional(),recursion_limit:H.number().int().optional(),configurable:mZ.optional()}).catchall(H.unknown()).describe("The configuration of an assistant.");H.object({assistant_id:H.string(),graph_id:H.string(),config:h0,created_at:H.string(),updated_at:H.string(),metadata:H.object({}).catchall(H.any())});var i1=H.object({source:H.union([H.literal("input"),H.literal("loop"),H.literal("update"),H.string()]).optional(),step:H.number().optional(),writes:H.any().nullable().optional(),parents:H.any().optional()}).catchall(H.unknown()),g6=H.object({node:H.string(),input:H.unknown().optional()}),d$=H.object({update:H.union([H.any(),H.array(H.tuple([H.string(),H.any()]))]).nullable().optional(),resume:H.unknown().optional(),goto:H.union([g6,H.array(g6),H.string(),H.array(H.string())]).optional()});H.object({limit:H.number().int().optional(),offset:H.number().int().optional()});var q1=H.object({thread_id:H.string()}),s0=H.object({thread_id:H.string(),run_id:H.string()}),cZ=H.object({graph_id:H.string().optional(),metadata:i1.optional(),limit:H.number().int().optional(),offset:H.number().int().optional(),sort_by:H.enum(["assistant_id","graph_id","name","created_at","updated_at"]).optional(),sort_order:H.enum(["asc","desc"]).optional()}),uZ=H.object({graph_id:H.string().optional(),metadata:i1.optional()}),xZ=H.object({xray:H.union([H.string(),H.boolean(),H.number()]).optional()}),p6=H.object({name:H.string().optional(),description:H.string().optional(),metadata:i1.optional(),config:h0.optional()}).optional(),dZ=H.object({assistant_id:H.string().optional(),graph_id:H.string().describe("The ID of graph to create an assistant from."),name:H.string().optional(),description:H.string().optional(),metadata:i1.optional(),config:h0.optional(),if_exists:H.enum(["raise","do_nothing"]).optional()}),lZ=H.object({assistant_id:H.union([H.string(),H.string()]),checkpoint_id:H.string().optional(),input:H.any().optional(),command:d$.optional(),metadata:i1.optional(),config:h0.optional(),webhook:H.string().optional(),interrupt_before:H.union([H.literal("*"),H.array(H.string())]).optional(),interrupt_after:H.union([H.literal("*"),H.array(H.string())]).optional(),on_disconnect:H.enum(["cancel","continue"]).optional().default("continue"),multitask_strategy:H.enum(["reject","rollback","interrupt","enqueue"]).optional(),stream_mode:H.array(H.enum(["values","messages","messages-tuple","updates","events","debug","custom"])).optional(),stream_subgraphs:H.boolean().optional(),stream_resumable:H.boolean().optional(),after_seconds:H.number().optional(),if_not_exists:H.enum(["create","reject"]).optional(),on_completion:H.enum(["complete","continue"]).optional(),feedback_keys:H.array(H.string()).optional(),langsmith_tracer:H.unknown().optional()}).describe("Payload for creating a stateful run."),iZ=H.object({limit:H.coerce.number().int().optional().default(10),offset:H.coerce.number().int().optional().default(0),status:H.enum(["pending","running","error","success","timeout","interrupted"]).optional()}),oZ=H.object({wait:H.coerce.boolean().optional().default(!1),action:H.enum(["interrupt","rollback"]).optional().default("interrupt")}),rZ=H.object({cancel_on_disconnect:H.coerce.boolean().optional().default(!1),last_event_id:H.string().optional(),stream_mode:H.enum(["values","messages","messages-tuple","updates","events","debug","custom"]).optional()}),nZ=H.object({thread_id:H.string().describe("The ID of thread. If not provided, an ID is generated.").optional(),metadata:i1.optional(),if_exists:H.union([H.literal("raise"),H.literal("do_nothing")]).optional()}).describe("Payload for creating a thread."),m6=H.object({ids:H.array(H.string()).describe("List of thread IDs to include. Others are excluded.").optional(),metadata:i1.describe("Metadata to search for.").optional(),status:H.enum(["idle","busy","interrupted","error"]).describe("Filter by thread status.").optional(),values:H.any().describe("Filter by thread values.").optional(),limit:H.number().int().gte(1).lte(1000).describe("Maximum number to return.").optional(),offset:H.number().int().gte(0).describe("Offset to start from.").optional(),sort_by:H.enum(["thread_id","status","created_at","updated_at"]).describe("Sort by field.").optional(),sort_order:H.enum(["asc","desc"]).describe("Sort order.").optional(),select:H.array(H.enum(["thread_id","created_at","updated_at","metadata","config","context","status","values","interrupts","title"])).describe("Specify which fields to return. If not provided, all fields are returned.").optional(),without_details:H.boolean().describe("Whether to return values.").optional()}).describe("Payload for listing threads.");H.object({values:H.union([H.record(H.string(),H.unknown()),H.array(H.record(H.string(),H.unknown()))]).nullish()}).describe("Payload for adding state to a thread.");var aZ=H.object({metadata:i1.optional(),status:H.enum(["idle","busy","interrupted","error"]).optional(),values:H.any().optional()}).describe("Payload for patching a thread."),c6=H.object({assistant_id:H.string(),input:H.any().optional(),command:d$.optional(),metadata:i1.optional(),config:h0.optional(),webhook:H.string().optional(),interrupt_before:H.union([H.literal("*"),H.array(H.string())]).optional(),interrupt_after:H.union([H.literal("*"),H.array(H.string())]).optional(),on_disconnect:H.enum(["cancel","continue"]).optional().default("continue"),multitask_strategy:H.enum(["reject","rollback","interrupt","enqueue"]).optional(),stream_mode:H.array(H.enum(["values","messages","messages-tuple","updates","events","debug","custom"])).optional(),stream_subgraphs:H.boolean().optional(),stream_resumable:H.boolean().optional(),after_seconds:H.number().optional(),if_not_exists:H.enum(["create","reject"]).optional(),on_completion:H.enum(["complete","continue"]).optional(),feedback_keys:H.array(H.string()).optional(),langsmith_tracer:H.unknown().optional()}).describe("Payload for creating a run (background/wait)."),sZ=H.object({cancel_on_disconnect:H.coerce.boolean().optional().default(!1)}),tZ=H.object({cancel_on_disconnect:H.coerce.boolean().optional().default(!1)}),O$=H.object({assistant_id:H.string().describe("The assistant ID or graph name to run."),input:H.any().optional().describe("The input to the graph."),command:d$.optional(),metadata:i1.optional().describe("Metadata to assign to the run."),config:h0.optional(),context:H.object({}).catchall(H.any()).optional().describe("Static context added to the assistant."),webhook:H.string().optional(),interrupt_before:H.union([H.literal("*"),H.array(H.string())]).optional(),interrupt_after:H.union([H.literal("*"),H.array(H.string())]).optional(),stream_mode:H.union([H.enum(["values","messages","messages-tuple","tasks","checkpoints","updates","events","debug","custom"]),H.array(H.enum(["values","messages","messages-tuple","tasks","checkpoints","updates","events","debug","custom"]))]).optional().default(["values"]),feedback_keys:H.array(H.string()).optional(),stream_subgraphs:H.boolean().optional().default(!1),stream_resumable:H.boolean().optional().default(!1)}).describe("Payload for creating a stateless run."),eZ=H.array(O$).min(1).describe("Payload for creating a batch of stateless runs."),$2=H.object({action:H.enum(["interrupt","rollback"]).optional().default("interrupt").describe("Action to take when cancelling the run."),wait:H.coerce.boolean().optional().default(!1)}),Z2=H.union([H.object({status:H.enum(["pending","running","all"]).describe("Filter runs by status to cancel.")}),H.object({thread_id:H.string().describe("The ID of the thread containing runs to cancel.")}),H.object({run_ids:H.array(H.string()).min(1).describe("List of run IDs to cancel.")})]);function e($,Z){let Y=Z.split("/").filter((K)=>K),J=new URL($).pathname.split("/").filter((K)=>K),X={};return Y.forEach((K,Q)=>{if(K.startsWith(":")){let W=K.slice(1);X[W]=J[Q]}}),X}function j1($){let Z=new URL($).searchParams,Y={};return Z.forEach((J,X)=>{if(!isNaN(Number(J))&&J!=="")Y[X]=Number(J);else if(J==="true"||J==="false")Y[X]=J==="true";else Y[X]=J}),Y}function y($,Z){let Y=$.safeParse(Z);if(!Y.success)throw new l$(Y.error.issues);return Y.data}class l$ extends Error{errors;constructor($){super("Validation failed");this.name="ValidationError",this.errors=$}}function h($,Z=200,Y){return new Response(JSON.stringify($),{status:Z,headers:{"Content-Type":"application/json",...Y}})}function T($,Z=500){if($ instanceof l$)return h({error:"Validation Error",details:$.errors},400);return h({error:$ instanceof Error?$.message:"Unknown error"},Z)}function i$($){let Z,Y=!1,J=new AbortController,X=new ReadableStream({async start(K){Z=K;let Q=new TextEncoder,W={signal:J.signal,writeSSE:async({data:_,event:O,id:N})=>{if(Y||J.signal.aborted)return;try{let U="";if(N)U+=`id: ${N}
|
|
2
2
|
`;if(O)U+=`event: ${O}
|
|
3
3
|
`;U+=`data: ${_}
|
|
4
4
|
|
|
5
|
-
`,Z.enqueue(Q.encode(U))}catch(U){if(!Y&&!J.signal.aborted)throw U}},close:()=>{if(!Y){Y=!0;try{Z.close()}catch(_){}}}};try{await $(W)}catch(_){if(!J.signal.aborted)console.error("SSE stream error:",_)}finally{if(!Y){Y=!0;try{Z.close()}catch(_){}}}},cancel(){if(Y=!0,!J.signal.aborted)J.abort("Client disconnected")}});return new Response(X,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}function o$($,Z=process.env.HEARTBEAT_INTERVAL?parseInt(process.env.HEARTBEAT_INTERVAL):1500){return async(Y)=>{let J=null,X=!1,K=()=>{if(J)clearInterval(J),J=null},Q=()=>{K(),J=setInterval(async()=>{if(Y.signal.aborted||X){K();return}try{await Y.writeSSE({event:"ping",data:"{}"})}catch(O){K()}},Z)},W=()=>{K()};Y.signal.addEventListener("abort",W);let _={signal:Y.signal,writeSSE:async(O)=>{if(Y.signal.aborted)return;if(K(),await Y.writeSSE(O),!Y.signal.aborted)Q()},close:()=>{K(),Y.close()}};Q();try{await $(_)}finally{X=!0,K(),Y.signal.removeEventListener("abort",W)}}}async function
|
|
5
|
+
`,Z.enqueue(Q.encode(U))}catch(U){if(!Y&&!J.signal.aborted)throw U}},close:()=>{if(!Y){Y=!0;try{Z.close()}catch(_){}}}};try{await $(W)}catch(_){if(!J.signal.aborted)console.error("SSE stream error:",_)}finally{if(!Y){Y=!0;try{Z.close()}catch(_){}}}},cancel(){if(Y=!0,!J.signal.aborted)J.abort("Client disconnected")}});return new Response(X,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}function o$($,Z=process.env.HEARTBEAT_INTERVAL?parseInt(process.env.HEARTBEAT_INTERVAL):1500){return async(Y)=>{let J=null,X=!1,K=()=>{if(J)clearInterval(J),J=null},Q=()=>{K(),J=setInterval(async()=>{if(Y.signal.aborted||X){K();return}try{await Y.writeSSE({event:"ping",data:"{}"})}catch(O){K()}},Z)},W=()=>{K()};Y.signal.addEventListener("abort",W);let _={signal:Y.signal,writeSSE:async(O)=>{if(Y.signal.aborted)return;if(K(),await Y.writeSSE(O),!Y.signal.aborted)Q()},close:()=>{K(),Y.close()}};Q();try{await $(_)}finally{X=!0,K(),Y.signal.removeEventListener("abort",W)}}}async function Y2($,Z){try{let Y=await $.json(),J=y(cZ,Y),X=await V.assistants.search(K1(J));return h(X,200,{"X-Pagination-Total":"0"})}catch(Y){return T(Y)}}async function X2($,Z){try{let Y=await $.json(),J=y(uZ,Y),X=await V.assistants.count(K1(J));return h(X)}catch(Y){return T(Y)}}async function J2($,Z){try{let X=new URL($.url).pathname.split("/").filter((Q)=>Q)[1],K=await V.assistants.get(X);return h(K)}catch(Y){return T(Y)}}async function K2($,Z){try{let X=new URL($.url).pathname.split("/").filter((K)=>K)[1];return await V.assistants.delete(X),h({})}catch(Y){return T(Y)}}async function Q2($,Z){try{let X=new URL($.url).pathname.split("/").filter((_)=>_)[1],K=await $.json(),Q=y(p6,K),W=await V.assistants.update(X,K1(Q));return h(W)}catch(Y){return T(Y)}}async function W2($,Z){try{let X=new URL($.url).pathname.split("/").filter((_)=>_)[1],K=j1($.url),{xray:Q}=y(xZ,K),W=await V.assistants.getGraph(X,{xray:Q!==void 0?Q==="true":void 0});return h(W)}catch(Y){return T(Y)}}async function _2($,Z){return T({},501)}async function G2($,Z){return T({},501)}async function O2($,Z){try{let X=new URL($.url).pathname.split("/").filter((Q)=>Q)[1],K=await V.assistants.getSchemas(X);return h(K)}catch(Y){return T(Y)}}async function U2($,Z){try{let X=new URL($.url).pathname.split("/").filter((_)=>_)[1],K=await $.json(),Q=y(p6,K),W=await V.assistants.getVersions(X,K1(Q));return h(W)}catch(Y){return T(Y)}}async function N2($,Z){try{let X=new URL($.url).pathname.split("/").filter((_)=>_)[1],K=j1($.url),Q=K.version?parseInt(K.version):1,W=await V.assistants.setLatest(X,Q);return h(W)}catch(Y){return T(Y)}}async function z2($,Z){try{let Y=await $.json(),J=y(dZ,Y),X=await V.assistants.create(K1(J));return h(X)}catch(Y){return T(Y)}}async function H2($,Z){try{let Y=await $.json(),J=y(nZ,Y),X=await V.threads.create(K1(J));return h(X)}catch(Y){return T(Y)}}async function F2($,Z){try{let Y=await $.json(),J=y(m6,Y),X=await V.threads.search(K1(J));return h(X,200,{"X-Pagination-Total":X.length.toString()})}catch(Y){return T(Y)}}async function L2($,Z){try{let Y=await $.json(),J=y(m6.partial(),Y),X=await V.threads.count(K1(J));return h(X)}catch(Y){return T(Y)}}async function A2($,Z){try{let Y=e($.url,"/threads/:thread_id"),{thread_id:J}=y(q1,Y),X=await V.threads.get(J);return h(X)}catch(Y){return T(Y)}}async function q2($,Z){try{let Y=e($.url,"/threads/:thread_id"),{thread_id:J}=y(q1,Y),X=await $.json(),K=y(aZ,X),Q=await V.threads.patch(J,K1(K));return h(Q)}catch(Y){return T(Y)}}async function w2($,Z){try{let Y=e($.url,"/threads/:thread_id"),{thread_id:J}=y(q1,Y);return await V.threads.delete(J),new Response(null,{status:204})}catch(Y){return T(Y)}}async function M2($,Z){try{let Y=e($.url,"/threads/:thread_id/state"),{thread_id:J}=y(q1,Y),X=j1($.url),K={subgraphs:X.subgraphs==="true"||X.subgraphs===!0},Q=await V.threads.getState(J,K);return h(Q)}catch(Y){return T(Y)}}async function R2($,Z){try{let Y=e($.url,"/threads/:thread_id/state"),{thread_id:J}=y(q1,Y),X=await $.json(),K=await V.threads.updateState(J,K1(X));return h(K)}catch(Y){return T(Y)}}async function b2($,Z){try{let Y=e($.url,"/threads/:thread_id/state/checkpoint"),{thread_id:J}=y(q1,Y),X=await $.json(),K=j1($.url),Q={subgraphs:K.subgraphs==="true"||K.subgraphs===!0,...X},W=await V.threads.getState(J,Q);return h(W)}catch(Y){return T(Y)}}async function B2($,Z){try{let Y=e($.url,"/threads/:thread_id/history"),{thread_id:J}=y(q1,Y),X=j1($.url),K={limit:X.limit?parseInt(X.limit,10):void 0,before:X.before},Q=await V.threads.getStateHistory(J,K);return h(Q)}catch(Y){return T(Y)}}async function P2($,Z){try{let Y=e($.url,"/threads/:thread_id/history"),{thread_id:J}=y(q1,Y),X=await $.json(),K={limit:X.limit,before:X.before},Q=await V.threads.getStateHistory(J,K);return h(Q)}catch(Y){return T(Y)}}async function f2($,Z){try{let Y=e($.url,"/threads/:thread_id/copy"),{thread_id:J}=y(q1,Y),X=await V.threads.copy(J);return h(X)}catch(Y){return T(Y)}}async function C2($,Z){try{let Y=e($.url,"/threads/:thread_id/stream"),{thread_id:J}=y(q1,Y),X=j1($.url),K={lastEventId:$.headers.get("Last-Event-ID")||X.last_event_id,streamModes:X.stream_modes?Array.isArray(X.stream_modes)?X.stream_modes:[X.stream_modes]:void 0};return new Response(`data: {"status": "stream_ready"}
|
|
6
6
|
|
|
7
|
-
`,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}catch(Y){return T(Y)}}async function S2($,Z){try{let Y=$1($.url,"/threads/:thread_id/runs/stream"),{thread_id:J}=y(q1,Y),X=await $.json(),K=y(iZ,X);return i$(o$(async(Q)=>{K.config=K.config||{},K.config.configurable=K.config.configurable||{};let W=Z?.langgraph_context;if(W)Object.assign(K.config.configurable,W);let _=null,O=!1,N=()=>{O=!0};Q.signal.addEventListener("abort",N);try{_=V.runs.stream(J,K.assistant_id,K1(K));for await(let{event:U,data:F}of _){if(O||Q.signal.aborted)break;await Q.writeSSE({data:x$(F)??"",event:U})}}catch(U){if(!Q.signal.aborted&&!O)throw U}finally{if(Q.signal.removeEventListener("abort",N),_){try{await _.return(void 0)}catch(U){}_=null}}}))}catch(Y){return T(Y)}}async function I2($,Z){try{let Y=$1($.url,"/threads/:thread_id/runs/:run_id/stream"),{thread_id:J,run_id:X}=y(s0,Y),K=j1($.url),{cancel_on_disconnect:Q,last_event_id:W,stream_mode:_}=y(nZ,K);return i$(o$(async(O)=>{let N=new AbortController,U=null,F=!1,L=[],q=()=>{N.abort("Client disconnected")};if($.signal)$.signal.addEventListener("abort",q),L.push({signal:$.signal,handler:q});let w=()=>{F=!0,N.abort("SSE stream closed")};O.signal.addEventListener("abort",w),L.push({signal:O.signal,handler:w});try{U=V.runs.joinStream(J,X,{signal:N.signal,cancelOnDisconnect:Q,lastEventId:W,streamMode:_?[_]:void 0});for await(let{event:R,data:P,id:S}of U){if(F||O.signal.aborted||N.signal.aborted)break;await O.writeSSE({data:x$(P)??"",event:R,id:S})}}catch(R){if(!(N.signal.aborted||O.signal.aborted)&&!(R instanceof Error&&R.message.includes("user cancel")))console.error("Join stream error:",R),await O.writeSSE({event:"error",data:JSON.stringify({error:R instanceof Error?R.message:"Unknown error"})})}finally{for(let{signal:R,handler:P}of L)try{R.removeEventListener("abort",P)}catch(S){}if(U){try{await U.return(void 0)}catch(R){}U=null}}}))}catch(Y){return T(Y)}}async function k2($,Z){try{let Y=$1($.url,"/threads/:thread_id/runs"),{thread_id:J}=y(q1,Y),X=j1($.url),{limit:K,offset:Q,status:W}=y(oZ,X),_=await V.runs.list(J,{limit:K,offset:Q,status:W});return h(_)}catch(Y){return T(Y)}}async function y2($,Z){try{let Y=$1($.url,"/threads/:thread_id/runs/:run_id/cancel"),{thread_id:J,run_id:X}=y(s0,Y),K=j1($.url),{wait:Q,action:W}=y(rZ,K),_=V.runs.cancel(J,X,Q,W);if(Q)await _;return new Response(null,{status:Q?204:202})}catch(Y){return T(Y)}}async function T2($,Z){try{let Y=$1($.url,"/threads/:thread_id/runs"),{thread_id:J}=y(q1,Y),X=await $.json(),K=y(c6,X),Q=K1(K);Q.config=Q.config||{},Q.config.configurable=Q.config.configurable||{};let W=Z?.langgraph_context;if(W)Object.assign(Q.config.configurable,W);Q.config.configurable.graph_id=K.assistant_id,Q.config.configurable.thread_id=J;let _=V.threads,O=await _.createRun(J,K.assistant_id,Q);return(async()=>{let N=!1;try{for await(let U of Y0(_,O,Q,{attempt:0,getGraph:V1}));}catch(U){console.error("Background run error:",U)}finally{if(!N){N=!0;try{await I1.globalMessageQueue.removeQueue(O.run_id)}catch(U){}}}})(),h(O,200,{"Content-Location":`/threads/${J}/runs/${O.run_id}`})}catch(Y){return T(Y)}}async function D2($,Z){try{let Y=$1($.url,"/threads/:thread_id/runs/wait"),{thread_id:J}=y(q1,Y),X=await $.json(),K=y(c6,X),Q=j1($.url),{cancel_on_disconnect:W}=y(tZ,Q),_=K1(K);_.config=_.config||{},_.config.configurable=_.config.configurable||{};let O=Z?.langgraph_context;if(O)Object.assign(_.config.configurable,O);_.config.configurable.graph_id=K.assistant_id,_.config.configurable.thread_id=J;let N=V.threads,U=await N.createRun(J,K.assistant_id,_),F={};for await(let{event:L,data:q}of Y0(N,U,_,{attempt:0,getGraph:V1}))if(L==="end"||L==="writes/value"){if(q&&typeof q==="object")Object.assign(F,q)}return h(F,200,{"Content-Location":`/threads/${J}/runs/${U.run_id}`})}catch(Y){return T(Y)}}async function V2($,Z){try{let Y=$1($.url,"/threads/:thread_id/runs/:run_id"),{thread_id:J,run_id:X}=y(s0,Y),Q=(await V.runs.list(J,{limit:1000})).find((W)=>W.run_id===X);if(!Q)return T(Error("Run not found"),404);return h(Q)}catch(Y){return T(Y)}}async function j2($,Z){try{let Y=$1($.url,"/threads/:thread_id/runs/:run_id"),{thread_id:J,run_id:X}=y(s0,Y);return await V.threads.updateRun(X,{status:"deleted"}),new Response(null,{status:204})}catch(Y){return T(Y)}}async function h2($,Z){try{let Y=$1($.url,"/threads/:thread_id/runs/:run_id/join"),{thread_id:J,run_id:X}=y(s0,Y),K=j1($.url),{cancel_on_disconnect:Q}=y(eZ,K),_=(await V.runs.list(J,{limit:1000})).find((U)=>U.run_id===X);if(!_)return T(Error("Run not found"),404);if(_.status==="success"||_.status==="error")return h({});let O=new AbortController;if(Q){let U=()=>{O.abort("Client disconnected")};$.signal?.addEventListener("abort",U)}let N={};for await(let{event:U,data:F}of V.runs.joinStream(J,X,{signal:O.signal,cancelOnDisconnect:Q}))if(U.event==="end"||U.event==="writes/value"){if(F&&typeof F==="object")Object.assign(N,F)}return h(N)}catch(Y){return T(Y)}}async function E2($,Z){try{let Y=await $.json(),J=y(O$,Y),X=K1(J);X.config=X.config||{},X.config.configurable=X.config.configurable||{};let K=Z?.langgraph_context;if(K)Object.assign(X.config.configurable,K);let Q=V.threads,W=await Q.create({metadata:{...X.metadata,temporary:!0}});X.config.configurable.graph_id=J.assistant_id,X.config.configurable.thread_id=W.thread_id,X.temporary=!0;let _=await Q.createRun(W.thread_id,J.assistant_id,X);return(async()=>{let O=!1;try{for await(let N of Y0(Q,_,X,{attempt:0,getGraph:V1}));}catch(N){console.error("Stateless run error:",N)}finally{try{await Q.delete(W.thread_id)}catch(N){console.error("Error cleaning up temporary thread:",N)}if(!O){O=!0;try{await I1.globalMessageQueue.removeQueue(_.run_id)}catch(N){}}}})(),h(_,200,{"Content-Location":`/threads/${W.thread_id}/runs/${_.run_id}`})}catch(Y){return T(Y)}}async function g2($,Z){try{let Y=await $.json(),J=y(O$,Y),X=K1(J);X.config=X.config||{},X.config.configurable=X.config.configurable||{};let K=Z?.langgraph_context;if(K)Object.assign(X.config.configurable,K);let Q=V.threads,W=await Q.create({metadata:{...X.metadata,temporary:!0}});X.config.configurable.graph_id=J.assistant_id,X.config.configurable.thread_id=W.thread_id,X.temporary=!0;let _=await Q.createRun(W.thread_id,J.assistant_id,X);return i$(o$(async(O)=>{try{for await(let N of Y0(Q,_,X,{attempt:0,getGraph:V1}))await O.writeSSE({data:JSON.stringify(N),event:"data"})}catch(N){if(N instanceof Error&&N.name!=="AbortError")throw console.error("Stream error:",N),N}finally{try{await Q.delete(W.thread_id)}catch(N){console.error("Error cleaning up temporary thread:",N)}}}))}catch(Y){return T(Y)}}async function p2($,Z){try{let Y=await $.json(),J=y(O$,Y),X=K1(J);X.config=X.config||{},X.config.configurable=X.config.configurable||{};let K=Z?.langgraph_context;if(K)Object.assign(X.config.configurable,K);let Q=V.threads,W=await Q.create({metadata:{...X.metadata,temporary:!0}});X.config.configurable.graph_id=J.assistant_id,X.config.configurable.thread_id=W.thread_id,X.temporary=!0;let _=await Q.createRun(W.thread_id,J.assistant_id,X),O={};try{for await(let{event:N,data:U}of Y0(Q,_,X,{attempt:0,getGraph:V1}))if(N==="end"||N==="writes/value"){if(U&&typeof U==="object")Object.assign(O,U)}}finally{try{await Q.delete(W.thread_id)}catch(N){console.error("Error cleaning up temporary thread:",N)}}return h(O,200,{"Content-Location":`/threads/${W.thread_id}/runs/${_.run_id}`})}catch(Y){return T(Y)}}async function m2($,Z){try{let Y=await $.json(),J=y($2,Y),X=V.threads,K=[],Q=J.map(async(_)=>{try{let O=K1(_);O.config=O.config||{},O.config.configurable=O.config.configurable||{};let N=Z?.langgraph_context;if(N)Object.assign(O.config.configurable,N);let U=await X.create({metadata:{...O.metadata,temporary:!0}});O.config.configurable.graph_id=_.assistant_id,O.config.configurable.thread_id=U.thread_id,O.temporary=!0;let F=await X.createRun(U.thread_id,_.assistant_id,O);return(async()=>{let L=!1;try{for await(let q of Y0(X,F,O,{attempt:0,getGraph:V1}));}catch(q){console.error("Batch run error:",q)}finally{try{await X.delete(U.thread_id)}catch(q){console.error("Error cleaning up temporary thread:",q)}if(!L){L=!0;try{await I1.globalMessageQueue.removeQueue(F.run_id)}catch(q){}}}})(),{thread_id:U.thread_id,run_id:F.run_id}}catch(O){return console.error("Batch run creation error:",O),{error:(O instanceof Error?O.message:"Unknown error")||"Unknown error"}}}),W=await Promise.all(Q);return K.push(...W),h(K,200)}catch(Y){return T(Y)}}async function c2($,Z){try{let Y=await $.json(),J=y(Y2,Y),X=new URL($.url),K=y(Z2,{action:X.searchParams.get("action")||"interrupt"}),Q=V.threads,W=[];if("run_ids"in J&&J.run_ids)for(let _ of J.run_ids)try{console.warn(`Cancel by run_id ${_} not fully implemented yet`)}catch(O){console.error(`Error cancelling run ${_}:`,O)}else if("thread_id"in J&&J.thread_id){let _=J.thread_id;try{let O=await Q.listRuns(_,{limit:1000,offset:0});for(let N of O)try{V.runs.cancel(_,N.run_id,K.wait,K.action),W.push(N.run_id)}catch(U){console.error(`Error cancelling run ${N.run_id}:`,U)}}catch(O){console.error(`Error listing runs for thread ${_}:`,O)}}else if("status"in J&&J.status)console.warn(`Cancel by status ${J.status} not fully implemented yet`);return new Response(null,{status:204})}catch(Y){return T(Y)}}var u2=[{method:"POST",pattern:/^\/assistants\/search$/,handler:X2},{method:"POST",pattern:/^\/assistants\/count$/,handler:J2},{method:"GET",pattern:/^\/assistants\/[^/]+$/,handler:K2},{method:"DELETE",pattern:/^\/assistants\/[^/]+$/,handler:Q2},{method:"PATCH",pattern:/^\/assistants\/[^/]+$/,handler:W2},{method:"GET",pattern:/^\/assistants\/[^/]+\/graph$/,handler:_2},{method:"GET",pattern:/^\/assistants\/[^/]+\/subgraphs$/,handler:G2},{method:"GET",pattern:/^\/assistants\/[^/]+\/subgraphs\/[^/]+$/,handler:O2},{method:"GET",pattern:/^\/assistants\/[^/]+\/schemas$/,handler:U2},{method:"POST",pattern:/^\/assistants\/[^/]+\/versions$/,handler:N2},{method:"POST",pattern:/^\/assistants\/[^/]+\/latest$/,handler:z2},{method:"POST",pattern:/^\/assistants$/,handler:H2},{method:"POST",pattern:/^\/threads$/,handler:F2},{method:"POST",pattern:/^\/threads\/search$/,handler:L2},{method:"POST",pattern:/^\/threads\/count$/,handler:A2},{method:"GET",pattern:/^\/threads\/[^/]+$/,handler:q2},{method:"PATCH",pattern:/^\/threads\/[^/]+$/,handler:w2},{method:"DELETE",pattern:/^\/threads\/[^/]+$/,handler:M2},{method:"GET",pattern:/^\/threads\/[^/]+\/state$/,handler:R2},{method:"POST",pattern:/^\/threads\/[^/]+\/state$/,handler:b2},{method:"POST",pattern:/^\/threads\/[^/]+\/state\/checkpoint$/,handler:B2},{method:"GET",pattern:/^\/threads\/[^/]+\/history$/,handler:P2},{method:"POST",pattern:/^\/threads\/[^/]+\/history$/,handler:f2},{method:"POST",pattern:/^\/threads\/[^/]+\/copy$/,handler:C2},{method:"GET",pattern:/^\/threads\/[^/]+\/stream$/,handler:v2},{method:"POST",pattern:/^\/threads\/[^/]+\/runs$/,handler:T2},{method:"POST",pattern:/^\/threads\/[^/]+\/runs\/stream$/,handler:S2},{method:"POST",pattern:/^\/threads\/[^/]+\/runs\/wait$/,handler:D2},{method:"POST",pattern:/^\/threads\/[^/]+\/runs\/[^/]+\/cancel$/,handler:y2},{method:"GET",pattern:/^\/threads\/[^/]+\/runs$/,handler:k2},{method:"GET",pattern:/^\/threads\/[^/]+\/runs\/[^/]+$/,handler:V2},{method:"DELETE",pattern:/^\/threads\/[^/]+\/runs\/[^/]+$/,handler:j2},{method:"GET",pattern:/^\/threads\/[^/]+\/runs\/[^/]+\/join$/,handler:h2},{method:"GET",pattern:/^\/threads\/[^/]+\/runs\/[^/]+\/stream$/,handler:I2},{method:"POST",pattern:/^\/runs$/,handler:E2},{method:"POST",pattern:/^\/runs\/stream$/,handler:g2},{method:"POST",pattern:/^\/runs\/wait$/,handler:p2},{method:"POST",pattern:/^\/runs\/batch$/,handler:m2},{method:"POST",pattern:/^\/runs\/cancel$/,handler:c2}],x2=($)=>{let Z=new URL($.url).pathname.toString(),Y="";if(Z.includes("/threads"))Y=Z.split("/threads")[0];else if(Z.includes("/assistants"))Y=Z.split("/assistants")[0];return new Request($.url.replace(Y,""),{method:$.method,headers:$.headers,body:$.body,duplex:$.duplex})};async function u6($,Z={}){$=x2($);try{await I1.initGlobal();let J=new URL($.url).pathname,X=$.method;for(let K of u2)if(K.method===X&&K.pattern.test(J))return await K.handler($,Z);return new Response("Not Found",{status:404})}catch(Y){return console.error("Request error:",Y),T(Y)}}import{execa as d6}from"execa";import d2 from"extract-zip";import l2 from"fs-extra";import*as t0 from"node:os";import{dirname as l6,join as i2}from"node:path";import{pipeline as o2}from"node:stream/promises";import{fileURLToPath as r2}from"node:url";import{pathExists as x6}from"path-exists";import{temporaryFile as n2}from"tempy";import{xdgCache as a2}from"xdg-basedir";var{mkdir:n$,createWriteStream:s2,move:t2}=l2,i6=l6(r2(import.meta.url)),e2="microsoft/ripgrep-prebuilt",r$=process.env.RIPGREP_VERSION||"v15.0.0",$8=()=>{let $=process.env.npm_config_arch||t0.arch(),Z=process.env.platform||t0.platform();switch(Z){case"darwin":switch($){case"arm64":return"aarch64-apple-darwin.tar.gz";default:return"x86_64-apple-darwin.tar.gz"}case"win32":switch($){case"x64":return"x86_64-pc-windows-msvc.zip";case"arm":return"aarch64-pc-windows-msvc.zip";default:return"i686-pc-windows-msvc.zip"}case"linux":switch($){case"x64":return"x86_64-unknown-linux-musl.tar.gz";case"arm":case"armv7l":return"arm-unknown-linux-gnueabihf.tar.gz";case"arm64":return"aarch64-unknown-linux-gnu.tar.gz";case"ppc64":return"powerpc64le-unknown-linux-gnu.tar.gz";case"s390x":return"s390x-unknown-linux-gnu.tar.gz";default:return"i686-unknown-linux-musl.tar.gz"}default:throw Error("Unknown platform: "+Z)}},Z8=async($,Z)=>{try{let Y=n2(),J=await fetch($);if(!J.ok)throw Error(`HTTP ${J.status}: ${J.statusText}`);await o2(J.body,s2(Y)),await n$(l6(Z),{recursive:!0}),await t2(Y,Z)}catch(Y){throw console.error(`Failed to download "${$}"`),Y}},Y8=async($,Z)=>{try{await n$(Z,{recursive:!0}),await d2($,{dir:Z})}catch(Y){throw console.error(`Failed to unzip "${$}"`),Y}},X8=async($,Z)=>{try{await n$(Z,{recursive:!0}),await d6("tar",["xvf",$,"-C",Z])}catch(Y){throw console.error(`Failed to extract "${$}"`),Y}},J8=async($)=>{if($==="android")try{return await d6("pkg",["install","ripgrep","-y"]),!0}catch(Z){return console.info("Could not install ripgrep via pkg. Falling back to download."),!1}return!1},K8=i2(i6,`rg${process.platform==="win32"?".exe":""}`),o6=async($)=>{if(await x6(K8)){console.log("rg cached");return}let Z=process.env.platform||t0.platform();if(Z==="android"){if(await J8(Z))return}let Y=$8(),X=`${process.env.RIPGREP_PREBUILT_BINARIES_MIRROR||`https://v6.gh-proxy.org/https://github.com/${e2}/releases/download`}/${r$}/ripgrep-${r$}-${Y}`,K=`${a2}/vscode-ripgrep/ripgrep-${r$}-${Y}`,Q=$??i6;if(!await x6(K))await Z8(X,K);else console.info(`File ${K} has been cached`);if(K.endsWith(".tar.gz"))await X8(K,Q);else if(K.endsWith(".zip"))await Y8(K,Q);else throw Error(`Invalid downloadPath ${K}`)};await o6();u$("code",r6);var n6=($,Z={})=>{return u6(new Request($,Z),{})};import Q8 from"openai";import W8 from"@anthropic-ai/sdk";import{GoogleGenerativeAI as _8}from"@google/generative-ai";var G8=async()=>{if(!process.env.ANTHROPIC_API_KEY)return[];let $=[];try{for await(let Z of new W8().beta.models.list())$.push({id:Z.id,name:Z.display_name,provider:"anthropic"})}catch(Z){console.error("Failed to fetch Anthropic models:",Z)}return $},O8=async()=>{if(!process.env.OPENAI_API_KEY)return[];try{return await new Q8().models.list().then(($)=>$.data.map((Z)=>{return{id:Z.id,name:Z.id,provider:"openai"}}).sort((Z,Y)=>Z.id.localeCompare(Y.id)))}catch($){return console.error("Failed to fetch OpenAI models:",$),[]}},U8=async()=>{let $=process.env.GEMINI_API_KEY;if(!$)return[];let Z=[{id:"gemini-2.5-flash-preview-06-17",name:"Gemini 2.5 Flash Preview (06-17)",provider:"gemini"},{id:"gemini-2.5-pro-preview-06-05",name:"Gemini 2.5 Pro Preview (06-05)",provider:"gemini"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",provider:"gemini"},{id:"gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite",provider:"gemini"},{id:"gemini-1.5-flash",name:"Gemini 1.5 Flash",provider:"gemini"},{id:"gemini-1.5-flash-8b",name:"Gemini 1.5 Flash 8B",provider:"gemini"},{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro",provider:"gemini"},{id:"gemini-1.0-pro",name:"Gemini 1.0 Pro",provider:"gemini"},{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash Experimental",provider:"gemini"},{id:"gemini-exp-1206",name:"Gemini Experimental 1206",provider:"gemini"},{id:"gemini-2.5-pro-exp-03-25",name:"Gemini 2.5 Pro Experimental (03-25)",provider:"gemini"},{id:"gemini-2.5-flash-preview-05-20",name:"Gemini 2.5 Flash Preview (05-20)",provider:"gemini"}];try{return await new _8($).getGenerativeModel({model:"gemini-1.5-flash"}),Z}catch(Y){return console.error("Failed to verify Gemini API key:",Y),[]}},a6=async()=>{return(await Promise.all([G8().catch(()=>[]),O8().catch(()=>[]),U8().catch(()=>[])])).flat()};var N$=A(D(),1);function s6({tools:$,setTools:Z}){let Y=N$.useRef(!1);N$.useEffect(()=>{if(!Y.current)Z($),Y.current=!0},[$,Z])}var e6=A(D(),1);function t6($){if(!$)return{isValid:!1,needsSetup:!0,reason:"未找到配置文件"};if(!$.providers||$.providers.length===0)return{isValid:!1,needsSetup:!0,reason:"未配置任何 Provider"};let Z=$.providers.find((Y)=>Y.id===$.provider_id);if(!Z)return{isValid:!1,needsSetup:!0,reason:`Provider "${$.provider_id}" 不存在`,invalidProviderRef:!0};if(!Z.apiKey||Z.apiKey.trim()==="")return{isValid:!1,needsSetup:!0,reason:`Provider "${$.provider_id}" 未配置 API Key`,missingApiKey:!0};return{isValid:!0,needsSetup:!1}}function $4({config:$}){return e6.useMemo(()=>{if(!$)return{validation:null,needsSetup:!0,isValid:!1};let Z=t6($);return{validation:Z,needsSetup:Z.needsSetup,isValid:!Z.needsSetup}},[$])}var Z4=A(D(),1);function Y4({shouldFocus:$}){let Z=o1();Z4.useEffect(()=>{if($)Z.focus("global-input")},[$,Z])}var b1=A(D(),1);function X4(){let[$,Z]=b1.useState("chat"),Y=o1(),J=b1.useCallback(()=>{Z("history")},[]),X=b1.useCallback(()=>{Z("knowledge")},[]),K=b1.useCallback(()=>{Z("settings")},[]),Q=b1.useCallback(()=>{Z("model-provider")},[]),W=b1.useCallback(()=>{Z("agent")},[]),_=b1.useCallback(()=>{Z("task")},[]),O=b1.useCallback(()=>{Z("mcp")},[]),N=b1.useCallback(()=>{Z("process")},[]),U=b1.useCallback(()=>{Z("errors")},[]),F=b1.useCallback(()=>{Z("chat"),Y.focus("global-input")},[Y]);return{activeView:$,isChatView:$==="chat",switchToHistory:J,switchToKnowledge:X,switchToSettings:K,switchToModelProvider:Q,switchToAgent:W,switchToTask:_,switchToMcp:O,switchToProcess:N,switchToErrors:U,closePanel:F}}var z$=A(D(),1);function N8($){let Z=`# 任务:${$.title}
|
|
7
|
+
`,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}catch(Y){return T(Y)}}async function v2($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/stream"),{thread_id:J}=y(q1,Y),X=await $.json(),K=y(lZ,X);return i$(o$(async(Q)=>{K.config=K.config||{},K.config.configurable=K.config.configurable||{};let W=Z?.langgraph_context;if(W)Object.assign(K.config.configurable,W);let _=null,O=!1,N=()=>{O=!0};Q.signal.addEventListener("abort",N);try{_=V.runs.stream(J,K.assistant_id,K1(K));for await(let{event:U,data:F}of _){if(O||Q.signal.aborted)break;await Q.writeSSE({data:x$(F)??"",event:U})}}catch(U){if(!Q.signal.aborted&&!O)throw U}finally{if(Q.signal.removeEventListener("abort",N),_){try{await _.return(void 0)}catch(U){}_=null}}}))}catch(Y){return T(Y)}}async function S2($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/:run_id/stream"),{thread_id:J,run_id:X}=y(s0,Y),K=j1($.url),{cancel_on_disconnect:Q,last_event_id:W,stream_mode:_}=y(rZ,K);return i$(o$(async(O)=>{let N=new AbortController,U=null,F=!1,L=[],q=()=>{N.abort("Client disconnected")};if($.signal)$.signal.addEventListener("abort",q),L.push({signal:$.signal,handler:q});let w=()=>{F=!0,N.abort("SSE stream closed")};O.signal.addEventListener("abort",w),L.push({signal:O.signal,handler:w});try{U=V.runs.joinStream(J,X,{signal:N.signal,cancelOnDisconnect:Q,lastEventId:W,streamMode:_?[_]:void 0});for await(let{event:R,data:P,id:S}of U){if(F||O.signal.aborted||N.signal.aborted)break;await O.writeSSE({data:x$(P)??"",event:R,id:S})}}catch(R){if(!(N.signal.aborted||O.signal.aborted)&&!(R instanceof Error&&R.message.includes("user cancel")))console.error("Join stream error:",R),await O.writeSSE({event:"error",data:JSON.stringify({error:R instanceof Error?R.message:"Unknown error"})})}finally{for(let{signal:R,handler:P}of L)try{R.removeEventListener("abort",P)}catch(S){}if(U){try{await U.return(void 0)}catch(R){}U=null}}}))}catch(Y){return T(Y)}}async function I2($,Z){try{let Y=e($.url,"/threads/:thread_id/runs"),{thread_id:J}=y(q1,Y),X=j1($.url),{limit:K,offset:Q,status:W}=y(iZ,X),_=await V.runs.list(J,{limit:K,offset:Q,status:W});return h(_)}catch(Y){return T(Y)}}async function k2($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/:run_id/cancel"),{thread_id:J,run_id:X}=y(s0,Y),K=j1($.url),{wait:Q,action:W}=y(oZ,K),_=V.runs.cancel(J,X,Q,W);if(Q)await _;return new Response(null,{status:Q?204:202})}catch(Y){return T(Y)}}async function y2($,Z){try{let Y=e($.url,"/threads/:thread_id/runs"),{thread_id:J}=y(q1,Y),X=await $.json(),K=y(c6,X),Q=K1(K);Q.config=Q.config||{},Q.config.configurable=Q.config.configurable||{};let W=Z?.langgraph_context;if(W)Object.assign(Q.config.configurable,W);Q.config.configurable.graph_id=K.assistant_id,Q.config.configurable.thread_id=J;let _=V.threads,O=await _.createRun(J,K.assistant_id,Q);return(async()=>{let N=!1;try{for await(let U of Y0(_,O,Q,{attempt:0,getGraph:V1}));}catch(U){console.error("Background run error:",U)}finally{if(!N){N=!0;try{await I1.globalMessageQueue.removeQueue(O.run_id)}catch(U){}}}})(),h(O,200,{"Content-Location":`/threads/${J}/runs/${O.run_id}`})}catch(Y){return T(Y)}}async function T2($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/wait"),{thread_id:J}=y(q1,Y),X=await $.json(),K=y(c6,X),Q=j1($.url),{cancel_on_disconnect:W}=y(sZ,Q),_=K1(K);_.config=_.config||{},_.config.configurable=_.config.configurable||{};let O=Z?.langgraph_context;if(O)Object.assign(_.config.configurable,O);_.config.configurable.graph_id=K.assistant_id,_.config.configurable.thread_id=J;let N=V.threads,U=await N.createRun(J,K.assistant_id,_),F={};for await(let{event:L,data:q}of Y0(N,U,_,{attempt:0,getGraph:V1}))if(L==="end"||L==="writes/value"){if(q&&typeof q==="object")Object.assign(F,q)}return h(F,200,{"Content-Location":`/threads/${J}/runs/${U.run_id}`})}catch(Y){return T(Y)}}async function D2($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/:run_id"),{thread_id:J,run_id:X}=y(s0,Y),Q=(await V.runs.list(J,{limit:1000})).find((W)=>W.run_id===X);if(!Q)return T(Error("Run not found"),404);return h(Q)}catch(Y){return T(Y)}}async function V2($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/:run_id"),{thread_id:J,run_id:X}=y(s0,Y);return await V.threads.updateRun(X,{status:"deleted"}),new Response(null,{status:204})}catch(Y){return T(Y)}}async function j2($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/:run_id/join"),{thread_id:J,run_id:X}=y(s0,Y),K=j1($.url),{cancel_on_disconnect:Q}=y(tZ,K),_=(await V.runs.list(J,{limit:1000})).find((U)=>U.run_id===X);if(!_)return T(Error("Run not found"),404);if(_.status==="success"||_.status==="error")return h({});let O=new AbortController;if(Q){let U=()=>{O.abort("Client disconnected")};$.signal?.addEventListener("abort",U)}let N={};for await(let{event:U,data:F}of V.runs.joinStream(J,X,{signal:O.signal,cancelOnDisconnect:Q}))if(U.event==="end"||U.event==="writes/value"){if(F&&typeof F==="object")Object.assign(N,F)}return h(N)}catch(Y){return T(Y)}}async function h2($,Z){try{let Y=await $.json(),J=y(O$,Y),X=K1(J);X.config=X.config||{},X.config.configurable=X.config.configurable||{};let K=Z?.langgraph_context;if(K)Object.assign(X.config.configurable,K);let Q=V.threads,W=await Q.create({metadata:{...X.metadata,temporary:!0}});X.config.configurable.graph_id=J.assistant_id,X.config.configurable.thread_id=W.thread_id,X.temporary=!0;let _=await Q.createRun(W.thread_id,J.assistant_id,X);return(async()=>{let O=!1;try{for await(let N of Y0(Q,_,X,{attempt:0,getGraph:V1}));}catch(N){console.error("Stateless run error:",N)}finally{try{await Q.delete(W.thread_id)}catch(N){console.error("Error cleaning up temporary thread:",N)}if(!O){O=!0;try{await I1.globalMessageQueue.removeQueue(_.run_id)}catch(N){}}}})(),h(_,200,{"Content-Location":`/threads/${W.thread_id}/runs/${_.run_id}`})}catch(Y){return T(Y)}}async function E2($,Z){try{let Y=await $.json(),J=y(O$,Y),X=K1(J);X.config=X.config||{},X.config.configurable=X.config.configurable||{};let K=Z?.langgraph_context;if(K)Object.assign(X.config.configurable,K);let Q=V.threads,W=await Q.create({metadata:{...X.metadata,temporary:!0}});X.config.configurable.graph_id=J.assistant_id,X.config.configurable.thread_id=W.thread_id,X.temporary=!0;let _=await Q.createRun(W.thread_id,J.assistant_id,X);return i$(o$(async(O)=>{try{for await(let N of Y0(Q,_,X,{attempt:0,getGraph:V1}))await O.writeSSE({data:JSON.stringify(N),event:"data"})}catch(N){if(N instanceof Error&&N.name!=="AbortError")throw console.error("Stream error:",N),N}finally{try{await Q.delete(W.thread_id)}catch(N){console.error("Error cleaning up temporary thread:",N)}}}))}catch(Y){return T(Y)}}async function g2($,Z){try{let Y=await $.json(),J=y(O$,Y),X=K1(J);X.config=X.config||{},X.config.configurable=X.config.configurable||{};let K=Z?.langgraph_context;if(K)Object.assign(X.config.configurable,K);let Q=V.threads,W=await Q.create({metadata:{...X.metadata,temporary:!0}});X.config.configurable.graph_id=J.assistant_id,X.config.configurable.thread_id=W.thread_id,X.temporary=!0;let _=await Q.createRun(W.thread_id,J.assistant_id,X),O={};try{for await(let{event:N,data:U}of Y0(Q,_,X,{attempt:0,getGraph:V1}))if(N==="end"||N==="writes/value"){if(U&&typeof U==="object")Object.assign(O,U)}}finally{try{await Q.delete(W.thread_id)}catch(N){console.error("Error cleaning up temporary thread:",N)}}return h(O,200,{"Content-Location":`/threads/${W.thread_id}/runs/${_.run_id}`})}catch(Y){return T(Y)}}async function p2($,Z){try{let Y=await $.json(),J=y(eZ,Y),X=V.threads,K=[],Q=J.map(async(_)=>{try{let O=K1(_);O.config=O.config||{},O.config.configurable=O.config.configurable||{};let N=Z?.langgraph_context;if(N)Object.assign(O.config.configurable,N);let U=await X.create({metadata:{...O.metadata,temporary:!0}});O.config.configurable.graph_id=_.assistant_id,O.config.configurable.thread_id=U.thread_id,O.temporary=!0;let F=await X.createRun(U.thread_id,_.assistant_id,O);return(async()=>{let L=!1;try{for await(let q of Y0(X,F,O,{attempt:0,getGraph:V1}));}catch(q){console.error("Batch run error:",q)}finally{try{await X.delete(U.thread_id)}catch(q){console.error("Error cleaning up temporary thread:",q)}if(!L){L=!0;try{await I1.globalMessageQueue.removeQueue(F.run_id)}catch(q){}}}})(),{thread_id:U.thread_id,run_id:F.run_id}}catch(O){return console.error("Batch run creation error:",O),{error:(O instanceof Error?O.message:"Unknown error")||"Unknown error"}}}),W=await Promise.all(Q);return K.push(...W),h(K,200)}catch(Y){return T(Y)}}async function m2($,Z){try{let Y=await $.json(),J=y(Z2,Y),X=new URL($.url),K=y($2,{action:X.searchParams.get("action")||"interrupt"}),Q=V.threads,W=[];if("run_ids"in J&&J.run_ids)for(let _ of J.run_ids)try{console.warn(`Cancel by run_id ${_} not fully implemented yet`)}catch(O){console.error(`Error cancelling run ${_}:`,O)}else if("thread_id"in J&&J.thread_id){let _=J.thread_id;try{let O=await Q.listRuns(_,{limit:1000,offset:0});for(let N of O)try{V.runs.cancel(_,N.run_id,K.wait,K.action),W.push(N.run_id)}catch(U){console.error(`Error cancelling run ${N.run_id}:`,U)}}catch(O){console.error(`Error listing runs for thread ${_}:`,O)}}else if("status"in J&&J.status)console.warn(`Cancel by status ${J.status} not fully implemented yet`);return new Response(null,{status:204})}catch(Y){return T(Y)}}var c2=[{method:"POST",pattern:/^\/assistants\/search$/,handler:Y2},{method:"POST",pattern:/^\/assistants\/count$/,handler:X2},{method:"GET",pattern:/^\/assistants\/[^/]+$/,handler:J2},{method:"DELETE",pattern:/^\/assistants\/[^/]+$/,handler:K2},{method:"PATCH",pattern:/^\/assistants\/[^/]+$/,handler:Q2},{method:"GET",pattern:/^\/assistants\/[^/]+\/graph$/,handler:W2},{method:"GET",pattern:/^\/assistants\/[^/]+\/subgraphs$/,handler:_2},{method:"GET",pattern:/^\/assistants\/[^/]+\/subgraphs\/[^/]+$/,handler:G2},{method:"GET",pattern:/^\/assistants\/[^/]+\/schemas$/,handler:O2},{method:"POST",pattern:/^\/assistants\/[^/]+\/versions$/,handler:U2},{method:"POST",pattern:/^\/assistants\/[^/]+\/latest$/,handler:N2},{method:"POST",pattern:/^\/assistants$/,handler:z2},{method:"POST",pattern:/^\/threads$/,handler:H2},{method:"POST",pattern:/^\/threads\/search$/,handler:F2},{method:"POST",pattern:/^\/threads\/count$/,handler:L2},{method:"GET",pattern:/^\/threads\/[^/]+$/,handler:A2},{method:"PATCH",pattern:/^\/threads\/[^/]+$/,handler:q2},{method:"DELETE",pattern:/^\/threads\/[^/]+$/,handler:w2},{method:"GET",pattern:/^\/threads\/[^/]+\/state$/,handler:M2},{method:"POST",pattern:/^\/threads\/[^/]+\/state$/,handler:R2},{method:"POST",pattern:/^\/threads\/[^/]+\/state\/checkpoint$/,handler:b2},{method:"GET",pattern:/^\/threads\/[^/]+\/history$/,handler:B2},{method:"POST",pattern:/^\/threads\/[^/]+\/history$/,handler:P2},{method:"POST",pattern:/^\/threads\/[^/]+\/copy$/,handler:f2},{method:"GET",pattern:/^\/threads\/[^/]+\/stream$/,handler:C2},{method:"POST",pattern:/^\/threads\/[^/]+\/runs$/,handler:y2},{method:"POST",pattern:/^\/threads\/[^/]+\/runs\/stream$/,handler:v2},{method:"POST",pattern:/^\/threads\/[^/]+\/runs\/wait$/,handler:T2},{method:"POST",pattern:/^\/threads\/[^/]+\/runs\/[^/]+\/cancel$/,handler:k2},{method:"GET",pattern:/^\/threads\/[^/]+\/runs$/,handler:I2},{method:"GET",pattern:/^\/threads\/[^/]+\/runs\/[^/]+$/,handler:D2},{method:"DELETE",pattern:/^\/threads\/[^/]+\/runs\/[^/]+$/,handler:V2},{method:"GET",pattern:/^\/threads\/[^/]+\/runs\/[^/]+\/join$/,handler:j2},{method:"GET",pattern:/^\/threads\/[^/]+\/runs\/[^/]+\/stream$/,handler:S2},{method:"POST",pattern:/^\/runs$/,handler:h2},{method:"POST",pattern:/^\/runs\/stream$/,handler:E2},{method:"POST",pattern:/^\/runs\/wait$/,handler:g2},{method:"POST",pattern:/^\/runs\/batch$/,handler:p2},{method:"POST",pattern:/^\/runs\/cancel$/,handler:m2}],u2=($)=>{let Z=new URL($.url).pathname.toString(),Y="";if(Z.includes("/threads"))Y=Z.split("/threads")[0];else if(Z.includes("/assistants"))Y=Z.split("/assistants")[0];return new Request($.url.replace(Y,""),{method:$.method,headers:$.headers,body:$.body,duplex:$.duplex})};async function u6($,Z={}){$=u2($);try{await I1.initGlobal();let J=new URL($.url).pathname,X=$.method;for(let K of c2)if(K.method===X&&K.pattern.test(J))return await K.handler($,Z);return new Response("Not Found",{status:404})}catch(Y){return console.error("Request error:",Y),T(Y)}}import{execa as d6}from"execa";import x2 from"extract-zip";import d2 from"fs-extra";import*as t0 from"node:os";import{dirname as l6,join as l2}from"node:path";import{pipeline as i2}from"node:stream/promises";import{fileURLToPath as o2}from"node:url";import{pathExists as x6}from"path-exists";import{temporaryFile as r2}from"tempy";import{xdgCache as n2}from"xdg-basedir";var{mkdir:n$,createWriteStream:a2,move:s2}=d2,i6=l6(o2(import.meta.url)),t2="microsoft/ripgrep-prebuilt",r$=process.env.RIPGREP_VERSION||"v15.0.0",e2=()=>{let $=process.env.npm_config_arch||t0.arch(),Z=process.env.platform||t0.platform();switch(Z){case"darwin":switch($){case"arm64":return"aarch64-apple-darwin.tar.gz";default:return"x86_64-apple-darwin.tar.gz"}case"win32":switch($){case"x64":return"x86_64-pc-windows-msvc.zip";case"arm":return"aarch64-pc-windows-msvc.zip";default:return"i686-pc-windows-msvc.zip"}case"linux":switch($){case"x64":return"x86_64-unknown-linux-musl.tar.gz";case"arm":case"armv7l":return"arm-unknown-linux-gnueabihf.tar.gz";case"arm64":return"aarch64-unknown-linux-gnu.tar.gz";case"ppc64":return"powerpc64le-unknown-linux-gnu.tar.gz";case"s390x":return"s390x-unknown-linux-gnu.tar.gz";default:return"i686-unknown-linux-musl.tar.gz"}default:throw Error("Unknown platform: "+Z)}},$8=async($,Z)=>{try{let Y=r2(),J=await fetch($);if(!J.ok)throw Error(`HTTP ${J.status}: ${J.statusText}`);await i2(J.body,a2(Y)),await n$(l6(Z),{recursive:!0}),await s2(Y,Z)}catch(Y){throw console.error(`Failed to download "${$}"`),Y}},Z8=async($,Z)=>{try{await n$(Z,{recursive:!0}),await x2($,{dir:Z})}catch(Y){throw console.error(`Failed to unzip "${$}"`),Y}},Y8=async($,Z)=>{try{await n$(Z,{recursive:!0}),await d6("tar",["xvf",$,"-C",Z])}catch(Y){throw console.error(`Failed to extract "${$}"`),Y}},X8=async($)=>{if($==="android")try{return await d6("pkg",["install","ripgrep","-y"]),!0}catch(Z){return console.info("Could not install ripgrep via pkg. Falling back to download."),!1}return!1},J8=l2(i6,`rg${process.platform==="win32"?".exe":""}`),o6=async($)=>{if(await x6(J8)){console.log("rg cached");return}let Z=process.env.platform||t0.platform();if(Z==="android"){if(await X8(Z))return}let Y=e2(),X=`${process.env.RIPGREP_PREBUILT_BINARIES_MIRROR||`https://v6.gh-proxy.org/https://github.com/${t2}/releases/download`}/${r$}/ripgrep-${r$}-${Y}`,K=`${n2}/vscode-ripgrep/ripgrep-${r$}-${Y}`,Q=$??i6;if(!await x6(K))await $8(X,K);else console.info(`File ${K} has been cached`);if(K.endsWith(".tar.gz"))await Y8(K,Q);else if(K.endsWith(".zip"))await Z8(K,Q);else throw Error(`Invalid downloadPath ${K}`)};await o6();u$("code",r6);var n6=($,Z={})=>{return u6(new Request($,Z),{})};import K8 from"openai";import Q8 from"@anthropic-ai/sdk";import{GoogleGenerativeAI as W8}from"@google/generative-ai";var _8=async()=>{if(!process.env.ANTHROPIC_API_KEY)return[];let $=[];try{for await(let Z of new Q8().beta.models.list())$.push({id:Z.id,name:Z.display_name,provider:"anthropic"})}catch(Z){console.error("Failed to fetch Anthropic models:",Z)}return $},G8=async()=>{if(!process.env.OPENAI_API_KEY)return[];try{return await new K8().models.list().then(($)=>$.data.map((Z)=>{return{id:Z.id,name:Z.id,provider:"openai"}}).sort((Z,Y)=>Z.id.localeCompare(Y.id)))}catch($){return console.error("Failed to fetch OpenAI models:",$),[]}},O8=async()=>{let $=process.env.GEMINI_API_KEY;if(!$)return[];let Z=[{id:"gemini-2.5-flash-preview-06-17",name:"Gemini 2.5 Flash Preview (06-17)",provider:"gemini"},{id:"gemini-2.5-pro-preview-06-05",name:"Gemini 2.5 Pro Preview (06-05)",provider:"gemini"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",provider:"gemini"},{id:"gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite",provider:"gemini"},{id:"gemini-1.5-flash",name:"Gemini 1.5 Flash",provider:"gemini"},{id:"gemini-1.5-flash-8b",name:"Gemini 1.5 Flash 8B",provider:"gemini"},{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro",provider:"gemini"},{id:"gemini-1.0-pro",name:"Gemini 1.0 Pro",provider:"gemini"},{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash Experimental",provider:"gemini"},{id:"gemini-exp-1206",name:"Gemini Experimental 1206",provider:"gemini"},{id:"gemini-2.5-pro-exp-03-25",name:"Gemini 2.5 Pro Experimental (03-25)",provider:"gemini"},{id:"gemini-2.5-flash-preview-05-20",name:"Gemini 2.5 Flash Preview (05-20)",provider:"gemini"}];try{return await new W8($).getGenerativeModel({model:"gemini-1.5-flash"}),Z}catch(Y){return console.error("Failed to verify Gemini API key:",Y),[]}},a6=async()=>{return(await Promise.all([_8().catch(()=>[]),G8().catch(()=>[]),O8().catch(()=>[])])).flat()};var N$=A(D(),1);function s6({tools:$,setTools:Z}){let Y=N$.useRef(!1);N$.useEffect(()=>{if(!Y.current)Z($),Y.current=!0},[$,Z])}var e6=A(D(),1);function t6($){if(!$)return{isValid:!1,needsSetup:!0,reason:"未找到配置文件"};if(!$.providers||$.providers.length===0)return{isValid:!1,needsSetup:!0,reason:"未配置任何 Provider"};let Z=$.providers.find((Y)=>Y.id===$.provider_id);if(!Z)return{isValid:!1,needsSetup:!0,reason:`Provider "${$.provider_id}" 不存在`,invalidProviderRef:!0};if(!Z.apiKey||Z.apiKey.trim()==="")return{isValid:!1,needsSetup:!0,reason:`Provider "${$.provider_id}" 未配置 API Key`,missingApiKey:!0};return{isValid:!0,needsSetup:!1}}function $4({config:$}){return e6.useMemo(()=>{if(!$)return{validation:null,needsSetup:!0,isValid:!1};let Z=t6($);return{validation:Z,needsSetup:Z.needsSetup,isValid:!Z.needsSetup}},[$])}var Z4=A(D(),1);function Y4({shouldFocus:$}){let Z=o1();Z4.useEffect(()=>{if($)Z.focus("global-input")},[$,Z])}var b1=A(D(),1);function X4(){let[$,Z]=b1.useState("chat"),Y=o1(),J=b1.useCallback(()=>{Z("history")},[]),X=b1.useCallback(()=>{Z("knowledge")},[]),K=b1.useCallback(()=>{Z("settings")},[]),Q=b1.useCallback(()=>{Z("model-provider")},[]),W=b1.useCallback(()=>{Z("agent")},[]),_=b1.useCallback(()=>{Z("task")},[]),O=b1.useCallback(()=>{Z("mcp")},[]),N=b1.useCallback(()=>{Z("process")},[]),U=b1.useCallback(()=>{Z("errors")},[]),F=b1.useCallback(()=>{Z("chat"),Y.focus("global-input")},[Y]);return{activeView:$,isChatView:$==="chat",switchToHistory:J,switchToKnowledge:X,switchToSettings:K,switchToModelProvider:Q,switchToAgent:W,switchToTask:_,switchToMcp:O,switchToProcess:N,switchToErrors:U,closePanel:F}}var z$=A(D(),1);function U8($){let Z=`# 任务:${$.title}
|
|
8
8
|
|
|
9
9
|
`;if(Z+=`**描述:**
|
|
10
10
|
${$.description}
|
|
@@ -31,22 +31,22 @@ ${$.acceptanceCriteria.map((Y,J)=>`${J+1}. ${Y}`).join(`
|
|
|
31
31
|
${Y.acceptanceCriteria.map((X)=>`- ${X}`).join(`
|
|
32
32
|
`)}
|
|
33
33
|
`}),Z+=`
|
|
34
|
-
`;return Z.trim()}function J4($){let{sendMessage:Z,createNewChat:Y}
|
|
34
|
+
`;return Z.trim()}function J4($){let{sendMessage:Z,createNewChat:Y}=$1(),{extraParams:J}=Z1(),{closePanel:X}=$,K=z$.useMemo(()=>{return{...J,is_in_task:!0}},[J]);return{handleExecuteTask:z$.useCallback((W)=>{let O=[{type:"human",content:`${U8(W)}
|
|
35
35
|
|
|
36
|
-
请你先写一个 TODO LIST 然后开始这个任务,最后完成任务的时候,使用 commit_task`}];Y(r1).then(()=>{return Z(O,{extraParams:K,metadata:r1})}).then(()=>{J0("任务已发送给 Agent"),X()}).catch((N)=>{console.error("Task execution failed:",N),J0("任务执行失败")})},[Z,Y,K,X])}}var H$=A(D(),1),W4=A(M(),1),K4=H$.createContext(void 0),E0=()=>{let $=H$.useContext(K4);if($===void 0)throw Error("useChatPanel must be used within ChatPanelProvider. Make sure your component is a child of ChatController.");return $},Q4=({children:$,value:Z})=>{return W4.jsxDEV(K4.Provider,{value:Z,children:$},void 0,!1,void 0,this)};var C0=A(D(),1);var _4=($)=>{return $.additional_kwargs?.reasoning_content||Array.isArray($.content)&&$.content.find((Z)=>Z.type==="thinking")?.thinking},g0=($)=>{return typeof $.content==="string"?$.content:$.content?.filter((Z)=>{return Z.type==="text"}).map((Z)=>Z.text).join("")};F$();var s$=A(D(),1),d=A(M(),1),R8={approve:"green",reject:"red",edit:"yellow",modify:"cyan"},b8=($)=>{return R8[$.toLowerCase()]||"white"},U4=({request:$,allowedDecisions:Z=["approve","edit","reject"],onApprove:Y,onEdit:J,onReject:X,autoFocus:K=!0})=>{let[Q,W]=s$.useState("approve"),{value:_,setTrue:O,setFalse:N}=O4(!1),[U,F]=s$.useState(""),L=o1(),q=$.messageIndex,w=$.description;y1((v,i)=>{if(_&&i.escape)P()},{isActive:_});let R=()=>{if(!U.trim())return;if(Q==="edit")try{let v=JSON.parse(U);J(v)}catch(v){console.error("Invalid JSON:",v);return}else{let v=`User rejected to run this tool, reason: ${U}`;X(v)}N(),F("")},P=()=>{N(),F("")},S=([v])=>{if(v==="approve"){Y(),L.focus("global-input");return}if(W(v),O(),v==="edit")F(JSON.stringify($.toolCall.args,null,2));else F("")},u=Z.map((v)=>({label:v,value:v}));return _?(()=>{let v=b8(Q),i=Q==="edit";return d.jsxDEV(z,{flexDirection:"column",paddingX:1,marginTop:0,children:[d.jsxDEV(z,{flexDirection:"column",marginBottom:1,children:[d.jsxDEV(G,{color:v,bold:!0,children:[Q.toUpperCase()," MODE - ",$.toolCall.name]},void 0,!0,void 0,this),q!==void 0&&d.jsxDEV(G,{color:"gray",dimColor:!0,children:["Message Index: ",q]},void 0,!0,void 0,this),w&&d.jsxDEV(G,{color:"gray",dimColor:!0,children:["Description: ",w]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),i?d.jsxDEV(z,{flexDirection:"column",marginTop:0,children:[d.jsxDEV(G,{color:"yellow",dimColor:!0,children:"Editing action arguments (JSON format):"},void 0,!1,void 0,this),d.jsxDEV(z,{paddingX:1,children:d.jsxDEV(h1,{value:U,onChange:F,onSubmit:R,placeholder:"Enter JSON...",autoFocus:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):d.jsxDEV(z,{flexDirection:"column",marginTop:0,children:[d.jsxDEV(G,{color:"cyan",dimColor:!0,children:"Enter additional message for this action:"},void 0,!1,void 0,this),d.jsxDEV(z,{padding:1,children:d.jsxDEV(h1,{value:U,onChange:F,onSubmit:R,placeholder:"Enter message...",autoFocus:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),d.jsxDEV(z,{marginTop:0,children:d.jsxDEV(G,{color:"gray",children:[d.jsxDEV(G,{color:v,bold:!0,children:"↵"},void 0,!1,void 0,this)," ","Submit |",d.jsxDEV(G,{color:"red",bold:!0,children:[" ","Esc"]},void 0,!0,void 0,this)," ","Cancel"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)})():(()=>d.jsxDEV(z,{flexDirection:"column",paddingX:1,children:[d.jsxDEV(z,{flexDirection:"column",marginBottom:1,children:[d.jsxDEV(G,{color:"cyan",bold:!0,children:$.toolCall.name},void 0,!1,void 0,this),q!==void 0&&d.jsxDEV(G,{color:"gray",dimColor:!0,children:["Message Index: ",q]},void 0,!0,void 0,this),w&&d.jsxDEV(G,{color:"gray",dimColor:!0,children:["Description: ",w]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),d.jsxDEV(z,{children:d.jsxDEV(P0,{singleSelect:!0,options:u,onSubmit:S,autoFocus:K},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this))()};var L$=A(D(),1),N4=A(M(),1),t$={type:"approval",render($,Z){let{content:Y,metadata:J}=$,X=o1(),K=L$.useCallback(()=>{Z({state:"submitted",result:{status:"approved"}}),X.focus("global-input")},[Z,X]),Q=L$.useCallback((O)=>{Z({state:"edited",result:{status:"edited",editedArgs:O}}),X.focus("global-input")},[Z,X]),W=L$.useCallback((O)=>{Z({state:"cancelled",result:{status:"rejected",message:O}}),X.focus("global-input")},[Z,X]),_={id:$.id,toolCall:Y.toolCall,status:$.state==="submitted"?"approved":$.state==="edited"?"edited":$.state==="cancelled"?"rejected":"pending",createdAt:$.createdAt,messageIndex:J.messageIndex,description:J.description};return N4.jsxDEV(U4,{request:_,allowedDecisions:["approve","edit","reject"],onApprove:K,onEdit:Q,onReject:W,autoFocus:!0},$.id,!1,void 0,this)},defaultConfig:{layout:{border:!1,padding:0},interaction:{autoSubmit:!1,allowSkip:!1}}};var e$=A(D(),1);var B8={title:{maxWidth:60,ellipsis:"…"},description:{maxWidth:80,ellipsis:"…"},optionLabel:{maxWidth:50,ellipsis:"…"},tabLabel:{maxWidth:30,ellipsis:"…"},fullTitle:{maxWidth:80,ellipsis:"…"}},P8=($,Z=20,Y="…")=>{if(!$)return"";if($.length<=Z)return $;return $.substring(0,Z-Y.length)+Y},p0=($,Z)=>{let Y=B8[Z];return P8($,Y.maxWidth,Y.ellipsis)};var K0=A(M(),1),f8=($)=>{return p0($,"optionLabel")},$6={type:"selection",render($,Z){let{content:Y,metadata:J,result:X}=$,[K,Q]=e$.useState(X?.selected||[]),[W,_]=e$.useState(X?.customInput||""),O=Y.options.map((R)=>({label:f8(R.label),value:R.value})),N=(R,P)=>{Z({result:{selected:R??K,customInput:P??W}})},U=(R)=>{Q(R),N(R,void 0)},F=(R)=>{_(R),N(void 0,R)},L=()=>{Z({state:"submitted",result:{selected:K,customInput:W}})},q=J?.title?p0(J.title,"title"):null,w=J?.description?p0(J.description,"description"):null;return K0.jsxDEV(z,{flexDirection:"column",paddingX:1,children:[q&&K0.jsxDEV(z,{marginBottom:1,children:K0.jsxDEV(G,{color:"cyan",bold:!0,children:q},void 0,!1,void 0,this)},void 0,!1,void 0,this),w&&K0.jsxDEV(z,{marginBottom:1,children:K0.jsxDEV(G,{dimColor:!0,children:w},void 0,!1,void 0,this)},void 0,!1,void 0,this),K0.jsxDEV(P0,{options:O,singleSelect:Y.singleSelect,values:K,onChange:U,onSubmit:L,autoFocus:!0},void 0,!1,void 0,this),Y.allowCustomInput&&K0.jsxDEV(z,{marginTop:1,flexDirection:"column",children:K0.jsxDEV(h1,{value:W,onChange:F,onSubmit:L,placeholder:Y.placeholder||"Type custom option...",autoFocus:!1},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},validate($){if($.options.length===0)return"At least one option is required";if($.singleSelect&&$.maxSelections&&$.maxSelections>1)return"Single select cannot have maxSelections > 1";return},defaultConfig:{layout:{border:!1,padding:1},interaction:{autoSubmit:!1}}};var z4=A(D(),1);var n1=A(M(),1),Z6={type:"input",render($,Z){let{content:Y,metadata:J}=$,[X,K]=z4.useState(Y.defaultValue||""),Q=()=>{Z({state:"submitted",result:{value:X}})};return n1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:[J?.title&&n1.jsxDEV(z,{marginBottom:1,children:n1.jsxDEV(G,{color:"cyan",bold:!0,children:J.title},void 0,!1,void 0,this)},void 0,!1,void 0,this),J?.description&&n1.jsxDEV(z,{marginBottom:1,children:n1.jsxDEV(G,{dimColor:!0,children:J.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),n1.jsxDEV(z,{children:[n1.jsxDEV(h1,{value:X,onChange:K,onSubmit:Q,placeholder:Y.placeholder,autoFocus:!0},void 0,!1,void 0,this),")"]},void 0,!0,void 0,this),Y.maxLength&&n1.jsxDEV(z,{marginTop:1,children:n1.jsxDEV(G,{dimColor:!0,children:["Max length: ",Y.maxLength]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},validate($){if($.validation?.pattern&&$.defaultValue){if(!$.validation.pattern.test($.defaultValue))return"Input does not match required pattern"}if($.validation?.minLength&&$.defaultValue&&$.defaultValue.length<$.validation.minLength)return`Input must be at least ${$.validation.minLength} characters`;return},defaultConfig:{layout:{border:!1,padding:1},interaction:{autoSubmit:!1}}};var f0=A(M(),1),Y6={type:"confirm",render($,Z){let{content:Y,metadata:J}=$,X=()=>{Z({state:"submitted",result:{confirmed:!0}})},K=()=>{Z({state:"cancelled",result:{confirmed:!1}})},Q=[{label:Y.confirmLabel||"Confirm",value:"confirm"},{label:Y.cancelLabel||"Cancel",value:"cancel"}],W=([_])=>{if(_==="confirm")X();else K()};return f0.jsxDEV(z,{flexDirection:"column",paddingX:1,children:[J?.title&&f0.jsxDEV(z,{marginBottom:1,children:f0.jsxDEV(G,{color:Y.danger?"red":"cyan",bold:!0,children:J.title},void 0,!1,void 0,this)},void 0,!1,void 0,this),f0.jsxDEV(z,{marginBottom:1,children:f0.jsxDEV(G,{children:Y.message},void 0,!1,void 0,this)},void 0,!1,void 0,this),f0.jsxDEV(P0,{options:Q,singleSelect:!0,onSubmit:W,autoFocus:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},defaultConfig:{layout:{border:!1,padding:1},interaction:{autoSubmit:!1}}};var C8=A(D(),1);var v8=A(M(),1);var a1=A(D(),1);var m0=A(D(),1);var Y1=A(M(),1),F4=({items:$,defaultIndex:Z=0,onChange:Y,disabled:J=!1,autoFocus:X=!0,variant:K="line"})=>{let{isFocused:Q}=H4({autoFocus:X}),[W,_]=m0.useState(Z),O=m0.default.useMemo(()=>`tabs-${Math.random().toString(36).substring(2,9)}`,[]),N=m0.useCallback((L)=>{if(L<0||L>=$.length||$[L].disabled)return;_(L),Y?.(L,$[L])},[$,Y]);y1((L,q)=>{if(J)return;if(q.leftArrow)N(W-1);else if(q.rightArrow)N(W+1)},{isActive:!J});let U=()=>{return $.map((L,q)=>{let w=q===W,R=Q&&!J,P;if(K==="line")P=Y1.jsxDEV(z,{marginRight:1,children:[Y1.jsxDEV(G,{color:L.disabled?"gray":w?R?"green":"cyan":"gray",bold:w&&R,children:L.label},void 0,!1,void 0,this),w&&Y1.jsxDEV(G,{color:R?"green":"cyan",children:"_"},void 0,!1,void 0,this)]},`${O}-${L.id}`,!0,void 0,this);else if(K==="enclosed"){let S=q===0||w?"┌":"─",u=q===$.length-1||w?"┐":"─",m=q===0||w?"│":" ",e=q===$.length-1||w?"│":" ",v=w?"─":" ",i=w?" ":"",r=L.disabled?"gray":w?R?"green":"cyan":"gray";P=Y1.jsxDEV(z,{children:Y1.jsxDEV(z,{flexDirection:"column",children:[Y1.jsxDEV(z,{children:[Y1.jsxDEV(G,{color:r,children:S},void 0,!1,void 0,this),Y1.jsxDEV(G,{color:r,bold:w&&R,children:[i,L.label,i]},void 0,!0,void 0,this),Y1.jsxDEV(G,{color:r,children:u},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w&&Y1.jsxDEV(z,{children:[Y1.jsxDEV(G,{color:r,children:m},void 0,!1,void 0,this),Y1.jsxDEV(G,{color:r,children:v.repeat(L.label.length+2)},void 0,!1,void 0,this),Y1.jsxDEV(G,{color:r,children:e},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},`${O}-${L.id}`,!1,void 0,this)}else{let S=w?"●":"○";P=Y1.jsxDEV(z,{marginRight:2,children:Y1.jsxDEV(G,{color:L.disabled?"gray":w?R?"green":"cyan":"gray",bold:w&&R,children:[S," ",L.label]},void 0,!0,void 0,this)},`${O}-${L.id}`,!1,void 0,this)}return P})},F=()=>{let L=$[W];if(!L?.content)return null;return Y1.jsxDEV(z,{marginTop:1,paddingX:2,paddingY:1,flexDirection:"column",children:L.content},void 0,!1,void 0,this)};return Y1.jsxDEV(z,{flexDirection:"column",flexGrow:1,children:[Y1.jsxDEV(z,{children:U()},void 0,!1,void 0,this),$.some((L)=>L.content)&&F()]},void 0,!0,void 0,this)};var L4=A(D(),1);var A4=A(M(),1),X6=({interaction:$,renderer:Z,onChange:Y})=>{let J=L4.useMemo(()=>{return{layout:{border:!1,padding:0,...Z.defaultConfig?.layout,...$.config.layout},interaction:{autoSubmit:!1,allowSkip:!1,showPreview:!0,...Z.defaultConfig?.interaction,...$.config.interaction},style:{...Z.defaultConfig?.style,...$.config.style}}},[$.config,Z.defaultConfig]),X=J.style.backgroundColor;return A4.jsxDEV(z,{backgroundColor:X,paddingX:J.layout.padding,marginBottom:1,flexDirection:"column",children:Z.render({...$,config:J},Y)},void 0,!1,void 0,this)};F$();var Q0=A(M(),1),S8=($)=>{return p0($,"fullTitle")},J6=()=>{let $=k1(),[Z,Y]=a1.useState(null),{focusNext:J,focus:X}=o1(),K=a1.useMemo(()=>{return $.getInteractions()},[$.getInteractions()]);a1.useEffect(()=>{if(K.length>0&&!Z)Y(K[0].id)},[K,Z]);let Q=a1.useMemo(()=>{return K.map((U)=>{let F={idle:"\uD83D\uDD04",active:"\uD83D\uDD04",submitted:"✅",edited:"⛔",cancelled:"\uD83D\uDEAB"}[U.state]||"",L=S8(U.metadata.title||U.content.type);return{id:U.id,label:`${F} ${L}`,content:null}})},[K]),W=a1.useCallback((U,F)=>{Y(F.id)},[]),_=a1.useCallback((U)=>{if(K.every((w)=>w.state==="submitted"||w.state==="edited"||w.state==="cancelled")){X("global-input");return}let q=(K.findIndex((w)=>w.id===U)+1)%K.length;Y(K[q].id)},[K,X]),O=q4(()=>{J()});B1(O,Z?100:null);let N=()=>{if(!Z)return null;let U=K.find((L)=>L.id===Z);if(!U)return null;let F=A0.get(U.content.type);if(!F)return Q0.jsxDEV(z,{paddingX:1,children:Q0.jsxDEV(G,{color:"red",children:["Unknown renderer: ",U.content.type]},void 0,!0,void 0,this)},void 0,!1,void 0,this);return Q0.jsxDEV(X6,{interaction:U,renderer:F,onChange:(L)=>{if($.updateInteraction(U.id,L),L.state==="submitted"||L.state==="edited"||L.state==="cancelled")_(U.id)}},U.id,!1,void 0,this)};if(K.length===0)return null;return Q0.jsxDEV(z,{flexDirection:"column",width:"100%",children:[Q0.jsxDEV(z,{justifyContent:"space-between",paddingX:1,marginBottom:1,children:Q0.jsxDEV(G,{color:"cyan",bold:!0,children:["Interactions (",K.length,")"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q0.jsxDEV(z,{paddingX:1,marginBottom:1,children:Q0.jsxDEV(F4,{items:Q,defaultIndex:Q.findIndex((U)=>U.id===Z),onChange:W,autoFocus:!0,variant:"line"},Z,!1,void 0,this)},void 0,!1,void 0,this),N()]},void 0,!0,void 0,this)};F$();function w4(){A0.register("approval",t$),A0.register("selection",$6),A0.register("input",Z6),A0.register("confirm",Y6)}w4();var c0=A(M(),1);import{z as q0}from"zod";var I8=q0.object({label:q0.string().min(1).max(50).describe("选项显示文本,简洁明了(1-50 字符)")}),k8=q0.object({description:q0.string().min(1).describe("向用户提出的问题,清晰具体,包含必要的上下文"),type:q0.enum(["single_select","multi_select"]).describe("选择类型:single_select(单选)或 multi_select(多选)"),options:q0.array(I8).min(2).max(6).describe("选项列表,至少 2 个,最多 6 个"),allow_custom_input:q0.boolean().default(!0).describe("是否允许用户输入自定义文本,默认 true"),placeholder:q0.string().optional().describe("自定义输入框的占位符文本")}),y8=({tool:$})=>{let{addInteraction:Z,getInteractions:Y,updateInteraction:J}=k1(),[X,K]=C0.useState(null),Q=C0.useRef(!1),W=$.getInputRepaired();if(C0.useEffect(()=>{if($.state==="interrupted"&&!X&&!Q.current){let O=(Array.isArray(W.options)?W.options:[]).map((L)=>{let q=L&&typeof L==="object"&&typeof L.label==="string"?L.label:String(L??"");return{label:q,value:q}}),N=W.type==="single_select",U={type:"selection",options:O,singleSelect:N,allowCustomInput:typeof W.allow_custom_input==="boolean"?W.allow_custom_input:!0,placeholder:typeof W.placeholder==="string"?W.placeholder:void 0},F=Z(U,{tool:$,metadata:{title:typeof W.description==="string"&&W.description?W.description:"请选择一个选项",groupKey:"user-input"}});K(F.id)}},[$,X,Z,W]),C0.useEffect(()=>{if(!X||Q.current)return;let _=()=>{let U=Y().find((F)=>F.id===X);if(U&&(U.state==="submitted"||U.state==="edited"||U.state==="cancelled")&&!U.resultSent){Q.current=!0;let F=U.result,L="";if(F){if(F.selected&&F.selected.length>0)L+=`User selected:
|
|
36
|
+
请你先写一个 TODO LIST 然后开始这个任务,最后完成任务的时候,使用 commit_task`}];Y(r1).then(()=>{return Z(O,{extraParams:K,metadata:r1})}).then(()=>{J0("任务已发送给 Agent"),X()}).catch((N)=>{console.error("Task execution failed:",N),J0("任务执行失败")})},[Z,Y,K,X])}}var H$=A(D(),1),W4=A(M(),1),K4=H$.createContext(void 0),E0=()=>{let $=H$.useContext(K4);if($===void 0)throw Error("useChatPanel must be used within ChatPanelProvider. Make sure your component is a child of ChatController.");return $},Q4=({children:$,value:Z})=>{return W4.jsxDEV(K4.Provider,{value:Z,children:$},void 0,!1,void 0,this)};var C0=A(D(),1);var _4=($)=>{return $.additional_kwargs?.reasoning_content||Array.isArray($.content)&&$.content.find((Z)=>Z.type==="thinking")?.thinking},g0=($)=>{return typeof $.content==="string"?$.content:$.content?.filter((Z)=>{return Z.type==="text"}).map((Z)=>Z.text).join("")};F$();var s$=A(D(),1),d=A(M(),1),M8={approve:"green",reject:"red",edit:"yellow",modify:"cyan"},R8=($)=>{return M8[$.toLowerCase()]||"white"},U4=({request:$,allowedDecisions:Z=["approve","edit","reject"],onApprove:Y,onEdit:J,onReject:X,autoFocus:K=!0})=>{let[Q,W]=s$.useState("approve"),{value:_,setTrue:O,setFalse:N}=O4(!1),[U,F]=s$.useState(""),L=o1(),q=$.messageIndex,w=$.description;y1((v,i)=>{if(_&&i.escape)P()},{isActive:_});let R=()=>{if(!U.trim())return;if(Q==="edit")try{let v=JSON.parse(U);J(v)}catch(v){console.error("Invalid JSON:",v);return}else{let v=`User rejected to run this tool, reason: ${U}`;X(v)}N(),F("")},P=()=>{N(),F("")},S=([v])=>{if(v==="approve"){Y(),L.focus("global-input");return}if(W(v),O(),v==="edit")F(JSON.stringify($.toolCall.args,null,2));else F("")},u=Z.map((v)=>({label:v,value:v}));return _?(()=>{let v=R8(Q),i=Q==="edit";return d.jsxDEV(z,{flexDirection:"column",paddingX:1,marginTop:0,children:[d.jsxDEV(z,{flexDirection:"column",marginBottom:1,children:[d.jsxDEV(G,{color:v,bold:!0,children:[Q.toUpperCase()," MODE - ",$.toolCall.name]},void 0,!0,void 0,this),q!==void 0&&d.jsxDEV(G,{color:"gray",dimColor:!0,children:["Message Index: ",q]},void 0,!0,void 0,this),w&&d.jsxDEV(G,{color:"gray",dimColor:!0,children:["Description: ",w]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),i?d.jsxDEV(z,{flexDirection:"column",marginTop:0,children:[d.jsxDEV(G,{color:"yellow",dimColor:!0,children:"Editing action arguments (JSON format):"},void 0,!1,void 0,this),d.jsxDEV(z,{paddingX:1,children:d.jsxDEV(h1,{value:U,onChange:F,onSubmit:R,placeholder:"Enter JSON...",autoFocus:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):d.jsxDEV(z,{flexDirection:"column",marginTop:0,children:[d.jsxDEV(G,{color:"cyan",dimColor:!0,children:"Enter additional message for this action:"},void 0,!1,void 0,this),d.jsxDEV(z,{padding:1,children:d.jsxDEV(h1,{value:U,onChange:F,onSubmit:R,placeholder:"Enter message...",autoFocus:!0},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),d.jsxDEV(z,{marginTop:0,children:d.jsxDEV(G,{color:"gray",children:[d.jsxDEV(G,{color:v,bold:!0,children:"↵"},void 0,!1,void 0,this)," ","Submit |",d.jsxDEV(G,{color:"red",bold:!0,children:[" ","Esc"]},void 0,!0,void 0,this)," ","Cancel"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)})():(()=>d.jsxDEV(z,{flexDirection:"column",paddingX:1,children:[d.jsxDEV(z,{flexDirection:"column",marginBottom:1,children:[d.jsxDEV(G,{color:"cyan",bold:!0,children:$.toolCall.name},void 0,!1,void 0,this),q!==void 0&&d.jsxDEV(G,{color:"gray",dimColor:!0,children:["Message Index: ",q]},void 0,!0,void 0,this),w&&d.jsxDEV(G,{color:"gray",dimColor:!0,children:["Description: ",w]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),d.jsxDEV(z,{children:d.jsxDEV(P0,{singleSelect:!0,options:u,onSubmit:S,autoFocus:K},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this))()};var L$=A(D(),1),N4=A(M(),1),t$={type:"approval",render($,Z){let{content:Y,metadata:J}=$,X=o1(),K=L$.useCallback(()=>{Z({state:"submitted",result:{status:"approved"}}),X.focus("global-input")},[Z,X]),Q=L$.useCallback((O)=>{Z({state:"edited",result:{status:"edited",editedArgs:O}}),X.focus("global-input")},[Z,X]),W=L$.useCallback((O)=>{Z({state:"cancelled",result:{status:"rejected",message:O}}),X.focus("global-input")},[Z,X]),_={id:$.id,toolCall:Y.toolCall,status:$.state==="submitted"?"approved":$.state==="edited"?"edited":$.state==="cancelled"?"rejected":"pending",createdAt:$.createdAt,messageIndex:J.messageIndex,description:J.description};return N4.jsxDEV(U4,{request:_,allowedDecisions:["approve","edit","reject"],onApprove:K,onEdit:Q,onReject:W,autoFocus:!0},$.id,!1,void 0,this)},defaultConfig:{layout:{border:!1,padding:0},interaction:{autoSubmit:!1,allowSkip:!1}}};var e$=A(D(),1);var b8={title:{maxWidth:60,ellipsis:"…"},description:{maxWidth:80,ellipsis:"…"},optionLabel:{maxWidth:50,ellipsis:"…"},tabLabel:{maxWidth:30,ellipsis:"…"},fullTitle:{maxWidth:80,ellipsis:"…"}},B8=($,Z=20,Y="…")=>{if(!$)return"";if($.length<=Z)return $;return $.substring(0,Z-Y.length)+Y},p0=($,Z)=>{let Y=b8[Z];return B8($,Y.maxWidth,Y.ellipsis)};var K0=A(M(),1),P8=($)=>{return p0($,"optionLabel")},$6={type:"selection",render($,Z){let{content:Y,metadata:J,result:X}=$,[K,Q]=e$.useState(X?.selected||[]),[W,_]=e$.useState(X?.customInput||""),O=Y.options.map((R)=>({label:P8(R.label),value:R.value})),N=(R,P)=>{Z({result:{selected:R??K,customInput:P??W}})},U=(R)=>{Q(R),N(R,void 0)},F=(R)=>{_(R),N(void 0,R)},L=()=>{Z({state:"submitted",result:{selected:K,customInput:W}})},q=J?.title?p0(J.title,"title"):null,w=J?.description?p0(J.description,"description"):null;return K0.jsxDEV(z,{flexDirection:"column",paddingX:1,children:[q&&K0.jsxDEV(z,{marginBottom:1,children:K0.jsxDEV(G,{color:"cyan",bold:!0,children:q},void 0,!1,void 0,this)},void 0,!1,void 0,this),w&&K0.jsxDEV(z,{marginBottom:1,children:K0.jsxDEV(G,{dimColor:!0,children:w},void 0,!1,void 0,this)},void 0,!1,void 0,this),K0.jsxDEV(P0,{options:O,singleSelect:Y.singleSelect,values:K,onChange:U,onSubmit:L,autoFocus:!0},void 0,!1,void 0,this),Y.allowCustomInput&&K0.jsxDEV(z,{marginTop:1,flexDirection:"column",children:K0.jsxDEV(h1,{value:W,onChange:F,onSubmit:L,placeholder:Y.placeholder||"Type custom option...",autoFocus:!1},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},validate($){if($.options.length===0)return"At least one option is required";if($.singleSelect&&$.maxSelections&&$.maxSelections>1)return"Single select cannot have maxSelections > 1";return},defaultConfig:{layout:{border:!1,padding:1},interaction:{autoSubmit:!1}}};var z4=A(D(),1);var n1=A(M(),1),Z6={type:"input",render($,Z){let{content:Y,metadata:J}=$,[X,K]=z4.useState(Y.defaultValue||""),Q=()=>{Z({state:"submitted",result:{value:X}})};return n1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:[J?.title&&n1.jsxDEV(z,{marginBottom:1,children:n1.jsxDEV(G,{color:"cyan",bold:!0,children:J.title},void 0,!1,void 0,this)},void 0,!1,void 0,this),J?.description&&n1.jsxDEV(z,{marginBottom:1,children:n1.jsxDEV(G,{dimColor:!0,children:J.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),n1.jsxDEV(z,{children:[n1.jsxDEV(h1,{value:X,onChange:K,onSubmit:Q,placeholder:Y.placeholder,autoFocus:!0},void 0,!1,void 0,this),")"]},void 0,!0,void 0,this),Y.maxLength&&n1.jsxDEV(z,{marginTop:1,children:n1.jsxDEV(G,{dimColor:!0,children:["Max length: ",Y.maxLength]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},validate($){if($.validation?.pattern&&$.defaultValue){if(!$.validation.pattern.test($.defaultValue))return"Input does not match required pattern"}if($.validation?.minLength&&$.defaultValue&&$.defaultValue.length<$.validation.minLength)return`Input must be at least ${$.validation.minLength} characters`;return},defaultConfig:{layout:{border:!1,padding:1},interaction:{autoSubmit:!1}}};var f0=A(M(),1),Y6={type:"confirm",render($,Z){let{content:Y,metadata:J}=$,X=()=>{Z({state:"submitted",result:{confirmed:!0}})},K=()=>{Z({state:"cancelled",result:{confirmed:!1}})},Q=[{label:Y.confirmLabel||"Confirm",value:"confirm"},{label:Y.cancelLabel||"Cancel",value:"cancel"}],W=([_])=>{if(_==="confirm")X();else K()};return f0.jsxDEV(z,{flexDirection:"column",paddingX:1,children:[J?.title&&f0.jsxDEV(z,{marginBottom:1,children:f0.jsxDEV(G,{color:Y.danger?"red":"cyan",bold:!0,children:J.title},void 0,!1,void 0,this)},void 0,!1,void 0,this),f0.jsxDEV(z,{marginBottom:1,children:f0.jsxDEV(G,{children:Y.message},void 0,!1,void 0,this)},void 0,!1,void 0,this),f0.jsxDEV(P0,{options:Q,singleSelect:!0,onSubmit:W,autoFocus:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},defaultConfig:{layout:{border:!1,padding:1},interaction:{autoSubmit:!1}}};var f8=A(D(),1);var C8=A(M(),1);var a1=A(D(),1);var m0=A(D(),1);var Y1=A(M(),1),F4=({items:$,defaultIndex:Z=0,onChange:Y,disabled:J=!1,autoFocus:X=!0,variant:K="line"})=>{let{isFocused:Q}=H4({autoFocus:X}),[W,_]=m0.useState(Z),O=m0.default.useMemo(()=>`tabs-${Math.random().toString(36).substring(2,9)}`,[]),N=m0.useCallback((L)=>{if(L<0||L>=$.length||$[L].disabled)return;_(L),Y?.(L,$[L])},[$,Y]);y1((L,q)=>{if(J)return;if(q.leftArrow)N(W-1);else if(q.rightArrow)N(W+1)},{isActive:!J});let U=()=>{return $.map((L,q)=>{let w=q===W,R=Q&&!J,P;if(K==="line")P=Y1.jsxDEV(z,{marginRight:1,children:[Y1.jsxDEV(G,{color:L.disabled?"gray":w?R?"green":"cyan":"gray",bold:w&&R,children:L.label},void 0,!1,void 0,this),w&&Y1.jsxDEV(G,{color:R?"green":"cyan",children:"_"},void 0,!1,void 0,this)]},`${O}-${L.id}`,!0,void 0,this);else if(K==="enclosed"){let S=q===0||w?"┌":"─",u=q===$.length-1||w?"┐":"─",m=q===0||w?"│":" ",t=q===$.length-1||w?"│":" ",v=w?"─":" ",i=w?" ":"",r=L.disabled?"gray":w?R?"green":"cyan":"gray";P=Y1.jsxDEV(z,{children:Y1.jsxDEV(z,{flexDirection:"column",children:[Y1.jsxDEV(z,{children:[Y1.jsxDEV(G,{color:r,children:S},void 0,!1,void 0,this),Y1.jsxDEV(G,{color:r,bold:w&&R,children:[i,L.label,i]},void 0,!0,void 0,this),Y1.jsxDEV(G,{color:r,children:u},void 0,!1,void 0,this)]},void 0,!0,void 0,this),w&&Y1.jsxDEV(z,{children:[Y1.jsxDEV(G,{color:r,children:m},void 0,!1,void 0,this),Y1.jsxDEV(G,{color:r,children:v.repeat(L.label.length+2)},void 0,!1,void 0,this),Y1.jsxDEV(G,{color:r,children:t},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},`${O}-${L.id}`,!1,void 0,this)}else{let S=w?"●":"○";P=Y1.jsxDEV(z,{marginRight:2,children:Y1.jsxDEV(G,{color:L.disabled?"gray":w?R?"green":"cyan":"gray",bold:w&&R,children:[S," ",L.label]},void 0,!0,void 0,this)},`${O}-${L.id}`,!1,void 0,this)}return P})},F=()=>{let L=$[W];if(!L?.content)return null;return Y1.jsxDEV(z,{marginTop:1,paddingX:2,paddingY:1,flexDirection:"column",children:L.content},void 0,!1,void 0,this)};return Y1.jsxDEV(z,{flexDirection:"column",flexGrow:1,children:[Y1.jsxDEV(z,{children:U()},void 0,!1,void 0,this),$.some((L)=>L.content)&&F()]},void 0,!0,void 0,this)};var L4=A(D(),1);var A4=A(M(),1),X6=({interaction:$,renderer:Z,onChange:Y})=>{let J=L4.useMemo(()=>{return{layout:{border:!1,padding:0,...Z.defaultConfig?.layout,...$.config.layout},interaction:{autoSubmit:!1,allowSkip:!1,showPreview:!0,...Z.defaultConfig?.interaction,...$.config.interaction},style:{...Z.defaultConfig?.style,...$.config.style}}},[$.config,Z.defaultConfig]),X=J.style.backgroundColor;return A4.jsxDEV(z,{backgroundColor:X,paddingX:J.layout.padding,marginBottom:1,flexDirection:"column",children:Z.render({...$,config:J},Y)},void 0,!1,void 0,this)};F$();var Q0=A(M(),1),v8=($)=>{return p0($,"fullTitle")},J6=()=>{let $=k1(),[Z,Y]=a1.useState(null),{focusNext:J,focus:X}=o1(),K=a1.useMemo(()=>{return $.getInteractions()},[$.getInteractions()]);a1.useEffect(()=>{if(K.length>0&&!Z)Y(K[0].id)},[K,Z]);let Q=a1.useMemo(()=>{return K.map((U)=>{let F={idle:"\uD83D\uDD04",active:"\uD83D\uDD04",submitted:"✅",edited:"⛔",cancelled:"\uD83D\uDEAB"}[U.state]||"",L=v8(U.metadata.title||U.content.type);return{id:U.id,label:`${F} ${L}`,content:null}})},[K]),W=a1.useCallback((U,F)=>{Y(F.id)},[]),_=a1.useCallback((U)=>{if(K.every((w)=>w.state==="submitted"||w.state==="edited"||w.state==="cancelled")){X("global-input");return}let q=(K.findIndex((w)=>w.id===U)+1)%K.length;Y(K[q].id)},[K,X]),O=q4(()=>{J()});B1(O,Z?100:null);let N=()=>{if(!Z)return null;let U=K.find((L)=>L.id===Z);if(!U)return null;let F=A0.get(U.content.type);if(!F)return Q0.jsxDEV(z,{paddingX:1,children:Q0.jsxDEV(G,{color:"red",children:["Unknown renderer: ",U.content.type]},void 0,!0,void 0,this)},void 0,!1,void 0,this);return Q0.jsxDEV(X6,{interaction:U,renderer:F,onChange:(L)=>{if($.updateInteraction(U.id,L),L.state==="submitted"||L.state==="edited"||L.state==="cancelled")_(U.id)}},U.id,!1,void 0,this)};if(K.length===0)return null;return Q0.jsxDEV(z,{flexDirection:"column",width:"100%",children:[Q0.jsxDEV(z,{justifyContent:"space-between",paddingX:1,marginBottom:1,children:Q0.jsxDEV(G,{color:"cyan",bold:!0,children:["Interactions (",K.length,")"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q0.jsxDEV(z,{paddingX:1,marginBottom:1,children:Q0.jsxDEV(F4,{items:Q,defaultIndex:Q.findIndex((U)=>U.id===Z),onChange:W,autoFocus:!0,variant:"line"},Z,!1,void 0,this)},void 0,!1,void 0,this),N()]},void 0,!0,void 0,this)};F$();function w4(){A0.register("approval",t$),A0.register("selection",$6),A0.register("input",Z6),A0.register("confirm",Y6)}w4();var c0=A(M(),1);import{z as q0}from"zod";var S8=q0.object({label:q0.string().min(1).max(50).describe("选项显示文本,简洁明了(1-50 字符)")}),I8=q0.object({description:q0.string().min(1).describe("向用户提出的问题,清晰具体,包含必要的上下文"),type:q0.enum(["single_select","multi_select"]).describe("选择类型:single_select(单选)或 multi_select(多选)"),options:q0.array(S8).min(2).max(6).describe("选项列表,至少 2 个,最多 6 个"),allow_custom_input:q0.boolean().default(!0).describe("是否允许用户输入自定义文本,默认 true"),placeholder:q0.string().optional().describe("自定义输入框的占位符文本")}),k8=({tool:$})=>{let{addInteraction:Z,getInteractions:Y,updateInteraction:J}=k1(),[X,K]=C0.useState(null),Q=C0.useRef(!1),W=$.getInputRepaired();if(C0.useEffect(()=>{if($.state==="interrupted"&&!X&&!Q.current){let O=(Array.isArray(W.options)?W.options:[]).map((L)=>{let q=L&&typeof L==="object"&&typeof L.label==="string"?L.label:String(L??"");return{label:q,value:q}}),N=W.type==="single_select",U={type:"selection",options:O,singleSelect:N,allowCustomInput:typeof W.allow_custom_input==="boolean"?W.allow_custom_input:!0,placeholder:typeof W.placeholder==="string"?W.placeholder:void 0},F=Z(U,{tool:$,metadata:{title:typeof W.description==="string"&&W.description?W.description:"请选择一个选项",groupKey:"user-input"}});K(F.id)}},[$,X,Z,W]),C0.useEffect(()=>{if(!X||Q.current)return;let _=()=>{let U=Y().find((F)=>F.id===X);if(U&&(U.state==="submitted"||U.state==="edited"||U.state==="cancelled")&&!U.resultSent){Q.current=!0;let F=U.result,L="";if(F){if(F.selected&&F.selected.length>0)L+=`User selected:
|
|
37
37
|
${F.selected.join(`
|
|
38
38
|
- `)}`;if(F.customInput&&F.customInput.trim())L+=(L?`
|
|
39
|
-
`:"")+`User Custom Input: ${F.customInput}`}$.sendResumeData({type:"respond",message:L||"User made a selection"}),J(X,{resultSent:!0})}};_();let O=setInterval(_,100);return()=>clearInterval(O)},[X,Y,J,$]),$.state==="interrupted"&&!$.output)return c0.jsxDEV(z,{flexDirection:"column",children:c0.jsxDEV(z,{paddingX:1,children:c0.jsxDEV(G,{color:"yellow",children:"⏳ 等待用户选择..."},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this);if($.output)return c0.jsxDEV(G,{color:"yellow",children:$.output},void 0,!1,void 0,this);return null},M4=l({name:"ask_user_questions",description:"Ask the user a question with selectable options",parameters:
|
|
39
|
+
`:"")+`User Custom Input: ${F.customInput}`}$.sendResumeData({type:"respond",message:L||"User made a selection"}),J(X,{resultSent:!0})}};_();let O=setInterval(_,100);return()=>clearInterval(O)},[X,Y,J,$]),$.state==="interrupted"&&!$.output)return c0.jsxDEV(z,{flexDirection:"column",children:c0.jsxDEV(z,{paddingX:1,children:c0.jsxDEV(G,{color:"yellow",children:"⏳ 等待用户选择..."},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this);if($.output)return c0.jsxDEV(G,{color:"yellow",children:$.output},void 0,!1,void 0,this);return null},M4=l({name:"ask_user_questions",description:"Ask the user a question with selectable options",parameters:I8,handler:n.waitForUIDone,render($){return c0.jsxDEV(k8,{tool:$},void 0,!1,void 0,this)}});var v0=A(D(),1);var e0=A(M(),1),u0=({content:$,maxLines:Z=10,borderColor:Y="cyan",borderStyle:J="single",marginTop:X=0,paddingX:K=0,showOmittedInfo:Q=!0})=>{let{stdout:W}=R4();if(!$)return null;let _=W.columns,O=$.split(`
|
|
40
40
|
`).map((F)=>F.slice(0,_-10)),N=Math.max(0,O.length-Z),U=O.slice(-Z).join(`
|
|
41
|
-
`);return e0.jsxDEV(z,{flexDirection:"column",width:_-5,children:e0.jsxDEV(z,{borderStyle:J,borderColor:Y,borderLeft:!1,borderRight:!1,flexDirection:"column",paddingX:K,marginTop:X,children:[Q&&N>0&&e0.jsxDEV(G,{color:"gray",dimColor:!0,children:["... ",N," lines omitted ..."]},void 0,!0,void 0,this),e0.jsxDEV(G,{dimColor:!0,children:U},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)};var w1=A(M(),1),
|
|
41
|
+
`);return e0.jsxDEV(z,{flexDirection:"column",width:_-5,children:e0.jsxDEV(z,{borderStyle:J,borderColor:Y,borderLeft:!1,borderRight:!1,flexDirection:"column",paddingX:K,marginTop:X,children:[Q&&N>0&&e0.jsxDEV(G,{color:"gray",dimColor:!0,children:["... ",N," lines omitted ..."]},void 0,!0,void 0,this),e0.jsxDEV(G,{dimColor:!0,children:U},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)};var w1=A(M(),1),y8=({tool:$})=>{let{addInteraction:Z,getInteractions:Y,updateInteraction:J}=k1(),[X,K]=v0.useState(null),Q=v0.useRef(!1),W=$.getHumanInTheLoopData();if(v0.useEffect(()=>{if(W?.reviewConfig&&$.state==="interrupted"&&!X&&!Q.current){let O=$.getInputRepaired()?.description,N={type:"approval",toolCall:{name:$.message.name,args:$.getInputRepaired()},editableFields:["args"]},U=Z(N,{tool:$,metadata:{title:`Approve ${$.message.name}`,description:O,groupKey:"approvals"}});K(U.id)}},[W,$,X,Z]),v0.useEffect(()=>{if(!X||Q.current)return;let O=()=>{let F=Y().find((L)=>L.id===X);if(F&&(F.state==="submitted"||F.state==="edited"||F.state==="cancelled")&&!F.resultSent){Q.current=!0;let L=F.result;if(L){if(L.status==="approved")$.sendResumeData({type:"approve"});else if(L.status==="edited"){let q={name:$.message.name,args:L.editedArgs};$.sendResumeData({type:"edit",edited_action:q})}else if(L.status==="rejected"){let q=L.message||"User rejected to run this tool";$.sendResumeData({type:"reject",message:q})}}J(X,{resultSent:!0})}};O();let N=setInterval(O,100);return()=>clearInterval(N)},[X,Y,J,$]),W?.reviewConfig&&X&&!$.output)return w1.jsxDEV(z,{flexDirection:"column",children:w1.jsxDEV(z,{paddingX:1,paddingY:1,children:w1.jsxDEV(G,{color:"yellow",children:"⏳ Wait for Approval"},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this);return w1.jsxDEV(z,{flexDirection:"column",children:(()=>{if(!$.output)return null;return w1.jsxDEV(u0,{content:$.output,maxLines:5,borderColor:"cyan"},void 0,!1,void 0,this)})()},void 0,!1,void 0,this)},T8=({tool:$})=>{let Z=$.getInputRepaired(),Y=typeof Z?.command==="string"?Z.command:String(Z?.command??""),J=Y.length>50?Y.substring(0,50)+"...":Y;return w1.jsxDEV(z,{paddingX:1,children:[w1.jsxDEV(G,{color:"magenta",children:"Run "},void 0,!1,void 0,this),w1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),w1.jsxDEV(G,{color:"magenta",children:J},void 0,!1,void 0,this),w1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},b4=l({name:"terminal",description:"",parameters:{},handler:n.waitForUIDone,render($){return w1.jsxDEV(z,{flexDirection:"column",children:[w1.jsxDEV(T8,{tool:$},void 0,!1,void 0,this),w1.jsxDEV(y8,{tool:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}});import{diff_match_patch as D8}from"diff-match-patch";function V8($,Z,Y){if($===Z)return[{type:"unchanged",content:$,lineNumbers:{old:1,new:1}}];let J=new D8,X=J.diff_main($,Z);J.diff_cleanupSemantic(X);let K=[],Q=1,W=1,_=[];for(let[R,P]of X){if(P==="")continue;let S=P.split(`
|
|
42
42
|
`),u=P.endsWith(`
|
|
43
|
-
`);for(let m=0;m<S.length;m++){let
|
|
44
|
-
`).length>50}function P4($,Z,Y){let J=B4($)||B4(Z),K=Y!==void 0&&"maxLines"in Y?Y.maxLines:J?10:20,Q=Y?.contextLines??(J?1:3);return
|
|
45
|
-
`).length,Q=typeof Z?.file_path==="string"?Z.file_path:String(Z?.file_path??"");return g1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:g1.jsxDEV(z,{children:[g1.jsxDEV(G,{color:"blue",children:"Read "},void 0,!1,void 0,this),g1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),g1.jsxDEV(P1,{path:Q,rainbow:!0},void 0,!1,void 0,this),g1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this),g1.jsxDEV(G,{color:"gray",dimColor:!0,children:[" ","(",K," lines)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}});var p1=A(M(),1),
|
|
46
|
-
`).filter(Boolean).length,K=typeof Z?.pattern==="string"?Z.pattern:String(Z?.pattern??"");return p1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:p1.jsxDEV(G,{children:[p1.jsxDEV(G,{color:"cyan",children:"Glob "},void 0,!1,void 0,this),p1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),p1.jsxDEV(P1,{path:K,rainbow:!0},void 0,!1,void 0,this),p1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this),p1.jsxDEV(G,{color:"gray",dimColor:!0,children:[" ","(",X," files)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}});import{z as I0}from"zod";var _1=A(M(),1),
|
|
47
|
-
`).filter(Boolean).length,Q=typeof Z?.pattern==="string"?Z.pattern:void 0,W=typeof Z?.path==="string"?Z.path:void 0;if(!Q&&Z?.args){let N=(Array.isArray(Z.args)?Z.args:[]).filter((U)=>typeof U==="string").filter((U)=>!U.startsWith("-"));if(N.length>0){if(W=N[N.length-1],N.length>1)Q=N[N.length-2]}}return _1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:_1.jsxDEV(G,{children:[_1.jsxDEV(G,{color:"magenta",children:"Ripgrep "},void 0,!1,void 0,this),Q&&_1.jsxDEV(_1.Fragment,{children:[_1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),_1.jsxDEV(P1,{path:Q,color:"magenta"},void 0,!1,void 0,this),_1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W&&W!=="./"&&_1.jsxDEV(_1.Fragment,{children:[_1.jsxDEV(G,{dimColor:!0,children:" in "},void 0,!1,void 0,this),_1.jsxDEV(P1,{path:W,rainbow:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_1.jsxDEV(G,{color:"gray",dimColor:!0,children:[" ","(",K," matches)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}});import{z as A$}from"zod";var s1=A(M(),1),
|
|
48
|
-
`).length,Q=typeof Y==="string"?Y:"";return s1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:[s1.jsxDEV(z,{children:[s1.jsxDEV(G,{color:"green",children:"Write "},void 0,!1,void 0,this),s1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),s1.jsxDEV(P1,{path:X,rainbow:!0},void 0,!1,void 0,this),s1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this),s1.jsxDEV(G,{dimColor:!0,children:[" (",K," lines)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q&&Q.startsWith("Error:")&&s1.jsxDEV(z,{marginTop:0,marginLeft:1,marginBottom:1,children:s1.jsxDEV(G,{color:"red",children:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}});var N1=A(M(),1),
|
|
49
|
-
`).map((N,U)=>{if(N.match(/\d+ \w+|[\d-]+ [\d:]+/))return N1.jsxDEV(G,{dimColor:!0,children:N},U,!1,void 0,this);if(N.includes("✓")||N.includes("successfully")||N.includes("created")||N.includes("deleted"))return N1.jsxDEV(G,{color:"green",children:N},U,!1,void 0,this);if(N.includes("✗")||N.includes("Error")||N.includes("not found")||N.includes("failed"))return N1.jsxDEV(G,{color:"red",children:N},U,!1,void 0,this);if(N.startsWith("/")||N.includes("/:"))return N1.jsxDEV(G,{color:"cyan",children:N},U,!1,void 0,this);return N1.jsxDEV(G,{children:N},U,!1,void 0,this)});return N1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:N1.jsxDEV(z,{children:[N1.jsxDEV(G,{bold:!0,color:W,children:[X,"Folder"]},void 0,!0,void 0,this),N1.jsxDEV(G,{dimColor:!0,children:" ("},void 0,!1,void 0,this),N1.jsxDEV(P1,{path:K,rainbow:!0},void 0,!1,void 0,this),N1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}});import{z as
|
|
43
|
+
`);for(let m=0;m<S.length;m++){let t=S[m];if(t===""&&(m<S.length-1||!u))continue;let v={type:R===0?"unchanged":R===-1?"added":"removed",content:t};if(R===0)v.lineNumbers={old:Q,new:W},Q++,W++;else if(R===-1)v.lineNumbers={new:W},W++;else if(R===1)v.lineNumbers={old:Q},Q++;_.push(v)}}if(!Y?.maxLines)return _;let O=Y.maxLines,N=Y.contextLines||3,U=_.map((R,P)=>R.type!=="unchanged"?P:-1).filter((R)=>R!==-1);if(U.length===0||_.length<=O)return _;let F=[],L=0,q=[],w=[];for(let R=0;R<U.length;R++)if(w.length===0)w.push(U[R]);else{let P=w[w.length-1];if(U[R]-P<=1)w.push(U[R]);else q.push([...w]),w=[U[R]]}if(w.length>0)q.push(w);for(let R of q){if(L>=O)break;let P=R[0],S=R[R.length-1],u=Math.max(0,P-N),m=Math.min(_.length-1,S+N),t=m-u+1;if(L+t>O&&L>0){F.push({type:"unchanged",content:"..."});break}for(let v=u;v<=m;v++){if(L>=O){if(v<m)F.push({type:"unchanged",content:"..."});break}F.push(_[v]),L++}if(R===q[q.length-1]&&L<_.length){let v=_.length-m-1;if(v>0)F.push({type:"unchanged",content:`... (${v} more lines)`})}}return F}function B4($,Z=1000){return $=$||"",$.length>Z||$.split(`
|
|
44
|
+
`).length>50}function P4($,Z,Y){let J=B4($)||B4(Z),K=Y!==void 0&&"maxLines"in Y?Y.maxLines:J?10:20,Q=Y?.contextLines??(J?1:3);return V8($,Z,{maxLines:K,contextLines:Q})}var x0=A(M(),1),j8=["sky","primary"];function h8($){let Z=$%2;return S0(j8[Z])}function E8($){let Z=[];if($.startsWith("/"))Z.push({type:"separator",value:"/"}),$=$.slice(1);let Y=$.split("/");return Y.forEach((J,X)=>{if(J)Z.push({type:"segment",value:J});if(X<Y.length-1)Z.push({type:"separator",value:"/"})}),Z}var g8=({path:$,color:Z="cyan",line:Y,rainbow:J=!1})=>{let X=f4($)??"",K=Y!==void 0?`:${Y}`:"";if(!J)return x0.jsxDEV(G,{color:S0(Z),children:[X,K]},void 0,!0,void 0,this);let Q=E8(X),W=-1;for(let O=Q.length-1;O>=0;O--)if(Q[O].type==="segment"){W=O;break}let _=0;return x0.jsxDEV(G,{children:[Q.map((O,N)=>{if(O.type==="separator")return x0.jsxDEV(G,{dimColor:!0,color:"gray",children:O.value},`sep-${N}`,!1,void 0,this);let U=N===W,F=h8(_);return _++,x0.jsxDEV(G,{color:F,dimColor:!U,children:O.value},`seg-${N}`,!1,void 0,this)}),K&&x0.jsxDEV(G,{color:"gray",children:K},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},P1=g8;var X1=A(M(),1),p8=C4.schema,v4=l({name:"edit_file",description:"Performs exact string replacements in files with diff visualization",parameters:p8.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output,J=typeof Z?.file_path==="string"?Z.file_path:String(Z?.file_path??""),X=typeof Z?.old_string==="string"?Z.old_string:"",K=typeof Z?.new_string==="string"?Z.new_string:"",Q=X.length>0&&K.length>0&&X!==K,W=typeof Y==="string"?Y:"",_=0,O=0;if(Q){let N=P4(X,K,{maxLines:void 0});for(let U of N){if(U.type==="removed")_++;if(U.type==="added")O++}}return X1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:[X1.jsxDEV(z,{children:[X1.jsxDEV(G,{color:"yellow",children:"Edit "},void 0,!1,void 0,this),X1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),X1.jsxDEV(P1,{path:J,rainbow:!0},void 0,!1,void 0,this),X1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this),Q&&X1.jsxDEV(X1.Fragment,{children:[X1.jsxDEV(G,{color:"gray",children:" ("},void 0,!1,void 0,this),X1.jsxDEV(G,{color:"red",children:["-",_]},void 0,!0,void 0,this),X1.jsxDEV(G,{color:"gray",children:"/"},void 0,!1,void 0,this),X1.jsxDEV(G,{color:"green",children:["+",O]},void 0,!0,void 0,this),X1.jsxDEV(G,{color:"gray",children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),W&&W.startsWith("Error:")&&X1.jsxDEV(z,{marginTop:0,marginLeft:1,marginBottom:1,children:X1.jsxDEV(G,{color:"red",children:W},void 0,!1,void 0,this)},void 0,!1,void 0,this),!W&&X1.jsxDEV(z,{marginTop:0,children:X1.jsxDEV(G,{color:"gray",children:"Press Enter to confirm, Ctrl+C to cancel"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}});var E1=A(M(),1),m8=["pending","in_progress","completed"],c8={pending:"gray",in_progress:"yellow",completed:"green"},u8={pending:"○",in_progress:"◐",completed:"✓"};function x8($,Z){let Y=$&&typeof $==="object"?$:{},J=typeof Y.id==="string"?Y.id:String(Z),X=typeof Y.content==="string"?Y.content:String(Y.content??""),K=m8.includes(Y.status)?Y.status:"pending";return{id:J,content:X,status:K}}var I4=l({name:"todo_write",description:"Use this tool to create and manage a structured task list",parameters:S4.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),J=(Z&&Array.isArray(Z.todos)?Z.todos:[]).map(x8);if(!Z)return E1.jsxDEV(z,{flexDirection:"column",borderStyle:"round",borderColor:"red",children:E1.jsxDEV(G,{color:"red",children:"Error: Invalid todo data structure"},void 0,!1,void 0,this)},void 0,!1,void 0,this);return E1.jsxDEV(z,{flexDirection:"column",paddingY:1,children:E1.jsxDEV(z,{flexDirection:"column",marginTop:0,children:(()=>{if(J.length===0)return E1.jsxDEV(z,{paddingX:1,children:E1.jsxDEV(G,{color:"gray",children:"No tasks in todo list"},void 0,!1,void 0,this)},void 0,!1,void 0,this);return E1.jsxDEV(z,{flexDirection:"column",marginTop:0,children:J.map((K,Q)=>E1.jsxDEV(z,{paddingX:1,paddingY:0,children:[E1.jsxDEV(G,{color:c8[K.status],bold:!0,children:[u8[K.status]," "]},void 0,!0,void 0,this),E1.jsxDEV(G,{color:K.status==="in_progress"?"white":"gray",children:[Q+1,". ",K.content]},void 0,!0,void 0,this)]},K.id,!0,void 0,this))},void 0,!1,void 0,this)})()},void 0,!1,void 0,this)},void 0,!1,void 0,this)}});var g1=A(M(),1),d8=k4.schema,y4=l({name:"read_file",description:"Reads a file from the local filesystem",parameters:d8.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output;if(!Y)return g1.jsxDEV(g1.Fragment,{},void 0,!1,void 0,this);let K=(typeof Y==="string"?Y:String(Y??"")).split(`
|
|
45
|
+
`).length,Q=typeof Z?.file_path==="string"?Z.file_path:String(Z?.file_path??"");return g1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:g1.jsxDEV(z,{children:[g1.jsxDEV(G,{color:"blue",children:"Read "},void 0,!1,void 0,this),g1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),g1.jsxDEV(P1,{path:Q,rainbow:!0},void 0,!1,void 0,this),g1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this),g1.jsxDEV(G,{color:"gray",dimColor:!0,children:[" ","(",K," lines)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}});var p1=A(M(),1),l8=T4.schema,D4=l({name:"glob_files",description:"Find files by name patterns",parameters:l8.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output;if(!Y)return p1.jsxDEV(p1.Fragment,{},void 0,!1,void 0,this);let X=Y.split(`
|
|
46
|
+
`).filter(Boolean).length,K=typeof Z?.pattern==="string"?Z.pattern:String(Z?.pattern??"");return p1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:p1.jsxDEV(G,{children:[p1.jsxDEV(G,{color:"cyan",children:"Glob "},void 0,!1,void 0,this),p1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),p1.jsxDEV(P1,{path:K,rainbow:!0},void 0,!1,void 0,this),p1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this),p1.jsxDEV(G,{color:"gray",dimColor:!0,children:[" ","(",X," files)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}});import{z as I0}from"zod";var _1=A(M(),1),i8=I0.object({args:I0.array(I0.string()).optional().describe("ripgrep 参数数组,格式为 [OPTIONS...] PATTERN [PATH...]"),pattern:I0.string().optional().describe("搜索模式(结构化参数)"),path:I0.string().optional().describe("搜索路径(结构化参数)"),description:I0.string().optional().describe("操作描述"),head_limit:I0.number().optional().describe("限制输出行数")}),V4=l({name:"search_files_rg",description:"Ripgrep - fast text search tool",parameters:i8.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output;if(!Y)return _1.jsxDEV(_1.Fragment,{},void 0,!1,void 0,this);let K=(typeof Y==="string"?Y:String(Y??"")).split(`
|
|
47
|
+
`).filter(Boolean).length,Q=typeof Z?.pattern==="string"?Z.pattern:void 0,W=typeof Z?.path==="string"?Z.path:void 0;if(!Q&&Z?.args){let N=(Array.isArray(Z.args)?Z.args:[]).filter((U)=>typeof U==="string").filter((U)=>!U.startsWith("-"));if(N.length>0){if(W=N[N.length-1],N.length>1)Q=N[N.length-2]}}return _1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:_1.jsxDEV(G,{children:[_1.jsxDEV(G,{color:"magenta",children:"Ripgrep "},void 0,!1,void 0,this),Q&&_1.jsxDEV(_1.Fragment,{children:[_1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),_1.jsxDEV(P1,{path:Q,color:"magenta"},void 0,!1,void 0,this),_1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W&&W!=="./"&&_1.jsxDEV(_1.Fragment,{children:[_1.jsxDEV(G,{dimColor:!0,children:" in "},void 0,!1,void 0,this),_1.jsxDEV(P1,{path:W,rainbow:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this),_1.jsxDEV(G,{color:"gray",dimColor:!0,children:[" ","(",K," matches)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}});import{z as A$}from"zod";var s1=A(M(),1),o8=A$.object({description:A$.string().optional(),file_path:A$.string(),content:A$.string()}),j4=l({name:"write_file",description:"Writes a file to the local filesystem",parameters:o8.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output,J=typeof Z?.content==="string"?Z.content:String(Z?.content??""),X=typeof Z?.file_path==="string"?Z.file_path:String(Z?.file_path??""),K=J.split(`
|
|
48
|
+
`).length,Q=typeof Y==="string"?Y:"";return s1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:[s1.jsxDEV(z,{children:[s1.jsxDEV(G,{color:"green",children:"Write "},void 0,!1,void 0,this),s1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),s1.jsxDEV(P1,{path:X,rainbow:!0},void 0,!1,void 0,this),s1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this),s1.jsxDEV(G,{dimColor:!0,children:[" (",K," lines)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Q&&Q.startsWith("Error:")&&s1.jsxDEV(z,{marginTop:0,marginLeft:1,marginBottom:1,children:s1.jsxDEV(G,{color:"red",children:Q},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}});var N1=A(M(),1),r8=h4.schema,E4=l({name:"folder_operations",description:"Unified folder operations tool supporting create, list, delete, and existence check",parameters:r8.shape,render($){let Z=$.getInputRepaired(),Y=$.output;if(!Y)return N1.jsxDEV(N1.Fragment,{},void 0,!1,void 0,this);let J=typeof Y==="string"?Y:String(Y??""),X=typeof Z?.operation==="string"?Z.operation:String(Z?.operation??""),K=typeof Z?.folder_path==="string"?Z.folder_path:String(Z?.folder_path??""),W={create:"green",list:"blue",exists:"yellow",delete:"red"}[X]??"cyan",O=J.split(`
|
|
49
|
+
`).map((N,U)=>{if(N.match(/\d+ \w+|[\d-]+ [\d:]+/))return N1.jsxDEV(G,{dimColor:!0,children:N},U,!1,void 0,this);if(N.includes("✓")||N.includes("successfully")||N.includes("created")||N.includes("deleted"))return N1.jsxDEV(G,{color:"green",children:N},U,!1,void 0,this);if(N.includes("✗")||N.includes("Error")||N.includes("not found")||N.includes("failed"))return N1.jsxDEV(G,{color:"red",children:N},U,!1,void 0,this);if(N.startsWith("/")||N.includes("/:"))return N1.jsxDEV(G,{color:"cyan",children:N},U,!1,void 0,this);return N1.jsxDEV(G,{children:N},U,!1,void 0,this)});return N1.jsxDEV(z,{flexDirection:"column",paddingX:1,children:N1.jsxDEV(z,{children:[N1.jsxDEV(G,{bold:!0,color:W,children:[X,"Folder"]},void 0,!0,void 0,this),N1.jsxDEV(G,{dimColor:!0,children:" ("},void 0,!1,void 0,this),N1.jsxDEV(P1,{path:K,rainbow:!0},void 0,!1,void 0,this),N1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}});import{z as n8}from"zod";var Q1=A(M(),1),a8=n8.object({}),g4=l({name:"load_mcp_tools",description:`加载并查询所有可用的 MCP 工具列表。
|
|
50
50
|
|
|
51
51
|
返回:
|
|
52
52
|
- tools: MCP 工具列表,每个工具包含 name, description, schema
|
|
@@ -57,7 +57,7 @@ ${F.selected.join(`
|
|
|
57
57
|
- 获取工具的参数格式
|
|
58
58
|
- 检查 MCP 连接状态
|
|
59
59
|
|
|
60
|
-
重要:工具列表是动态的,建议在需要时调用此命令获取最新信息。`,parameters:
|
|
60
|
+
重要:工具列表是动态的,建议在需要时调用此命令获取最新信息。`,parameters:a8.shape,handler:n.waitForUIDone,render($){let Z=$.output,Y=typeof Z==="string"?Z:"",J=null;try{J=JSON.parse(Y)}catch(W){}let X=Array.isArray(J?.tools)?J.tools:[],K=Array.isArray(J?.status?.servers)?J.status.servers.filter((W)=>typeof W==="string"):[],Q=typeof J?.status?.toolCount==="number"?J.status.toolCount:void 0;return Q1.jsxDEV(z,{flexDirection:"column",children:[Q1.jsxDEV(z,{children:Q1.jsxDEV(G,{color:"blue",bold:!0,children:"load_mcp_tools"},void 0,!1,void 0,this)},void 0,!1,void 0,this),J?.status&&Q1.jsxDEV(z,{flexDirection:"column",marginTop:1,children:[Q1.jsxDEV(G,{color:"green",children:"✓ MCP 已连接"},void 0,!1,void 0,this),K.length>0&&Q1.jsxDEV(z,{marginLeft:2,children:Q1.jsxDEV(G,{color:"gray",children:["服务器: ",K.join(", ")]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Q!==void 0&&Q1.jsxDEV(z,{marginLeft:2,children:Q1.jsxDEV(G,{color:"gray",children:["工具数量: ",Q]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),X.length>0&&Q1.jsxDEV(z,{flexDirection:"column",marginTop:1,children:[Q1.jsxDEV(G,{color:"gray",dimColor:!0,children:["可用工具 (",X.length,"):"]},void 0,!0,void 0,this),X.slice(0,5).map((W,_)=>{let O=typeof W?.name==="string"?W.name:String(W?.name??""),N=typeof W?.description==="string"?W.description:"";return Q1.jsxDEV(z,{marginLeft:2,children:[Q1.jsxDEV(G,{color:"cyan",children:O},void 0,!1,void 0,this),N&&Q1.jsxDEV(G,{color:"gray",dimColor:!0,children:[" ","- ",N.slice(0,50),N.length>50?"...":""]},void 0,!0,void 0,this)]},_,!0,void 0,this)}),X.length>5&&Q1.jsxDEV(z,{marginLeft:2,children:Q1.jsxDEV(G,{color:"gray",dimColor:!0,children:["... 还有 ",X.length-5," 个工具"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Y&&Q1.jsxDEV(u0,{content:Y,maxLines:10,borderColor:"gray"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}});import{z as k0}from"zod";var M1=A(M(),1),s8=k0.object({commands:k0.array(k0.object({name:k0.string().describe("MCP 工具名称"),args:k0.record(k0.string(),k0.any()).describe("工具参数,JSON 对象格式")})).describe("要执行的 MCP 工具列表")}),p4=l({name:"execute_mcp_tool",description:`执行一个或多个 MCP 工具。
|
|
61
61
|
|
|
62
62
|
使用格式:
|
|
63
63
|
- commands: MCP 工具数组,每个工具包含 name 和 args
|
|
@@ -69,11 +69,11 @@ ${F.selected.join(`
|
|
|
69
69
|
重要:
|
|
70
70
|
- 所有工具独立执行,失败不影响其他工具
|
|
71
71
|
- 返回结果按命令顺序排列
|
|
72
|
-
- 适合批量执行 MCP 相关操作`,parameters:t8.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output,J=typeof Y==="string"?Y:"",X=null;try{X=JSON.parse(J)}catch(Q){}let K=Array.isArray(Z?.commands)?Z.commands:[];return M1.jsxDEV(z,{flexDirection:"column",children:[M1.jsxDEV(z,{children:M1.jsxDEV(G,{color:"blue",bold:!0,children:"execute_mcp_tool"},void 0,!1,void 0,this)},void 0,!1,void 0,this),K.length>0&&M1.jsxDEV(z,{flexDirection:"column",marginTop:1,children:[M1.jsxDEV(G,{color:"gray",dimColor:!0,children:["执行 ",K.length," 个 MCP 工具:"]},void 0,!0,void 0,this),K.map((Q,W)=>{let _=Q&&typeof Q==="object"&&typeof Q.name==="string"?Q.name:String(Q?.name??"");return M1.jsxDEV(z,{marginLeft:2,children:[M1.jsxDEV(G,{color:"yellow",children:[W+1,"."]},void 0,!0,void 0,this),M1.jsxDEV(G,{color:"cyan",children:_},void 0,!1,void 0,this)]},W,!0,void 0,this)})]},void 0,!0,void 0,this),Array.isArray(X?.results)&&M1.jsxDEV(z,{flexDirection:"column",marginTop:1,children:X.results.map((Q,W)=>M1.jsxDEV(z,{marginLeft:2,children:Q?.error?M1.jsxDEV(G,{color:"red",children:["✗ ",typeof Q.tool==="string"?Q.tool:""]},void 0,!0,void 0,this):M1.jsxDEV(G,{color:"green",children:["✓ ",typeof Q.tool==="string"?Q.tool:""]},void 0,!0,void 0,this)},W,!1,void 0,this))},void 0,!1,void 0,this),J&&M1.jsxDEV(u0,{content:J,maxLines:10,borderColor:"gray"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}});var t1=A(M(),1);import{z as d0}from"zod";var e8=d0.object({task_id:d0.string().optional().describe("The task id to ask the subagent"),subagent_id:d0.string().describe("The id of subagent to use"),subagent_type:d0.string().describe("The type of subagent to use (general-purpose, statusline-setup, output-style-setup)"),task_description:d0.string().describe("Describe what you want the subagent to do"),data_transfer:d0.any().optional().describe("Data to transfer to the subagent")}),$Y=({tool:$})=>{let Z=$.getInputRepaired(),Y=typeof Z?.subagent_id==="string"?Z.subagent_id:String(Z?.subagent_id??"");return t1.jsxDEV(z,{paddingX:1,flexDirection:"column",children:t1.jsxDEV(z,{children:[t1.jsxDEV(G,{color:"yellow",children:"Task "},void 0,!1,void 0,this),t1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),t1.jsxDEV(G,{color:"cyan",children:Y},void 0,!1,void 0,this),t1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},ZY=({tool:$})=>{return t1.jsxDEV(z,{flexDirection:"column",children:t1.jsxDEV($Y,{tool:$},void 0,!1,void 0,this)},void 0,!1,void 0,this)},m4=l({name:"task",description:"Launch a subagent to handle complex tasks autonomously",parameters:e8.shape,handler:n.waitForUIDone,render($){return t1.jsxDEV(ZY,{tool:$},void 0,!1,void 0,this)}});var c4=[b4,M4,v4,I4,y4,D4,V4,j4,E4,g4,p4,m4];var o=A(D(),1);var b=A(M(),1),YY=({validation:$,onComplete:Z})=>{let{config:Y,updateConfig:J}=t(),[X,K]=o.useState("welcome"),[Q,W]=o.useState(!1),[_,O]=o.useState(null),[N,U]=o.useState(0),[F,L]=o.useState(null),q=o.useRef(!0),w=o.useRef([]),R=o.useRef(N),P=Y?.providers||[];o.useEffect(()=>{w.current=P},[P]),o.useEffect(()=>{R.current=N},[N]);let S=P[N],u=o.useCallback(()=>L(null),[]);B1(u,F?3000:null);let m=o.useCallback(()=>{q.current=!0,O(null),W(!0),L(null)},[]),e=o.useCallback(()=>{let I=w.current,j=R.current,x=I[j];if(!x)return;q.current=!1,O(x),W(!0),L(null)},[]),v=o.useCallback(()=>{W(!1),O(null),L(null)},[]),i=o.useCallback(async(I)=>{let j=w.current,x=q.current,A1=x?[...j,I]:j.map((F0)=>F0.id===I.id?I:F0);if(await J({providers:A1}),L(x?`已添加 Provider: ${I.id}`:`已更新 Provider: ${I.id}`),x){let F0=A1.findIndex((p$)=>p$.id===I.id);U(F0>=0?F0:0)}v()},[J,v]),r=o.useCallback(()=>{if(!S||!S.apiKey){L("请先配置 Provider 的 API Key");return}J({provider_id:S.id,provider_type:S.type}).then(()=>{K("model")})},[S,J]);if(y1((I,j)=>{if(j.return||I===" ")K("provider")},{isActive:X==="welcome"}),y1((I,j)=>{if(Q)return;if(j.upArrow)U((x)=>x>0?x-1:P.length-1);else if(j.downArrow)U((x)=>x<P.length-1?x+1:0);else if(I==="n"||I==="N")m();else if((I==="e"||I==="E"||j.return)&&S)e();else if(I==="s"||I==="S")r()},{isActive:X==="provider"}),X==="welcome")return b.jsxDEV(z,{flexDirection:"column",paddingX:2,paddingY:1,width:"100%",children:[b.jsxDEV(z,{marginBottom:1,children:b.jsxDEV(G,{bold:!0,color:"cyan",children:"欢迎使用 Zen Code"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b.jsxDEV(z,{marginBottom:1,children:b.jsxDEV(G,{color:"yellow",children:$.reason||"需要进行初始配置"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b.jsxDEV(z,{flexDirection:"column",marginBottom:1,children:[b.jsxDEV(G,{dimColor:!0,children:"接下来将引导你完成:"},void 0,!1,void 0,this),b.jsxDEV(G,{dimColor:!0,children:" 1. 配置 Provider(API 服务提供商)"},void 0,!1,void 0,this),b.jsxDEV(G,{dimColor:!0,children:" 2. 选择 Model(AI 模型)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),b.jsxDEV(z,{children:b.jsxDEV(G,{color:"green",bold:!0,children:"按 Enter 开始配置"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(X==="provider")return b.jsxDEV(z,{flexDirection:"column",width:"100%",children:[b.jsxDEV(z,{paddingX:2,paddingY:1,children:b.jsxDEV(G,{bold:!0,color:"cyan",children:"步骤 1/2: Provider 配置"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q?b.jsxDEV(x4,{provider:_||void 0,onCancel:v,onSave:i},void 0,!1,void 0,this):b.jsxDEV(b.Fragment,{children:b.jsxDEV(z,{flexDirection:"column",paddingX:2,gap:1,children:[P.length===0?b.jsxDEV(z,{paddingY:1,children:b.jsxDEV(G,{color:"yellow",children:"未配置任何 Provider,请按 'n' 新增"},void 0,!1,void 0,this)},void 0,!1,void 0,this):P.map((I,j)=>{let x=!!I.apiKey,A1=x?"green":"yellow";return b.jsxDEV(z,{marginBottom:0,gap:1,children:[b.jsxDEV(G,{color:j===N?"cyan":"gray",bold:j===N,children:j===N?">":" "},void 0,!1,void 0,this),b.jsxDEV(G,{bold:j===N,color:j===N?"cyan":void 0,children:I.id},void 0,!1,void 0,this),b.jsxDEV(G,{color:"gray",dimColor:j!==N,children:[" ",I.type]},void 0,!0,void 0,this),b.jsxDEV(G,{color:A1,dimColor:j!==N,children:[" ","[",x?"已配置":"未配置","]"]},void 0,!0,void 0,this)]},I.id,!0,void 0,this)}),b.jsxDEV(z,{marginTop:1,children:[b.jsxDEV(G,{color:"gray",dimColor:!0,children:[b.jsxDEV(G,{color:"cyan",children:"↑↓"},void 0,!1,void 0,this)," 导航 ",b.jsxDEV(G,{color:"cyan",children:"n"},void 0,!1,void 0,this)," 新增"," ",b.jsxDEV(G,{color:"cyan",children:"e/Enter"},void 0,!1,void 0,this)," 编辑"," "]},void 0,!0,void 0,this),P.some((I)=>I.apiKey)&&b.jsxDEV(G,{children:[b.jsxDEV(G,{color:"green",children:"s"},void 0,!1,void 0,this)," 下一步"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),F&&b.jsxDEV(z,{paddingX:2,paddingY:0,children:b.jsxDEV(G,{color:"green",children:F},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(X==="model")return b.jsxDEV(XY,{onComplete:Z,onBack:()=>K("provider")},void 0,!1,void 0,this);return null},XY=({onComplete:$,onBack:Z})=>{let{config:Y,updateConfig:J}=t(),[X,K]=o.useState(0),Q=o.useMemo(()=>{return Y?.providers.find((U)=>U.id===Y.provider_id)||null},[Y?.providers,Y?.provider_id]),{data:W=[],isLoading:_,error:O}=u4({provider:Q,enabled:!!Q?.apiKey}),N=W[X];if(y1((U,F)=>{if(F.upArrow)K((L)=>L>0?L-1:W.length-1);else if(F.downArrow)K((L)=>L<W.length-1?L+1:0);else if(F.escape||U==="b"||U==="B")Z();else if((F.return||U===" ")&&N)J({model_id:N.id}).then(()=>{$()})},{isActive:!_&&!O&&Y!==null}),_)return b.jsxDEV(z,{flexDirection:"column",paddingX:2,paddingY:1,children:[b.jsxDEV(G,{bold:!0,color:"cyan",children:"步骤 2/2: Model 选择"},void 0,!1,void 0,this),b.jsxDEV(z,{marginTop:1,children:b.jsxDEV(G,{color:"gray",children:"加载模型列表中..."},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(O)return b.jsxDEV(z,{flexDirection:"column",paddingX:2,paddingY:1,children:[b.jsxDEV(G,{bold:!0,color:"cyan",children:"步骤 2/2: Model 选择"},void 0,!1,void 0,this),b.jsxDEV(z,{marginTop:1,children:b.jsxDEV(G,{color:"red",children:["加载失败: ",O.message]},void 0,!0,void 0,this)},void 0,!1,void 0,this),b.jsxDEV(z,{marginTop:1,children:b.jsxDEV(G,{color:"gray",dimColor:!0,children:["按 ",b.jsxDEV(G,{color:"cyan",children:"Esc"},void 0,!1,void 0,this)," 返回上一步"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return b.jsxDEV(z,{flexDirection:"column",width:"100%",children:[b.jsxDEV(z,{paddingX:2,paddingY:1,children:[b.jsxDEV(G,{bold:!0,color:"cyan",children:"步骤 2/2: Model 选择"},void 0,!1,void 0,this),Q&&b.jsxDEV(G,{dimColor:!0,children:[" ","- ",Q.id," (",Q.type,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),b.jsxDEV(z,{flexDirection:"column",paddingX:2,gap:0,children:W.map((U,F)=>b.jsxDEV(z,{marginBottom:0,gap:1,children:[b.jsxDEV(G,{color:F===X?"cyan":"gray",bold:F===X,children:F===X?">":" "},void 0,!1,void 0,this),b.jsxDEV(G,{bold:F===X,color:F===X?"cyan":void 0,children:U.id},void 0,!1,void 0,this),U.name!==U.id&&b.jsxDEV(G,{dimColor:F!==X,children:["(",U.name,")"]},void 0,!0,void 0,this)]},U.id,!0,void 0,this))},void 0,!1,void 0,this),b.jsxDEV(z,{marginTop:1,paddingX:2,children:b.jsxDEV(G,{color:"gray",dimColor:!0,children:[b.jsxDEV(G,{color:"cyan",children:"↑↓"},void 0,!1,void 0,this)," 导航 ",b.jsxDEV(G,{color:"cyan",children:"Enter/Space"},void 0,!1,void 0,this)," 确认"," ",b.jsxDEV(G,{color:"cyan",children:"Esc/B"},void 0,!1,void 0,this)," 返回"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},d4=YY;var l0=A(M(),1),JY=({children:$})=>{let{extraParams:Z,toggleCompactMode:Y,config:J}=t(),{setTools:X,loading:K}=Z1(),{hasPendingInteractions:Q}=k1();s6({tools:c4,setTools:X});let{needsSetup:W,validation:_}=$4({config:J});Y4({shouldFocus:!K});let O=X4(),{isChatView:N}=O,{handleExecuteTask:U}=J4({closePanel:O.closePanel});if(y1((L,q)=>{if(q.ctrl&&L==="o"&&N&&!K)Y();else if(q.ctrl&&L==="z"&&globalThis.Bun)import("v8").then((w)=>{w.writeHeapSnapshot("my-application.heapsnapshot")})},{isActive:N}),W&&_)return l0.jsxDEV(g,{name:"SetupWizard",fallback:null,children:l0.jsxDEV(d4,{validation:_,onComplete:O.closePanel},void 0,!1,void 0,this)},void 0,!1,void 0,this);let F={activeView:O.activeView,isChatView:O.isChatView,switchToHistory:O.switchToHistory,switchToKnowledge:O.switchToKnowledge,switchToSettings:O.switchToSettings,switchToModelProvider:O.switchToModelProvider,switchToAgent:O.switchToAgent,switchToTask:O.switchToTask,switchToMcp:O.switchToMcp,switchToProcess:O.switchToProcess,switchToErrors:O.switchToErrors,closePanel:O.closePanel,handleExecuteTask:U,hasPendingInteractions:Q};return l0.jsxDEV(g,{name:"ChatPanelContext",fallback:null,children:l0.jsxDEV(Q4,{value:F,children:$},void 0,!1,void 0,this)},void 0,!1,void 0,this)},l4=({children:$})=>{return l0.jsxDEV(JY,{children:$},void 0,!1,void 0,this)};var FZ=A(D(),1);var I$=A(D(),1);var W0=A(M(),1),KY=({content:$,messageNumber:Z})=>{let Y=q$(),J=()=>{if(typeof $==="string")return W0.jsxDEV(G,{color:"white",children:$},void 0,!1,void 0,this);if(Array.isArray($))return $.filter((X)=>X.type==="text").map((X,K)=>W0.jsxDEV(G,{color:"white",children:X.text},void 0,!1,void 0,this));return W0.jsxDEV(G,{color:"white",children:JSON.stringify($)},void 0,!1,void 0,this)};return W0.jsxDEV(z,{flexDirection:"column",children:[W0.jsxDEV(z,{children:W0.jsxDEV(G,{color:S0("amber"),children:[Z," ",Y]},void 0,!0,void 0,this)},void 0,!1,void 0,this),W0.jsxDEV(z,{children:W0.jsxDEV(G,{color:"gray",children:["└─ ",J()]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},w$=KY;var B=A(xY(),1);function Q6(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T0=Q6();function t4($){T0=$}var X$={exec:()=>null};function E($,Z=""){let Y=typeof $=="string"?$:$.source,J={replace:(X,K)=>{let Q=typeof K=="string"?K:K.source;return Q=Q.replace(z1.caret,"$1"),Y=Y.replace(X,Q),J},getRegex:()=>new RegExp(Y,Z)};return J}var QY=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),z1={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:($)=>new RegExp(`^( {0,3}${$})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}#`),htmlBeginRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}<(?:[a-z].*>|!--)`,"i")},WY=/^(?:[ \t]*(?:\n|$))+/,_Y=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,GY=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,J$=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,OY=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,W6=/(?:[*+-]|\d{1,9}[.)])/,e4=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,$3=E(e4).replace(/bull/g,W6).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),UY=E(e4).replace(/bull/g,W6).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),_6=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,NY=/^[^\n]+/,G6=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,zY=E(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",G6).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),HY=E(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,W6).getRegex(),P$="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",O6=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,FY=E("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",O6).replace("tag",P$).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Z3=E(_6).replace("hr",J$).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",P$).getRegex(),LY=E(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Z3).getRegex(),U6={blockquote:LY,code:_Y,def:zY,fences:GY,heading:OY,hr:J$,html:FY,lheading:$3,list:HY,newline:WY,paragraph:Z3,table:X$,text:NY},i4=E("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",J$).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",P$).getRegex(),AY={...U6,lheading:UY,table:i4,paragraph:E(_6).replace("hr",J$).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",i4).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",P$).getRegex()},qY={...U6,html:E(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",O6).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:X$,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:E(_6).replace("hr",J$).replace("heading",` *#{1,6} *[^
|
|
73
|
-
]`).replace("lheading",$3).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},
|
|
72
|
+
- 适合批量执行 MCP 相关操作`,parameters:s8.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output,J=typeof Y==="string"?Y:"",X=null;try{X=JSON.parse(J)}catch(Q){}let K=Array.isArray(Z?.commands)?Z.commands:[];return M1.jsxDEV(z,{flexDirection:"column",children:[M1.jsxDEV(z,{children:M1.jsxDEV(G,{color:"blue",bold:!0,children:"execute_mcp_tool"},void 0,!1,void 0,this)},void 0,!1,void 0,this),K.length>0&&M1.jsxDEV(z,{flexDirection:"column",marginTop:1,children:[M1.jsxDEV(G,{color:"gray",dimColor:!0,children:["执行 ",K.length," 个 MCP 工具:"]},void 0,!0,void 0,this),K.map((Q,W)=>{let _=Q&&typeof Q==="object"&&typeof Q.name==="string"?Q.name:String(Q?.name??"");return M1.jsxDEV(z,{marginLeft:2,children:[M1.jsxDEV(G,{color:"yellow",children:[W+1,"."]},void 0,!0,void 0,this),M1.jsxDEV(G,{color:"cyan",children:_},void 0,!1,void 0,this)]},W,!0,void 0,this)})]},void 0,!0,void 0,this),Array.isArray(X?.results)&&M1.jsxDEV(z,{flexDirection:"column",marginTop:1,children:X.results.map((Q,W)=>M1.jsxDEV(z,{marginLeft:2,children:Q?.error?M1.jsxDEV(G,{color:"red",children:["✗ ",typeof Q.tool==="string"?Q.tool:""]},void 0,!0,void 0,this):M1.jsxDEV(G,{color:"green",children:["✓ ",typeof Q.tool==="string"?Q.tool:""]},void 0,!0,void 0,this)},W,!1,void 0,this))},void 0,!1,void 0,this),J&&M1.jsxDEV(u0,{content:J,maxLines:10,borderColor:"gray"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}});var t1=A(M(),1);import{z as d0}from"zod";var t8=d0.object({task_id:d0.string().optional().describe("The task id to ask the subagent"),subagent_id:d0.string().describe("The id of subagent to use"),subagent_type:d0.string().describe("The type of subagent to use (general-purpose, statusline-setup, output-style-setup)"),task_description:d0.string().describe("Describe what you want the subagent to do"),data_transfer:d0.any().optional().describe("Data to transfer to the subagent")}),e8=({tool:$})=>{let Z=$.getInputRepaired(),Y=typeof Z?.subagent_id==="string"?Z.subagent_id:String(Z?.subagent_id??"");return t1.jsxDEV(z,{paddingX:1,flexDirection:"column",children:t1.jsxDEV(z,{children:[t1.jsxDEV(G,{color:"yellow",children:"Task "},void 0,!1,void 0,this),t1.jsxDEV(G,{dimColor:!0,children:"("},void 0,!1,void 0,this),t1.jsxDEV(G,{color:"cyan",children:Y},void 0,!1,void 0,this),t1.jsxDEV(G,{dimColor:!0,children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},$Y=({tool:$})=>{return t1.jsxDEV(z,{flexDirection:"column",children:t1.jsxDEV(e8,{tool:$},void 0,!1,void 0,this)},void 0,!1,void 0,this)},m4=l({name:"task",description:"Launch a subagent to handle complex tasks autonomously",parameters:t8.shape,handler:n.waitForUIDone,render($){return t1.jsxDEV($Y,{tool:$},void 0,!1,void 0,this)}});var c4=[b4,M4,v4,I4,y4,D4,V4,j4,E4,g4,p4,m4];var o=A(D(),1);var b=A(M(),1),ZY=({validation:$,onComplete:Z})=>{let{config:Y,updateConfig:J}=Z1(),[X,K]=o.useState("welcome"),[Q,W]=o.useState(!1),[_,O]=o.useState(null),[N,U]=o.useState(0),[F,L]=o.useState(null),q=o.useRef(!0),w=o.useRef([]),R=o.useRef(N),P=Y?.providers||[];o.useEffect(()=>{w.current=P},[P]),o.useEffect(()=>{R.current=N},[N]);let S=P[N],u=o.useCallback(()=>L(null),[]);B1(u,F?3000:null);let m=o.useCallback(()=>{q.current=!0,O(null),W(!0),L(null)},[]),t=o.useCallback(()=>{let I=w.current,j=R.current,x=I[j];if(!x)return;q.current=!1,O(x),W(!0),L(null)},[]),v=o.useCallback(()=>{W(!1),O(null),L(null)},[]),i=o.useCallback(async(I)=>{let j=w.current,x=q.current,A1=x?[...j,I]:j.map((F0)=>F0.id===I.id?I:F0);if(await J({providers:A1}),L(x?`已添加 Provider: ${I.id}`:`已更新 Provider: ${I.id}`),x){let F0=A1.findIndex((p$)=>p$.id===I.id);U(F0>=0?F0:0)}v()},[J,v]),r=o.useCallback(()=>{if(!S||!S.apiKey){L("请先配置 Provider 的 API Key");return}J({provider_id:S.id,provider_type:S.type}).then(()=>{K("model")})},[S,J]);if(y1((I,j)=>{if(j.return||I===" ")K("provider")},{isActive:X==="welcome"}),y1((I,j)=>{if(Q)return;if(j.upArrow)U((x)=>x>0?x-1:P.length-1);else if(j.downArrow)U((x)=>x<P.length-1?x+1:0);else if(I==="n"||I==="N")m();else if((I==="e"||I==="E"||j.return)&&S)t();else if(I==="s"||I==="S")r()},{isActive:X==="provider"}),X==="welcome")return b.jsxDEV(z,{flexDirection:"column",paddingX:2,paddingY:1,width:"100%",children:[b.jsxDEV(z,{marginBottom:1,children:b.jsxDEV(G,{bold:!0,color:"cyan",children:"欢迎使用 Zen Code"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b.jsxDEV(z,{marginBottom:1,children:b.jsxDEV(G,{color:"yellow",children:$.reason||"需要进行初始配置"},void 0,!1,void 0,this)},void 0,!1,void 0,this),b.jsxDEV(z,{flexDirection:"column",marginBottom:1,children:[b.jsxDEV(G,{dimColor:!0,children:"接下来将引导你完成:"},void 0,!1,void 0,this),b.jsxDEV(G,{dimColor:!0,children:" 1. 配置 Provider(API 服务提供商)"},void 0,!1,void 0,this),b.jsxDEV(G,{dimColor:!0,children:" 2. 选择 Model(AI 模型)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),b.jsxDEV(z,{children:b.jsxDEV(G,{color:"green",bold:!0,children:"按 Enter 开始配置"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(X==="provider")return b.jsxDEV(z,{flexDirection:"column",width:"100%",children:[b.jsxDEV(z,{paddingX:2,paddingY:1,children:b.jsxDEV(G,{bold:!0,color:"cyan",children:"步骤 1/2: Provider 配置"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q?b.jsxDEV(x4,{provider:_||void 0,onCancel:v,onSave:i},void 0,!1,void 0,this):b.jsxDEV(b.Fragment,{children:b.jsxDEV(z,{flexDirection:"column",paddingX:2,gap:1,children:[P.length===0?b.jsxDEV(z,{paddingY:1,children:b.jsxDEV(G,{color:"yellow",children:"未配置任何 Provider,请按 'n' 新增"},void 0,!1,void 0,this)},void 0,!1,void 0,this):P.map((I,j)=>{let x=!!I.apiKey,A1=x?"green":"yellow";return b.jsxDEV(z,{marginBottom:0,gap:1,children:[b.jsxDEV(G,{color:j===N?"cyan":"gray",bold:j===N,children:j===N?">":" "},void 0,!1,void 0,this),b.jsxDEV(G,{bold:j===N,color:j===N?"cyan":void 0,children:I.id},void 0,!1,void 0,this),b.jsxDEV(G,{color:"gray",dimColor:j!==N,children:[" ",I.type]},void 0,!0,void 0,this),b.jsxDEV(G,{color:A1,dimColor:j!==N,children:[" ","[",x?"已配置":"未配置","]"]},void 0,!0,void 0,this)]},I.id,!0,void 0,this)}),b.jsxDEV(z,{marginTop:1,children:[b.jsxDEV(G,{color:"gray",dimColor:!0,children:[b.jsxDEV(G,{color:"cyan",children:"↑↓"},void 0,!1,void 0,this)," 导航 ",b.jsxDEV(G,{color:"cyan",children:"n"},void 0,!1,void 0,this)," 新增"," ",b.jsxDEV(G,{color:"cyan",children:"e/Enter"},void 0,!1,void 0,this)," 编辑"," "]},void 0,!0,void 0,this),P.some((I)=>I.apiKey)&&b.jsxDEV(G,{children:[b.jsxDEV(G,{color:"green",children:"s"},void 0,!1,void 0,this)," 下一步"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),F&&b.jsxDEV(z,{paddingX:2,paddingY:0,children:b.jsxDEV(G,{color:"green",children:F},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(X==="model")return b.jsxDEV(YY,{onComplete:Z,onBack:()=>K("provider")},void 0,!1,void 0,this);return null},YY=({onComplete:$,onBack:Z})=>{let{config:Y,updateConfig:J}=Z1(),[X,K]=o.useState(0),Q=o.useMemo(()=>{return Y?.providers.find((U)=>U.id===Y.provider_id)||null},[Y?.providers,Y?.provider_id]),{data:W=[],isLoading:_,error:O}=u4({provider:Q,enabled:!!Q?.apiKey}),N=W[X];if(y1((U,F)=>{if(F.upArrow)K((L)=>L>0?L-1:W.length-1);else if(F.downArrow)K((L)=>L<W.length-1?L+1:0);else if(F.escape||U==="b"||U==="B")Z();else if((F.return||U===" ")&&N)J({model_id:N.id}).then(()=>{$()})},{isActive:!_&&!O&&Y!==null}),_)return b.jsxDEV(z,{flexDirection:"column",paddingX:2,paddingY:1,children:[b.jsxDEV(G,{bold:!0,color:"cyan",children:"步骤 2/2: Model 选择"},void 0,!1,void 0,this),b.jsxDEV(z,{marginTop:1,children:b.jsxDEV(G,{color:"gray",children:"加载模型列表中..."},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(O)return b.jsxDEV(z,{flexDirection:"column",paddingX:2,paddingY:1,children:[b.jsxDEV(G,{bold:!0,color:"cyan",children:"步骤 2/2: Model 选择"},void 0,!1,void 0,this),b.jsxDEV(z,{marginTop:1,children:b.jsxDEV(G,{color:"red",children:["加载失败: ",O.message]},void 0,!0,void 0,this)},void 0,!1,void 0,this),b.jsxDEV(z,{marginTop:1,children:b.jsxDEV(G,{color:"gray",dimColor:!0,children:["按 ",b.jsxDEV(G,{color:"cyan",children:"Esc"},void 0,!1,void 0,this)," 返回上一步"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return b.jsxDEV(z,{flexDirection:"column",width:"100%",children:[b.jsxDEV(z,{paddingX:2,paddingY:1,children:[b.jsxDEV(G,{bold:!0,color:"cyan",children:"步骤 2/2: Model 选择"},void 0,!1,void 0,this),Q&&b.jsxDEV(G,{dimColor:!0,children:[" ","- ",Q.id," (",Q.type,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),b.jsxDEV(z,{flexDirection:"column",paddingX:2,gap:0,children:W.map((U,F)=>b.jsxDEV(z,{marginBottom:0,gap:1,children:[b.jsxDEV(G,{color:F===X?"cyan":"gray",bold:F===X,children:F===X?">":" "},void 0,!1,void 0,this),b.jsxDEV(G,{bold:F===X,color:F===X?"cyan":void 0,children:U.id},void 0,!1,void 0,this),U.name!==U.id&&b.jsxDEV(G,{dimColor:F!==X,children:["(",U.name,")"]},void 0,!0,void 0,this)]},U.id,!0,void 0,this))},void 0,!1,void 0,this),b.jsxDEV(z,{marginTop:1,paddingX:2,children:b.jsxDEV(G,{color:"gray",dimColor:!0,children:[b.jsxDEV(G,{color:"cyan",children:"↑↓"},void 0,!1,void 0,this)," 导航 ",b.jsxDEV(G,{color:"cyan",children:"Enter/Space"},void 0,!1,void 0,this)," 确认"," ",b.jsxDEV(G,{color:"cyan",children:"Esc/B"},void 0,!1,void 0,this)," 返回"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},d4=ZY;var l0=A(M(),1),XY=({children:$})=>{let{extraParams:Z,toggleCompactMode:Y,config:J}=Z1(),{setTools:X,loading:K}=$1(),{hasPendingInteractions:Q}=k1();s6({tools:c4,setTools:X});let{needsSetup:W,validation:_}=$4({config:J});Y4({shouldFocus:!K});let O=X4(),{isChatView:N}=O,{handleExecuteTask:U}=J4({closePanel:O.closePanel});if(y1((L,q)=>{if(q.ctrl&&L==="o"&&N&&!K)Y();else if(q.ctrl&&L==="z"&&globalThis.Bun)import("v8").then((w)=>{w.writeHeapSnapshot("my-application.heapsnapshot")})},{isActive:N}),W&&_)return l0.jsxDEV(g,{name:"SetupWizard",fallback:null,children:l0.jsxDEV(d4,{validation:_,onComplete:O.closePanel},void 0,!1,void 0,this)},void 0,!1,void 0,this);let F={activeView:O.activeView,isChatView:O.isChatView,switchToHistory:O.switchToHistory,switchToKnowledge:O.switchToKnowledge,switchToSettings:O.switchToSettings,switchToModelProvider:O.switchToModelProvider,switchToAgent:O.switchToAgent,switchToTask:O.switchToTask,switchToMcp:O.switchToMcp,switchToProcess:O.switchToProcess,switchToErrors:O.switchToErrors,closePanel:O.closePanel,handleExecuteTask:U,hasPendingInteractions:Q};return l0.jsxDEV(g,{name:"ChatPanelContext",fallback:null,children:l0.jsxDEV(Q4,{value:F,children:$},void 0,!1,void 0,this)},void 0,!1,void 0,this)},l4=({children:$})=>{return l0.jsxDEV(XY,{children:$},void 0,!1,void 0,this)};var FZ=A(D(),1);var I$=A(D(),1);var W0=A(M(),1),JY=({content:$,messageNumber:Z})=>{let Y=q$(),J=()=>{if(typeof $==="string")return W0.jsxDEV(G,{color:"white",children:$},void 0,!1,void 0,this);if(Array.isArray($))return $.filter((X)=>X.type==="text").map((X,K)=>W0.jsxDEV(G,{color:"white",children:X.text},void 0,!1,void 0,this));return W0.jsxDEV(G,{color:"white",children:JSON.stringify($)},void 0,!1,void 0,this)};return W0.jsxDEV(z,{flexDirection:"column",children:[W0.jsxDEV(z,{children:W0.jsxDEV(G,{color:S0("amber"),children:[Z," ",Y]},void 0,!0,void 0,this)},void 0,!1,void 0,this),W0.jsxDEV(z,{children:W0.jsxDEV(G,{color:"gray",children:["└─ ",J()]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},w$=JY;var B=A(uY(),1);function Q6(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T0=Q6();function t4($){T0=$}var X$={exec:()=>null};function E($,Z=""){let Y=typeof $=="string"?$:$.source,J={replace:(X,K)=>{let Q=typeof K=="string"?K:K.source;return Q=Q.replace(z1.caret,"$1"),Y=Y.replace(X,Q),J},getRegex:()=>new RegExp(Y,Z)};return J}var KY=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),z1={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:($)=>new RegExp(`^( {0,3}${$})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}#`),htmlBeginRegex:($)=>new RegExp(`^ {0,${Math.min(3,$-1)}}<(?:[a-z].*>|!--)`,"i")},QY=/^(?:[ \t]*(?:\n|$))+/,WY=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,_Y=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,J$=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,GY=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,W6=/(?:[*+-]|\d{1,9}[.)])/,e4=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,$3=E(e4).replace(/bull/g,W6).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),OY=E(e4).replace(/bull/g,W6).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),_6=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,UY=/^[^\n]+/,G6=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,NY=E(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",G6).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),zY=E(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,W6).getRegex(),P$="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",O6=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,HY=E("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ \t]*)+\\n|$))","i").replace("comment",O6).replace("tag",P$).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Z3=E(_6).replace("hr",J$).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",P$).getRegex(),FY=E(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Z3).getRegex(),U6={blockquote:FY,code:WY,def:NY,fences:_Y,heading:GY,hr:J$,html:HY,lheading:$3,list:zY,newline:QY,paragraph:Z3,table:X$,text:UY},i4=E("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",J$).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}\t)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",P$).getRegex(),LY={...U6,lheading:OY,table:i4,paragraph:E(_6).replace("hr",J$).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",i4).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",P$).getRegex()},AY={...U6,html:E(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",O6).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:X$,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:E(_6).replace("hr",J$).replace("heading",` *#{1,6} *[^
|
|
73
|
+
]`).replace("lheading",$3).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},qY=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,wY=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Y3=/^( {2,}|\\)\n(?!\s*$)/,MY=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,f$=/[\p{P}\p{S}]/u,N6=/[\s\p{P}\p{S}]/u,X3=/[^\s\p{P}\p{S}]/u,RY=E(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,N6).getRegex(),J3=/(?!~)[\p{P}\p{S}]/u,bY=/(?!~)[\s\p{P}\p{S}]/u,BY=/(?:[^\s\p{P}\p{S}]|~)/u,PY=E(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",KY?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),K3=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,fY=E(K3,"u").replace(/punct/g,f$).getRegex(),CY=E(K3,"u").replace(/punct/g,J3).getRegex(),Q3="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",vY=E(Q3,"gu").replace(/notPunctSpace/g,X3).replace(/punctSpace/g,N6).replace(/punct/g,f$).getRegex(),SY=E(Q3,"gu").replace(/notPunctSpace/g,BY).replace(/punctSpace/g,bY).replace(/punct/g,J3).getRegex(),IY=E("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,X3).replace(/punctSpace/g,N6).replace(/punct/g,f$).getRegex(),kY=E(/\\(punct)/,"gu").replace(/punct/g,f$).getRegex(),yY=E(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),TY=E(O6).replace("(?:-->|$)","-->").getRegex(),DY=E("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",TY).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),R$=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,VY=E(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",R$).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),W3=E(/^!?\[(label)\]\[(ref)\]/).replace("label",R$).replace("ref",G6).getRegex(),_3=E(/^!?\[(ref)\](?:\[\])?/).replace("ref",G6).getRegex(),jY=E("reflink|nolink(?!\\()","g").replace("reflink",W3).replace("nolink",_3).getRegex(),o4=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,z6={_backpedal:X$,anyPunctuation:kY,autolink:yY,blockSkip:PY,br:Y3,code:wY,del:X$,emStrongLDelim:fY,emStrongRDelimAst:vY,emStrongRDelimUnd:IY,escape:qY,link:VY,nolink:_3,punctuation:RY,reflink:W3,reflinkSearch:jY,tag:DY,text:MY,url:X$},hY={...z6,link:E(/^!?\[(label)\]\((.*?)\)/).replace("label",R$).getRegex(),reflink:E(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",R$).getRegex()},K6={...z6,emStrongRDelimAst:SY,emStrongLDelim:CY,url:E(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",o4).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:E(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",o4).getRegex()},EY={...K6,br:E(Y3).replace("{2,}","*").getRegex(),text:E(K6.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},M$={normal:U6,gfm:LY,pedantic:AY},$$={normal:z6,gfm:K6,breaks:EY,pedantic:hY},gY={"&":"&","<":"<",">":">",'"':""","'":"'"},r4=($)=>gY[$];function e1($,Z){if(Z){if(z1.escapeTest.test($))return $.replace(z1.escapeReplace,r4)}else if(z1.escapeTestNoEncode.test($))return $.replace(z1.escapeReplaceNoEncode,r4);return $}function n4($){try{$=encodeURI($).replace(z1.percentDecode,"%")}catch{return null}return $}function a4($,Z){let Y=$.replace(z1.findPipe,(K,Q,W)=>{let _=!1,O=Q;for(;--O>=0&&W[O]==="\\";)_=!_;return _?"|":" |"}),J=Y.split(z1.splitPipe),X=0;if(J[0].trim()||J.shift(),J.length>0&&!J.at(-1)?.trim()&&J.pop(),Z)if(J.length>Z)J.splice(Z);else for(;J.length<Z;)J.push("");for(;X<J.length;X++)J[X]=J[X].trim().replace(z1.slashPipe,"|");return J}function Z$($,Z,Y){let J=$.length;if(J===0)return"";let X=0;for(;X<J;){let K=$.charAt(J-X-1);if(K===Z&&!Y)X++;else if(K!==Z&&Y)X++;else break}return $.slice(0,J-X)}function pY($,Z){if($.indexOf(Z[1])===-1)return-1;let Y=0;for(let J=0;J<$.length;J++)if($[J]==="\\")J++;else if($[J]===Z[0])Y++;else if($[J]===Z[1]&&(Y--,Y<0))return J;return Y>0?-2:-1}function s4($,Z,Y,J,X){let K=Z.href,Q=Z.title||null,W=$[1].replace(X.other.outputLinkReplace,"$1");J.state.inLink=!0;let _={type:$[0].charAt(0)==="!"?"image":"link",raw:Y,href:K,title:Q,text:W,tokens:J.inlineTokens(W)};return J.state.inLink=!1,_}function mY($,Z,Y){let J=$.match(Y.other.indentCodeCompensation);if(J===null)return Z;let X=J[1];return Z.split(`
|
|
74
74
|
`).map((K)=>{let Q=K.match(Y.other.beginningSpace);if(Q===null)return K;let[W]=Q;return W.length>=X.length?K.slice(X.length):K}).join(`
|
|
75
75
|
`)}var b$=class{options;rules;lexer;constructor($){this.options=$||T0}space($){let Z=this.rules.block.newline.exec($);if(Z&&Z[0].length>0)return{type:"space",raw:Z[0]}}code($){let Z=this.rules.block.code.exec($);if(Z){let Y=Z[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:Z[0],codeBlockStyle:"indented",text:this.options.pedantic?Y:Z$(Y,`
|
|
76
|
-
`)}}}fences($){let Z=this.rules.block.fences.exec($);if(Z){let Y=Z[0],J=
|
|
76
|
+
`)}}}fences($){let Z=this.rules.block.fences.exec($);if(Z){let Y=Z[0],J=mY(Y,Z[3]||"",this.rules);return{type:"code",raw:Y,lang:Z[2]?Z[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):Z[2],text:J}}}heading($){let Z=this.rules.block.heading.exec($);if(Z){let Y=Z[2].trim();if(this.rules.other.endingHash.test(Y)){let J=Z$(Y,"#");(this.options.pedantic||!J||this.rules.other.endingSpaceChar.test(J))&&(Y=J.trim())}return{type:"heading",raw:Z[0],depth:Z[1].length,text:Y,tokens:this.lexer.inline(Y)}}}hr($){let Z=this.rules.block.hr.exec($);if(Z)return{type:"hr",raw:Z$(Z[0],`
|
|
77
77
|
`)}}blockquote($){let Z=this.rules.block.blockquote.exec($);if(Z){let Y=Z$(Z[0],`
|
|
78
78
|
`).split(`
|
|
79
79
|
`),J="",X="",K=[];for(;Y.length>0;){let Q=!1,W=[],_;for(_=0;_<Y.length;_++)if(this.rules.other.blockquoteStart.test(Y[_]))W.push(Y[_]),Q=!0;else if(!Q)W.push(Y[_]);else break;Y=Y.slice(_);let O=W.join(`
|
|
@@ -88,13 +88,13 @@ ${N}`:N;let U=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTo
|
|
|
88
88
|
`);continue}}return{type:"blockquote",raw:J,tokens:K,text:X}}}list($){let Z=this.rules.block.list.exec($);if(Z){let Y=Z[1].trim(),J=Y.length>1,X={type:"list",raw:"",ordered:J,start:J?+Y.slice(0,-1):"",loose:!1,items:[]};Y=J?`\\d{1,9}\\${Y.slice(-1)}`:`\\${Y}`,this.options.pedantic&&(Y=J?Y:"[*+-]");let K=this.rules.other.listItemRegex(Y),Q=!1;for(;$;){let _=!1,O="",N="";if(!(Z=K.exec($))||this.rules.block.hr.test($))break;O=Z[0],$=$.substring(O.length);let U=Z[2].split(`
|
|
89
89
|
`,1)[0].replace(this.rules.other.listReplaceTabs,(P)=>" ".repeat(3*P.length)),F=$.split(`
|
|
90
90
|
`,1)[0],L=!U.trim(),q=0;if(this.options.pedantic?(q=2,N=U.trimStart()):L?q=Z[1].length+1:(q=Z[2].search(this.rules.other.nonSpaceChar),q=q>4?1:q,N=U.slice(q),q+=Z[1].length),L&&this.rules.other.blankLine.test(F)&&(O+=F+`
|
|
91
|
-
`,$=$.substring(F.length+1),_=!0),!_){let P=this.rules.other.nextBulletRegex(q),S=this.rules.other.hrRegex(q),u=this.rules.other.fencesBeginRegex(q),m=this.rules.other.headingBeginRegex(q),
|
|
92
|
-
`,1)[0],i;if(F=v,this.options.pedantic?(F=F.replace(this.rules.other.listReplaceNesting," "),i=F):i=F.replace(this.rules.other.tabCharGlobal," "),u.test(F)||m.test(F)||
|
|
91
|
+
`,$=$.substring(F.length+1),_=!0),!_){let P=this.rules.other.nextBulletRegex(q),S=this.rules.other.hrRegex(q),u=this.rules.other.fencesBeginRegex(q),m=this.rules.other.headingBeginRegex(q),t=this.rules.other.htmlBeginRegex(q);for(;$;){let v=$.split(`
|
|
92
|
+
`,1)[0],i;if(F=v,this.options.pedantic?(F=F.replace(this.rules.other.listReplaceNesting," "),i=F):i=F.replace(this.rules.other.tabCharGlobal," "),u.test(F)||m.test(F)||t.test(F)||P.test(F)||S.test(F))break;if(i.search(this.rules.other.nonSpaceChar)>=q||!F.trim())N+=`
|
|
93
93
|
`+i.slice(q);else{if(L||U.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||u.test(U)||m.test(U)||S.test(U))break;N+=`
|
|
94
94
|
`+F}!L&&!F.trim()&&(L=!0),O+=v+`
|
|
95
95
|
`,$=$.substring(v.length+1),U=i.slice(q)}}X.loose||(Q?X.loose=!0:this.rules.other.doubleBlankLine.test(O)&&(Q=!0));let w=null,R;this.options.gfm&&(w=this.rules.other.listIsTask.exec(N),w&&(R=w[0]!=="[ ] ",N=N.replace(this.rules.other.listReplaceTask,""))),X.items.push({type:"list_item",raw:O,task:!!w,checked:R,loose:!1,text:N,tokens:[]}),X.raw+=O}let W=X.items.at(-1);if(W)W.raw=W.raw.trimEnd(),W.text=W.text.trimEnd();else return;X.raw=X.raw.trimEnd();for(let _=0;_<X.items.length;_++)if(this.lexer.state.top=!1,X.items[_].tokens=this.lexer.blockTokens(X.items[_].text,[]),!X.loose){let O=X.items[_].tokens.filter((U)=>U.type==="space"),N=O.length>0&&O.some((U)=>this.rules.other.anyLine.test(U.raw));X.loose=N}if(X.loose)for(let _=0;_<X.items.length;_++)X.items[_].loose=!0;return X}}html($){let Z=this.rules.block.html.exec($);if(Z)return{type:"html",block:!0,raw:Z[0],pre:Z[1]==="pre"||Z[1]==="script"||Z[1]==="style",text:Z[0]}}def($){let Z=this.rules.block.def.exec($);if(Z){let Y=Z[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),J=Z[2]?Z[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",X=Z[3]?Z[3].substring(1,Z[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):Z[3];return{type:"def",tag:Y,raw:Z[0],href:J,title:X}}}table($){let Z=this.rules.block.table.exec($);if(!Z||!this.rules.other.tableDelimiter.test(Z[2]))return;let Y=a4(Z[1]),J=Z[2].replace(this.rules.other.tableAlignChars,"").split("|"),X=Z[3]?.trim()?Z[3].replace(this.rules.other.tableRowBlankLine,"").split(`
|
|
96
96
|
`):[],K={type:"table",raw:Z[0],header:[],align:[],rows:[]};if(Y.length===J.length){for(let Q of J)this.rules.other.tableAlignRight.test(Q)?K.align.push("right"):this.rules.other.tableAlignCenter.test(Q)?K.align.push("center"):this.rules.other.tableAlignLeft.test(Q)?K.align.push("left"):K.align.push(null);for(let Q=0;Q<Y.length;Q++)K.header.push({text:Y[Q],tokens:this.lexer.inline(Y[Q]),header:!0,align:K.align[Q]});for(let Q of X)K.rows.push(a4(Q,K.header.length).map((W,_)=>({text:W,tokens:this.lexer.inline(W),header:!1,align:K.align[_]})));return K}}lheading($){let Z=this.rules.block.lheading.exec($);if(Z)return{type:"heading",raw:Z[0],depth:Z[2].charAt(0)==="="?1:2,text:Z[1],tokens:this.lexer.inline(Z[1])}}paragraph($){let Z=this.rules.block.paragraph.exec($);if(Z){let Y=Z[1].charAt(Z[1].length-1)===`
|
|
97
|
-
`?Z[1].slice(0,-1):Z[1];return{type:"paragraph",raw:Z[0],text:Y,tokens:this.lexer.inline(Y)}}}text($){let Z=this.rules.block.text.exec($);if(Z)return{type:"text",raw:Z[0],text:Z[0],tokens:this.lexer.inline(Z[0])}}escape($){let Z=this.rules.inline.escape.exec($);if(Z)return{type:"escape",raw:Z[0],text:Z[1]}}tag($){let Z=this.rules.inline.tag.exec($);if(Z)return!this.lexer.state.inLink&&this.rules.other.startATag.test(Z[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(Z[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(Z[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(Z[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:Z[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:Z[0]}}link($){let Z=this.rules.inline.link.exec($);if(Z){let Y=Z[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(Y)){if(!this.rules.other.endAngleBracket.test(Y))return;let K=Z$(Y.slice(0,-1),"\\");if((Y.length-K.length)%2===0)return}else{let K=
|
|
97
|
+
`?Z[1].slice(0,-1):Z[1];return{type:"paragraph",raw:Z[0],text:Y,tokens:this.lexer.inline(Y)}}}text($){let Z=this.rules.block.text.exec($);if(Z)return{type:"text",raw:Z[0],text:Z[0],tokens:this.lexer.inline(Z[0])}}escape($){let Z=this.rules.inline.escape.exec($);if(Z)return{type:"escape",raw:Z[0],text:Z[1]}}tag($){let Z=this.rules.inline.tag.exec($);if(Z)return!this.lexer.state.inLink&&this.rules.other.startATag.test(Z[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(Z[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(Z[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(Z[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:Z[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:Z[0]}}link($){let Z=this.rules.inline.link.exec($);if(Z){let Y=Z[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(Y)){if(!this.rules.other.endAngleBracket.test(Y))return;let K=Z$(Y.slice(0,-1),"\\");if((Y.length-K.length)%2===0)return}else{let K=pY(Z[2],"()");if(K===-2)return;if(K>-1){let Q=(Z[0].indexOf("!")===0?5:4)+Z[1].length+K;Z[2]=Z[2].substring(0,K),Z[0]=Z[0].substring(0,Q).trim(),Z[3]=""}}let J=Z[2],X="";if(this.options.pedantic){let K=this.rules.other.pedanticHrefTitle.exec(J);K&&(J=K[1],X=K[3])}else X=Z[3]?Z[3].slice(1,-1):"";return J=J.trim(),this.rules.other.startAngleBracket.test(J)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(Y)?J=J.slice(1):J=J.slice(1,-1)),s4(Z,{href:J&&J.replace(this.rules.inline.anyPunctuation,"$1"),title:X&&X.replace(this.rules.inline.anyPunctuation,"$1")},Z[0],this.lexer,this.rules)}}reflink($,Z){let Y;if((Y=this.rules.inline.reflink.exec($))||(Y=this.rules.inline.nolink.exec($))){let J=(Y[2]||Y[1]).replace(this.rules.other.multipleSpaceGlobal," "),X=Z[J.toLowerCase()];if(!X){let K=Y[0].charAt(0);return{type:"text",raw:K,text:K}}return s4(Y,X,Y[0],this.lexer,this.rules)}}emStrong($,Z,Y=""){let J=this.rules.inline.emStrongLDelim.exec($);if(!J||J[3]&&Y.match(this.rules.other.unicodeAlphaNumeric))return;if(!(J[1]||J[2])||!Y||this.rules.inline.punctuation.exec(Y)){let X=[...J[0]].length-1,K,Q,W=X,_=0,O=J[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(O.lastIndex=0,Z=Z.slice(-1*$.length+X);(J=O.exec(Z))!=null;){if(K=J[1]||J[2]||J[3]||J[4]||J[5]||J[6],!K)continue;if(Q=[...K].length,J[3]||J[4]){W+=Q;continue}else if((J[5]||J[6])&&X%3&&!((X+Q)%3)){_+=Q;continue}if(W-=Q,W>0)continue;Q=Math.min(Q,Q+W+_);let N=[...J[0]][0].length,U=$.slice(0,X+J.index+N+Q);if(Math.min(X,Q)%2){let L=U.slice(1,-1);return{type:"em",raw:U,text:L,tokens:this.lexer.inlineTokens(L)}}let F=U.slice(2,-2);return{type:"strong",raw:U,text:F,tokens:this.lexer.inlineTokens(F)}}}}codespan($){let Z=this.rules.inline.code.exec($);if(Z){let Y=Z[2].replace(this.rules.other.newLineCharGlobal," "),J=this.rules.other.nonSpaceChar.test(Y),X=this.rules.other.startingSpaceChar.test(Y)&&this.rules.other.endingSpaceChar.test(Y);return J&&X&&(Y=Y.substring(1,Y.length-1)),{type:"codespan",raw:Z[0],text:Y}}}br($){let Z=this.rules.inline.br.exec($);if(Z)return{type:"br",raw:Z[0]}}del($){let Z=this.rules.inline.del.exec($);if(Z)return{type:"del",raw:Z[0],text:Z[2],tokens:this.lexer.inlineTokens(Z[2])}}autolink($){let Z=this.rules.inline.autolink.exec($);if(Z){let Y,J;return Z[2]==="@"?(Y=Z[1],J="mailto:"+Y):(Y=Z[1],J=Y),{type:"link",raw:Z[0],text:Y,href:J,tokens:[{type:"text",raw:Y,text:Y}]}}}url($){let Z;if(Z=this.rules.inline.url.exec($)){let Y,J;if(Z[2]==="@")Y=Z[0],J="mailto:"+Y;else{let X;do X=Z[0],Z[0]=this.rules.inline._backpedal.exec(Z[0])?.[0]??"";while(X!==Z[0]);Y=Z[0],Z[1]==="www."?J="http://"+Z[0]:J=Z[0]}return{type:"link",raw:Z[0],text:Y,href:J,tokens:[{type:"text",raw:Y,text:Y}]}}}inlineText($){let Z=this.rules.inline.text.exec($);if(Z){let Y=this.lexer.state.inRawBlock;return{type:"text",raw:Z[0],text:Z[0],escaped:Y}}}},m1=class ${tokens;options;state;tokenizer;inlineQueue;constructor(Z){this.tokens=[],this.tokens.links=Object.create(null),this.options=Z||T0,this.options.tokenizer=this.options.tokenizer||new b$,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let Y={other:z1,block:M$.normal,inline:$$.normal};this.options.pedantic?(Y.block=M$.pedantic,Y.inline=$$.pedantic):this.options.gfm&&(Y.block=M$.gfm,this.options.breaks?Y.inline=$$.breaks:Y.inline=$$.gfm),this.tokenizer.rules=Y}static get rules(){return{block:M$,inline:$$}}static lex(Z,Y){return new $(Y).lex(Z)}static lexInline(Z,Y){return new $(Y).inlineTokens(Z)}lex(Z){Z=Z.replace(z1.carriageReturn,`
|
|
98
98
|
`),this.blockTokens(Z,this.tokens);for(let Y=0;Y<this.inlineQueue.length;Y++){let J=this.inlineQueue[Y];this.inlineTokens(J.src,J.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(Z,Y=[],J=!1){for(this.options.pedantic&&(Z=Z.replace(z1.tabCharGlobal," ").replace(z1.spaceLine,""));Z;){let X;if(this.options.extensions?.block?.some((Q)=>(X=Q.call({lexer:this},Z,Y))?(Z=Z.substring(X.raw.length),Y.push(X),!0):!1))continue;if(X=this.tokenizer.space(Z)){Z=Z.substring(X.raw.length);let Q=Y.at(-1);X.raw.length===1&&Q!==void 0?Q.raw+=`
|
|
99
99
|
`:Y.push(X);continue}if(X=this.tokenizer.code(Z)){Z=Z.substring(X.raw.length);let Q=Y.at(-1);Q?.type==="paragraph"||Q?.type==="text"?(Q.raw+=(Q.raw.endsWith(`
|
|
100
100
|
`)?"":`
|
|
@@ -127,54 +127,54 @@ ${this.parser.parse($)}</blockquote>
|
|
|
127
127
|
${$}</tr>
|
|
128
128
|
`}tablecell($){let Z=this.parser.parseInline($.tokens),Y=$.header?"th":"td";return($.align?`<${Y} align="${$.align}">`:`<${Y}>`)+Z+`</${Y}>
|
|
129
129
|
`}strong({tokens:$}){return`<strong>${this.parser.parseInline($)}</strong>`}em({tokens:$}){return`<em>${this.parser.parseInline($)}</em>`}codespan({text:$}){return`<code>${e1($,!0)}</code>`}br($){return"<br>"}del({tokens:$}){return`<del>${this.parser.parseInline($)}</del>`}link({href:$,title:Z,tokens:Y}){let J=this.parser.parseInline(Y),X=n4($);if(X===null)return J;$=X;let K='<a href="'+$+'"';return Z&&(K+=' title="'+e1(Z)+'"'),K+=">"+J+"</a>",K}image({href:$,title:Z,text:Y,tokens:J}){J&&(Y=this.parser.parseInline(J,this.parser.textRenderer));let X=n4($);if(X===null)return e1(Y);$=X;let K=`<img src="${$}" alt="${Y}"`;return Z&&(K+=` title="${e1(Z)}"`),K+=">",K}text($){return"tokens"in $&&$.tokens?this.parser.parseInline($.tokens):("escaped"in $)&&$.escaped?$.text:e1($.text)}},H6=class{strong({text:$}){return $}em({text:$}){return $}codespan({text:$}){return $}del({text:$}){return $}html({text:$}){return $}text({text:$}){return $}link({text:$}){return""+$}image({text:$}){return""+$}br(){return""}},c1=class ${options;renderer;textRenderer;constructor(Z){this.options=Z||T0,this.options.renderer=this.options.renderer||new B$,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new H6}static parse(Z,Y){return new $(Y).parse(Z)}static parseInline(Z,Y){return new $(Y).parseInline(Z)}parse(Z,Y=!0){let J="";for(let X=0;X<Z.length;X++){let K=Z[X];if(this.options.extensions?.renderers?.[K.type]){let W=K,_=this.options.extensions.renderers[W.type].call({parser:this},W);if(_!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(W.type)){J+=_||"";continue}}let Q=K;switch(Q.type){case"space":{J+=this.renderer.space(Q);continue}case"hr":{J+=this.renderer.hr(Q);continue}case"heading":{J+=this.renderer.heading(Q);continue}case"code":{J+=this.renderer.code(Q);continue}case"table":{J+=this.renderer.table(Q);continue}case"blockquote":{J+=this.renderer.blockquote(Q);continue}case"list":{J+=this.renderer.list(Q);continue}case"html":{J+=this.renderer.html(Q);continue}case"def":{J+=this.renderer.def(Q);continue}case"paragraph":{J+=this.renderer.paragraph(Q);continue}case"text":{let W=Q,_=this.renderer.text(W);for(;X+1<Z.length&&Z[X+1].type==="text";)W=Z[++X],_+=`
|
|
130
|
-
`+this.renderer.text(W);Y?J+=this.renderer.paragraph({type:"paragraph",raw:_,text:_,tokens:[{type:"text",raw:_,text:_,escaped:!0}]}):J+=_;continue}default:{let W='Token with "'+Q.type+'" type was not found.';if(this.options.silent)return console.error(W),"";throw Error(W)}}}return J}parseInline(Z,Y=this.renderer){let J="";for(let X=0;X<Z.length;X++){let K=Z[X];if(this.options.extensions?.renderers?.[K.type]){let W=this.options.extensions.renderers[K.type].call({parser:this},K);if(W!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(K.type)){J+=W||"";continue}}let Q=K;switch(Q.type){case"escape":{J+=Y.text(Q);break}case"html":{J+=Y.html(Q);break}case"link":{J+=Y.link(Q);break}case"image":{J+=Y.image(Q);break}case"strong":{J+=Y.strong(Q);break}case"em":{J+=Y.em(Q);break}case"codespan":{J+=Y.codespan(Q);break}case"br":{J+=Y.br(Q);break}case"del":{J+=Y.del(Q);break}case"text":{J+=Y.text(Q);break}default:{let W='Token with "'+Q.type+'" type was not found.';if(this.options.silent)return console.error(W),"";throw Error(W)}}}return J}},Y$=class{options;block;constructor($){this.options=$||T0}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess($){return $}postprocess($){return $}processAllTokens($){return $}emStrongMask($){return $}provideLexer(){return this.block?m1.lex:m1.lexInline}provideParser(){return this.block?c1.parse:c1.parseInline}},
|
|
131
|
-
Please report this to https://github.com/markedjs/marked.`,$){let J="<p>An error occurred:</p><pre>"+e1(Y.message+"",!0)+"</pre>";return Z?Promise.resolve(J):J}if(Z)return Promise.reject(Y);throw Y}}},y0=new
|
|
132
|
-
`},K);default:if("text"in J)return B.jsx(G,{children:J.text},K);return null}})}function G3($,Z,Y,J){switch($.type){case"heading":{let X=$,K=`h${X.depth}`,Q=`h${X.depth}`,W=Y[K];if(W)return W(X.text,X);let _=F1(H1[Q],Z[Q]),O=typeof _.showSharp=="boolean"?_.showSharp:Boolean(J);return B.jsx(z,{..._0(_),children:B.jsxs(G,{...R1(_),children:[O&&`${"#".repeat(X.depth)} `,f1(X.tokens,Z,Y)]})})}case"paragraph":{let X=$,K=F1(H1.paragraph,Z.paragraph),Q=f1(X.tokens,Z,Y);if(Y.paragraph)return Y.paragraph(Q,X);return B.jsx(z,{..._0(K),children:B.jsx(G,{...R1(K),children:Q})})}case"code":{let X=$,K=F1(H1.code,Z.code);if(Y.code)return Y.code(X.text,X.lang,X);return B.jsx(z,{..._0(K),children:B.jsx(G,{...R1(K),children:X.text})})}case"blockquote":{let X=$,K=F1(H1.blockquote,Z.blockquote);if(Y.blockquote){let Q=X.tokens.map((W,_)=>B.jsx(z,{children:G3(W,Z,Y,J)},`bq-${_}`));return Y.blockquote(Q,X)}return B.jsx(z,{..._0(K),children:B.jsx(z,{flexDirection:"column",children:X.tokens.map((Q,W)=>B.jsx(G,{...R1(K),children:Q.type==="paragraph"?f1(Q.tokens,Z,Y):Q.text||""},`bq-text-${W}`))})})}case"list":{let X=$,K=F1(H1.list,Z.list),Q=F1(H1.listItem,Z.listItem),W=Q.bullet||"●",_=X.items.map((O,N)=>{let U=typeof X.start=="number"?X.start:1,F=X.ordered?`${U+N}. `:`${W} `,L=f1(O.tokens,Z,Y);if(Y.listItem)return B.jsx(z,{..._0(Q),children:Y.listItem(L,O)},`li-${N}`);return B.jsx(z,{..._0(Q),children:B.jsxs(G,{...R1(Q),children:[F,L]})},`li-${N}`)});if(Y.list)return Y.list(_,X.ordered,X);return B.jsx(z,{flexDirection:"column",..._0(K),children:_})}case"hr":{let X=$,K=F1(H1.hr,Z.hr),Q=K.char||"─",W=K.width||40;if(Y.hr)return Y.hr(X);return B.jsx(z,{..._0(K),children:B.jsx(G,{...R1(K),children:Q.repeat(W)})})}case"table":{let X=$,K=F1(H1.table,Z.table),Q=F1(H1.tableCell,Z.tableCell),W=(w)=>w.map((R)=>{if("text"in R)return R.text;return""}).join(""),_=X.header.map((w,R)=>{let P=W(w.tokens).length,S=Math.max(...X.rows.map((u)=>{let m=u[R]?.tokens;return m?W(m).length:0}),0);return Math.max(P,S,3)}),O=B.jsxs(G,{dimColor:!0,children:["┌─",_.map((w)=>"─".repeat(w)).join("─┬─"),"─┐"]}),N=B.jsxs(G,{children:[B.jsx(G,{dimColor:!0,children:"│ "}),X.header.map((w,R)=>{let P=f1(w.tokens,Z,Y),S=W(w.tokens);return B.jsxs(G,{children:[B.jsxs(G,{bold:!0,...R1(Q),children:[P," ".repeat(Math.max(0,(_[R]||3)-S.length))]}),B.jsxs(G,{dimColor:!0,children:[" ","│",R<X.header.length-1?" ":""]})]},`th-${R}`)})]}),U=B.jsxs(G,{dimColor:!0,children:["├─",_.map((w)=>"─".repeat(w)).join("─┼─"),"─┤"]}),F=X.rows.map((w,R)=>B.jsxs(G,{children:[B.jsx(G,{dimColor:!0,children:"│ "}),w.map((P,S)=>{let u=f1(P.tokens,Z,Y),m=W(P.tokens),
|
|
133
|
-
`});case"html":return B.jsx(G,{dimColor:!0,children:$.text});default:if("text"in $)return B.jsx(G,{children:$.text});return null}}var O3=D0.memo(function({token:$,styles:Z,renderers:Y,showSharp:J}){return B.jsx(B.Fragment,{children:G3($,Z,Y,J)})},($,Z)=>$.token===Z.token);O3.displayName="MemoizedBlock";function
|
|
130
|
+
`+this.renderer.text(W);Y?J+=this.renderer.paragraph({type:"paragraph",raw:_,text:_,tokens:[{type:"text",raw:_,text:_,escaped:!0}]}):J+=_;continue}default:{let W='Token with "'+Q.type+'" type was not found.';if(this.options.silent)return console.error(W),"";throw Error(W)}}}return J}parseInline(Z,Y=this.renderer){let J="";for(let X=0;X<Z.length;X++){let K=Z[X];if(this.options.extensions?.renderers?.[K.type]){let W=this.options.extensions.renderers[K.type].call({parser:this},K);if(W!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(K.type)){J+=W||"";continue}}let Q=K;switch(Q.type){case"escape":{J+=Y.text(Q);break}case"html":{J+=Y.html(Q);break}case"link":{J+=Y.link(Q);break}case"image":{J+=Y.image(Q);break}case"strong":{J+=Y.strong(Q);break}case"em":{J+=Y.em(Q);break}case"codespan":{J+=Y.codespan(Q);break}case"br":{J+=Y.br(Q);break}case"del":{J+=Y.del(Q);break}case"text":{J+=Y.text(Q);break}default:{let W='Token with "'+Q.type+'" type was not found.';if(this.options.silent)return console.error(W),"";throw Error(W)}}}return J}},Y$=class{options;block;constructor($){this.options=$||T0}static passThroughHooks=new Set(["preprocess","postprocess","processAllTokens","emStrongMask"]);static passThroughHooksRespectAsync=new Set(["preprocess","postprocess","processAllTokens"]);preprocess($){return $}postprocess($){return $}processAllTokens($){return $}emStrongMask($){return $}provideLexer(){return this.block?m1.lex:m1.lexInline}provideParser(){return this.block?c1.parse:c1.parseInline}},cY=class{defaults=Q6();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=c1;Renderer=B$;TextRenderer=H6;Lexer=m1;Tokenizer=b$;Hooks=Y$;constructor(...$){this.use(...$)}walkTokens($,Z){let Y=[];for(let J of $)switch(Y=Y.concat(Z.call(this,J)),J.type){case"table":{let X=J;for(let K of X.header)Y=Y.concat(this.walkTokens(K.tokens,Z));for(let K of X.rows)for(let Q of K)Y=Y.concat(this.walkTokens(Q.tokens,Z));break}case"list":{let X=J;Y=Y.concat(this.walkTokens(X.items,Z));break}default:{let X=J;this.defaults.extensions?.childTokens?.[X.type]?this.defaults.extensions.childTokens[X.type].forEach((K)=>{let Q=X[K].flat(1/0);Y=Y.concat(this.walkTokens(Q,Z))}):X.tokens&&(Y=Y.concat(this.walkTokens(X.tokens,Z)))}}return Y}use(...$){let Z=this.defaults.extensions||{renderers:{},childTokens:{}};return $.forEach((Y)=>{let J={...Y};if(J.async=this.defaults.async||J.async||!1,Y.extensions&&(Y.extensions.forEach((X)=>{if(!X.name)throw Error("extension name required");if("renderer"in X){let K=Z.renderers[X.name];K?Z.renderers[X.name]=function(...Q){let W=X.renderer.apply(this,Q);return W===!1&&(W=K.apply(this,Q)),W}:Z.renderers[X.name]=X.renderer}if("tokenizer"in X){if(!X.level||X.level!=="block"&&X.level!=="inline")throw Error("extension level must be 'block' or 'inline'");let K=Z[X.level];K?K.unshift(X.tokenizer):Z[X.level]=[X.tokenizer],X.start&&(X.level==="block"?Z.startBlock?Z.startBlock.push(X.start):Z.startBlock=[X.start]:X.level==="inline"&&(Z.startInline?Z.startInline.push(X.start):Z.startInline=[X.start]))}"childTokens"in X&&X.childTokens&&(Z.childTokens[X.name]=X.childTokens)}),J.extensions=Z),Y.renderer){let X=this.defaults.renderer||new B$(this.defaults);for(let K in Y.renderer){if(!(K in X))throw Error(`renderer '${K}' does not exist`);if(["options","parser"].includes(K))continue;let Q=K,W=Y.renderer[Q],_=X[Q];X[Q]=(...O)=>{let N=W.apply(X,O);return N===!1&&(N=_.apply(X,O)),N||""}}J.renderer=X}if(Y.tokenizer){let X=this.defaults.tokenizer||new b$(this.defaults);for(let K in Y.tokenizer){if(!(K in X))throw Error(`tokenizer '${K}' does not exist`);if(["options","rules","lexer"].includes(K))continue;let Q=K,W=Y.tokenizer[Q],_=X[Q];X[Q]=(...O)=>{let N=W.apply(X,O);return N===!1&&(N=_.apply(X,O)),N}}J.tokenizer=X}if(Y.hooks){let X=this.defaults.hooks||new Y$;for(let K in Y.hooks){if(!(K in X))throw Error(`hook '${K}' does not exist`);if(["options","block"].includes(K))continue;let Q=K,W=Y.hooks[Q],_=X[Q];Y$.passThroughHooks.has(K)?X[Q]=(O)=>{if(this.defaults.async&&Y$.passThroughHooksRespectAsync.has(K))return(async()=>{let U=await W.call(X,O);return _.call(X,U)})();let N=W.call(X,O);return _.call(X,N)}:X[Q]=(...O)=>{if(this.defaults.async)return(async()=>{let U=await W.apply(X,O);return U===!1&&(U=await _.apply(X,O)),U})();let N=W.apply(X,O);return N===!1&&(N=_.apply(X,O)),N}}J.hooks=X}if(Y.walkTokens){let X=this.defaults.walkTokens,K=Y.walkTokens;J.walkTokens=function(Q){let W=[];return W.push(K.call(this,Q)),X&&(W=W.concat(X.call(this,Q))),W}}this.defaults={...this.defaults,...J}}),this}setOptions($){return this.defaults={...this.defaults,...$},this}lexer($,Z){return m1.lex($,Z??this.defaults)}parser($,Z){return c1.parse($,Z??this.defaults)}parseMarkdown($){return(Z,Y)=>{let J={...Y},X={...this.defaults,...J},K=this.onError(!!X.silent,!!X.async);if(this.defaults.async===!0&&J.async===!1)return K(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof Z>"u"||Z===null)return K(Error("marked(): input parameter is undefined or null"));if(typeof Z!="string")return K(Error("marked(): input parameter is of type "+Object.prototype.toString.call(Z)+", string expected"));if(X.hooks&&(X.hooks.options=X,X.hooks.block=$),X.async)return(async()=>{let Q=X.hooks?await X.hooks.preprocess(Z):Z,W=await(X.hooks?await X.hooks.provideLexer():$?m1.lex:m1.lexInline)(Q,X),_=X.hooks?await X.hooks.processAllTokens(W):W;X.walkTokens&&await Promise.all(this.walkTokens(_,X.walkTokens));let O=await(X.hooks?await X.hooks.provideParser():$?c1.parse:c1.parseInline)(_,X);return X.hooks?await X.hooks.postprocess(O):O})().catch(K);try{X.hooks&&(Z=X.hooks.preprocess(Z));let Q=(X.hooks?X.hooks.provideLexer():$?m1.lex:m1.lexInline)(Z,X);X.hooks&&(Q=X.hooks.processAllTokens(Q)),X.walkTokens&&this.walkTokens(Q,X.walkTokens);let W=(X.hooks?X.hooks.provideParser():$?c1.parse:c1.parseInline)(Q,X);return X.hooks&&(W=X.hooks.postprocess(W)),W}catch(Q){return K(Q)}}}onError($,Z){return(Y)=>{if(Y.message+=`
|
|
131
|
+
Please report this to https://github.com/markedjs/marked.`,$){let J="<p>An error occurred:</p><pre>"+e1(Y.message+"",!0)+"</pre>";return Z?Promise.resolve(J):J}if(Z)return Promise.reject(Y);throw Y}}},y0=new cY;function p($,Z){return y0.parse($,Z)}p.options=p.setOptions=function($){return y0.setOptions($),p.defaults=y0.defaults,t4(p.defaults),p};p.getDefaults=Q6;p.defaults=T0;p.use=function(...$){return y0.use(...$),p.defaults=y0.defaults,t4(p.defaults),p};p.walkTokens=function($,Z){return y0.walkTokens($,Z)};p.parseInline=y0.parseInline;p.Parser=c1;p.parser=c1.parse;p.Renderer=B$;p.TextRenderer=H6;p.Lexer=m1;p.lexer=m1.lex;p.Tokenizer=b$;p.Hooks=Y$;p.parse=p;var{options:PQ,setOptions:fQ,use:CQ,walkTokens:vQ,parseInline:SQ}=p;var IQ=c1.parse,kQ=m1.lex;var D0=A(D(),1),H1={h1:{bold:!0,marginBottom:1,color:"#f74cc7ff"},h2:{bold:!0,marginBottom:1,color:"#326cfcff"},h3:{bold:!0,color:"#24ffedff"},h4:{bold:!0,color:"#e29418ff"},h5:{bold:!0,color:"#9fc214ff"},h6:{bold:!0,dimColor:!0,color:"#88eb2bff"},paragraph:{},blockquote:{paddingLeft:1,dimColor:!0,borderTop:!1,borderBottom:!1,borderRight:!1,borderStyle:"single",borderDimColor:!0},code:{marginTop:1,paddingX:2},codespan:{dimColor:!0},list:{},listItem:{bullet:"●",paddingLeft:2},hr:{char:"─",width:40,dimColor:!0},link:{color:"#343afcff",underline:!0},strong:{bold:!0},em:{italic:!0},del:{strikethrough:!0,dimColor:!0},image:{color:"blue"},table:{},tableCell:{paddingRight:2}},xY=["color","backgroundColor","dimColor","bold","italic","underline","strikethrough","inverse","wrap"],dY=["paddingLeft","paddingRight","paddingTop","paddingBottom","padding","paddingX","paddingY","marginLeft","marginRight","marginTop","marginBottom","margin","marginX","marginY","borderStyle","borderColor","borderTop","borderBottom","borderLeft","borderRight","borderDimColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopDimColor","borderBottomDimColor","borderLeftDimColor","borderRightDimColor"];function R1($){if(!$)return{};let Z={};for(let Y of xY)if(Y in $)Z[Y]=$[Y];return Z}function _0($){if(!$)return{};let Z={};for(let Y of dY)if(Y in $)Z[Y]=$[Y];return Z}function F1($,Z){if(!$&&!Z)return{};if(!$)return Z;if(!Z)return $;return{...$,...Z}}function f1($,Z,Y){if(!$||$.length===0)return null;return $.map((J,X)=>{let K=`inline-${X}`;switch(J.type){case"text":case"escape":{let Q=J;if("tokens"in Q&&Q.tokens)return B.jsx(G,{children:f1(Q.tokens,Z,Y)},K);return B.jsx(G,{children:Q.text},K)}case"strong":{let Q=J,W=F1(H1.strong,Z.strong);if(Y.strong)return B.jsx(G,{children:Y.strong(f1(Q.tokens,Z,Y),Q)},K);return B.jsx(G,{...R1(W),children:f1(Q.tokens,Z,Y)},K)}case"em":{let Q=J,W=F1(H1.em,Z.em);if(Y.em)return B.jsx(G,{children:Y.em(f1(Q.tokens,Z,Y),Q)},K);return B.jsx(G,{...R1(W),children:f1(Q.tokens,Z,Y)},K)}case"del":{let Q=J,W=F1(H1.del,Z.del);if(Y.del)return B.jsx(G,{children:Y.del(f1(Q.tokens,Z,Y),Q)},K);return B.jsx(G,{...R1(W),children:f1(Q.tokens,Z,Y)},K)}case"codespan":{let Q=J,W=F1(H1.codespan,Z.codespan);if(Y.codespan)return B.jsx(G,{children:Y.codespan(Q.text,Q)},K);return B.jsx(G,{...R1(W),children:Q.text},K)}case"link":{let Q=J,W=F1(H1.link,Z.link);if(Y.link)return B.jsx(G,{children:Y.link(Q.text,Q.href,Q.title,Q)},K);return B.jsxs(G,{...R1(W),children:[Q.text,Q.href&&` (${Q.href})`]},K)}case"image":{let Q=J,W=F1(H1.image,Z.image);if(Y.image)return B.jsx(G,{children:Y.image(Q.text,Q.href,Q.title,Q)},K);return B.jsxs(G,{...R1(W),children:["[Image: ",Q.text||Q.href,"]"]},K)}case"br":return B.jsx(G,{children:`
|
|
132
|
+
`},K);default:if("text"in J)return B.jsx(G,{children:J.text},K);return null}})}function G3($,Z,Y,J){switch($.type){case"heading":{let X=$,K=`h${X.depth}`,Q=`h${X.depth}`,W=Y[K];if(W)return W(X.text,X);let _=F1(H1[Q],Z[Q]),O=typeof _.showSharp=="boolean"?_.showSharp:Boolean(J);return B.jsx(z,{..._0(_),children:B.jsxs(G,{...R1(_),children:[O&&`${"#".repeat(X.depth)} `,f1(X.tokens,Z,Y)]})})}case"paragraph":{let X=$,K=F1(H1.paragraph,Z.paragraph),Q=f1(X.tokens,Z,Y);if(Y.paragraph)return Y.paragraph(Q,X);return B.jsx(z,{..._0(K),children:B.jsx(G,{...R1(K),children:Q})})}case"code":{let X=$,K=F1(H1.code,Z.code);if(Y.code)return Y.code(X.text,X.lang,X);return B.jsx(z,{..._0(K),children:B.jsx(G,{...R1(K),children:X.text})})}case"blockquote":{let X=$,K=F1(H1.blockquote,Z.blockquote);if(Y.blockquote){let Q=X.tokens.map((W,_)=>B.jsx(z,{children:G3(W,Z,Y,J)},`bq-${_}`));return Y.blockquote(Q,X)}return B.jsx(z,{..._0(K),children:B.jsx(z,{flexDirection:"column",children:X.tokens.map((Q,W)=>B.jsx(G,{...R1(K),children:Q.type==="paragraph"?f1(Q.tokens,Z,Y):Q.text||""},`bq-text-${W}`))})})}case"list":{let X=$,K=F1(H1.list,Z.list),Q=F1(H1.listItem,Z.listItem),W=Q.bullet||"●",_=X.items.map((O,N)=>{let U=typeof X.start=="number"?X.start:1,F=X.ordered?`${U+N}. `:`${W} `,L=f1(O.tokens,Z,Y);if(Y.listItem)return B.jsx(z,{..._0(Q),children:Y.listItem(L,O)},`li-${N}`);return B.jsx(z,{..._0(Q),children:B.jsxs(G,{...R1(Q),children:[F,L]})},`li-${N}`)});if(Y.list)return Y.list(_,X.ordered,X);return B.jsx(z,{flexDirection:"column",..._0(K),children:_})}case"hr":{let X=$,K=F1(H1.hr,Z.hr),Q=K.char||"─",W=K.width||40;if(Y.hr)return Y.hr(X);return B.jsx(z,{..._0(K),children:B.jsx(G,{...R1(K),children:Q.repeat(W)})})}case"table":{let X=$,K=F1(H1.table,Z.table),Q=F1(H1.tableCell,Z.tableCell),W=(w)=>w.map((R)=>{if("text"in R)return R.text;return""}).join(""),_=X.header.map((w,R)=>{let P=W(w.tokens).length,S=Math.max(...X.rows.map((u)=>{let m=u[R]?.tokens;return m?W(m).length:0}),0);return Math.max(P,S,3)}),O=B.jsxs(G,{dimColor:!0,children:["┌─",_.map((w)=>"─".repeat(w)).join("─┬─"),"─┐"]}),N=B.jsxs(G,{children:[B.jsx(G,{dimColor:!0,children:"│ "}),X.header.map((w,R)=>{let P=f1(w.tokens,Z,Y),S=W(w.tokens);return B.jsxs(G,{children:[B.jsxs(G,{bold:!0,...R1(Q),children:[P," ".repeat(Math.max(0,(_[R]||3)-S.length))]}),B.jsxs(G,{dimColor:!0,children:[" ","│",R<X.header.length-1?" ":""]})]},`th-${R}`)})]}),U=B.jsxs(G,{dimColor:!0,children:["├─",_.map((w)=>"─".repeat(w)).join("─┼─"),"─┤"]}),F=X.rows.map((w,R)=>B.jsxs(G,{children:[B.jsx(G,{dimColor:!0,children:"│ "}),w.map((P,S)=>{let u=f1(P.tokens,Z,Y),m=W(P.tokens),t=_[S]||3;return B.jsxs(G,{children:[B.jsxs(G,{...R1(Q),children:[u," ".repeat(Math.max(0,t-m.length))]}),B.jsxs(G,{dimColor:!0,children:[" │",S<w.length-1?" ":""]})]},`td-${R}-${S}`)})]},`tr-${R}`)),L=B.jsxs(G,{dimColor:!0,children:["└─",_.map((w)=>"─".repeat(w)).join("─┴─"),"─┘"]}),q=B.jsxs(B.Fragment,{children:[O,N,U,F,L]});if(Y.table)return Y.table(N,F,X);return B.jsx(z,{flexDirection:"column",..._0(K),children:q})}case"space":return B.jsx(G,{children:`
|
|
133
|
+
`});case"html":return B.jsx(G,{dimColor:!0,children:$.text});default:if("text"in $)return B.jsx(G,{children:$.text});return null}}var O3=D0.memo(function({token:$,styles:Z,renderers:Y,showSharp:J}){return B.jsx(B.Fragment,{children:G3($,Z,Y,J)})},($,Z)=>$.token===Z.token);O3.displayName="MemoizedBlock";function lY({children:$,id:Z,styles:Y={},renderers:J={},showSharp:X=!1}){let K=D0.useId(),Q=Z||K,W=D0.useMemo(()=>p.lexer($,{silent:!0,gfm:!0}),[$]);return B.jsx(z,{flexDirection:"column",children:W.map((_,O)=>B.jsx(O3,{token:_,styles:Y,renderers:J,showSharp:X},`${Q}-block-${O}`))})}var U3=D0.memo(lY);U3.displayName="Markdown";var iY=U3,N3=iY;var z3=A(D(),1);var K$=A(M(),1),H3=({children:$,color:Z,dim:Y,bold:J,italic:X})=>{let K=z3.useMemo(()=>{return $.split(`
|
|
134
134
|
`).map((Q)=>Q===""?`
|
|
135
|
-
`:Q)},[$]);return K$.jsxDEV(K$.Fragment,{children:K.map((Q,W)=>K$.jsxDEV(G,{color:Z,dimColor:Y,bold:J,italic:X,children:Q},W,!1,void 0,this))},void 0,!1,void 0,this)};var C$=A(D(),1),F6=A(M(),1),
|
|
135
|
+
`:Q)},[$]);return K$.jsxDEV(K$.Fragment,{children:K.map((Q,W)=>K$.jsxDEV(G,{color:Z,dimColor:Y,bold:J,italic:X,children:Q},W,!1,void 0,this))},void 0,!1,void 0,this)};var C$=A(D(),1),F6=A(M(),1),oY=($,Z,Y=5)=>{if(!Z||!$||$.trim()==="")return $;let J=$.split(`
|
|
136
136
|
`);if(J.length<=Y)return $;let X=J.length-Y,K=J.slice(-Y);return`\x1B[33m${X} rows hidden...\x1B[0m
|
|
137
137
|
${K.join(`
|
|
138
|
-
`)}`},
|
|
139
|
-
`);return C1.jsxDEV(z,{flexDirection:"column",marginBottom:1,children:[C1.jsxDEV(z,{paddingBottom:0,children:C1.jsxDEV(G,{color:"gray",bold:!0,children:["Think ",Y.length," rows"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Z&&C1.jsxDEV(L3,{content:$,maxLines:3},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},v$=
|
|
138
|
+
`)}`},rY=({children:$,simple:Z,loading:Y,maxRows:J=5})=>{let X=C$.useMemo(()=>{return oY($,Y,J)},[$,Y,J]);if(Z)return F6.jsxDEV(H3,{children:X},void 0,!1,void 0,this);return F6.jsxDEV(N3,{children:X},void 0,!1,void 0,this)},F3=C$.memo(rY);var C1=A(M(),1),nY=({message:$,messageNumber:Z,loading:Y})=>{let X=_4($),K=g0($);if(!K)return C1.jsxDEV(C1.Fragment,{},void 0,!1,void 0,this);return C1.jsxDEV(z,{flexDirection:"column",children:[C1.jsxDEV(z,{paddingBottom:0,marginBottom:1,children:C1.jsxDEV(G,{color:S0("teal"),children:[Z," ","Zen Code"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),X&&C1.jsxDEV(aY,{thinking:X,visible:K.trim().length===0},void 0,!1,void 0,this),C1.jsxDEV(F3,{simple:!1,loading:Y,children:K},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},aY=({thinking:$,visible:Z})=>{let Y=$.split(`
|
|
139
|
+
`);return C1.jsxDEV(z,{flexDirection:"column",marginBottom:1,children:[C1.jsxDEV(z,{paddingBottom:0,children:C1.jsxDEV(G,{color:"gray",bold:!0,children:["Think ",Y.length," rows"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Z&&C1.jsxDEV(L3,{content:$,maxLines:3},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},v$=nY;var q3=A(D(),1);var C=A(M(),1),A3=["yellow","magenta","blue"],sY=($)=>{let Z=0;for(let J=0;J<$.length;J++)Z=$.charCodeAt(J)+((Z<<5)-Z);let Y=Math.abs(Z%A3.length);return A3[Y]},tY=($)=>{return{success:"✓",completed:"✓",ok:"✓",error:"✗",failed:"✗",pending:"⏳",in_progress:"⏳",running:"⏳",cancelled:"⏹"}[$]||"⏳"},eY=($,Z=4,Y=100)=>{let J=$.split(`
|
|
140
140
|
`),X=(W)=>{if(W.length<=Y)return W;return W.substring(0,Y)+`... (${W.length-Y} more chars)`};if(J.length<=Z)return J.map(X).join(`
|
|
141
141
|
`);let K=J.slice(0,2).map(X),Q=J.slice(J.length-3).map(X);return[...K,`... and more ${J.length-5} lines`,...Q].join(`
|
|
142
|
-
`)}
|
|
142
|
+
`)},$5=({content:$})=>{let Z=(Y,J=0,X=0)=>{let Q=" ".repeat(J);if(X>=3)return C.jsxDEV(G,{dimColor:!0,children:"{...} (truncated)"},void 0,!1,void 0,this);if(Y===null)return C.jsxDEV(G,{color:"gray",children:"null"},void 0,!1,void 0,this);if(typeof Y!=="object"){let O=JSON.stringify(Y);if(typeof Y==="string"&&O.length>102){let N=O.substring(1,101);return C.jsxDEV(G,{children:[C.jsxDEV(G,{color:"cyan",children:['"',N,'..."']},void 0,!0,void 0,this)," ",C.jsxDEV(G,{dimColor:!0,children:["(truncated, ",O.length-2," chars)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}if(typeof Y==="string")return C.jsxDEV(G,{color:"cyan",children:O},void 0,!1,void 0,this);else if(typeof Y==="number")return C.jsxDEV(G,{color:"yellow",children:Y},void 0,!1,void 0,this);else if(typeof Y==="boolean")return C.jsxDEV(G,{color:"magenta",children:Y.toString()},void 0,!1,void 0,this);else return C.jsxDEV(G,{children:O},void 0,!1,void 0,this)}if(Array.isArray(Y)){if(Y.length===0)return C.jsxDEV(G,{color:"gray",children:"[]"},void 0,!1,void 0,this);let O=5;return C.jsxDEV(C.Fragment,{children:[`
|
|
143
143
|
`,Y.slice(0,O).map((N,U)=>C.jsxDEV(G,{children:[C.jsxDEV(G,{children:Q},void 0,!1,void 0,this),C.jsxDEV(G,{color:"green",children:"- "},void 0,!1,void 0,this)," ",Z(N,J+1,X+1),U<Math.min(Y.length,O)-1?`
|
|
144
144
|
`:""]},void 0,!0,void 0,this)),Y.length>O&&C.jsxDEV(G,{children:[`
|
|
145
145
|
`,C.jsxDEV(G,{children:Q},void 0,!1,void 0,this),C.jsxDEV(G,{dimColor:!0,children:["... (",Y.length-O," more)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}let W=Object.keys(Y);if(W.length===0)return C.jsxDEV(G,{color:"gray"},void 0,!1,void 0,this);let _=5;return C.jsxDEV(C.Fragment,{children:[W.slice(0,_).map((O,N)=>C.jsxDEV(G,{children:[C.jsxDEV(G,{children:Q},void 0,!1,void 0,this),C.jsxDEV(G,{color:"blue",children:O},void 0,!1,void 0,this)," ",C.jsxDEV(G,{color:"gray",children:": "},void 0,!1,void 0,this)," ",Z(Y[O],J+1,X+1),N<Math.min(W.length,_)-1?`
|
|
146
146
|
`:""]},void 0,!0,void 0,this)),W.length>_&&C.jsxDEV(G,{children:[`
|
|
147
|
-
`,C.jsxDEV(G,{children:Q},void 0,!1,void 0,this),C.jsxDEV(G,{dimColor:!0,children:["... (",W.length-_," more)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};return C.jsxDEV(G,{children:Z($)},void 0,!1,void 0,this)},
|
|
147
|
+
`,C.jsxDEV(G,{children:Q},void 0,!1,void 0,this),C.jsxDEV(G,{dimColor:!0,children:["... (",W.length-_," more)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};return C.jsxDEV(G,{children:Z($)},void 0,!1,void 0,this)},Z5=({message:$,messageNumber:Z})=>{let{getToolUIRender:Y,client:J}=$1(),X=new a$($,J),K=X.getInputRepaired(),Q=K?.title?`: ${K.title}`:K?.description?`: ${K.description}`:"",W=$.name?Y($.name):null,_=sY($.name||"");return _=$.status==="error"?"red":"yellow",q3.default.useEffect(()=>{if($.status==="error"&&$.name)import("./chunk-ns6tjjkq.js").then(({logToolError:O,logTerminalError:N,logAgentError:U})=>{let F=L6($.content),L=typeof F==="string"?F:JSON.stringify(F);if($.name==="terminal"){let q=K?.command||"unknown";N(q,L)}else if($.name.startsWith("Agent:"))U($.name,L);else O($.name,L)}).catch((O)=>{console.warn("Failed to log error:",O)})},[$.status,$.name,$.content,K?.command]),C.jsxDEV(g,{children:C.jsxDEV(z,{flexDirection:"column",children:[C.jsxDEV(z,{children:[C.jsxDEV(G,{color:_,children:[Z," ",$.name,C.jsxDEV(G,{color:"gray",children:Q},void 0,!1,void 0,this)]},void 0,!0,void 0,this),C.jsxDEV(G,{children:[" ",tY($?.status)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),W?C.jsxDEV(z,{children:[C.jsxDEV(G,{color:"gray",children:"└─ "},void 0,!1,void 0,this),C.jsxDEV(z,{flexDirection:"column",children:W($)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):C.jsxDEV(z,{flexDirection:"column",paddingTop:0,children:[C.jsxDEV(z,{children:[C.jsxDEV(G,{color:"gray",children:"└─ "},void 0,!1,void 0,this),C.jsxDEV($5,{content:X.getInputRepaired()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),C.jsxDEV(z,{paddingTop:0,paddingBottom:0,children:[C.jsxDEV(G,{color:"gray",children:"└─ "},void 0,!1,void 0,this),C.jsxDEV(G,{dimColor:!0,italic:!0,children:eY(L6($.content))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$.sub_messages?.length?C.jsxDEV(z,{children:[C.jsxDEV(G,{color:"gray",children:"└─ "},void 0,!1,void 0,this),C.jsxDEV(G,{color:_,dimColor:!0,children:["(hidden ",$.sub_messages.length," subagent messages)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this):null]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},w3=Z5;var w0=A(M(),1),M3=I$.memo(function({renderMessages:Z,startIndex:Y,staticKey:J,loading:X}){let[K,Q]=I$.useState(!1);B1(()=>Q(!0),K?null:0);let W=(U,F,L,q)=>w0.jsxDEV(z,{flexDirection:"column",paddingLeft:1,paddingBottom:1,children:U.type==="human"?w0.jsxDEV(w$,{content:U.content,messageNumber:F+1+Y},void 0,!1,void 0,this):U.type==="tool"?w0.jsxDEV(w3,{message:U,messageNumber:F+1+Y},void 0,!1,void 0,this):w0.jsxDEV(v$,{message:U,messageNumber:F+1+Y,loading:X},void 0,!1,void 0,this)},U.id?`${q}-${U.id}`:`${q}-msg-${F}`,!1,void 0,this),_=Z.findIndex((U)=>{if(U.type==="tool"&&!U.done&&!["success","error"].includes(U.status))return!0;return!1});if(_===-1)_=Z.length-1;let O=Z.slice(0,_),N=Z.slice(_);if(!K)return w0.jsxDEV(z,{flexDirection:"column",children:Z.map((U,F)=>W(U,F,F===_,"init"))},void 0,!1,void 0,this);return w0.jsxDEV(z,{flexDirection:"column",children:[w0.jsxDEV(S$,{items:O,children:(U,F)=>W(U,F,!1,"hist")},J,!1,void 0,this),N.map((U,F)=>W(U,O.length+F,!0,"curr"))]},void 0,!0,void 0,this)});var M0=A(D(),1);var i0=A(D(),1);var k$=A(M(),1),Y5=({staticKey:$,children:Z,delay:Y=1})=>{let[J,X]=i0.useState(!0),K=i0.useRef(!0);return i0.useEffect(()=>{X(!1),K.current=!0},[$]),B1(()=>{if(K.current)X(!0),K.current=!1},J?null:Y),k$.jsxDEV(k$.Fragment,{children:J?Z():null},void 0,!1,void 0,this)},R3=Y5;var a=A(M(),1),X5=M0.memo(function({toolGroup:Z,groupId:Y,getToolUIRender:J,depth:X=0,loading:K}){if(X>1)return null;return a.jsxDEV(z,{flexDirection:"column",children:Z.map((Q,W)=>{let _=Q.name?J(Q.name):null;if(!_)return null;let O=Q.sub_messages?.length||0,N=Q.sub_messages?.slice(-4)||[],U=O-N.length;return a.jsxDEV(M0.Fragment,{children:[a.jsxDEV(()=>{return a.jsxDEV(g,{fallback:Q.name+" is error",children:_(Q)},void 0,!1,void 0,this)},{},void 0,!1,void 0,this),N.length?a.jsxDEV(a.Fragment,{children:[U>0&&a.jsxDEV(z,{paddingLeft:2,children:a.jsxDEV(G,{dimColor:!0,children:["... ",U," more submessage",U>1?"s":""]},void 0,!0,void 0,this)},void 0,!1,void 0,this),a.jsxDEV(A6,{renderMessages:N,startIndex:1,depth:X+1,staticKey:`sub-d${X}-i${W}`,getToolUIRender:J,loading:K},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null]},`${Y}-${W}-${Q.status}`,!0,void 0,this)})},void 0,!1,void 0,this)}),b3=M0.memo(function({message:Z,displayIndex:Y,isCurrent:J,startIndex:X=0,getToolUIRender:K,depth:Q=0,loading:W}){return a.jsxDEV(z,{flexDirection:"column",paddingBottom:1,children:[Z.type==="human"?a.jsxDEV(w$,{content:Z.content,messageNumber:Y+1+X},void 0,!1,void 0,this):null,Z.type==="ai"?a.jsxDEV(v$,{message:Z,messageNumber:Y+1+X,loading:W},void 0,!1,void 0,this):null,Z.type==="group"&&a.jsxDEV(a.Fragment,{children:a.jsxDEV(X5,{toolGroup:Z.toolGroup,groupId:Z.id,getToolUIRender:K,depth:Q,loading:W},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}),B3=($)=>{if($.type!=="ai")return!0;try{let Z=g0($);return!!(Z&&Z.trim().length>0)}catch{return!1}},A6=M0.memo(function({renderMessages:Z,startIndex:Y,staticKey:J,depth:X=0,getToolUIRender:K,loading:Q}){let W=M0.useMemo(()=>{let U=0;return Z.filter((F)=>{if(F.type==="ai")return B3(F);return!0}).reduce((F,L)=>{if(L.type==="tool"){let q=F[F.length-1];if(q&&q.type==="group"&&q.toolGroup.length<5)q.toolGroup.push(L);else F.push({id:`tool-group-${U++}`,type:"group",toolGroup:[L]})}else F.push(L);return F},[])},[Z,B3]),_=W.length-1;if(_===-1)_=W.length-1;if(!Q)_=W.length;let O=W.slice(0,_),N=W.slice(_);return a.jsxDEV(z,{flexDirection:"column",children:[a.jsxDEV(R3,{staticKey:`${J} ${O.length}`,children:()=>a.jsxDEV(S$,{items:O,children:(U,F)=>a.jsxDEV(b3,{message:U,displayIndex:F,isCurrent:!1,startIndex:Y,getToolUIRender:K,depth:X,loading:Q},U.id?`hist-${U.id}`:`hist-msg-${X}-${F}`,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),N.map((U,F)=>a.jsxDEV(b3,{message:U,displayIndex:O.length+F,isCurrent:!0,startIndex:Y,getToolUIRender:K,depth:X,loading:Q},U.id?`curr-${U.id}`:`curr-msg-${X}-${O.length}-${F}`,!1,void 0,this))]},void 0,!0,void 0,this)});var f=A(M(),1),J5=()=>{let $=q$(),Z=new Date().toLocaleDateString(),{extraParams:Y,AVAILABLE_MODELS:J,config:X}=Z1(),K=Y.mcp_config||{},Q=Object.keys(K).length,W=P3(),_=process.platform,O=_==="darwin"?"macOS":_==="win32"?"Windows":"Linux",N=process.cwd(),U=X?.provider_id||process.env.MODEL_PROVIDER||"openai",L=!!X?.providers?.find((R)=>R.id===U)?.apiKey,q=J.length>0,w=L&&q;return f.jsxDEV(z,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginBottom:1,children:[f.jsxDEV(z,{flexDirection:"row",justifyContent:"space-between",borderBottom:!1,children:[f.jsxDEV(G,{color:"cyan",bold:!0,children:"ZEN CODE"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"gray",children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{flexDirection:"row",marginTop:1,gap:2,children:[f.jsxDEV(z,{flexDirection:"column",children:f.jsxDEV(G,{color:"cyan",children:`███████╗███████╗███╗ ██╗
|
|
148
148
|
╚══███╔╝██╔════╝████╗ ██║
|
|
149
149
|
███╔╝ █████╗ ██╔██╗ ██║
|
|
150
150
|
███╔╝ ██╔══╝ ██║╚██╗██║
|
|
151
151
|
███████╗███████╗██║ ╚████║
|
|
152
|
-
╚══════╝╚══════╝╚═╝ ╚═══╝`},void 0,!1,void 0,this)},void 0,!1,void 0,this),f.jsxDEV(z,{flexDirection:"column",justifyContent:"center",flexGrow:1,children:[f.jsxDEV(z,{marginBottom:1,children:w?f.jsxDEV(G,{color:"green",bold:!0,children:[" ","[ SYSTEM ONLINE ]"]},void 0,!0,void 0,this):f.jsxDEV(G,{color:"red",bold:!0,children:[" ","[ CONFIG REQUIRED ]"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),f.jsxDEV(z,{flexDirection:"column",gap:0,children:[f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:"USER::"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:"ARCH::"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",children:process.arch},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:"PLATFORM::"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",children:O},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:"NODE::"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",children:process.version},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:"TERM::"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",children:W},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:[U?.toUpperCase(),"::"]},void 0,!0,void 0,this),f.jsxDEV(G,{color:q?"white":"red",children:q?Y.model_id:"无可用模型"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{marginTop:1,paddingX:1,flexDirection:"column",gap:0,children:[f.jsxDEV(z,{children:f.jsxDEV(G,{color:"blue",children:"WORKING_DIR ::"},void 0,!1,void 0,this)},void 0,!1,void 0,this),f.jsxDEV(z,{children:f.jsxDEV(G,{color:"gray",children:N},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!w&&f.jsxDEV(z,{marginTop:1,paddingX:1,flexDirection:"column",gap:0,children:[f.jsxDEV(G,{color:"red",bold:!0,children:["⚠️ 需要配置 ",U==="anthropic"?"Anthropic":"OpenAI"," API:"]},void 0,!0,void 0,this),!L&&f.jsxDEV(G,{color:"yellow",children:" • 请使用 /m 进入模型配置面板"},void 0,!1,void 0,this),!q&&f.jsxDEV(G,{color:"yellow",children:" • 请确保网络连接正常以获取模型列表"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"gray",children:" • 配置后使用 /m 查看可用模型"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{marginTop:1,paddingTop:1,borderTop:!1,flexDirection:"row",justifyContent:"space-between",children:[f.jsxDEV(z,{gap:3,children:[f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"green",children:"●"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",dimColor:!0,children:[" ","AGENTS"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:Q>0?"green":"gray",children:"●"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",dimColor:!0,children:[" ","MCP (",Q,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[w?f.jsxDEV(G,{color:"yellow",bold:!0,children:">>> WAITING_FOR_INPUT"},void 0,!1,void 0,this):f.jsxDEV(G,{color:"red",bold:!0,children:">>> CONFIGURATION_NEEDED"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"yellow",dimColor:!0,children:[" ","▌"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},f3=
|
|
152
|
+
╚══════╝╚══════╝╚═╝ ╚═══╝`},void 0,!1,void 0,this)},void 0,!1,void 0,this),f.jsxDEV(z,{flexDirection:"column",justifyContent:"center",flexGrow:1,children:[f.jsxDEV(z,{marginBottom:1,children:w?f.jsxDEV(G,{color:"green",bold:!0,children:[" ","[ SYSTEM ONLINE ]"]},void 0,!0,void 0,this):f.jsxDEV(G,{color:"red",bold:!0,children:[" ","[ CONFIG REQUIRED ]"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),f.jsxDEV(z,{flexDirection:"column",gap:0,children:[f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:"USER::"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:"ARCH::"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",children:process.arch},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:"PLATFORM::"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",children:O},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:"NODE::"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",children:process.version},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:"TERM::"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",children:W},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"blue",children:[U?.toUpperCase(),"::"]},void 0,!0,void 0,this),f.jsxDEV(G,{color:q?"white":"red",children:q?Y.model_id:"无可用模型"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{marginTop:1,paddingX:1,flexDirection:"column",gap:0,children:[f.jsxDEV(z,{children:f.jsxDEV(G,{color:"blue",children:"WORKING_DIR ::"},void 0,!1,void 0,this)},void 0,!1,void 0,this),f.jsxDEV(z,{children:f.jsxDEV(G,{color:"gray",children:N},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!w&&f.jsxDEV(z,{marginTop:1,paddingX:1,flexDirection:"column",gap:0,children:[f.jsxDEV(G,{color:"red",bold:!0,children:["⚠️ 需要配置 ",U==="anthropic"?"Anthropic":"OpenAI"," API:"]},void 0,!0,void 0,this),!L&&f.jsxDEV(G,{color:"yellow",children:" • 请使用 /m 进入模型配置面板"},void 0,!1,void 0,this),!q&&f.jsxDEV(G,{color:"yellow",children:" • 请确保网络连接正常以获取模型列表"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"gray",children:" • 配置后使用 /m 查看可用模型"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{marginTop:1,paddingTop:1,borderTop:!1,flexDirection:"row",justifyContent:"space-between",children:[f.jsxDEV(z,{gap:3,children:[f.jsxDEV(z,{children:[f.jsxDEV(G,{color:"green",children:"●"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",dimColor:!0,children:[" ","AGENTS"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[f.jsxDEV(G,{color:Q>0?"green":"gray",children:"●"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"white",dimColor:!0,children:[" ","MCP (",Q,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),f.jsxDEV(z,{children:[w?f.jsxDEV(G,{color:"yellow",bold:!0,children:">>> WAITING_FOR_INPUT"},void 0,!1,void 0,this):f.jsxDEV(G,{color:"red",bold:!0,children:">>> CONFIGURATION_NEEDED"},void 0,!1,void 0,this),f.jsxDEV(G,{color:"yellow",dimColor:!0,children:[" ","▌"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},f3=J5;var E$=A(D(),1);var W$=A(D(),1);class C3{commands=new Map;aliases=new Map;register($){if(this.commands.set($.name,$),$.aliases)$.aliases.forEach((Z)=>{this.aliases.set(Z,$.name)})}getCommand($){let Z=this.aliases.get($)||$;return this.commands.get(Z)}getAllCommands(){return Array.from(this.commands.values())}isCommand($){return $.trim().startsWith("/")}parseCommand($){if(!this.isCommand($))return null;let Y=$.trim().slice(1).split(/\s+/),J=Y[0],X=Y.slice(1);return{command:J,args:X}}async executeCommand($,Z){let Y=this.parseCommand($);if(!Y)return{success:!1,message:"无效的命令格式"};let{command:J,args:X}=Y,K=this.getCommand(J);if(!K)return{success:!1,message:`未知命令: /${J}`};if(K.requiresArgs&&X.length===0)return{success:!1,message:`命令 /${J} 需要参数。用法: ${K.usage||`/${J} <args>`}`};if(K.validateArgs&&!K.validateArgs(X))return{success:!1,message:`命令 /${J} 参数无效。用法: ${K.usage||`/${J} <args>`}`};try{return await K.execute(X,Z)}catch(Q){return{success:!1,message:`命令执行失败: ${Q instanceof Error?Q.message:String(Q)}`}}}getSuggestions($){if(!$.startsWith("/"))return[];let Z=$.slice(1).toLowerCase(),Y=[];if(Z===""){let W=["new","history","task","agent","model","settings","mcp","knowledge","summarize","template","plan","interview","help"];for(let _ of W){let O=this.commands.get(_);if(O)Y.push({command:_,displayText:`/${_}`,description:O.description})}return Y.slice(0,10)}let J=new Set(["history","knowledge","help","init","model","config"]),X=[],K=[];for(let[W,_]of this.commands){let O=W.toLowerCase();if(O.startsWith(Z))X.push({command:W,displayText:`/${W}`,description:_.description});else if(O.includes(Z))K.push({command:W,displayText:`/${W}`,description:_.description});if(_.aliases)for(let N of _.aliases){let U=N.toLowerCase();if(U.startsWith(Z))X.push({command:W,displayText:`/${N}`,description:`${_.description} (别名)`});else if(U.includes(Z))K.push({command:W,displayText:`/${N}`,description:`${_.description} (别名)`})}}let Q=(W,_)=>{let O=J.has(W.command)?1:0,N=J.has(_.command)?1:0;if(O!==N)return N-O;return W.displayText.length-_.displayText.length};return X.sort(Q),K.sort(Q),Y.push(...X,...K),Y.slice(0,10)}getHelp($){if($){let Y=this.getCommand($);if(!Y)return`未找到命令: /${$}`;let J=`命令: /${Y.name}
|
|
153
153
|
`;if(J+=`描述: ${Y.description}
|
|
154
154
|
`,Y.usage)J+=`用法: ${Y.usage}
|
|
155
155
|
`;if(Y.aliases&&Y.aliases.length>0)J+=`别名: ${Y.aliases.map((X)=>`/${X}`).join(", ")}
|
|
156
156
|
`;return J}let Z=`可用命令:
|
|
157
157
|
`;for(let Y of this.getAllCommands())Z+=` /${Y.name} - ${Y.description}
|
|
158
158
|
`;return Z+=`
|
|
159
|
-
使用 /help <命令名> 获取具体命令的帮助信息`,Z}}var G0=new C3;var v3={name:"settings",description:"打开 Settings 面板(Model 和 Provider 配置)",aliases:["s","model","settings","m"],usage:"/settings",execute:async($,Z)=>{return Z.switchToSettings?.(),{success:!0,message:"打开 Settings 面板",shouldClearInput:!0}}};var
|
|
159
|
+
使用 /help <命令名> 获取具体命令的帮助信息`,Z}}var G0=new C3;var v3={name:"settings",description:"打开 Settings 面板(Model 和 Provider 配置)",aliases:["s","model","settings","m"],usage:"/settings",execute:async($,Z)=>{return Z.switchToSettings?.(),{success:!0,message:"打开 Settings 面板",shouldClearInput:!0}}};var K5={name:"new",description:"初始化新的对话会话",aliases:["new","n"],usage:"/new [主题]",execute:async($,Z)=>{let Y=$.join(" ");if(await Z.createNewChat(),Y){let J=`我想开始一个关于 "${Y}" 的新对话。`;return Z.sendMessage([{type:"human",content:J}]),{success:!0,message:`已创建新对话,主题: ${Y}`,shouldClearInput:!0}}return{success:!0,message:"已创建新对话",shouldClearInput:!0}}},Q5={name:"help",description:"显示命令帮助信息",aliases:["h","?"],usage:"/help [命令名]",execute:async($,Z)=>{let Y=$[0];return{success:!0,message:G0.getHelp(Y),shouldClearInput:!0}}},W5={name:"task",description:"打开任务看板面板",aliases:["tasks","kanban"],usage:"/task",execute:async($,Z)=>{return Z.switchToTask?.(),{success:!0,message:"打开任务看板",shouldClearInput:!0}}},_5={name:"process",description:"打开进程管理器面板",aliases:["ps","proc"],usage:"/process",execute:async($,Z)=>{return Z.switchToProcess?.(),{success:!0,message:"打开进程管理器",shouldClearInput:!0}}},S3=[K5,Q5,W5,v3,_5];import{readFileSync as G5,readdirSync as O5}from"fs";import{join as I3}from"path";var Q$=null;function U5($){let Z=$.split(`
|
|
160
160
|
`);if(Z[0]!=="---")return{metadata:{},content:$};let Y=Z.indexOf("---",1);if(Y===-1)return{metadata:{},content:$};let J=Z.slice(1,Y),X={};for(let Q of J){let W=Q.match(/^(\w+):\s*(.+)$/);if(W){let[,_,O]=W;if(_==="name")X.name=O.trim();if(_==="description")X.description=O.trim()}}let K=Z.slice(Y+1).join(`
|
|
161
|
-
`).trim();return{metadata:X,content:K}}function k3($,Z){let Y=new Map;try{let J=
|
|
162
|
-
`),shouldClearInput:!0}}},
|
|
161
|
+
`).trim();return{metadata:X,content:K}}function k3($,Z){let Y=new Map;try{let J=O5($,{withFileTypes:!0});for(let X of J){let K=I3($,X.name);if(X.isDirectory())k3(K,Z).forEach((W)=>Y.set(W.name,W));else if(X.name.endsWith(".md"))try{let Q=G5(K,"utf-8"),{metadata:W,content:_}=U5(Q),O=W.name||X.name.replace(/\.md$/,"");if(!W.name)console.warn(`Template missing "name" in frontmatter: ${K}`);Y.set(O,{name:O,description:W.description||"No description",content:_,path:K})}catch(Q){console.warn(`Failed to read template file: ${K}`,Q)}}}catch(J){if(J.code!=="ENOENT")console.warn(`Error scanning templates directory: ${$}`,J)}return Y}function y3(){Q$=null}function T3($="./.claude/templates"){if(Q$)return Array.from(Q$.values());let Z=$.startsWith("/")?$:I3(process.cwd(),$);return Q$=k3(Z,Z),Array.from(Q$.values())}var N5={name:"status",description:"显示当前聊天状态信息",aliases:["stat","info"],execute:async($,Z)=>{return{success:!0,message:[`当前代理: ${Z.client?.availableAssistants.find((X)=>X.graph_id===Z.currentAgent)?.name||"未选择"} (${Z.currentAgent||"N/A"})`,`聊天ID: ${Z.client?.currentChatId?.slice(-8)||"N/A"}`,`可用代理数: ${Z.client?.availableAssistants?.length||0}`,`模型: ${Z.extraParams?.model_id||"N/A"}`].join(`
|
|
162
|
+
`),shouldClearInput:!0}}},z5={name:"template",description:"插入预定义的消息模板",aliases:["tpl","t"],usage:"/template <模板名>",execute:async($,Z)=>{let Y=$[0];if($.includes("--refresh"))return y3(),{success:!0,message:"模板缓存已清除",shouldClearInput:!0};let J=T3();if(!Y){if(J.length===0)return{success:!0,message:"当前没有可用的模板。可以在 ./.claude/templates/ 目录下创建 .md 模板文件。",shouldClearInput:!0};return{success:!0,message:`可用模板:
|
|
163
163
|
${J.map((Q)=>` - ${Q.name}: ${Q.description}`).join(`
|
|
164
164
|
`)}
|
|
165
165
|
|
|
166
166
|
使用 /template <name> 插入模板`,shouldClearInput:!0}}let X=J.find((K)=>K.name===Y);if(!X){let K=J.map((Q)=>Q.name).join(", ");return{success:!1,message:`未找到模板 "${Y}"。可用模板: ${K||"(无)"}`}}return Z.setUserInput(X.content),{success:!0,message:`已插入模板: ${X.name}
|
|
167
|
-
${X.description}`,shouldClearInput:!1}}},
|
|
167
|
+
${X.description}`,shouldClearInput:!1}}},H5={name:"config",description:"查看或设置配置项",aliases:["cfg"],usage:"/config [key] [value]",execute:async($,Z)=>{if($.length===0)return{success:!0,message:["当前配置:",` model_id: ${Z.extraParams?.model_id||"N/A"}`,` provider_id: ${Z.extraParams?.provider_id||"N/A"}`,` enable_thinking: ${Z.extraParams?.enable_thinking??!0}`,` compact_mode: ${Z.compactMode??!1}`,` stream_refresh_interval: ${Z.extraParams?.stream_refresh_interval}`,"","使用方法:"," /config <key> <value> - 设置配置项"," /config <key> - 查看配置项","","可用配置项:"," model_id - 当前使用的模型 ID"," provider_id - 当前使用的 Provider ID"," enable_thinking - 启用思考模式 (true, false)"," compact_mode - 紧凑模式 (true, false)"," stream_refresh_interval - 流刷新间隔"].join(`
|
|
168
168
|
`),shouldClearInput:!0};let Y=$[0],J=["enable_thinking","stream_refresh_interval","provider_id","model_id","compact_mode"];if(!J.includes(Y))return{success:!1,message:`无效的配置项: ${Y}
|
|
169
169
|
可用配置项: ${J.join(", ")}`,shouldClearInput:!0};if($.length===1){let K;switch(Y){case"model_id":K=Z.extraParams?.model_id;break;case"provider_id":K=Z.extraParams?.provider_id;break;case"enable_thinking":K=Z.extraParams?.enable_thinking??!0;break;case"compact_mode":K=Z.compactMode??!1;break;case"stream_refresh_interval":K=Z.extraParams?.stream_refresh_interval;break}return{success:!0,message:`${Y}: ${K??"未设置"}`,shouldClearInput:!0}}let X=$.slice(1).join(" ");if(Y==="enable_thinking"||Y==="compact_mode"){if(X==="true"||X==="1"||X==="yes")X=!0;else if(X==="false"||X==="0"||X==="no")X=!1}if(Y==="stream_refresh_interval"){let K=parseInt(X,10);if(!isNaN(K))X=K}try{if(!Z.updateConfig)return{success:!1,message:"无法访问配置更新功能",shouldClearInput:!0};await Z.updateConfig({[Y]:X});let K=`配置已更新: ${Y} = ${X} 重启程序生效`;if(Y==="model_id"||Y==="provider_id")K+=`
|
|
170
170
|
|
|
171
|
-
提示: 更换模型或提供商后,请重启程序以确保完整生效`;return{success:!0,message:K,shouldClearInput:!0}}catch(K){return{success:!1,message:`配置更新失败: ${K instanceof Error?K.message:String(K)}`,shouldClearInput:!0}}}},
|
|
171
|
+
提示: 更换模型或提供商后,请重启程序以确保完整生效`;return{success:!0,message:K,shouldClearInput:!0}}catch(K){return{success:!1,message:`配置更新失败: ${K instanceof Error?K.message:String(K)}`,shouldClearInput:!0}}}},F5={name:"mcp",description:"管理 MCP 服务器配置",aliases:[],usage:"/mcp [list|add|remove|get] [args]",execute:async($,Z)=>{if($.length===0)return{success:!0,message:["MCP 配置管理命令:","","用法:"," /mcp list - 列出所有 MCP 服务器"," /mcp add <name> <json_string> - 添加 MCP 服务器 (传统格式)"," /mcp remove <name> - 移除 MCP 服务器"," /mcp get <name> - 查看 MCP 服务器详情","","示例 (JSON 格式):",' /mcp add context7 {"name":"context7","url":"https://mcp.context7.com/mcp"}',""].join(`
|
|
172
172
|
`),shouldClearInput:!0};let Y=$[0];try{let X=(Z.extraParams||{}).mcp_config||{};switch(Y){case"list":{let K=Object.keys(X);if(K.length===0)return{success:!0,message:"当前未配置任何 MCP 服务器",shouldClearInput:!0};return{success:!0,message:`已配置的 MCP 服务器:
|
|
173
173
|
${K.map((W)=>{return` - ${W}`}).join(`
|
|
174
174
|
`)}`,shouldClearInput:!0}}case"add":{if($.length<2)return{success:!1,message:"用法: /mcp add <name> <json_string>",shouldClearInput:!0};let[K,Q,...W]=$,_=W.join(""),O={...X,[Q]:JSON.parse(_)};if(!Z.updateConfig)return{success:!1,message:"无法访问配置更新功能",shouldClearInput:!0};return await Z.updateConfig({mcp_config:O}),{success:!0,message:`MCP 服务器 "${Q}" 已添加`,shouldClearInput:!0}}case"remove":{if($.length<2)return{success:!1,message:"用法: /mcp remove <name>",shouldClearInput:!0};let K=$[1];if(!X[K])return{success:!1,message:`MCP 服务器 "${K}" 不存在`,shouldClearInput:!0};let Q={...X};if(delete Q[K],!Z.updateConfig)return{success:!1,message:"无法访问配置更新功能",shouldClearInput:!0};return await Z.updateConfig({mcp_config:Q}),{success:!0,message:`MCP 服务器 "${K}" 已移除
|
|
175
175
|
重启程序生效`,shouldClearInput:!0}}case"get":{if($.length<2)return{success:!1,message:"用法: /mcp get <name>",shouldClearInput:!0};let K=$[1],Q=X[K];if(!Q)return{success:!1,message:`MCP 服务器 "${K}" 不存在`,shouldClearInput:!0};return{success:!0,message:[`MCP 服务器: ${K}`,` URL: ${Q.url}`,` Headers: ${JSON.stringify(Q.headers||{},null,2)}`].join(`
|
|
176
176
|
`),shouldClearInput:!0}}default:return{success:!1,message:`未知操作: ${Y}
|
|
177
|
-
可用操作: list, add, remove, get`,shouldClearInput:!0}}}catch(J){return{success:!1,message:`MCP 操作失败: ${J instanceof Error?J.message:String(J)}`,shouldClearInput:!0}}}},
|
|
177
|
+
可用操作: list, add, remove, get`,shouldClearInput:!0}}}catch(J){return{success:!1,message:`MCP 操作失败: ${J instanceof Error?J.message:String(J)}`,shouldClearInput:!0}}}},L5={name:"summarize",description:"智能总结对话并提取有价值信息保存为记忆",aliases:["sum","summary","compact"],usage:"/sum",execute:async($,Z)=>{if(!Z.renderMessages||Z.renderMessages.length===0)return{success:!1,message:"当前会话没有消息可以总结",shouldClearInput:!0};let Y=Z.renderMessages.length;try{let J={...Z.extraParams,switch_command:"smart_memory"};return await Z.sendMessage([],{extraParams:J}),{success:!0,message:`正在智能分析 ${Y} 条消息并提取记忆...`,shouldClearInput:!0}}catch(J){return{success:!1,message:`总结失败: ${J instanceof Error?J.message:String(J)}`,shouldClearInput:!0}}}},A5={name:"history",description:"打开历史面板",aliases:["h"],execute:async($,Z)=>{if(Z.switchToHistory)return Z.switchToHistory(),{success:!0,message:"已打开历史面板",shouldClearInput:!0};return{success:!1,message:"面板切换功能不可用",shouldClearInput:!0}}},q5={name:"knowledge",description:"打开知识库面板",aliases:["k"],execute:async($,Z)=>{if(Z.switchToKnowledge)return Z.switchToKnowledge(),{success:!0,message:"已打开知识库面板",shouldClearInput:!0};return{success:!1,message:"面板切换功能不可用",shouldClearInput:!0}}},w5={name:"close",description:"关闭当前面板返回聊天",aliases:["c","q"],execute:async($,Z)=>{if(Z.closePanel)return Z.closePanel(),{success:!0,message:"已关闭面板",shouldClearInput:!0};return{success:!1,message:"面板关闭功能不可用",shouldClearInput:!0}}},M5={name:"model",description:"打开模型/Provider配置面板",aliases:["mp","m"],execute:async($,Z)=>{if(Z.switchToModelProvider)return Z.switchToModelProvider(),{success:!0,message:"已打开模型/Provider配置面板",shouldClearInput:!0};return{success:!1,message:"模型面板切换功能不可用",shouldClearInput:!0}}},R5={name:"ralph",description:"进入循环模式,持续发送响应直到返回 <COMPLETE></COMPLETE>",aliases:[],usage:"/ralph <text>",requiresArgs:!0,execute:async($,Z)=>{let Y=$.join(" ");if(!Y.trim())return{success:!1,message:"请提供要循环的文本内容",shouldClearInput:!0};if(Z.startRalphLoop)return Z.startRalphLoop(Y),{success:!0,message:`进入 Ralph 循环模式: "${Y}"`,shouldClearInput:!0};return{success:!1,message:"Ralph 循环功能不可用",shouldClearInput:!0}}},D3=[N5,z5,H5,F5,L5,A5,q5,w5,M5,R5];var b5={name:"agent",description:"打开 Agent 选择面板",aliases:["a"],usage:"/agent",execute:async($,Z)=>{if(Z.switchToAgent)Z.switchToAgent();return{success:!0,message:"打开 Agent 面板",shouldClearInput:!0}}},V3=[b5];var B5=`
|
|
178
178
|
[Interview Mode Activated]
|
|
179
179
|
|
|
180
180
|
I want to clarify requirements through guided questions.
|
|
@@ -193,8 +193,8 @@ After getting answers:
|
|
|
193
193
|
---
|
|
194
194
|
|
|
195
195
|
User's original message:
|
|
196
|
-
`,
|
|
197
|
-
用法: /interview [your request]`};let J=
|
|
196
|
+
`,P5={name:"interview",description:"Start Interview mode to clarify requirements through questions",aliases:["i"],usage:"/interview [your request]",requiresArgs:!0,execute:async($,Z)=>{let Y=$.join(" ").trim();if(!Y)return{success:!1,message:`❌ Interview 模式需要提供任务描述
|
|
197
|
+
用法: /interview [your request]`};let J=B5+Y;return Z.sendMessage([{type:"human",content:J}],{extraParams:Z.extraParams}),{success:!0,message:"\uD83D\uDCCB Interview mode activated",shouldClearInput:!0}}},j3=[P5];var f5=`
|
|
198
198
|
[Plan Mode Activated]
|
|
199
199
|
|
|
200
200
|
I want to create a comprehensive implementation plan for this task.
|
|
@@ -217,8 +217,8 @@ After the plan is created, ask if I want to execute it immediately or save for l
|
|
|
217
217
|
---
|
|
218
218
|
|
|
219
219
|
User's original request:
|
|
220
|
-
`,
|
|
221
|
-
用法: /plan [your task description]`};let J=
|
|
220
|
+
`,C5={name:"plan",description:"Enter Plan mode to create detailed implementation plans",aliases:["p"],usage:"/plan [your task description]",requiresArgs:!0,execute:async($,Z)=>{let Y=$.join(" ").trim();if(!Y)return{success:!1,message:`❌ Plan 模式需要提供任务描述
|
|
221
|
+
用法: /plan [your task description]`};let J=f5+Y;return Z.sendMessage([{type:"human",content:J}],{extraParams:Z.extraParams}),{success:!0,message:"\uD83D\uDCCB Plan mode activated",shouldClearInput:!0}}},h3=[C5];var E3=`
|
|
222
222
|
[Create AGENTS.md Mode Activated]
|
|
223
223
|
|
|
224
224
|
I want to create or update the AGENTS.md file for this project.
|
|
@@ -250,7 +250,7 @@ After the AGENTS.md is created or updated, provide a summary of the changes made
|
|
|
250
250
|
---
|
|
251
251
|
|
|
252
252
|
User's request:
|
|
253
|
-
`,
|
|
253
|
+
`,v5={name:"create-agent-md",description:"Create or update AGENTS.md file with project guidelines",aliases:["agentmd","am"],usage:"/create-agent-md [description or goal for AGENTS.md]",requiresArgs:!0,execute:async($,Z)=>{let Y=$.join(" ").trim();if(!Y)return{success:!1,message:"❌ 需要提供描述或目标。例如: /create-agent-md 初始化项目指南文档",shouldClearInput:!1};let J=E3+Y;return Z.sendMessage([{type:"human",content:J}],{extraParams:Z.extraParams}),{success:!0,message:"\uD83D\uDCDD AGENTS.md creation mode activated",shouldClearInput:!0}}},S5={name:"init-agents-md",description:"快速初始化 AGENTS.md 项目指南文档",aliases:["iam","init-agents"],usage:"/init-agents-md",requiresArgs:!1,execute:async($,Z)=>{let J=E3+"初始化项目 AGENTS.md 指南文档";return Z.sendMessage([{type:"human",content:J}],{extraParams:Z.extraParams}),{success:!0,message:"\uD83D\uDCDD 开始初始化 AGENTS.md...",shouldClearInput:!0}}},g3=[v5,S5];var p3={name:"compact-message",description:"切换紧凑消息显示模式 (紧凑模式显示简化的消息预览)",aliases:["cm"],usage:"/compact-message",requiresArgs:!1,execute:async($,Z)=>{try{let{updateConfig:Y,compactMode:J}=Z;if(!Y)return{success:!1,message:"配置更新功能不可用"};let X=J??!1;return await Y({compact_mode:!X}),{success:!0,message:!X?"紧凑模式已启用":"紧凑模式已关闭",shouldClearInput:!0}}catch(Y){return{success:!1,message:`切换紧凑模式失败: ${Y instanceof Error?Y.message:String(Y)}`}}}};var m3={name:"mcp",description:"打开 MCP 服务器配置面板",aliases:[],usage:"/mcp",execute:async($,Z)=>{return Z.switchToMcp?.(),{success:!0,message:"打开 MCP 配置面板",shouldClearInput:!0}}};var c3={name:"settings",description:"打开通用设置面板",aliases:["set"],usage:"/settings",execute:async($,Z)=>{if(Z.switchToSettings)return Z.switchToSettings(),{success:!0,message:"打开通用设置面板",shouldClearInput:!0};return{success:!1,message:"Settings 面板不可用",shouldClearInput:!0}}};var I5=`
|
|
254
254
|
[Memory Organization Mode Activated]
|
|
255
255
|
|
|
256
256
|
I want to organize and manage the .claude/memories folder.
|
|
@@ -304,11 +304,11 @@ Provide a detailed report of:
|
|
|
304
304
|
|
|
305
305
|
---
|
|
306
306
|
|
|
307
|
-
`,
|
|
307
|
+
`,k5={name:"memory-clear",description:"整理 .claude/memories 文件夹,清理、合并和优化项目记忆",aliases:["mem-clean","clean-memory"],usage:"/memory-clear",execute:async($,Z)=>{let Y=$.join(" ").trim(),J=I5+(Y?`Additional context: ${Y}
|
|
308
308
|
|
|
309
|
-
---`:"开始整理记忆文件夹。");return Z.sendMessage([{type:"human",content:J}],{extraParams:Z.extraParams}),{success:!0,message:"\uD83E\uDDE0 记忆整理模式已激活 - 正在分析 .claude/memories 文件夹...",shouldClearInput:!0}}},u3=[
|
|
310
|
-
`+"当前内存使用: "+u1($.heapUsed)+" / "+u1($.heapTotal)}}function
|
|
311
|
-
`)}var d3={name:"gc",description:"手动触发垃圾回收,减少内存占用",aliases:["garbage-collect","mem-opt","memory"],usage:"/gc",execute:async($,Z)=>{let Y=$.includes("-v")||$.includes("--verbose"),J=
|
|
309
|
+
---`:"开始整理记忆文件夹。");return Z.sendMessage([{type:"human",content:J}],{extraParams:Z.extraParams}),{success:!0,message:"\uD83E\uDDE0 记忆整理模式已激活 - 正在分析 .claude/memories 文件夹...",shouldClearInput:!0}}},u3=[k5];function u1($){if($===0)return"0 B";let Z=1024,Y=["B","KB","MB","GB"],J=Math.floor(Math.log($)/Math.log(Z));return parseFloat(($/Math.pow(Z,J)).toFixed(2))+" "+Y[J]}function q6(){let $=process.memoryUsage();return{heapTotal:$.heapTotal,heapUsed:$.heapUsed,external:$.external,rss:$.rss,heapUsedMB:($.heapUsed/1024/1024).toFixed(2),heapTotalMB:($.heapTotal/1024/1024).toFixed(2)}}function x3(){return typeof Bun<"u"}function y5(){let $=q6();if(x3()&&typeof Bun.gc==="function"){Bun.gc(!0);let Z=q6(),Y=$.heapUsed-Z.heapUsed;return{success:!0,before:$,after:Z,freed:Y,message:`GC 执行成功,释放了 ${u1(Math.max(0,Y))} 内存`}}if(globalThis.global&&typeof globalThis.global.gc==="function"){globalThis.global.gc();let Z=q6(),Y=$.heapUsed-Z.heapUsed;return{success:!0,before:$,after:Z,freed:Y,message:`GC 执行成功,释放了 ${u1(Math.max(0,Y))} 内存`}}return{success:!1,before:$,message:`/gc 命令仅在 Bun 或者 node --expose-gc 可用
|
|
310
|
+
`+"当前内存使用: "+u1($.heapUsed)+" / "+u1($.heapTotal)}}function T5(){let $=[];if(!x3())$.push("/gc 命令仅支持 Bun 运行时,请使用 bun 启动应用");else $.push("当前运行在 Bun 环境,/gc 命令已就绪");return $.join(`
|
|
311
|
+
`)}var d3={name:"gc",description:"手动触发垃圾回收,减少内存占用",aliases:["garbage-collect","mem-opt","memory"],usage:"/gc",execute:async($,Z)=>{let Y=$.includes("-v")||$.includes("--verbose"),J=y5(),X=`\uD83D\uDDD1️ ${J.message}
|
|
312
312
|
`;if(J.before&&J.after){if(X+=`
|
|
313
313
|
\uD83D\uDCCA 内存统计:
|
|
314
314
|
`,X+=` Before: ${u1(J.before.heapUsed)} / ${u1(J.before.heapTotal)}
|
|
@@ -318,17 +318,17 @@ Provide a detailed report of:
|
|
|
318
318
|
\uD83D\uDCCA 当前内存使用: ${u1(J.before.heapUsed)} / ${u1(J.before.heapTotal)}
|
|
319
319
|
`;if(!J.success||Y)X+=`
|
|
320
320
|
\uD83D\uDCA1 提示:
|
|
321
|
-
`,X+=` ${
|
|
321
|
+
`,X+=` ${T5().replace(/\n/g,`
|
|
322
322
|
`)}
|
|
323
|
-
`;return{success:J.success,message:X,shouldClearInput:!0}}};var l3={name:"errors",description:"打开错误日志面板",aliases:["error","err"],usage:"/errors",execute:async($,Z)=>{return Z.switchToErrors?.(),{success:!0,message:"打开错误日志面板",shouldClearInput:!0}}};[...S3,...D3,...V3,...j3,...h3,...g3,...u3,p3,m3,c3,d3,l3].forEach(($)=>{G0.register($)});var O0=A(M(),1),i3=($)=>{let{onCommandExecuted:Z,switchToHistory:Y,switchToKnowledge:J,switchToSettings:X,switchToAgent:K,closePanel:Q,switchToTask:W,switchToModelProvider:_,switchToMcp:O,switchToProcess:N,switchToErrors:U}=$,{userInput:F,setUserInput:L,sendMessage:q,currentAgent:w,client:R,createNewChat:P,renderMessages:S}
|
|
323
|
+
`;return{success:J.success,message:X,shouldClearInput:!0}}};var l3={name:"errors",description:"打开错误日志面板",aliases:["error","err"],usage:"/errors",execute:async($,Z)=>{return Z.switchToErrors?.(),{success:!0,message:"打开错误日志面板",shouldClearInput:!0}}};[...S3,...D3,...V3,...j3,...h3,...g3,...u3,p3,m3,c3,d3,l3].forEach(($)=>{G0.register($)});var O0=A(M(),1),i3=($)=>{let{onCommandExecuted:Z,switchToHistory:Y,switchToKnowledge:J,switchToSettings:X,switchToAgent:K,closePanel:Q,switchToTask:W,switchToModelProvider:_,switchToMcp:O,switchToProcess:N,switchToErrors:U}=$,{userInput:F,setUserInput:L,sendMessage:q,currentAgent:w,client:R,createNewChat:P,renderMessages:S}=$1(),{extraParams:u,updateConfig:m,AVAILABLE_MODELS:t,compactMode:v}=Z1(),[i,r]=W$.useState(null),[I,j]=W$.useState(null);B1(()=>{r(null)},i?3000:null),B1(()=>{j(null)},I?5000:null);let x=F.startsWith("/"),A1=x?G0.getSuggestions(F):[],F0=x,p$=W$.useCallback(async(_$)=>{let r0=_$||F;if(!G0.isCommand(r0))return!1;try{let n0={userInput:r0,setUserInput:L,sendMessage(m$,y6={}){return q(m$,{extraParams:{...u,...y6.extraParams},...y6,metadata:r1})},currentAgent:w,client:R,extraParams:u,createNewChat(){return P(r1)},updateConfig:m,AVAILABLE_MODELS:t,renderMessages:S,compactMode:v,switchToHistory:Y,switchToKnowledge:J,switchToSettings:X,switchToModelProvider:_,switchToAgent:K,switchToTask:W,switchToMcp:O,switchToProcess:N,switchToErrors:U,closePanel:Q,startRalphLoop:$.startRalphLoop},L0=await G0.executeCommand(r0,n0);if(!L0.success)r(L0.message||"命令执行失败");else if(L0.message)j(L0.message);if(L0.shouldClearInput)L("");if(L0.shouldSendMessage&&L0.messageContent){let m$=[{type:"human",content:L0.messageContent}];q(m$,{extraParams:u})}return Z?.(),!0}catch(n0){return r(`命令执行错误: ${n0 instanceof Error?n0.message:String(n0)}`),!0}},[F,L,q,w,R,u,P,Z,t,v,Y,J,X,_,K,W,O,N,U,Q,$.startRalphLoop]);return{isCommandInput:x,commandSuggestions:A1,showCommandHint:F0,commandError:i,executeCommand:p$,CommandHintUI:()=>{if(!F0||A1.length===0)return null;return O0.jsxDEV(z,{marginBottom:1,flexDirection:"column",children:[O0.jsxDEV(G,{color:"yellow",bold:!0,children:"命令建议:"},void 0,!1,void 0,this),A1.slice(0,5).map((_$,r0)=>O0.jsxDEV(G,{color:"cyan",children:[_$.displayText," - ",_$.description]},r0,!0,void 0,this)),A1.length>5&&O0.jsxDEV(G,{color:"gray",children:["...还有 ",A1.length-5," 个命令"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},CommandErrorUI:()=>{if(!i)return null;return O0.jsxDEV(z,{marginBottom:1,children:O0.jsxDEV(G,{color:"red",children:["❌ ",i]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},CommandSuccessUI:()=>{if(!I)return null;return O0.jsxDEV(z,{marginBottom:1,children:O0.jsxDEV(G,{color:"green",children:["✅ ",I]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}}};function o3({manager:$,enabled:Z=!0}){return y$({queryKey:T$.skills.list(),queryFn:async()=>{if(!$)throw Error("ConfigManager not initialized");return await $.listSkills()},enabled:Z&&!!$,staleTime:120000})}var D5=[{id:"agents/default",name:"Jarvis",description:"代码实现助手"},{id:"agents/manager",name:"Manager",description:"任务管理员"}];function r3({enabled:$=!0}={}){return y$({queryKey:T$.agents.list(),queryFn:async()=>{return D5},enabled:$,staleTime:300000})}var x1=A(D(),1);function n3({loading:$,renderMessages:Z,sendMessage:Y,setUserInput:J,extraParams:X}){let[K,Q]=x1.useState(null),[W,_]=x1.useState(!1),O=x1.useRef(!1),N=x1.useRef(0),U=x1.useCallback(async(L)=>{if(!L)return;let q=O.current?`
|
|
324
324
|
|
|
325
|
-
[System Context: You are currently in Ralph loop mode. Continue executing the task based on previous context. Respond with <COMPLETE></COMPLETE> tag when the task is complete.]`:"",w=[{type:"human",content:L+q}];await Y(w,{extraParams:X,metadata:r1})},[Y,X]);B1(()=>{if(K)U(K);_(!1)},W?100:null);let F=x1.useCallback((L)=>{Q(L),O.current=!0,N.current=0,_(!0)},[]);return x1.useEffect(()=>{if(O.current&&K&&!$){let L=Z.length;if(L>N.current){N.current=L;let q=Z[L-1],w=g0(q);if(typeof w==="string"&&w.includes("<COMPLETE></COMPLETE>"))O.current=!1,Q(null),J0("Ralph 循环完成");else U(K)}}},[$,Z,K,U]),{ralphLoopText:K,startRalphLoop:F,sendTextMessage:U}}var $0=A(D(),1);import{execa as
|
|
325
|
+
[System Context: You are currently in Ralph loop mode. Continue executing the task based on previous context. Respond with <COMPLETE></COMPLETE> tag when the task is complete.]`:"",w=[{type:"human",content:L+q}];await Y(w,{extraParams:X,metadata:r1})},[Y,X]);B1(()=>{if(K)U(K);_(!1)},W?100:null);let F=x1.useCallback((L)=>{Q(L),O.current=!0,N.current=0,_(!0)},[]);return x1.useEffect(()=>{if(O.current&&K&&!$){let L=Z.length;if(L>N.current){N.current=L;let q=Z[L-1],w=g0(q);if(typeof w==="string"&&w.includes("<COMPLETE></COMPLETE>"))O.current=!1,Q(null),J0("Ralph 循环完成");else U(K)}}},[$,Z,K,U]),{ralphLoopText:K,startRalphLoop:F,sendTextMessage:U}}var $0=A(D(),1);import{execa as E5}from"execa";var G1=[];for(let $=0;$<256;++$)G1.push(($+256).toString(16).slice(1));function a3($,Z=0){return(G1[$[Z+0]]+G1[$[Z+1]]+G1[$[Z+2]]+G1[$[Z+3]]+"-"+G1[$[Z+4]]+G1[$[Z+5]]+"-"+G1[$[Z+6]]+G1[$[Z+7]]+"-"+G1[$[Z+8]]+G1[$[Z+9]]+"-"+G1[$[Z+10]]+G1[$[Z+11]]+G1[$[Z+12]]+G1[$[Z+13]]+G1[$[Z+14]]+G1[$[Z+15]]).toLowerCase()}import{randomFillSync as V5}from"crypto";var V$=new Uint8Array(256),D$=V$.length;function w6(){if(D$>V$.length-16)V5(V$),D$=0;return V$.slice(D$,D$+=16)}import{randomUUID as j5}from"crypto";var M6={randomUUID:j5};function h5($,Z,Y){if(M6.randomUUID&&!Z&&!$)return M6.randomUUID();$=$||{};let J=$.random??$.rng?.()??w6();if(J.length<16)throw Error("Random bytes length must be >= 16");if(J[6]=J[6]&15|64,J[8]=J[8]&63|128,Z){if(Y=Y||0,Y<0||Y+16>Z.length)throw RangeError(`UUID byte range ${Y}:${Y+15} is out of buffer bounds`);for(let X=0;X<16;++X)Z[Y+X]=J[X];return Z}return a3(J)}var R6=h5;var g5=new Map;async function t3($){let{command:Z,cwd:Y,timeout:J}=$,X=R6();try{let K=process.platform==="win32",_=E5(K?"cmd.exe":"/bin/bash",[...K?["/d","/s","/c"]:["-c"],Z],{cwd:Y,detached:!0,reject:!1,windowsVerbatimArguments:K,timeout:J});if(!_.pid)return{id:X,pid:0,output:"Error: Failed to start command",status:"failed",exitCode:-1};let O={process:_,stdout:[],stderr:[],command:Z,startTime:Date.now()};s3.set(_.pid,O),g5.set(X,_.pid);let N=[];_.stdout?.on("data",(F)=>{let L=F.toString();N.push(L),O.stdout.push(L)}),_.stderr?.on("data",(F)=>{let L=F.toString();N.push(L),O.stderr.push(L)}),_.on("close",(F)=>{O.status=F===0?"completed":"failed",O.exitCode=F}),await new Promise((F)=>setTimeout(F,100));let U=O.status||"running";return{id:X,pid:_.pid,output:N.join(""),status:U,exitCode:O.exitCode}}catch(K){let Q=K instanceof Error?K.message:"Unknown error";return{id:X,pid:0,output:`Error: ${Q}`,status:"failed",exitCode:-1}}}var p5=["vim","nano","less","more","top","htop","git commit","git rebase -i","crontab -e","vi","emacs"],m5=($)=>{let Z=$.toLowerCase().trim(),Y=Z.split(/\s+/);for(let J of p5)if(Z===J||Z.startsWith(J+" "))return`⚠️ 交互式命令不支持,请使用非交互模式:
|
|
326
326
|
`+' 例如: git commit -m "message" 或使用 --no-edit 参数';if(Y[0]==="git"&&Y[1]==="commit"){if(!(Y.includes("-m")||Y.includes("--message")||Y.includes("--amend")||Y.includes("--no-edit")))return`⚠️ 交互式命令不支持,请使用非交互模式:
|
|
327
|
-
`+' 例如: git commit -m "message" 或使用 --no-edit 参数'}return null};var e3=()=>{let[$,Z]=$0.useState(null),[Y,J]=$0.useState(!1),X=$0.useRef(null);$0.useEffect(()=>{return()=>{if(X.current)clearTimeout(X.current)}},[]);let K=$0.useCallback(()=>{if(Z(null),J(!1),X.current)clearTimeout(X.current),X.current=null},[]);return{executeCommand:$0.useCallback(async(W)=>{let _=W.trim();if(!_)return null;let O=
|
|
328
|
-
`||Y==="\t"}function
|
|
329
|
-
`||Y==="\t"}function
|
|
327
|
+
`+' 例如: git commit -m "message" 或使用 --no-edit 参数'}return null};var e3=()=>{let[$,Z]=$0.useState(null),[Y,J]=$0.useState(!1),X=$0.useRef(null);$0.useEffect(()=>{return()=>{if(X.current)clearTimeout(X.current)}},[]);let K=$0.useCallback(()=>{if(Z(null),J(!1),X.current)clearTimeout(X.current),X.current=null},[]);return{executeCommand:$0.useCallback(async(W)=>{let _=W.trim();if(!_)return null;let O=m5(_);if(O)return Z({id:"",command:_,output:O,status:"failed"}),J(!1),$;J(!0);try{let N=await t3({command:_,cwd:process.cwd()}),U={id:N.id,command:_,output:N.output||"",status:N.status||"completed",exitCode:N.exitCode,pid:N.pid};if(Z(U),J(!1),U.status==="completed"||U.status==="failed")X.current=setTimeout(()=>{K()},5000);return U}catch(N){let U=N instanceof Error?N.message:"Unknown error",F={id:"",command:_,output:`Error executing command: ${U}`,status:"failed"};return Z(F),J(!1),X.current=setTimeout(()=>{K()},5000),F}},[K,$]),activeCommand:$,clearOutput:K,isExecuting:Y}};var W1=A(D(),1);var V0=A(D(),1);import b6 from"fuzzysort";function c5($,Z){if(Z===0)return!0;let Y=$[Z-1];return Y===" "||Y===`
|
|
328
|
+
`||Y==="\t"}function u5($,Z){let Y=Z+1;while(Y<$.length&&!/[\s\n\t]/.test($[Y]))Y++;return $.slice(Z+1,Y)}function x5($,Z,Y){if(!Z)return $.slice(0,Y).map((Q)=>({skill:Q,result:null}));let J=$.map((Q)=>({skill:Q,name:b6.prepare(Q.name.toLowerCase()),description:b6.prepare((Q.description||"").toLowerCase())}));return b6.go(Z.toLowerCase(),J,{key:"name",limit:Y,threshold:-1e4}).map((Q)=>({skill:Q.obj.skill,result:Q}))}function $Z({skills:$,maxSuggestions:Z=5}){let[Y,J]=V0.useState({visible:!1,query:"",filteredSkills:[],triggerPosition:-1}),X=V0.useCallback((O,N)=>{let U=O.lastIndexOf("#");if(U===-1){J((q)=>({...q,visible:!1,query:"",filteredSkills:[],triggerPosition:-1}));return}if(!c5(O,U)){J((q)=>({...q,visible:!1,query:"",filteredSkills:[],triggerPosition:-1}));return}let F=u5(O,U),L=x5($,F,Z);if(L.length===1&&L[0].skill.name.toLowerCase()===F.toLowerCase()){J((q)=>({...q,visible:!1,query:"",filteredSkills:[],triggerPosition:-1}));return}J((q)=>({...q,visible:!0,query:F,filteredSkills:L,triggerPosition:U}))},[$.length,Z]),K=V0.useCallback(()=>{if(!Y.visible||Y.filteredSkills.length===0)return null;return Y.filteredSkills[0]?.skill??null},[Y.visible,Y.filteredSkills]),Q=V0.useCallback((O)=>{let N=K();if(!N)return O;let U=O.slice(0,Y.triggerPosition),F=O.slice(Y.triggerPosition+1+Y.query.length);return`${U}#${N.name} ${F}`},[K,Y.triggerPosition,Y.query]),W=V0.useCallback(()=>{J((O)=>({...O,visible:!1,query:"",filteredSkills:[],triggerPosition:-1}))},[]),_=Y.visible&&Y.filteredSkills.length>0;return{state:Y,checkTrigger:X,getFirstSkill:K,complete:Q,hide:W,isActive:_}}var j0=A(D(),1);function d5($,Z){if(Z===0)return!0;let Y=$[Z-1];return Y===" "||Y===`
|
|
329
|
+
`||Y==="\t"}function l5($,Z){let Y=Z+1;while(Y<$.length&&!/[\s\n\t]/.test($[Y]))Y++;return $.slice(Z+1,Y)}function i5($,Z,Y){let J=Z.toLowerCase(),X=$.filter((K)=>{let Q=K.name.toLowerCase(),W=K.id.toLowerCase();return Q.startsWith(J)||W.includes(J)});return X.sort((K,Q)=>K.name.localeCompare(Q.name)),X.slice(0,Y)}function ZZ({agents:$,maxSuggestions:Z=5}){let[Y,J]=j0.useState({visible:!1,query:"",filteredAgents:[],triggerPosition:-1}),X=j0.useCallback((O,N)=>{let U=O.lastIndexOf("@");if(U===-1){J((q)=>({...q,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}));return}if(!d5(O,U)){J((q)=>({...q,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}));return}let F=l5(O,U),L=i5($,F,Z);if(L.length===1&&L[0].name.toLowerCase()===F.toLowerCase()){J((q)=>({...q,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}));return}J((q)=>({...q,visible:!0,query:F,filteredAgents:L,triggerPosition:U}))},[$.length,Z]),K=j0.useCallback(()=>{if(!Y.visible||Y.filteredAgents.length===0)return null;return Y.filteredAgents[0]??null},[Y.visible,Y.filteredAgents]),Q=j0.useCallback((O)=>{let N=K();if(!N)return O;let U=O.slice(0,Y.triggerPosition),F=O.slice(Y.triggerPosition+1+Y.query.length);return`${U}@${N.name} ${F}`},[K,Y.triggerPosition,Y.query]),W=j0.useCallback(()=>{J((O)=>({...O,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}))},[]),_=Y.visible&&Y.filteredAgents.length>0;return{state:Y,checkTrigger:X,getFirstAgent:K,complete:Q,hide:W,isActive:_}}var YZ=A(D(),1);var v1=A(M(),1);function o5({name:$,result:Z}){if(!Z)return v1.jsxDEV(G,{color:"cyan",children:$},void 0,!1,void 0,this);let Y=Z.highlight((J)=>v1.jsxDEV(G,{color:"green",bold:!0,children:J},void 0,!1,void 0,this));if(Array.isArray(Y))return v1.jsxDEV(G,{color:"cyan",children:Y.map((J,X)=>{if(typeof J==="string")return v1.jsxDEV(G,{children:J},`p-${X}`,!1,void 0,this);return v1.jsxDEV(YZ.default.Fragment,{children:J},`m-${X}`,!1,void 0,this)})},void 0,!1,void 0,this);return v1.jsxDEV(G,{color:"cyan",children:$},void 0,!1,void 0,this)}var XZ=({visible:$,skills:Z,query:Y,maxVisible:J=5})=>{if(!$||Z.length===0)return null;let X=Z.slice(0,J);return v1.jsxDEV(z,{marginBottom:1,flexDirection:"column",children:[v1.jsxDEV(G,{color:"yellow",bold:!0,children:"技能建议 (按 → 补全):"},void 0,!1,void 0,this),X.map(({skill:K,result:Q})=>v1.jsxDEV(z,{children:[v1.jsxDEV(G,{children:" #"},void 0,!1,void 0,this),v1.jsxDEV(o5,{name:K.name,result:Q},void 0,!1,void 0,this)]},K.name,!0,void 0,this)),Z.length>J&&v1.jsxDEV(G,{color:"gray",children:["...还有 ",Z.length-J," 个技能"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var L1=A(M(),1);function r5({name:$,query:Z}){if(!Z)return L1.jsxDEV(G,{color:"magenta",children:$},void 0,!1,void 0,this);let Y=$.toLowerCase(),J=Z.toLowerCase();if(Y.startsWith(J))return L1.jsxDEV(L1.Fragment,{children:[L1.jsxDEV(G,{color:"green",bold:!0,children:$.slice(0,Z.length)},void 0,!1,void 0,this),L1.jsxDEV(G,{color:"magenta",children:$.slice(Z.length)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return L1.jsxDEV(G,{color:"magenta",children:$},void 0,!1,void 0,this)}var JZ=({visible:$,agents:Z,query:Y,maxVisible:J=5})=>{if(!$||Z.length===0)return null;let X=Z.slice(0,J);return L1.jsxDEV(z,{marginBottom:1,flexDirection:"column",children:[L1.jsxDEV(G,{color:"yellow",bold:!0,children:"Agent 建议 (按 → 补全):"},void 0,!1,void 0,this),X.map((K)=>L1.jsxDEV(z,{children:[L1.jsxDEV(G,{children:" @"},void 0,!1,void 0,this),L1.jsxDEV(r5,{name:K.name,query:Y},void 0,!1,void 0,this),L1.jsxDEV(G,{dimColor:!0,children:[" - ",K.description]},void 0,!0,void 0,this)]},K.id,!0,void 0,this)),Z.length>J&&L1.jsxDEV(G,{color:"gray",children:["...还有 ",Z.length-J," 个 Agent"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};import KZ from"chalk";function n5($){if($.length===0)return[];let Z=[];if($.startsWith("/")){let Y=$.indexOf(" ");if(Y===-1)return Z.push({type:"command",value:$}),Z;let J=$.slice(0,Y),X=$.slice(Y);return Z.push({type:"command",value:J}),Z.push(...QZ(X,"args")),Z}return Z.push(...QZ($,"text")),Z}function QZ($,Z){let Y=[],J=/(^|(?<=\s))(#[\w-]+)/g,X=0,K;while((K=J.exec($))!==null){let Q=K[2],W=K.index+K[1].length;if(W>X)Y.push({type:Z,value:$.slice(X,W)});Y.push({type:"skill",value:Q}),X=W+Q.length}if(X<$.length)Y.push({type:Z,value:$.slice(X)});return Y}function a5($){return $.map(({type:Z,value:Y})=>{switch(Z){case"command":return KZ.cyan.bold(Y);case"args":return Y;case"skill":return KZ.green.bold(Y);case"text":return Y}}).join("")}function WZ($){if($.length===0)return $;let Z=n5($);return a5(Z)}var GZ=A(D(),1);function OZ(){let{extraParams:$}=Z1(),{sendMessage:Z,loading:Y}=$1(),{bufferedMessage:J,clearBuffer:X}=j$(),K=_Z();GZ.useEffect(()=>{if(!Y&&J.trim()){let Q=[{type:"human",content:J}];X(),Z(Q,{extraParams:$}).then(()=>{J0("Zen Code 完成任务")}).catch((W)=>{console.error("Failed to send buffered message:",W)})}},[Y,J,Z,$,X,K])}var U0=A(M(),1),UZ=({value:$,onChange:Z,onSubmit:Y,loading:J,placeholder:X="输入消息...",commandHandler:K,skills:Q=[],agents:W=[]})=>{OZ();let{bufferedMessage:_,setBufferedMessage:O,clearBuffer:N}=j$(),[U,F]=W1.useState($),L=W1.useRef(!1),q=$Z({skills:Q,maxSuggestions:5}),w=ZZ({agents:W,maxSuggestions:5});W1.useEffect(()=>{if($!==U)L.current=!0,F($)},[$]);let R=W1.useMemo(()=>U.startsWith("/"),[U]),P=W1.useMemo(()=>U.startsWith("/")&&!U.includes(" "),[U]);W1.useEffect(()=>{if(!P)q.checkTrigger(U),w.checkTrigger(U)},[U,P]);let S=W1.useCallback((I)=>{if(L.current){L.current=!1;return}F(I),Z(I)},[Z]),u=W1.useCallback((I)=>{if(!I.trim())return;if(q.hide(),w.hide(),R){Y(I),F("");return}if(J)O(I),F("");else Y(I),F("")},[R,J,Y,O,q,w]),m=W1.useCallback(()=>{if(w.isActive){w.hide();return}if(q.isActive){q.hide();return}if(_)N();else F("")},[_,N,q.isActive,w.isActive]),t=W1.useCallback(()=>{if(!R||!K.commandSuggestions||K.commandSuggestions.length===0)return!1;let j=K.commandSuggestions[0],A1=(j.displayText||j.command||"")+" ";return S(A1),!0},[R,K.commandSuggestions,S]),v=W1.useCallback(()=>{if(!q.isActive)return!1;let I=q.complete(U);return S(I),q.hide(),!0},[q.isActive,U,S]),i=W1.useCallback(()=>{if(!w.isActive)return!1;let I=w.complete(U);return S(I),w.hide(),!0},[w.isActive,U,S]),r=W1.useMemo(()=>{if(J)return _?"按 Esc 清空缓冲区":"AI 响应中,Enter 将消息加入缓冲区";if(R)return"输入命令... (试试 /help,按 → 补全第一个建议)";if(w.isActive)return"按 → 补全 Agent";if(q.isActive)return"按 → 补全技能";return X},[J,_,R,w.isActive,q.isActive,X]);return U0.jsxDEV(z,{flexDirection:"column",children:[_&&U0.jsxDEV(z,{padding:1,children:U0.jsxDEV(G,{color:"yellow",children:["\uD83D\uDCDD 缓冲区: ",_.slice(0,50),_.length>50?"...":""]},void 0,!0,void 0,this)},void 0,!1,void 0,this),U0.jsxDEV(K.CommandHintUI,{},void 0,!1,void 0,this),U0.jsxDEV(JZ,{visible:w.state.visible,agents:w.state.filteredAgents,query:w.state.query},void 0,!1,void 0,this),U0.jsxDEV(XZ,{visible:q.state.visible,skills:q.state.filteredSkills,query:q.state.query},void 0,!1,void 0,this),U0.jsxDEV(z,{paddingY:1,children:U0.jsxDEV(h1,{id:"global-input",value:U,onChange:S,onSubmit:u,colorizeContent:WZ,onHotKey:(I,j)=>{if(j.escape)return m(),!1;if(j.rightArrow){if(w.isActive){if(i())return!1}if(q.isActive){if(v())return!1}if(t())return!1}return!0},placeholder:r},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};var h$=A(D(),1);var U1=A(M(),1);var s5=($)=>{switch($){case"running":return{icon:"⏳",color:"yellow"};case"completed":return{icon:"✓",color:"green"};case"failed":return{icon:"✗",color:"red"}}},t5=($,Z=10)=>{if(!$)return"";let Y=$.split(`
|
|
330
330
|
`);if(Y.length<=Z)return $;return[...Y.slice(0,Z),"... (more)"].join(`
|
|
331
|
-
`)},B6=h$.memo(({commandResult:$,onClose:Z,onStop:Y})=>{let{exit:J}=NZ();if(h$.useEffect(()=>{let w=(R)=>{if(R.key==="escape")Z()};return process.stdin.on("keypress",w),()=>{process.stdin.off("keypress",w)}},[Z]),!$)return null;let{command:X,output:K,status:Q,pid:W}=$,{icon:_,color:O}=
|
|
332
|
-
`).map((w,R)=>U1.jsxDEV(z,{children:U1.jsxDEV(G,{color:"gray",children:w},void 0,!1,void 0,this)},R,!1,void 0,this))},void 0,!1,void 0,this),L=U1.jsxDEV(z,{justifyContent:"space-between",marginTop:0,children:[U1.jsxDEV(G,{color:O,children:[_," ",Q==="running"?"Running...":Q.charAt(0).toUpperCase()+Q.slice(1)]},void 0,!0,void 0,this),W&&U1.jsxDEV(G,{color:"gray",children:["PID: ",W]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);return U1.jsxDEV(z,{flexDirection:"column",paddingX:1,paddingY:0,borderStyle:"single",borderColor:"gray",width:"100%",children:[U,U1.jsxDEV(z,{children:U1.jsxDEV(G,{color:"gray",children:"────────────────────────────────────────────────────────"},void 0,!1,void 0,this)},void 0,!1,void 0,this),N&&F,L]},void 0,!0,void 0,this)});B6.displayName="ShellOutputPreview";var o0=A(M(),1),P6=E$.memo(()=>{let{userInput:$,setUserInput:Z,loading:Y,renderMessages:J,sendMessage:X}=Z1(),{extraParams:K,manager:Q}=t(),{executeCommand:W,activeCommand:_,clearOutput:O,isExecuting:N}=e3(),{switchToHistory:U,switchToKnowledge:F,switchToSettings:L,switchToModelProvider:q,switchToAgent:w,switchToTask:R,switchToMcp:P,switchToProcess:S,switchToErrors:u,closePanel:m}=E0(),{data:e=[]}=o3({manager:Q}),{data:v=[]}=r3(),{startRalphLoop:i}=n3({loading:Y,renderMessages:J,sendMessage:X,setUserInput:Z,extraParams:K}),r=i3({extraParams:K,switchToHistory:U,switchToKnowledge:F,switchToSettings:L,switchToModelProvider:q,switchToAgent:w,switchToTask:R,switchToMcp:P,switchToProcess:S,switchToErrors:u,closePanel:m,startRalphLoop:i}),I=E$.useCallback(async(j)=>{if(!j)return;if(j.startsWith("!")){let x=j.slice(1).trim();if(x)await W(x),Z("");return}if(j.startsWith("/")){if(await r.executeCommand(j)){Z("");return}}await X([{type:"human",content:j}],{extraParams:K,metadata:r1}),J0("Zen Code 完成任务")},[r,Z,W,K,X]);return o0.jsxDEV(z,{flexDirection:"column",paddingX:0,paddingY:0,borderColor:"grey",borderTop:!0,borderStyle:"single",borderLeft:!1,borderBottom:!1,borderRight:!1,children:[_&&o0.jsxDEV(B6,{commandResult:_,onClose:O},void 0,!1,void 0,this),o0.jsxDEV(r.CommandErrorUI,{},void 0,!1,void 0,this),o0.jsxDEV(r.CommandSuccessUI,{},void 0,!1,void 0,this),o0.jsxDEV(UZ,{value:$,onChange:Z,onSubmit:I,loading:Y,commandHandler:{isCommandInput:r.isCommandInput,CommandHintUI:r.CommandHintUI,commandSuggestions:r.commandSuggestions},skills:e,agents:v},void 0,!1,void 0,this)]},void 0,!0,void 0,this)});P6.displayName="ChatInput";var S1=A(M(),1),$X=()=>{let{renderMessages:$,currentChatId:Z,getToolUIRender:Y,loading:J}=Z1(),{compactMode:X}=t(),[K]=zZ($,50),Q=FZ.useCallback((W)=>Y(W),[Y]);return S1.jsxDEV(z,{flexDirection:"column",flexGrow:1,paddingX:0,paddingY:0,children:[K.length===0&&S1.jsxDEV(f3,{},void 0,!1,void 0,this),K.length?X?S1.jsxDEV(A6,{renderMessages:K,startIndex:0,staticKey:Z,getToolUIRender:Q,loading:J},Z,!1,void 0,this):S1.jsxDEV(M3,{loading:J,renderMessages:K,startIndex:0,staticKey:Z},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)},f6=()=>{let{hasPendingInteractions:$}=k1();return S1.jsxDEV(z,{flexDirection:"column",flexGrow:1,children:[S1.jsxDEV(g,{name:"ChatMessages",fallback:null,children:S1.jsxDEV($X,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),S1.jsxDEV(HZ,{children:S1.jsxDEV(g,{name:"InteractionArea",fallback:null,children:$?S1.jsxDEV(z,{paddingX:0,paddingY:0,children:S1.jsxDEV(J6,{},void 0,!1,void 0,this)},void 0,!1,void 0,this):S1.jsxDEV(P6,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};f6.displayName="ChatMain";var D1=A(D(),1);var Z0=A(D(),1),LZ=Z0.lazy(()=>import("./chunk-b8dxq9rq.js").then(($)=>({default:$.default}))),AZ=Z0.lazy(()=>import("./chunk-cjqarwdn.js").then(($)=>({default:$.default}))),qZ=Z0.lazy(()=>import("./chunk-xkz5z0zn.js").then(($)=>({default:$.default}))),wZ=Z0.lazy(()=>import("./chunk-6rfc36jg.js").then(($)=>({default:$.default}))),MZ=Z0.lazy(()=>import("./chunk-zz32kgt2.js").then(($)=>({default:$.default}))),RZ=Z0.lazy(()=>import("./chunk-f8ewggk1.js").then(($)=>({default:$.default}))),bZ=Z0.lazy(()=>import("./chunk-wn43r152.js").then(($)=>({default:$.default}))),BZ=Z0.lazy(()=>import("./chunk-jbf8ve63.js").then(($)=>({default:$.default}))),PZ=Z0.lazy(()=>import("./chunk-j9aysaeb.js").then(($)=>({default:$.default})));var k=A(M(),1),N0=()=>k.jsxDEV(z,{paddingX:1,paddingY:1,children:k.jsxDEV(G,{color:"grey",children:"Loading..."},void 0,!1,void 0,this)},void 0,!1,void 0,this),z0=($)=>k.jsxDEV(z,{paddingX:1,paddingY:1,children:[k.jsxDEV(G,{color:"red",children:["✗ ",$," panel error"]},void 0,!0,void 0,this),k.jsxDEV(z,{marginTop:1,children:k.jsxDEV(G,{color:"gray",children:"Try reopening or press ESC to return"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),C6=D1.memo(()=>{let{activeView:$,closePanel:Z,handleExecuteTask:Y}=E0();return k.jsxDEV(z,{flexGrow:1,flexDirection:"row",children:[$==="history"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"HistoryPanel",fallback:z0("History"),children:k.jsxDEV(LZ,{onClose:Z},void 0,!1,void 0,this)},"history-panel",!1,void 0,this)},"history-suspense",!1,void 0,this),$==="knowledge"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"KnowledgePanel",fallback:z0("Knowledge"),children:k.jsxDEV(AZ,{onClose:Z},void 0,!1,void 0,this)},"knowledge-panel",!1,void 0,this)},"knowledge-suspense",!1,void 0,this),$==="settings"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"SettingsPanel",fallback:z0("Settings"),children:k.jsxDEV(qZ,{onClose:Z},void 0,!1,void 0,this)},"settings-panel",!1,void 0,this)},"settings-suspense",!1,void 0,this),$==="model-provider"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"ModelProviderPanel",fallback:z0("Model Provider"),children:k.jsxDEV(wZ,{onClose:Z},void 0,!1,void 0,this)},"model-provider-panel",!1,void 0,this)},"model-provider-suspense",!1,void 0,this),$==="agent"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"AgentPanel",fallback:z0("Agent"),children:k.jsxDEV(MZ,{onClose:Z},void 0,!1,void 0,this)},"agent-panel",!1,void 0,this)},"agent-suspense",!1,void 0,this),$==="task"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"TaskPanel",fallback:z0("Task"),children:k.jsxDEV(RZ,{onClose:Z,onExecuteTask:Y},void 0,!1,void 0,this)},"task-panel",!1,void 0,this)},"task-suspense",!1,void 0,this),$==="mcp"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"McpPanel",fallback:z0("MCP"),children:k.jsxDEV(bZ,{onClose:Z},void 0,!1,void 0,this)},"mcp-panel",!1,void 0,this)},"mcp-suspense",!1,void 0,this),$==="process"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"ProcessPanel",fallback:z0("Process"),children:k.jsxDEV(BZ,{onClose:Z},void 0,!1,void 0,this)},"process-panel",!1,void 0,this)},"process-suspense",!1,void 0,this),$==="errors"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"ErrorPanel",fallback:z0("Errors"),children:k.jsxDEV(PZ,{onClose:Z},void 0,!1,void 0,this)},"errors-panel",!1,void 0,this)},"errors-suspense",!1,void 0,this)]},void 0,!0,void 0,this)});C6.displayName="LazyChatViewManager";var R0=A(D(),1);var fZ=A(D(),1);var g$=A(M(),1),CZ=()=>{let{renderMessages:$}=Z1(),Z=fZ.default.useMemo(()=>{if(!$)return null;for(let Y=$.length-1;Y>=0;Y--){let J=$[Y];if(J.role==="assistant"&&J.content)try{let K=(Array.isArray(J.content)?J.content:[{type:"text",text:J.content}]).find((Q)=>Q.type==="text")?.text||"";if(K.includes("load_mcp_tools"))try{let Q=JSON.parse(K);if(Q.status&&Q.status.toolCount!==void 0)return Q.status}catch(Q){}}catch(X){}}return null},[$]);if(!Z||Z.toolCount===0)return null;return g$.jsxDEV(z,{paddingX:1,children:[g$.jsxDEV(G,{color:"green",bold:!0,children:"MCP"},void 0,!1,void 0,this),g$.jsxDEV(G,{color:"cyan",children:[" ",Z.toolCount]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var d1=A(D(),1);function S6($){if($===0)return"0";if($<1024)return`${$}`;if($<1048576)return`${($/1024).toFixed(0)}K`;if($<1073741824)return`${($/1048576).toFixed(0)}M`;return`${($/1073741824).toFixed(1)}G`}function vZ($){let Z=Math.floor($/1000),Y=Math.floor(Z/3600),J=Math.floor(Z%3600/60),X=Z%60;if(Y>0)return`${Y}:${String(J).padStart(2,"0")}:${String(X).padStart(2,"0")}`;return`${String(J).padStart(2,"0")}:${String(X).padStart(2,"0")}`}function SZ($){let[Z,Y]=d1.useState(0),J=d1.useRef(null);return d1.useEffect(()=>{if($)J.current=Date.now(),Y(0);else J.current=null,Y(0)},[$]),v6(()=>{if(J.current)Y(Date.now()-J.current)},$?1000:null),Z}function IZ(){let[$,Z]=d1.useState({cpuPercent:0,memoryRSS:0,memoryHeapUsed:0,memoryHeapTotal:0}),Y=d1.useRef(process.cpuUsage()),J=d1.useRef(Date.now()),X=()=>{let K=Date.now(),Q=process.cpuUsage(),W=process.memoryUsage(),_=K-J.current,O=Q.user-Y.current.user,N=Q.system-Y.current.system,F=(O+N)/1000/_*100;Z({cpuPercent:Math.min(100,Math.max(0,F)),memoryRSS:W.rss,memoryHeapUsed:W.heapUsed,memoryHeapTotal:W.heapTotal}),Y.current=Q,J.current=K};return d1.useEffect(()=>{X()},[]),v6(X,2000),$}function kZ($){if($<50)return"green";if($<80)return"yellow";return"red"}function yZ($,Z){if(Z===0)return"gray";let Y=$/Z*100;if(Y<50)return"green";if(Y<80)return"yellow";return"red"}var H0=A(M(),1),ZX=()=>{let $=IZ(),Z=kZ($.cpuPercent),Y=yZ($.memoryHeapUsed,$.memoryHeapTotal);return H0.jsxDEV(z,{paddingX:1,width:"100%",children:H0.jsxDEV(z,{gap:2,children:[H0.jsxDEV(z,{children:[H0.jsxDEV(G,{dimColor:!0,children:"CPU:"},void 0,!1,void 0,this),H0.jsxDEV(G,{color:Z,children:[" ",$.cpuPercent.toFixed(0),"%"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),H0.jsxDEV(z,{children:[H0.jsxDEV(G,{dimColor:!0,children:"MEM:"},void 0,!1,void 0,this),H0.jsxDEV(G,{color:Y,children:[S6($.memoryHeapUsed),"/",S6($.memoryRSS)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},TZ=ZX;var J1=A(M(),1);import YX from"path";var XX=()=>{let{extraParams:$,compactMode:Z,showDetailedInfo:Y}=t(),{currentChatId:J,renderMessages:X}=Z1(),{loading:K,stopGeneration:Q}=Z1(),W=process.env.YOLO_MODE==="true",[_,O]=R0.useState(0);R0.useEffect(()=>{let w=async()=>{let P=await VZ.getProcessList();O(P.length)};w();let R=setInterval(w,2000);return()=>clearInterval(R)},[]);let N=R0.useCallback((w,R)=>{if(R.ctrl&&w==="c")process.exit()},[K,Q]);y1(N);let U=SZ(K),F=R0.default.useMemo(()=>{return YX.basename(process.cwd())},[]),q=(X?.length||0)>100;return J1.jsxDEV(z,{flexDirection:"column",width:"100%",children:[J1.jsxDEV(z,{paddingX:1,paddingY:0,justifyContent:"space-between",width:"100%",marginBottom:1,children:[J1.jsxDEV(z,{gap:1,children:[K&&J1.jsxDEV(G,{color:"yellow",bold:!0,children:J1.jsxDEV(DZ,{text:"LOADING"},void 0,!1,void 0,this)},void 0,!1,void 0,this),!K&&J1.jsxDEV(G,{color:"magenta",bold:!0,children:"Zen Code"},void 0,!1,void 0,this),J1.jsxDEV(G,{color:"cyan",bold:!0,children:[" ",$.model_id]},void 0,!0,void 0,this),J1.jsxDEV(G,{color:"yellow",bold:!0,children:[" ","@",$.switch_command||"default"]},void 0,!0,void 0,this),!Z&&J1.jsxDEV(G,{color:"blue",bold:!0,children:[" ","[FULL]"]},void 0,!0,void 0,this),W&&J1.jsxDEV(G,{color:"red",bold:!0,children:[" ","YOLO"]},void 0,!0,void 0,this),J1.jsxDEV(CZ,{},void 0,!1,void 0,this),_>0&&J1.jsxDEV(G,{color:"magenta",bold:!0,children:[" ","● BG (",_,")"]},void 0,!0,void 0,this),q&&J1.jsxDEV(G,{color:"red",bold:!0,children:[" ","/summary"]},void 0,!0,void 0,this),J1.jsxDEV(G,{color:"green",bold:!0,children:X.length},void 0,!1,void 0,this),J1.jsxDEV(G,{color:"blue",children:F},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K&&J1.jsxDEV(z,{children:J1.jsxDEV(G,{color:"yellow",children:vZ(U)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Y&&J1.jsxDEV(TZ,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},jZ=XX;var c=A(M(),1),JX=()=>{let{activeView:$}=E0();return c.jsxDEV(z,{flexDirection:"column",width:"100%",children:[c.jsxDEV(z,{flexGrow:1,flexDirection:"row",children:[c.jsxDEV(g,{name:"ChatMain",fallback:c.jsxDEV(G,{color:"yellow",children:"Chat view unavailable"},void 0,!1,void 0,this),children:$==="chat"?c.jsxDEV(f6,{},void 0,!1,void 0,this):null},"chat-main-view",!1,void 0,this),c.jsxDEV(g,{name:"PanelView",fallback:c.jsxDEV(G,{color:"yellow",children:"Panel unavailable"},void 0,!1,void 0,this),children:$!=="chat"?c.jsxDEV(C6,{},void 0,!1,void 0,this):null},"panel-view",!1,void 0,this)]},void 0,!0,void 0,this),c.jsxDEV(g,{name:"StatusBar",fallback:null,children:c.jsxDEV(jZ,{},void 0,!1,void 0,this)},"status-bar",!1,void 0,this)]},void 0,!0,void 0,this)},KX=()=>{return c.jsxDEV(g,{name:"Chat",children:c.jsxDEV(l4,{children:c.jsxDEV(JX,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},QX=({children:$})=>{let{config:Z}=t(),Y=pZ.useMemo(()=>{let J={};if(Z){let X=Z.providers?.find((K)=>K.id===Z.provider_id);if(X){if(X.apiKey)J["x-api-key"]=X.apiKey;if(X.baseUrl)J["x-base-url"]=X.baseUrl}}return J},[Z]);return c.jsxDEV(hZ,{apiUrl:"http://127.0.0.1:8123",defaultAgent:"code",defaultHeaders:Y,withCredentials:!1,showHistory:!1,showGraph:!1,onInitError:(J,X)=>{console.error(J,X),import("./chunk-ns6tjjkq.js").then(({logAgentError:K})=>{K("ChatProvider",J)}).catch(()=>{})},fetch:n6,autoRestoreLastSession:!0,historyFilter:{metadata:{path:process.cwd()}},children:$},void 0,!1,void 0,this)},WX=()=>{return c.jsxDEV(g,{name:"AppRoot",children:c.jsxDEV(g,{name:"TanStackQueryProvider",children:c.jsxDEV(V6,{children:c.jsxDEV(g,{name:"SettingsProvider",children:c.jsxDEV(gZ,{get_allowed_models:a6,children:c.jsxDEV(QX,{children:c.jsxDEV(g,{name:"ApprovalProvider",children:c.jsxDEV(EZ,{children:c.jsxDEV(g,{name:"InteractionProvider",children:c.jsxDEV(U$,{children:c.jsxDEV(KX,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},"interaction-provider",!1,void 0,this)},void 0,!1,void 0,this)},"approval-provider",!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},"settings-provider",!1,void 0,this)},void 0,!1,void 0,this)},"tanstack-query-provider",!1,void 0,this)},"app-root",!1,void 0,this)},_X=()=>c.jsxDEV(WX,{},void 0,!1,void 0,this),I6=_X;var l1=A(M(),1),GX=({error:$})=>l1.jsxDEV(z,{flexDirection:"column",padding:2,borderStyle:"double",borderColor:"red",children:[l1.jsxDEV(G,{color:"red",bold:!0,children:"✗ Application Crashed"},void 0,!1,void 0,this),l1.jsxDEV(z,{marginTop:1,children:l1.jsxDEV(G,{color:"red",children:$.message},void 0,!1,void 0,this)},void 0,!1,void 0,this),l1.jsxDEV(z,{marginTop:1,children:l1.jsxDEV(G,{color:"gray",children:["Stack: ",$.stack?.split(`
|
|
331
|
+
`)},B6=h$.memo(({commandResult:$,onClose:Z,onStop:Y})=>{let{exit:J}=NZ();if(h$.useEffect(()=>{let w=(R)=>{if(R.key==="escape")Z()};return process.stdin.on("keypress",w),()=>{process.stdin.off("keypress",w)}},[Z]),!$)return null;let{command:X,output:K,status:Q,pid:W}=$,{icon:_,color:O}=s5(Q),N=t5(K,10),U=U1.jsxDEV(z,{justifyContent:"space-between",children:[U1.jsxDEV(z,{children:U1.jsxDEV(G,{bold:!0,color:"cyan",children:["\uD83D\uDCDF $ ",X]},void 0,!0,void 0,this)},void 0,!1,void 0,this),U1.jsxDEV(z,{children:[Q==="running"&&Y&&U1.jsxDEV(G,{bold:!0,color:"red",children:[" ","[⏹ 停止]"]},void 0,!0,void 0,this),U1.jsxDEV(G,{bold:!0,color:"gray",children:[" ","[×]"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),F=U1.jsxDEV(z,{flexDirection:"column",marginTop:0,children:N.split(`
|
|
332
|
+
`).map((w,R)=>U1.jsxDEV(z,{children:U1.jsxDEV(G,{color:"gray",children:w},void 0,!1,void 0,this)},R,!1,void 0,this))},void 0,!1,void 0,this),L=U1.jsxDEV(z,{justifyContent:"space-between",marginTop:0,children:[U1.jsxDEV(G,{color:O,children:[_," ",Q==="running"?"Running...":Q.charAt(0).toUpperCase()+Q.slice(1)]},void 0,!0,void 0,this),W&&U1.jsxDEV(G,{color:"gray",children:["PID: ",W]},void 0,!0,void 0,this)]},void 0,!0,void 0,this);return U1.jsxDEV(z,{flexDirection:"column",paddingX:1,paddingY:0,borderStyle:"single",borderColor:"gray",width:"100%",children:[U,U1.jsxDEV(z,{children:U1.jsxDEV(G,{color:"gray",children:"────────────────────────────────────────────────────────"},void 0,!1,void 0,this)},void 0,!1,void 0,this),N&&F,L]},void 0,!0,void 0,this)});B6.displayName="ShellOutputPreview";var o0=A(M(),1),P6=E$.memo(()=>{let{userInput:$,setUserInput:Z,loading:Y,renderMessages:J,sendMessage:X}=$1(),{extraParams:K,manager:Q}=Z1(),{executeCommand:W,activeCommand:_,clearOutput:O,isExecuting:N}=e3(),{switchToHistory:U,switchToKnowledge:F,switchToSettings:L,switchToModelProvider:q,switchToAgent:w,switchToTask:R,switchToMcp:P,switchToProcess:S,switchToErrors:u,closePanel:m}=E0(),{data:t=[]}=o3({manager:Q}),{data:v=[]}=r3(),{startRalphLoop:i}=n3({loading:Y,renderMessages:J,sendMessage:X,setUserInput:Z,extraParams:K}),r=i3({extraParams:K,switchToHistory:U,switchToKnowledge:F,switchToSettings:L,switchToModelProvider:q,switchToAgent:w,switchToTask:R,switchToMcp:P,switchToProcess:S,switchToErrors:u,closePanel:m,startRalphLoop:i}),I=E$.useCallback(async(j)=>{if(!j)return;if(j.startsWith("!")){let x=j.slice(1).trim();if(x)await W(x),Z("");return}if(j.startsWith("/")){if(await r.executeCommand(j)){Z("");return}}await X([{type:"human",content:j}],{extraParams:K,metadata:r1}),J0("Zen Code 完成任务")},[r,Z,W,K,X]);return o0.jsxDEV(z,{flexDirection:"column",paddingX:0,paddingY:0,borderColor:"grey",borderTop:!0,borderStyle:"single",borderLeft:!1,borderBottom:!1,borderRight:!1,children:[_&&o0.jsxDEV(B6,{commandResult:_,onClose:O},void 0,!1,void 0,this),o0.jsxDEV(r.CommandErrorUI,{},void 0,!1,void 0,this),o0.jsxDEV(r.CommandSuccessUI,{},void 0,!1,void 0,this),o0.jsxDEV(UZ,{value:$,onChange:Z,onSubmit:I,loading:Y,commandHandler:{isCommandInput:r.isCommandInput,CommandHintUI:r.CommandHintUI,commandSuggestions:r.commandSuggestions},skills:t,agents:v},void 0,!1,void 0,this)]},void 0,!0,void 0,this)});P6.displayName="ChatInput";var S1=A(M(),1),e5=()=>{let{renderMessages:$,currentChatId:Z,getToolUIRender:Y,loading:J}=$1(),{compactMode:X}=Z1(),[K]=zZ($,50),Q=FZ.useCallback((W)=>Y(W),[Y]);return S1.jsxDEV(z,{flexDirection:"column",flexGrow:1,paddingX:0,paddingY:0,children:[K.length===0&&S1.jsxDEV(f3,{},void 0,!1,void 0,this),K.length?X?S1.jsxDEV(A6,{renderMessages:K,startIndex:0,staticKey:Z,getToolUIRender:Q,loading:J},Z,!1,void 0,this):S1.jsxDEV(M3,{loading:J,renderMessages:K,startIndex:0,staticKey:Z},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)},f6=()=>{let{hasPendingInteractions:$}=k1();return S1.jsxDEV(z,{flexDirection:"column",flexGrow:1,children:[S1.jsxDEV(g,{name:"ChatMessages",fallback:null,children:S1.jsxDEV(e5,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),S1.jsxDEV(HZ,{children:S1.jsxDEV(g,{name:"InteractionArea",fallback:null,children:$?S1.jsxDEV(z,{paddingX:0,paddingY:0,children:S1.jsxDEV(J6,{},void 0,!1,void 0,this)},void 0,!1,void 0,this):S1.jsxDEV(P6,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};f6.displayName="ChatMain";var D1=A(D(),1);var Z0=A(D(),1),LZ=Z0.lazy(()=>import("./chunk-b8dxq9rq.js").then(($)=>({default:$.default}))),AZ=Z0.lazy(()=>import("./chunk-cjqarwdn.js").then(($)=>({default:$.default}))),qZ=Z0.lazy(()=>import("./chunk-xkz5z0zn.js").then(($)=>({default:$.default}))),wZ=Z0.lazy(()=>import("./chunk-6rfc36jg.js").then(($)=>({default:$.default}))),MZ=Z0.lazy(()=>import("./chunk-zz32kgt2.js").then(($)=>({default:$.default}))),RZ=Z0.lazy(()=>import("./chunk-f8ewggk1.js").then(($)=>({default:$.default}))),bZ=Z0.lazy(()=>import("./chunk-wn43r152.js").then(($)=>({default:$.default}))),BZ=Z0.lazy(()=>import("./chunk-jbf8ve63.js").then(($)=>({default:$.default}))),PZ=Z0.lazy(()=>import("./chunk-j9aysaeb.js").then(($)=>({default:$.default})));var k=A(M(),1),N0=()=>k.jsxDEV(z,{paddingX:1,paddingY:1,children:k.jsxDEV(G,{color:"grey",children:"Loading..."},void 0,!1,void 0,this)},void 0,!1,void 0,this),z0=($)=>k.jsxDEV(z,{paddingX:1,paddingY:1,children:[k.jsxDEV(G,{color:"red",children:["✗ ",$," panel error"]},void 0,!0,void 0,this),k.jsxDEV(z,{marginTop:1,children:k.jsxDEV(G,{color:"gray",children:"Try reopening or press ESC to return"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),C6=D1.memo(()=>{let{activeView:$,closePanel:Z,handleExecuteTask:Y}=E0();return k.jsxDEV(z,{flexGrow:1,flexDirection:"row",children:[$==="history"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"HistoryPanel",fallback:z0("History"),children:k.jsxDEV(LZ,{onClose:Z},void 0,!1,void 0,this)},"history-panel",!1,void 0,this)},"history-suspense",!1,void 0,this),$==="knowledge"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"KnowledgePanel",fallback:z0("Knowledge"),children:k.jsxDEV(AZ,{onClose:Z},void 0,!1,void 0,this)},"knowledge-panel",!1,void 0,this)},"knowledge-suspense",!1,void 0,this),$==="settings"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"SettingsPanel",fallback:z0("Settings"),children:k.jsxDEV(qZ,{onClose:Z},void 0,!1,void 0,this)},"settings-panel",!1,void 0,this)},"settings-suspense",!1,void 0,this),$==="model-provider"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"ModelProviderPanel",fallback:z0("Model Provider"),children:k.jsxDEV(wZ,{onClose:Z},void 0,!1,void 0,this)},"model-provider-panel",!1,void 0,this)},"model-provider-suspense",!1,void 0,this),$==="agent"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"AgentPanel",fallback:z0("Agent"),children:k.jsxDEV(MZ,{onClose:Z},void 0,!1,void 0,this)},"agent-panel",!1,void 0,this)},"agent-suspense",!1,void 0,this),$==="task"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"TaskPanel",fallback:z0("Task"),children:k.jsxDEV(RZ,{onClose:Z,onExecuteTask:Y},void 0,!1,void 0,this)},"task-panel",!1,void 0,this)},"task-suspense",!1,void 0,this),$==="mcp"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"McpPanel",fallback:z0("MCP"),children:k.jsxDEV(bZ,{onClose:Z},void 0,!1,void 0,this)},"mcp-panel",!1,void 0,this)},"mcp-suspense",!1,void 0,this),$==="process"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"ProcessPanel",fallback:z0("Process"),children:k.jsxDEV(BZ,{onClose:Z},void 0,!1,void 0,this)},"process-panel",!1,void 0,this)},"process-suspense",!1,void 0,this),$==="errors"&&k.jsxDEV(D1.Suspense,{fallback:k.jsxDEV(N0,{},void 0,!1,void 0,this),children:k.jsxDEV(g,{name:"ErrorPanel",fallback:z0("Errors"),children:k.jsxDEV(PZ,{onClose:Z},void 0,!1,void 0,this)},"errors-panel",!1,void 0,this)},"errors-suspense",!1,void 0,this)]},void 0,!0,void 0,this)});C6.displayName="LazyChatViewManager";var R0=A(D(),1);var fZ=A(D(),1);var g$=A(M(),1),CZ=()=>{let{renderMessages:$}=$1(),Z=fZ.default.useMemo(()=>{if(!$)return null;for(let Y=$.length-1;Y>=0;Y--){let J=$[Y];if(J.role==="assistant"&&J.content)try{let K=(Array.isArray(J.content)?J.content:[{type:"text",text:J.content}]).find((Q)=>Q.type==="text")?.text||"";if(K.includes("load_mcp_tools"))try{let Q=JSON.parse(K);if(Q.status&&Q.status.toolCount!==void 0)return Q.status}catch(Q){}}catch(X){}}return null},[$]);if(!Z||Z.toolCount===0)return null;return g$.jsxDEV(z,{paddingX:1,children:[g$.jsxDEV(G,{color:"green",bold:!0,children:"MCP"},void 0,!1,void 0,this),g$.jsxDEV(G,{color:"cyan",children:[" ",Z.toolCount]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var d1=A(D(),1);function S6($){if($===0)return"0";if($<1024)return`${$}`;if($<1048576)return`${($/1024).toFixed(0)}K`;if($<1073741824)return`${($/1048576).toFixed(0)}M`;return`${($/1073741824).toFixed(1)}G`}function vZ($){let Z=Math.floor($/1000),Y=Math.floor(Z/3600),J=Math.floor(Z%3600/60),X=Z%60;if(Y>0)return`${Y}:${String(J).padStart(2,"0")}:${String(X).padStart(2,"0")}`;return`${String(J).padStart(2,"0")}:${String(X).padStart(2,"0")}`}function SZ($){let[Z,Y]=d1.useState(0),J=d1.useRef(null);return d1.useEffect(()=>{if($)J.current=Date.now(),Y(0);else J.current=null,Y(0)},[$]),v6(()=>{if(J.current)Y(Date.now()-J.current)},$?1000:null),Z}function IZ(){let[$,Z]=d1.useState({cpuPercent:0,memoryRSS:0,memoryHeapUsed:0,memoryHeapTotal:0}),Y=d1.useRef(process.cpuUsage()),J=d1.useRef(Date.now()),X=()=>{let K=Date.now(),Q=process.cpuUsage(),W=process.memoryUsage(),_=K-J.current,O=Q.user-Y.current.user,N=Q.system-Y.current.system,F=(O+N)/1000/_*100;Z({cpuPercent:Math.min(100,Math.max(0,F)),memoryRSS:W.rss,memoryHeapUsed:W.heapUsed,memoryHeapTotal:W.heapTotal}),Y.current=Q,J.current=K};return d1.useEffect(()=>{X()},[]),v6(X,2000),$}function kZ($){if($<50)return"green";if($<80)return"yellow";return"red"}function yZ($,Z){if(Z===0)return"gray";let Y=$/Z*100;if(Y<50)return"green";if(Y<80)return"yellow";return"red"}var H0=A(M(),1),$X=()=>{let $=IZ(),Z=kZ($.cpuPercent),Y=yZ($.memoryHeapUsed,$.memoryHeapTotal);return H0.jsxDEV(z,{paddingX:1,width:"100%",children:H0.jsxDEV(z,{gap:2,children:[H0.jsxDEV(z,{children:[H0.jsxDEV(G,{dimColor:!0,children:"CPU:"},void 0,!1,void 0,this),H0.jsxDEV(G,{color:Z,children:[" ",$.cpuPercent.toFixed(0),"%"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),H0.jsxDEV(z,{children:[H0.jsxDEV(G,{dimColor:!0,children:"MEM:"},void 0,!1,void 0,this),H0.jsxDEV(G,{color:Y,children:[S6($.memoryHeapUsed),"/",S6($.memoryRSS)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},TZ=$X;var J1=A(M(),1);import ZX from"path";var YX=()=>{let{extraParams:$,compactMode:Z,showDetailedInfo:Y}=Z1(),{currentChatId:J,renderMessages:X}=$1(),{loading:K,stopGeneration:Q}=$1(),W=process.env.YOLO_MODE==="true",[_,O]=R0.useState(0);R0.useEffect(()=>{let w=async()=>{let P=await VZ.getProcessList();O(P.length)};w();let R=setInterval(w,2000);return()=>clearInterval(R)},[]);let N=R0.useCallback((w,R)=>{if(R.ctrl&&w==="c")process.exit()},[K,Q]);y1(N);let U=SZ(K),F=R0.default.useMemo(()=>{return ZX.basename(process.cwd())},[]),q=(X?.length||0)>100;return J1.jsxDEV(z,{flexDirection:"column",width:"100%",children:[J1.jsxDEV(z,{paddingX:1,paddingY:0,justifyContent:"space-between",width:"100%",marginBottom:1,children:[J1.jsxDEV(z,{gap:1,children:[K&&J1.jsxDEV(G,{color:"yellow",bold:!0,children:J1.jsxDEV(DZ,{text:"LOADING"},void 0,!1,void 0,this)},void 0,!1,void 0,this),!K&&J1.jsxDEV(G,{color:"magenta",bold:!0,children:"Zen Code"},void 0,!1,void 0,this),J1.jsxDEV(G,{color:"cyan",bold:!0,children:[" ",$.model_id]},void 0,!0,void 0,this),J1.jsxDEV(G,{color:"yellow",bold:!0,children:[" ","@",$.switch_command||"default"]},void 0,!0,void 0,this),!Z&&J1.jsxDEV(G,{color:"blue",bold:!0,children:[" ","[FULL]"]},void 0,!0,void 0,this),W&&J1.jsxDEV(G,{color:"red",bold:!0,children:[" ","YOLO"]},void 0,!0,void 0,this),J1.jsxDEV(CZ,{},void 0,!1,void 0,this),_>0&&J1.jsxDEV(G,{color:"magenta",bold:!0,children:[" ","● BG (",_,")"]},void 0,!0,void 0,this),q&&J1.jsxDEV(G,{color:"red",bold:!0,children:[" ","/summary"]},void 0,!0,void 0,this),J1.jsxDEV(G,{color:"green",bold:!0,children:X.length},void 0,!1,void 0,this),J1.jsxDEV(G,{color:"blue",children:F},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K&&J1.jsxDEV(z,{children:J1.jsxDEV(G,{color:"yellow",children:vZ(U)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Y&&J1.jsxDEV(TZ,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},jZ=YX;var c=A(M(),1),XX=()=>{let{activeView:$}=E0();return c.jsxDEV(z,{flexDirection:"column",width:"100%",children:[c.jsxDEV(z,{flexGrow:1,flexDirection:"row",children:[c.jsxDEV(g,{name:"ChatMain",fallback:c.jsxDEV(G,{color:"yellow",children:"Chat view unavailable"},void 0,!1,void 0,this),children:$==="chat"?c.jsxDEV(f6,{},void 0,!1,void 0,this):null},"chat-main-view",!1,void 0,this),c.jsxDEV(g,{name:"PanelView",fallback:c.jsxDEV(G,{color:"yellow",children:"Panel unavailable"},void 0,!1,void 0,this),children:$!=="chat"?c.jsxDEV(C6,{},void 0,!1,void 0,this):null},"panel-view",!1,void 0,this)]},void 0,!0,void 0,this),c.jsxDEV(g,{name:"StatusBar",fallback:null,children:c.jsxDEV(jZ,{},void 0,!1,void 0,this)},"status-bar",!1,void 0,this)]},void 0,!0,void 0,this)},JX=()=>{return c.jsxDEV(g,{name:"Chat",children:c.jsxDEV(l4,{children:c.jsxDEV(XX,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},KX=({children:$})=>{return c.jsxDEV(hZ,{apiUrl:"http://127.0.0.1:8123",defaultAgent:"code",defaultHeaders:{},withCredentials:!1,showHistory:!1,showGraph:!1,onInitError:(Z,Y)=>{console.error(Z,Y),import("./chunk-ns6tjjkq.js").then(({logAgentError:J})=>{J("ChatProvider",Z)}).catch(()=>{})},fetch:n6,autoRestoreLastSession:!0,historyFilter:{metadata:{path:process.cwd()}},children:$},void 0,!1,void 0,this)},QX=()=>{return c.jsxDEV(g,{name:"AppRoot",children:c.jsxDEV(g,{name:"TanStackQueryProvider",children:c.jsxDEV(V6,{children:c.jsxDEV(g,{name:"SettingsProvider",children:c.jsxDEV(gZ,{get_allowed_models:a6,children:c.jsxDEV(KX,{children:c.jsxDEV(g,{name:"ApprovalProvider",children:c.jsxDEV(EZ,{children:c.jsxDEV(g,{name:"InteractionProvider",children:c.jsxDEV(U$,{children:c.jsxDEV(JX,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},"interaction-provider",!1,void 0,this)},void 0,!1,void 0,this)},"approval-provider",!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},"settings-provider",!1,void 0,this)},void 0,!1,void 0,this)},"tanstack-query-provider",!1,void 0,this)},"app-root",!1,void 0,this)},WX=()=>c.jsxDEV(QX,{},void 0,!1,void 0,this),I6=WX;var l1=A(M(),1),_X=({error:$})=>l1.jsxDEV(z,{flexDirection:"column",padding:2,borderStyle:"double",borderColor:"red",children:[l1.jsxDEV(G,{color:"red",bold:!0,children:"✗ Application Crashed"},void 0,!1,void 0,this),l1.jsxDEV(z,{marginTop:1,children:l1.jsxDEV(G,{color:"red",children:$.message},void 0,!1,void 0,this)},void 0,!1,void 0,this),l1.jsxDEV(z,{marginTop:1,children:l1.jsxDEV(G,{color:"gray",children:["Stack: ",$.stack?.split(`
|
|
333
333
|
`).slice(0,3).join(`
|
|
334
|
-
`)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),l1.jsxDEV(z,{marginTop:1,children:l1.jsxDEV(G,{color:"blue",children:"Press Ctrl+C to exit"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);try{k6(l1.jsxDEV(I6,{},void 0,!1,void 0,this),{exitOnCtrlC:!1})}catch($){console.error("Critical rendering error:",$),k6(l1.jsxDEV(
|
|
334
|
+
`)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),l1.jsxDEV(z,{marginTop:1,children:l1.jsxDEV(G,{color:"blue",children:"Press Ctrl+C to exit"},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);try{k6(l1.jsxDEV(I6,{},void 0,!1,void 0,this),{exitOnCtrlC:!1})}catch($){console.error("Critical rendering error:",$),k6(l1.jsxDEV(_X,{error:$},void 0,!1,void 0,this))}process.on("unhandledRejection",($,Z)=>{console.error("Unhandled Rejection at:",Z,"reason:",$)});process.on("uncaughtException",($)=>{console.error("Uncaught Exception:",$)});
|