zen-code 4.8.6 → 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.
Files changed (75) hide show
  1. package/dist/app.js +111 -106
  2. package/dist/{chunk-vyejbw66.js → chunk-13nyfrmm.js} +1 -1
  3. package/dist/chunk-1edvf7b5.js +1 -0
  4. package/dist/chunk-1rmnbdef.js +1 -0
  5. package/dist/{chunk-fbg1z6br.js → chunk-1ttywx0y.js} +1 -1
  6. package/dist/{chunk-aeambwc5.js → chunk-1y82m5kn.js} +4 -4
  7. package/dist/{chunk-8ypsygqy.js → chunk-30sq2w0d.js} +5 -5
  8. package/dist/chunk-32ase1cw.js +2 -0
  9. package/dist/{chunk-scddrzwd.js → chunk-3490ntd8.js} +1 -1
  10. package/dist/{chunk-mhfjwkg9.js → chunk-3pcybja5.js} +1 -1
  11. package/dist/{chunk-q87zdrxp.js → chunk-4nsg4vcd.js} +1 -1
  12. package/dist/{chunk-4fwb6qr1.js → chunk-5rr85f28.js} +1 -1
  13. package/dist/{chunk-5kmnxyd8.js → chunk-5x8nxw0t.js} +1 -1
  14. package/dist/chunk-6rfc36jg.js +1 -0
  15. package/dist/{chunk-fnrbq03p.js → chunk-76h8pe7x.js} +2 -2
  16. package/dist/{chunk-0kqqh5rr.js → chunk-7kdvr78m.js} +2 -2
  17. package/dist/{chunk-hqyfg97v.js → chunk-8g2zdcy0.js} +1 -1
  18. package/dist/chunk-8z38ybz7.js +1 -0
  19. package/dist/{chunk-jsagr88c.js → chunk-98f6hg43.js} +1 -1
  20. package/dist/chunk-9dahn9h7.js +3 -0
  21. package/dist/chunk-9k5d9vf1.js +1 -0
  22. package/dist/{chunk-bzgj8aae.js → chunk-b52b0t16.js} +1 -1
  23. package/dist/chunk-b8dxq9rq.js +1 -0
  24. package/dist/{chunk-tvqxepjm.js → chunk-cggjws6a.js} +1 -1
  25. package/dist/{chunk-czbkc7pc.js → chunk-cjqarwdn.js} +1 -1
  26. package/dist/{chunk-mqbn36h4.js → chunk-cs73xbzz.js} +1 -1
  27. package/dist/{chunk-xemvstcq.js → chunk-cyexd09c.js} +2 -2
  28. package/dist/{chunk-pww7x4hb.js → chunk-ep2es95e.js} +1 -1
  29. package/dist/chunk-f8ewggk1.js +1 -0
  30. package/dist/{chunk-1rnd4taj.js → chunk-g377vrpj.js} +3 -3
  31. package/dist/{chunk-141pasd6.js → chunk-g7pm00z7.js} +2 -2
  32. package/dist/chunk-gcm4jp0d.js +26 -0
  33. package/dist/{chunk-pw18cs39.js → chunk-heasksrr.js} +2 -2
  34. package/dist/chunk-hfve7nf5.js +2 -0
  35. package/dist/{chunk-6hpehtte.js → chunk-j7a40ww9.js} +2 -2
  36. package/dist/chunk-j9aysaeb.js +1 -0
  37. package/dist/{chunk-ph818by4.js → chunk-jbf8ve63.js} +1 -1
  38. package/dist/{chunk-mfjc63aw.js → chunk-jfhc5c0d.js} +1 -1
  39. package/dist/{chunk-jwzkek1t.js → chunk-jxsfzfac.js} +1 -1
  40. package/dist/{chunk-fzn8xq6f.js → chunk-kba8akjs.js} +1 -1
  41. package/dist/{chunk-favbv2tp.js → chunk-m76ya904.js} +1 -1
  42. package/dist/{chunk-c6nzmyns.js → chunk-mjzeawnq.js} +2 -2
  43. package/dist/{chunk-ed6aprzz.js → chunk-mmq834zt.js} +1 -1
  44. package/dist/chunk-ns6tjjkq.js +1 -0
  45. package/dist/{chunk-emv4z7ck.js → chunk-nwy6n6b6.js} +87 -87
  46. package/dist/chunk-qd305hg1.js +1 -0
  47. package/dist/chunk-qez6ejd4.js +1 -0
  48. package/dist/{chunk-p8fbtgk3.js → chunk-r2h3x9zv.js} +1 -1
  49. package/dist/{chunk-8vkm1ts6.js → chunk-rncpxz1b.js} +1 -1
  50. package/dist/chunk-rz3b356n.js +1 -0
  51. package/dist/{chunk-py5g6yc2.js → chunk-trjpzw1n.js} +1 -1
  52. package/dist/{chunk-g1bcpymb.js → chunk-va71tsw3.js} +2 -2
  53. package/dist/{chunk-pyw1vxnf.js → chunk-wn43r152.js} +1 -1
  54. package/dist/{chunk-0f022x9v.js → chunk-xhnvpygg.js} +1 -1
  55. package/dist/{chunk-jn4j9rm3.js → chunk-xkz5z0zn.js} +1 -1
  56. package/dist/chunk-zwxjkwqd.js +26 -0
  57. package/dist/{chunk-cqrb18vt.js → chunk-zz32kgt2.js} +1 -1
  58. package/dist/cli.js +1 -1
  59. package/dist/nonInteractive.js +3 -3
  60. package/dist/zen-keyboard.js +1 -1
  61. package/package.json +3 -3
  62. package/dist/chunk-0a26n1zy.js +0 -26
  63. package/dist/chunk-2e7zh8he.js +0 -1
  64. package/dist/chunk-2y73pxem.js +0 -1
  65. package/dist/chunk-6yeg1jc7.js +0 -1
  66. package/dist/chunk-903s8sk9.js +0 -1
  67. package/dist/chunk-ema4rc9d.js +0 -2
  68. package/dist/chunk-f4tc5awt.js +0 -1
  69. package/dist/chunk-f7d0m4h3.js +0 -1
  70. package/dist/chunk-gar31nyn.js +0 -1
  71. package/dist/chunk-mdkwbajq.js +0 -2
  72. package/dist/chunk-p1bn8p65.js +0 -1
  73. package/dist/chunk-s6gzrjxk.js +0 -25
  74. package/dist/chunk-spvbvpx5.js +0 -1
  75. package/dist/chunk-t15ptqbm.js +0 -1
package/dist/app.js CHANGED
@@ -1,10 +1,10 @@
1
- import{d as m,e as UY}from"./chunk-8ypsygqy.js";import{g as KZ,h as DZ,i as v1,k as I1,l as VZ,m as a1}from"./chunk-mdkwbajq.js";import{n as uZ,o as i,p as n,q as K1,r as K4,s as $1,t as NY}from"./chunk-c6nzmyns.js";import"./chunk-pw18cs39.js";import{A as i4,B as vZ,C as P1,D as QZ,v as z2,w as U4,x as P$,y as HZ,z as HY}from"./chunk-mqbn36h4.js";import{E as v2,F as k2}from"./chunk-6hpehtte.js";import{G as s0,H as H0,I as K2,K as l4,L as c4,M as M1}from"./chunk-8vkm1ts6.js";import{N as Z1,O as FY}from"./chunk-ema4rc9d.js";import{P as q0,Q as L5,S as b0,T as SZ,V as IZ}from"./chunk-g1bcpymb.js";import"./chunk-jwzkek1t.js";import{ca as t1,da as d1}from"./chunk-02vv5584.js";import{ea as h,fa as U,ga as Q,ha as A0,ia as fZ,ka as _2,la as Z2,ma as x1,na as S1,oa as q,pa as T1,ra as b$,ta as GY,ua as X4}from"./chunk-emv4z7ck.js";import{Ba as V0}from"./chunk-141pasd6.js";import{Ca as F2}from"./chunk-aeambwc5.js";import{Ea as B2,Fa as M2,Ga as A2,Ha as N2}from"./chunk-5kmnxyd8.js";import"./chunk-0a26n1zy.js";import"./chunk-vyejbw66.js";import"./chunk-4fwb6qr1.js";import"./chunk-xemvstcq.js";import"./chunk-p8fbtgk3.js";import"./chunk-fbg1z6br.js";import"./chunk-tvqxepjm.js";import{sb as A,vb as a3,wb as Z$}from"./chunk-fzn8xq6f.js";class a0{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 G$;var UZ=a3(()=>{G$=new a0});var B0=A(q(),1),LY=new q0({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 R0({children:$}){return B0.jsxDEV(b0,{client:LY,children:$},void 0,!1,void 0,this)}var f0={async search($){let Z=Object.entries(KZ).map(([K,W])=>({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(([W,O])=>{return K.metadata&&K.metadata[W]===O})});if($?.sortBy)Z.sort((K,W)=>{let O=K[$.sortBy],_=W[$.sortBy],G=O<_?-1:O>_?1:0;return $.sortOrder==="desc"?-G:G});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(KZ).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(KZ).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()}}},hZ=()=>{let $=()=>{return I1.globalThreadsManager};return{assistants:f0,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=$();for await(let K of a1(X,X.createRun(Z,Y,J),J,{attempt:0,getGraph:v1}))yield K},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,W=null,O=null;try{W=await I1.globalMessageQueue.getQueue(Y);let _=await W.getAll();for(let G of _){if(K.aborted)return;if(yield{id:G.id,event:G.event,data:G.data},G.event==="__stream_end__"||G.event==="__stream_error__"||G.event==="__stream_cancel__")return}O=W.onDataReceive();for await(let G of O){if(K.aborted)break;let{event:N,data:z}=G;if(yield{id:G.id,event:N,data:z},G.event==="__stream_end__"||G.event==="__stream_error__"||G.event==="__stream_cancel__")break}}catch(_){if(!(_ instanceof Error)||!_.message.includes("does not exist"))console.warn("Join stream failed:",_)}finally{if(O)try{await O.return(void 0)}catch(_){}}}}}};import{entrypoint as V8,getPreviousState as j8,getConfig as E8,Command as g8}from"@langchain/langgraph";import{schemaMetaRegistry as m8}from"@langchain/langgraph/zod";import{z as s}from"zod";var M$=($,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,($)=>l$($.def.in)),O1.set(s.ZodOptional.name,($)=>M$($.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(l$(Y));return Z}),O1.set(s.ZodPipe.name,($)=>l$($.def.in)),O1.set(s.ZodUnion.name,($)=>l$($.def.options[0])),O1.set(s.ZodObject.name,($)=>q$($)),O1.set(s.ZodRecord.name,($)=>q$($)),O1.set(s.ZodIntersection.name,($)=>q$($));function l$($){let Z=$.constructor.name;if(!O1.has(Z)){console.warn("getSchemaDefaultForField: Unhandled type",$.constructor.name);return}return O1.get(Z)($)}function q$($){if(M$($,s.ZodRecord))return{};if(M$($,s.ZodPipe))return q$($.def.in);if(M$($,s.ZodIntersection))return{...q$($.def.left),...q$($.def.right)};if(M$($,s.ZodUnion)){for(let Z of $.def.options)if(M$(Z,s.ZodObject))return q$(Z);return console.warn("getSchemaDefaultObject: No object found in union, returning empty object"),{}}return M$($,s.ZodObject)?Object.fromEntries(Object.entries($.shape).map(([Z,Y])=>[Z,l$(Y)]).filter((Z)=>Z[1]!==void 0)):(console.warn(`getSchemaDefaultObject: Expected object schema, got ${$.constructor.name}`),{})}import{tool as x8,HumanMessage as d8}from"langchain";import{z as s1}from"zod";var i8=s1.object({task_store:s1.record(s1.string(),s1.any()).default({})}),o8=s1.object({task_id:s1.string().optional().describe("The task id to ask the subagent, if not provided, will use the tool call id"),subagent_id:s1.string(),task_description:s1.string().describe("Describe the user state and what you want the subagent to do."),data_transfer:s1.any().optional().describe("Data to transfer to the subagent.")});import H from"zod";var y=hZ(),AY=H.object({thread_id:H.string().optional(),thread_ts:H.string().optional()}).catchall(H.unknown()),y$=H.object({tags:H.array(H.string()).optional(),recursion_limit:H.number().int().optional(),configurable:AY.optional()}).catchall(H.unknown()).describe("The configuration of an assistant.");H.object({assistant_id:H.string(),graph_id:H.string(),config:y$,created_at:H.string(),updated_at:H.string(),metadata:H.object({}).catchall(H.any())});var u1=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()),P0=H.object({node:H.string(),input:H.unknown().optional()}),jZ=H.object({update:H.union([H.any(),H.array(H.tuple([H.string(),H.any()]))]).nullable().optional(),resume:H.unknown().optional(),goto:H.union([P0,H.array(P0),H.string(),H.array(H.string())]).optional()});H.object({limit:H.number().int().optional(),offset:H.number().int().optional()});var F1=H.object({thread_id:H.string()}),i$=H.object({thread_id:H.string(),run_id:H.string()}),wY=H.object({graph_id:H.string().optional(),metadata:u1.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()}),MY=H.object({graph_id:H.string().optional(),metadata:u1.optional()}),qY=H.object({xray:H.union([H.string(),H.boolean(),H.number()]).optional()}),C0=H.object({name:H.string().optional(),description:H.string().optional(),metadata:u1.optional(),config:y$.optional()}).optional(),bY=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:u1.optional(),config:y$.optional(),if_exists:H.enum(["raise","do_nothing"]).optional()}),RY=H.object({assistant_id:H.union([H.string(),H.string()]),checkpoint_id:H.string().optional(),input:H.any().optional(),command:jZ.optional(),metadata:u1.optional(),config:y$.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."),BY=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()}),fY=H.object({wait:H.coerce.boolean().optional().default(!1),action:H.enum(["interrupt","rollback"]).optional().default("interrupt")}),PY=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()}),CY=H.object({thread_id:H.string().describe("The ID of thread. If not provided, an ID is generated.").optional(),metadata:u1.optional(),if_exists:H.union([H.literal("raise"),H.literal("do_nothing")]).optional()}).describe("Payload for creating a thread."),S0=H.object({ids:H.array(H.string()).describe("List of thread IDs to include. Others are excluded.").optional(),metadata:u1.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"])).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 SY=H.object({metadata:u1.optional(),status:H.enum(["idle","busy","interrupted","error"]).optional(),values:H.any().optional()}).describe("Payload for patching a thread."),I0=H.object({assistant_id:H.string(),input:H.any().optional(),command:jZ.optional(),metadata:u1.optional(),config:y$.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)."),IY=H.object({cancel_on_disconnect:H.coerce.boolean().optional().default(!1)}),vY=H.object({cancel_on_disconnect:H.coerce.boolean().optional().default(!1)}),WZ=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:jZ.optional(),metadata:u1.optional().describe("Metadata to assign to the run."),config:y$.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."),kY=H.array(WZ).min(1).describe("Payload for creating a batch of stateless runs."),TY=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)}),yY=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,W)=>{if(K.startsWith(":")){let O=K.slice(1);X[O]=J[W]}}),X}function k1($){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 I($,Z){let Y=$.safeParse(Z);if(!Y.success)throw new EZ(Y.error.issues);return Y.data}class EZ extends Error{errors;constructor($){super("Validation failed");this.name="ValidationError",this.errors=$}}function V($,Z=200,Y){return new Response(JSON.stringify($),{status:Z,headers:{"Content-Type":"application/json",...Y}})}function v($,Z=500){if($ instanceof EZ)return V({error:"Validation Error",details:$.errors},400);return V({error:$ instanceof Error?$.message:"Unknown error"},Z)}function gZ($){let Z,Y=!1,J=new AbortController,X=new ReadableStream({async start(K){Z=K;let W=new TextEncoder,O={signal:J.signal,writeSSE:async({data:_,event:G,id:N})=>{if(Y||J.signal.aborted)return;try{let z="";if(N)z+=`id: ${N}
2
- `;if(G)z+=`event: ${G}
3
- `;z+=`data: ${_}
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
+ `;if(O)U+=`event: ${O}
3
+ `;U+=`data: ${_}
4
4
 
5
- `,Z.enqueue(W.encode(z))}catch(z){if(!Y&&!J.signal.aborted)throw z}},close:()=>{if(!Y){Y=!0;try{Z.close()}catch(_){}}}};try{await $(O)}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 pZ($,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},W=()=>{K(),J=setInterval(async()=>{if(Y.signal.aborted||X){K();return}try{await Y.writeSSE({event:"ping",data:"{}"})}catch(G){K()}},Z)},O=()=>{K()};Y.signal.addEventListener("abort",O);let _={signal:Y.signal,writeSSE:async(G)=>{if(Y.signal.aborted)return;if(K(),await Y.writeSSE(G),!Y.signal.aborted)W()},close:()=>{K(),Y.close()}};W();try{await $(_)}finally{X=!0,K(),Y.signal.removeEventListener("abort",O)}}}async function hY($,Z){try{let Y=await $.json(),J=I(wY,Y),X=await y.assistants.search(K1(J));return V(X,200,{"X-Pagination-Total":"0"})}catch(Y){return v(Y)}}async function DY($,Z){try{let Y=await $.json(),J=I(MY,Y),X=await y.assistants.count(K1(J));return V(X)}catch(Y){return v(Y)}}async function VY($,Z){try{let X=new URL($.url).pathname.split("/").filter((W)=>W)[1],K=await y.assistants.get(X);return V(K)}catch(Y){return v(Y)}}async function jY($,Z){try{let X=new URL($.url).pathname.split("/").filter((K)=>K)[1];return await y.assistants.delete(X),V({})}catch(Y){return v(Y)}}async function EY($,Z){try{let X=new URL($.url).pathname.split("/").filter((_)=>_)[1],K=await $.json(),W=I(C0,K),O=await y.assistants.update(X,K1(W));return V(O)}catch(Y){return v(Y)}}async function gY($,Z){try{let X=new URL($.url).pathname.split("/").filter((_)=>_)[1],K=k1($.url),{xray:W}=I(qY,K),O=await y.assistants.getGraph(X,{xray:W!==void 0?W==="true":void 0});return V(O)}catch(Y){return v(Y)}}async function pY($,Z){return v({},501)}async function mY($,Z){return v({},501)}async function cY($,Z){try{let X=new URL($.url).pathname.split("/").filter((W)=>W)[1],K=await y.assistants.getSchemas(X);return V(K)}catch(Y){return v(Y)}}async function uY($,Z){try{let X=new URL($.url).pathname.split("/").filter((_)=>_)[1],K=await $.json(),W=I(C0,K),O=await y.assistants.getVersions(X,K1(W));return V(O)}catch(Y){return v(Y)}}async function xY($,Z){try{let X=new URL($.url).pathname.split("/").filter((_)=>_)[1],K=k1($.url),W=K.version?parseInt(K.version):1,O=await y.assistants.setLatest(X,W);return V(O)}catch(Y){return v(Y)}}async function dY($,Z){try{let Y=await $.json(),J=I(bY,Y),X=await y.assistants.create(K1(J));return V(X)}catch(Y){return v(Y)}}async function lY($,Z){try{let Y=await $.json(),J=I(CY,Y),X=await y.threads.create(K1(J));return V(X)}catch(Y){return v(Y)}}async function iY($,Z){try{let Y=await $.json(),J=I(S0,Y),X=await y.threads.search(K1(J));return V(X,200,{"X-Pagination-Total":X.length.toString()})}catch(Y){return v(Y)}}async function oY($,Z){try{let Y=await $.json(),J=I(S0.partial(),Y),X=await y.threads.count(K1(J));return V(X)}catch(Y){return v(Y)}}async function rY($,Z){try{let Y=e($.url,"/threads/:thread_id"),{thread_id:J}=I(F1,Y),X=await y.threads.get(J);return V(X)}catch(Y){return v(Y)}}async function nY($,Z){try{let Y=e($.url,"/threads/:thread_id"),{thread_id:J}=I(F1,Y),X=await $.json(),K=I(SY,X),W=await y.threads.patch(J,K1(K));return V(W)}catch(Y){return v(Y)}}async function aY($,Z){try{let Y=e($.url,"/threads/:thread_id"),{thread_id:J}=I(F1,Y);return await y.threads.delete(J),new Response(null,{status:204})}catch(Y){return v(Y)}}async function sY($,Z){try{let Y=e($.url,"/threads/:thread_id/state"),{thread_id:J}=I(F1,Y),X=k1($.url),K={subgraphs:X.subgraphs==="true"||X.subgraphs===!0},W=await y.threads.getState(J,K);return V(W)}catch(Y){return v(Y)}}async function tY($,Z){try{let Y=e($.url,"/threads/:thread_id/state"),{thread_id:J}=I(F1,Y),X=await $.json(),K=await y.threads.updateState(J,K1(X));return V(K)}catch(Y){return v(Y)}}async function eY($,Z){try{let Y=e($.url,"/threads/:thread_id/state/checkpoint"),{thread_id:J}=I(F1,Y),X=await $.json(),K=k1($.url),W={subgraphs:K.subgraphs==="true"||K.subgraphs===!0,...X},O=await y.threads.getState(J,W);return V(O)}catch(Y){return v(Y)}}async function $3($,Z){try{let Y=e($.url,"/threads/:thread_id/history"),{thread_id:J}=I(F1,Y),X=k1($.url),K={limit:X.limit?parseInt(X.limit,10):void 0,before:X.before},W=await y.threads.getStateHistory(J,K);return V(W)}catch(Y){return v(Y)}}async function Z3($,Z){try{let Y=e($.url,"/threads/:thread_id/history"),{thread_id:J}=I(F1,Y),X=await $.json(),K={limit:X.limit,before:X.before},W=await y.threads.getStateHistory(J,K);return V(W)}catch(Y){return v(Y)}}async function Y3($,Z){try{let Y=e($.url,"/threads/:thread_id/copy"),{thread_id:J}=I(F1,Y),X=await y.threads.copy(J);return V(X)}catch(Y){return v(Y)}}async function X3($,Z){try{let Y=e($.url,"/threads/:thread_id/stream"),{thread_id:J}=I(F1,Y),X=k1($.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"}
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 v(Y)}}async function J3($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/stream"),{thread_id:J}=I(F1,Y),X=await $.json(),K=I(RY,X);return gZ(pZ(async(W)=>{K.config=K.config||{},K.config.configurable=K.config.configurable||{};let O=Z?.langgraph_context;if(O)Object.assign(K.config.configurable,O);let _=null,G=!1,N=()=>{G=!0};W.signal.addEventListener("abort",N);try{_=y.runs.stream(J,K.assistant_id,K1(K));for await(let{event:z,data:F}of _){if(G||W.signal.aborted)break;await W.writeSSE({data:VZ(F)??"",event:z})}}catch(z){if(!W.signal.aborted&&!G)throw z}finally{if(W.signal.removeEventListener("abort",N),_){try{await _.return(void 0)}catch(z){}_=null}}}))}catch(Y){return v(Y)}}async function K3($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/:run_id/stream"),{thread_id:J,run_id:X}=I(i$,Y),K=k1($.url),{cancel_on_disconnect:W,last_event_id:O,stream_mode:_}=I(PY,K);return gZ(pZ(async(G)=>{let N=new AbortController,z=null,F=!1,L=[],w=()=>{N.abort("Client disconnected")};if($.signal)$.signal.addEventListener("abort",w),L.push({signal:$.signal,handler:w});let M=()=>{F=!0,N.abort("SSE stream closed")};G.signal.addEventListener("abort",M),L.push({signal:G.signal,handler:M});try{z=y.runs.joinStream(J,X,{signal:N.signal,cancelOnDisconnect:W,lastEventId:O,streamMode:_?[_]:void 0});for await(let{event:b,data:f,id:k}of z){if(F||G.signal.aborted||N.signal.aborted)break;await G.writeSSE({data:VZ(f)??"",event:b,id:k})}}catch(b){if(!(N.signal.aborted||G.signal.aborted)&&!(b instanceof Error&&b.message.includes("user cancel")))console.error("Join stream error:",b),await G.writeSSE({event:"error",data:JSON.stringify({error:b instanceof Error?b.message:"Unknown error"})})}finally{for(let{signal:b,handler:f}of L)try{b.removeEventListener("abort",f)}catch(k){}if(z){try{await z.return(void 0)}catch(b){}z=null}}}))}catch(Y){return v(Y)}}async function W3($,Z){try{let Y=e($.url,"/threads/:thread_id/runs"),{thread_id:J}=I(F1,Y),X=k1($.url),{limit:K,offset:W,status:O}=I(BY,X),_=await y.runs.list(J,{limit:K,offset:W,status:O});return V(_)}catch(Y){return v(Y)}}async function Q3($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/:run_id/cancel"),{thread_id:J,run_id:X}=I(i$,Y),K=k1($.url),{wait:W,action:O}=I(fY,K),_=y.runs.cancel(J,X,W,O);if(W)await _;return new Response(null,{status:W?204:202})}catch(Y){return v(Y)}}async function _3($,Z){try{let Y=e($.url,"/threads/:thread_id/runs"),{thread_id:J}=I(F1,Y),X=await $.json(),K=I(I0,X),W=K1(K);W.config=W.config||{},W.config.configurable=W.config.configurable||{};let O=Z?.langgraph_context;if(O)Object.assign(W.config.configurable,O);W.config.configurable.graph_id=K.assistant_id,W.config.configurable.thread_id=J;let _=y.threads,G=await _.createRun(J,K.assistant_id,W);return(async()=>{let N=!1;try{for await(let z of a1(_,G,W,{attempt:0,getGraph:v1}));}catch(z){console.error("Background run error:",z)}finally{if(!N){N=!0;try{await I1.globalMessageQueue.removeQueue(G.run_id)}catch(z){}}}})(),V(G,200,{"Content-Location":`/threads/${J}/runs/${G.run_id}`})}catch(Y){return v(Y)}}async function O3($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/wait"),{thread_id:J}=I(F1,Y),X=await $.json(),K=I(I0,X),W=k1($.url),{cancel_on_disconnect:O}=I(IY,W),_=K1(K);_.config=_.config||{},_.config.configurable=_.config.configurable||{};let G=Z?.langgraph_context;if(G)Object.assign(_.config.configurable,G);_.config.configurable.graph_id=K.assistant_id,_.config.configurable.thread_id=J;let N=y.threads,z=await N.createRun(J,K.assistant_id,_),F={};for await(let{event:L,data:w}of a1(N,z,_,{attempt:0,getGraph:v1}))if(L==="end"||L==="writes/value"){if(w&&typeof w==="object")Object.assign(F,w)}return V(F,200,{"Content-Location":`/threads/${J}/runs/${z.run_id}`})}catch(Y){return v(Y)}}async function G3($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/:run_id"),{thread_id:J,run_id:X}=I(i$,Y),W=(await y.runs.list(J,{limit:1000})).find((O)=>O.run_id===X);if(!W)return v(Error("Run not found"),404);return V(W)}catch(Y){return v(Y)}}async function U3($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/:run_id"),{thread_id:J,run_id:X}=I(i$,Y);return await y.threads.updateRun(X,{status:"deleted"}),new Response(null,{status:204})}catch(Y){return v(Y)}}async function z3($,Z){try{let Y=e($.url,"/threads/:thread_id/runs/:run_id/join"),{thread_id:J,run_id:X}=I(i$,Y),K=k1($.url),{cancel_on_disconnect:W}=I(vY,K),_=(await y.runs.list(J,{limit:1000})).find((z)=>z.run_id===X);if(!_)return v(Error("Run not found"),404);if(_.status==="success"||_.status==="error")return V({});let G=new AbortController;if(W){let z=()=>{G.abort("Client disconnected")};$.signal?.addEventListener("abort",z)}let N={};for await(let{event:z,data:F}of y.runs.joinStream(J,X,{signal:G.signal,cancelOnDisconnect:W}))if(z.event==="end"||z.event==="writes/value"){if(F&&typeof F==="object")Object.assign(N,F)}return V(N)}catch(Y){return v(Y)}}async function N3($,Z){try{let Y=await $.json(),J=I(WZ,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 W=y.threads,O=await W.create({metadata:{...X.metadata,temporary:!0}});X.config.configurable.graph_id=J.assistant_id,X.config.configurable.thread_id=O.thread_id,X.temporary=!0;let _=await W.createRun(O.thread_id,J.assistant_id,X);return(async()=>{let G=!1;try{for await(let N of a1(W,_,X,{attempt:0,getGraph:v1}));}catch(N){console.error("Stateless run error:",N)}finally{try{await W.delete(O.thread_id)}catch(N){console.error("Error cleaning up temporary thread:",N)}if(!G){G=!0;try{await I1.globalMessageQueue.removeQueue(_.run_id)}catch(N){}}}})(),V(_,200,{"Content-Location":`/threads/${O.thread_id}/runs/${_.run_id}`})}catch(Y){return v(Y)}}async function H3($,Z){try{let Y=await $.json(),J=I(WZ,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 W=y.threads,O=await W.create({metadata:{...X.metadata,temporary:!0}});X.config.configurable.graph_id=J.assistant_id,X.config.configurable.thread_id=O.thread_id,X.temporary=!0;let _=await W.createRun(O.thread_id,J.assistant_id,X);return gZ(pZ(async(G)=>{try{for await(let N of a1(W,_,X,{attempt:0,getGraph:v1}))await G.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 W.delete(O.thread_id)}catch(N){console.error("Error cleaning up temporary thread:",N)}}}))}catch(Y){return v(Y)}}async function F3($,Z){try{let Y=await $.json(),J=I(WZ,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 W=y.threads,O=await W.create({metadata:{...X.metadata,temporary:!0}});X.config.configurable.graph_id=J.assistant_id,X.config.configurable.thread_id=O.thread_id,X.temporary=!0;let _=await W.createRun(O.thread_id,J.assistant_id,X),G={};try{for await(let{event:N,data:z}of a1(W,_,X,{attempt:0,getGraph:v1}))if(N==="end"||N==="writes/value"){if(z&&typeof z==="object")Object.assign(G,z)}}finally{try{await W.delete(O.thread_id)}catch(N){console.error("Error cleaning up temporary thread:",N)}}return V(G,200,{"Content-Location":`/threads/${O.thread_id}/runs/${_.run_id}`})}catch(Y){return v(Y)}}async function L3($,Z){try{let Y=await $.json(),J=I(kY,Y),X=y.threads,K=[],W=J.map(async(_)=>{try{let G=K1(_);G.config=G.config||{},G.config.configurable=G.config.configurable||{};let N=Z?.langgraph_context;if(N)Object.assign(G.config.configurable,N);let z=await X.create({metadata:{...G.metadata,temporary:!0}});G.config.configurable.graph_id=_.assistant_id,G.config.configurable.thread_id=z.thread_id,G.temporary=!0;let F=await X.createRun(z.thread_id,_.assistant_id,G);return(async()=>{let L=!1;try{for await(let w of a1(X,F,G,{attempt:0,getGraph:v1}));}catch(w){console.error("Batch run error:",w)}finally{try{await X.delete(z.thread_id)}catch(w){console.error("Error cleaning up temporary thread:",w)}if(!L){L=!0;try{await I1.globalMessageQueue.removeQueue(F.run_id)}catch(w){}}}})(),{thread_id:z.thread_id,run_id:F.run_id}}catch(G){return console.error("Batch run creation error:",G),{error:(G instanceof Error?G.message:"Unknown error")||"Unknown error"}}}),O=await Promise.all(W);return K.push(...O),V(K,200)}catch(Y){return v(Y)}}async function A3($,Z){try{let Y=await $.json(),J=I(yY,Y),X=new URL($.url),K=I(TY,{action:X.searchParams.get("action")||"interrupt"}),W=y.threads,O=[];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(G){console.error(`Error cancelling run ${_}:`,G)}else if("thread_id"in J&&J.thread_id){let _=J.thread_id;try{let G=await W.listRuns(_,{limit:1000,offset:0});for(let N of G)try{y.runs.cancel(_,N.run_id,K.wait,K.action),O.push(N.run_id)}catch(z){console.error(`Error cancelling run ${N.run_id}:`,z)}}catch(G){console.error(`Error listing runs for thread ${_}:`,G)}}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 v(Y)}}var w3=[{method:"POST",pattern:/^\/assistants\/search$/,handler:hY},{method:"POST",pattern:/^\/assistants\/count$/,handler:DY},{method:"GET",pattern:/^\/assistants\/[^/]+$/,handler:VY},{method:"DELETE",pattern:/^\/assistants\/[^/]+$/,handler:jY},{method:"PATCH",pattern:/^\/assistants\/[^/]+$/,handler:EY},{method:"GET",pattern:/^\/assistants\/[^/]+\/graph$/,handler:gY},{method:"GET",pattern:/^\/assistants\/[^/]+\/subgraphs$/,handler:pY},{method:"GET",pattern:/^\/assistants\/[^/]+\/subgraphs\/[^/]+$/,handler:mY},{method:"GET",pattern:/^\/assistants\/[^/]+\/schemas$/,handler:cY},{method:"POST",pattern:/^\/assistants\/[^/]+\/versions$/,handler:uY},{method:"POST",pattern:/^\/assistants\/[^/]+\/latest$/,handler:xY},{method:"POST",pattern:/^\/assistants$/,handler:dY},{method:"POST",pattern:/^\/threads$/,handler:lY},{method:"POST",pattern:/^\/threads\/search$/,handler:iY},{method:"POST",pattern:/^\/threads\/count$/,handler:oY},{method:"GET",pattern:/^\/threads\/[^/]+$/,handler:rY},{method:"PATCH",pattern:/^\/threads\/[^/]+$/,handler:nY},{method:"DELETE",pattern:/^\/threads\/[^/]+$/,handler:aY},{method:"GET",pattern:/^\/threads\/[^/]+\/state$/,handler:sY},{method:"POST",pattern:/^\/threads\/[^/]+\/state$/,handler:tY},{method:"POST",pattern:/^\/threads\/[^/]+\/state\/checkpoint$/,handler:eY},{method:"GET",pattern:/^\/threads\/[^/]+\/history$/,handler:$3},{method:"POST",pattern:/^\/threads\/[^/]+\/history$/,handler:Z3},{method:"POST",pattern:/^\/threads\/[^/]+\/copy$/,handler:Y3},{method:"GET",pattern:/^\/threads\/[^/]+\/stream$/,handler:X3},{method:"POST",pattern:/^\/threads\/[^/]+\/runs$/,handler:_3},{method:"POST",pattern:/^\/threads\/[^/]+\/runs\/stream$/,handler:J3},{method:"POST",pattern:/^\/threads\/[^/]+\/runs\/wait$/,handler:O3},{method:"POST",pattern:/^\/threads\/[^/]+\/runs\/[^/]+\/cancel$/,handler:Q3},{method:"GET",pattern:/^\/threads\/[^/]+\/runs$/,handler:W3},{method:"GET",pattern:/^\/threads\/[^/]+\/runs\/[^/]+$/,handler:G3},{method:"DELETE",pattern:/^\/threads\/[^/]+\/runs\/[^/]+$/,handler:U3},{method:"GET",pattern:/^\/threads\/[^/]+\/runs\/[^/]+\/join$/,handler:z3},{method:"GET",pattern:/^\/threads\/[^/]+\/runs\/[^/]+\/stream$/,handler:K3},{method:"POST",pattern:/^\/runs$/,handler:N3},{method:"POST",pattern:/^\/runs\/stream$/,handler:H3},{method:"POST",pattern:/^\/runs\/wait$/,handler:F3},{method:"POST",pattern:/^\/runs\/batch$/,handler:L3},{method:"POST",pattern:/^\/runs\/cancel$/,handler:A3}],M3=($)=>{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 v0($,Z={}){$=M3($);try{await I1.initGlobal();let J=new URL($.url).pathname,X=$.method;for(let K of w3)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),v(Y)}}import{execa as T0}from"execa";import q3 from"extract-zip";import b3 from"fs-extra";import*as o$ from"node:os";import{dirname as y0,join as R3}from"node:path";import{pipeline as B3}from"node:stream/promises";import{fileURLToPath as f3}from"node:url";import{pathExists as k0}from"path-exists";import{temporaryFile as P3}from"tempy";import{xdgCache as C3}from"xdg-basedir";var{mkdir:cZ,createWriteStream:S3,move:I3}=b3,h0=y0(f3(import.meta.url)),v3="microsoft/ripgrep-prebuilt",mZ=process.env.RIPGREP_VERSION||"v15.0.0",k3=()=>{let $=process.env.npm_config_arch||o$.arch(),Z=process.env.platform||o$.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)}},T3=async($,Z)=>{try{let Y=P3(),J=await fetch($);if(!J.ok)throw Error(`HTTP ${J.status}: ${J.statusText}`);await B3(J.body,S3(Y)),await cZ(y0(Z),{recursive:!0}),await I3(Y,Z)}catch(Y){throw console.error(`Failed to download "${$}"`),Y}},y3=async($,Z)=>{try{await cZ(Z,{recursive:!0}),await q3($,{dir:Z})}catch(Y){throw console.error(`Failed to unzip "${$}"`),Y}},h3=async($,Z)=>{try{await cZ(Z,{recursive:!0}),await T0("tar",["xvf",$,"-C",Z])}catch(Y){throw console.error(`Failed to extract "${$}"`),Y}},D3=async($)=>{if($==="android")try{return await T0("pkg",["install","ripgrep","-y"]),!0}catch(Z){return console.info("Could not install ripgrep via pkg. Falling back to download."),!1}return!1},V3=R3(h0,`rg${process.platform==="win32"?".exe":""}`),D0=async($)=>{if(await k0(V3)){console.log("rg cached");return}let Z=process.env.platform||o$.platform();if(Z==="android"){if(await D3(Z))return}let Y=k3(),X=`${process.env.RIPGREP_PREBUILT_BINARIES_MIRROR||`https://v6.gh-proxy.org/https://github.com/${v3}/releases/download`}/${mZ}/ripgrep-${mZ}-${Y}`,K=`${C3}/vscode-ripgrep/ripgrep-${mZ}-${Y}`,W=$??h0;if(!await k0(K))await T3(X,K);else console.info(`File ${K} has been cached`);if(K.endsWith(".tar.gz"))await h3(K,W);else if(K.endsWith(".zip"))await y3(K,W);else throw Error(`Invalid downloadPath ${K}`)};await D0();DZ("code",V0);var j0=($,Z={})=>{return v0(new Request($,Z),{})};import j3 from"openai";import E3 from"@anthropic-ai/sdk";import{GoogleGenerativeAI as g3}from"@google/generative-ai";var p3=async()=>{if(!process.env.ANTHROPIC_API_KEY)return[];let $=[];try{for await(let Z of new E3().beta.models.list())$.push({id:Z.id,name:Z.display_name,provider:"anthropic"})}catch(Z){console.error("Failed to fetch Anthropic models:",Z)}return $},m3=async()=>{if(!process.env.OPENAI_API_KEY)return[];try{return await new j3().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:",$),[]}},c3=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 g3($).getGenerativeModel({model:"gemini-1.5-flash"}),Z}catch(Y){return console.error("Failed to verify Gemini API key:",Y),[]}},E0=async()=>{return(await Promise.all([p3().catch(()=>[]),m3().catch(()=>[]),c3().catch(()=>[])])).flat()};var _Z=A(h(),1);function g0({tools:$,setTools:Z}){let Y=_Z.useRef(!1);_Z.useEffect(()=>{if(!Y.current)Z($),Y.current=!0},[$,Z])}var m0=A(h(),1);function p0($){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 c0({config:$}){return m0.useMemo(()=>{if(!$)return{validation:null,needsSetup:!0,isValid:!1};let Z=p0($);return{validation:Z,needsSetup:Z.needsSetup,isValid:!Z.needsSetup}},[$])}var u0=A(h(),1);function x0({shouldFocus:$}){let Z=x1();u0.useEffect(()=>{if($)Z.focus("global-input")},[$,Z])}var C1=A(h(),1);function d0(){let[$,Z]=C1.useState("chat"),Y=x1(),J=C1.useCallback(()=>{Z("history")},[]),X=C1.useCallback(()=>{Z("knowledge")},[]),K=C1.useCallback(()=>{Z("settings")},[]),W=C1.useCallback(()=>{Z("model-provider")},[]),O=C1.useCallback(()=>{Z("agent")},[]),_=C1.useCallback(()=>{Z("task")},[]),G=C1.useCallback(()=>{Z("mcp")},[]),N=C1.useCallback(()=>{Z("process")},[]),z=C1.useCallback(()=>{Z("chat"),Y.focus("global-input")},[Y]);return{activeView:$,isChatView:$==="chat",switchToHistory:J,switchToKnowledge:X,switchToSettings:K,switchToModelProvider:W,switchToAgent:O,switchToTask:_,switchToMcp:G,switchToProcess:N,closePanel:z}}var OZ=A(h(),1);function u3($){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 l0($){let{sendMessage:Z,createNewChat:Y}=$1(),{extraParams:J}=Z1(),{closePanel:X}=$,K=OZ.useMemo(()=>{return{...J,is_in_task:!0}},[J]);return{handleExecuteTask:OZ.useCallback((O)=>{let G=[{type:"human",content:`${u3(O)}
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(d1).then(()=>{return Z(G,{extraParams:K,metadata:d1})}).then(()=>{t1("任务已发送给 Agent"),X()}).catch((N)=>{console.error("Task execution failed:",N),t1("任务执行失败")})},[Z,Y,K,X])}}var GZ=A(h(),1),r0=A(q(),1),i0=GZ.createContext(void 0),h$=()=>{let $=GZ.useContext(i0);if($===void 0)throw Error("useChatPanel must be used within ChatPanelProvider. Make sure your component is a child of ChatController.");return $},o0=({children:$,value:Z})=>{return r0.jsxDEV(i0.Provider,{value:Z,children:$},void 0,!1,void 0,this)};var B$=A(h(),1);var n0=($)=>{return $.additional_kwargs?.reasoning_content||Array.isArray($.content)&&$.content.find((Z)=>Z.type==="thinking")?.thinking},D$=($)=>{return typeof $.content==="string"?$.content:$.content?.filter((Z)=>{return Z.type==="text"}).map((Z)=>Z.text).join("")};UZ();var xZ=A(h(),1),d=A(q(),1),s3={approve:"green",reject:"red",edit:"yellow",modify:"cyan"},t3=($)=>{return s3[$.toLowerCase()]||"white"},t0=({request:$,allowedDecisions:Z=["approve","edit","reject"],onApprove:Y,onEdit:J,onReject:X,autoFocus:K=!0})=>{let[W,O]=xZ.useState("approve"),{value:_,setTrue:G,setFalse:N}=s0(!1),[z,F]=xZ.useState(""),L=x1(),w=$.messageIndex,M=$.description;S1((S,t)=>{if(_&&t.escape)f()},{isActive:_});let b=()=>{if(!z.trim())return;if(W==="edit")try{let S=JSON.parse(z);J(S)}catch(S){console.error("Invalid JSON:",S);return}else{let S=`User rejected to run this tool, reason: ${z}`;X(S)}N(),F("")},f=()=>{N(),F("")},k=([S])=>{if(S==="approve"){Y(),L.focus("global-input");return}if(O(S),G(),S==="edit")F(JSON.stringify($.toolCall.args,null,2));else F("")},g=Z.map((S)=>({label:S,value:S}));return _?(()=>{let S=t3(W),t=W==="edit";return d.jsxDEV(U,{flexDirection:"column",paddingX:1,marginTop:0,children:[d.jsxDEV(U,{flexDirection:"column",marginBottom:1,children:[d.jsxDEV(Q,{color:S,bold:!0,children:[W.toUpperCase()," MODE - ",$.toolCall.name]},void 0,!0,void 0,this),w!==void 0&&d.jsxDEV(Q,{color:"gray",dimColor:!0,children:["Message Index: ",w]},void 0,!0,void 0,this),M&&d.jsxDEV(Q,{color:"gray",dimColor:!0,children:["Description: ",M]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),t?d.jsxDEV(U,{flexDirection:"column",marginTop:0,children:[d.jsxDEV(Q,{color:"yellow",dimColor:!0,children:"Editing action arguments (JSON format):"},void 0,!1,void 0,this),d.jsxDEV(U,{paddingX:1,children:d.jsxDEV(T1,{value:z,onChange:F,onSubmit:b,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(U,{flexDirection:"column",marginTop:0,children:[d.jsxDEV(Q,{color:"cyan",dimColor:!0,children:"Enter additional message for this action:"},void 0,!1,void 0,this),d.jsxDEV(U,{padding:1,children:d.jsxDEV(T1,{value:z,onChange:F,onSubmit:b,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(U,{marginTop:0,children:d.jsxDEV(Q,{color:"gray",children:[d.jsxDEV(Q,{color:S,bold:!0,children:"↵"},void 0,!1,void 0,this)," ","Submit |",d.jsxDEV(Q,{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(U,{flexDirection:"column",paddingX:1,children:[d.jsxDEV(U,{flexDirection:"column",marginBottom:1,children:[d.jsxDEV(Q,{color:"cyan",bold:!0,children:$.toolCall.name},void 0,!1,void 0,this),w!==void 0&&d.jsxDEV(Q,{color:"gray",dimColor:!0,children:["Message Index: ",w]},void 0,!0,void 0,this),M&&d.jsxDEV(Q,{color:"gray",dimColor:!0,children:["Description: ",M]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),d.jsxDEV(U,{children:d.jsxDEV(b$,{singleSelect:!0,options:g,onSubmit:k,autoFocus:K},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this))()};var zZ=A(h(),1),e0=A(q(),1),dZ={type:"approval",render($,Z){let{content:Y,metadata:J}=$,X=x1(),K=zZ.useCallback(()=>{Z({state:"submitted",result:{status:"approved"}}),X.focus("global-input")},[Z,X]),W=zZ.useCallback((G)=>{Z({state:"edited",result:{status:"edited",editedArgs:G}}),X.focus("global-input")},[Z,X]),O=zZ.useCallback((G)=>{Z({state:"cancelled",result:{status:"rejected",message:G}}),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 e0.jsxDEV(t0,{request:_,allowedDecisions:["approve","edit","reject"],onApprove:K,onEdit:W,onReject:O,autoFocus:!0},$.id,!1,void 0,this)},defaultConfig:{layout:{border:!1,padding:0},interaction:{autoSubmit:!1,allowSkip:!1}}};var lZ=A(h(),1);var e3={title:{maxWidth:60,ellipsis:"…"},description:{maxWidth:80,ellipsis:"…"},optionLabel:{maxWidth:50,ellipsis:"…"},tabLabel:{maxWidth:30,ellipsis:"…"},fullTitle:{maxWidth:80,ellipsis:"…"}},$X=($,Z=20,Y="…")=>{if(!$)return"";if($.length<=Z)return $;return $.substring(0,Z-Y.length)+Y},V$=($,Z)=>{let Y=e3[Z];return $X($,Y.maxWidth,Y.ellipsis)};var e1=A(q(),1),ZX=($)=>{return V$($,"optionLabel")},iZ={type:"selection",render($,Z){let{content:Y,metadata:J,result:X}=$,[K,W]=lZ.useState(X?.selected||[]),[O,_]=lZ.useState(X?.customInput||""),G=Y.options.map((b)=>({label:ZX(b.label),value:b.value})),N=(b,f)=>{Z({result:{selected:b??K,customInput:f??O}})},z=(b)=>{W(b),N(b,void 0)},F=(b)=>{_(b),N(void 0,b)},L=()=>{Z({state:"submitted",result:{selected:K,customInput:O}})},w=J?.title?V$(J.title,"title"):null,M=J?.description?V$(J.description,"description"):null;return e1.jsxDEV(U,{flexDirection:"column",paddingX:1,children:[w&&e1.jsxDEV(U,{marginBottom:1,children:e1.jsxDEV(Q,{color:"cyan",bold:!0,children:w},void 0,!1,void 0,this)},void 0,!1,void 0,this),M&&e1.jsxDEV(U,{marginBottom:1,children:e1.jsxDEV(Q,{dimColor:!0,children:M},void 0,!1,void 0,this)},void 0,!1,void 0,this),e1.jsxDEV(b$,{options:G,singleSelect:Y.singleSelect,values:K,onChange:z,onSubmit:L,autoFocus:!0},void 0,!1,void 0,this),Y.allowCustomInput&&e1.jsxDEV(U,{marginTop:1,flexDirection:"column",children:e1.jsxDEV(T1,{value:O,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 $2=A(h(),1);var l1=A(q(),1),oZ={type:"input",render($,Z){let{content:Y,metadata:J}=$,[X,K]=$2.useState(Y.defaultValue||""),W=()=>{Z({state:"submitted",result:{value:X}})};return l1.jsxDEV(U,{flexDirection:"column",paddingX:1,children:[J?.title&&l1.jsxDEV(U,{marginBottom:1,children:l1.jsxDEV(Q,{color:"cyan",bold:!0,children:J.title},void 0,!1,void 0,this)},void 0,!1,void 0,this),J?.description&&l1.jsxDEV(U,{marginBottom:1,children:l1.jsxDEV(Q,{dimColor:!0,children:J.description},void 0,!1,void 0,this)},void 0,!1,void 0,this),l1.jsxDEV(U,{children:[l1.jsxDEV(T1,{value:X,onChange:K,onSubmit:W,placeholder:Y.placeholder,autoFocus:!0},void 0,!1,void 0,this),")"]},void 0,!0,void 0,this),Y.maxLength&&l1.jsxDEV(U,{marginTop:1,children:l1.jsxDEV(Q,{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 R$=A(q(),1),rZ={type:"confirm",render($,Z){let{content:Y,metadata:J}=$,X=()=>{Z({state:"submitted",result:{confirmed:!0}})},K=()=>{Z({state:"cancelled",result:{confirmed:!1}})},W=[{label:Y.confirmLabel||"Confirm",value:"confirm"},{label:Y.cancelLabel||"Cancel",value:"cancel"}],O=([_])=>{if(_==="confirm")X();else K()};return R$.jsxDEV(U,{flexDirection:"column",paddingX:1,children:[J?.title&&R$.jsxDEV(U,{marginBottom:1,children:R$.jsxDEV(Q,{color:Y.danger?"red":"cyan",bold:!0,children:J.title},void 0,!1,void 0,this)},void 0,!1,void 0,this),R$.jsxDEV(U,{marginBottom:1,children:R$.jsxDEV(Q,{children:Y.message},void 0,!1,void 0,this)},void 0,!1,void 0,this),R$.jsxDEV(b$,{options:W,singleSelect:!0,onSubmit:O,autoFocus:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},defaultConfig:{layout:{border:!1,padding:1},interaction:{autoSubmit:!1}}};var YX=A(h(),1);var XX=A(q(),1);var i1=A(h(),1);var j$=A(h(),1);var Y1=A(q(),1),Y2=({items:$,defaultIndex:Z=0,onChange:Y,disabled:J=!1,autoFocus:X=!0,variant:K="line"})=>{let{isFocused:W}=Z2({autoFocus:X}),[O,_]=j$.useState(Z),G=j$.default.useMemo(()=>`tabs-${Math.random().toString(36).substring(2,9)}`,[]),N=j$.useCallback((L)=>{if(L<0||L>=$.length||$[L].disabled)return;_(L),Y?.(L,$[L])},[$,Y]);S1((L,w)=>{if(J)return;if(w.leftArrow)N(O-1);else if(w.rightArrow)N(O+1)},{isActive:!J});let z=()=>{return $.map((L,w)=>{let M=w===O,b=W&&!J,f;if(K==="line")f=Y1.jsxDEV(U,{marginRight:1,children:[Y1.jsxDEV(Q,{color:L.disabled?"gray":M?b?"green":"cyan":"gray",bold:M&&b,children:L.label},void 0,!1,void 0,this),M&&Y1.jsxDEV(Q,{color:b?"green":"cyan",children:"_"},void 0,!1,void 0,this)]},`${G}-${L.id}`,!0,void 0,this);else if(K==="enclosed"){let k=w===0||M?"┌":"─",g=w===$.length-1||M?"┐":"─",p=w===0||M?"│":" ",o=w===$.length-1||M?"│":" ",S=M?"─":" ",t=M?" ":"",c=L.disabled?"gray":M?b?"green":"cyan":"gray";f=Y1.jsxDEV(U,{children:Y1.jsxDEV(U,{flexDirection:"column",children:[Y1.jsxDEV(U,{children:[Y1.jsxDEV(Q,{color:c,children:k},void 0,!1,void 0,this),Y1.jsxDEV(Q,{color:c,bold:M&&b,children:[t,L.label,t]},void 0,!0,void 0,this),Y1.jsxDEV(Q,{color:c,children:g},void 0,!1,void 0,this)]},void 0,!0,void 0,this),M&&Y1.jsxDEV(U,{children:[Y1.jsxDEV(Q,{color:c,children:p},void 0,!1,void 0,this),Y1.jsxDEV(Q,{color:c,children:S.repeat(L.label.length+2)},void 0,!1,void 0,this),Y1.jsxDEV(Q,{color:c,children:o},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},`${G}-${L.id}`,!1,void 0,this)}else{let k=M?"●":"○";f=Y1.jsxDEV(U,{marginRight:2,children:Y1.jsxDEV(Q,{color:L.disabled?"gray":M?b?"green":"cyan":"gray",bold:M&&b,children:[k," ",L.label]},void 0,!0,void 0,this)},`${G}-${L.id}`,!1,void 0,this)}return f})},F=()=>{let L=$[O];if(!L?.content)return null;return Y1.jsxDEV(U,{marginTop:1,paddingX:2,paddingY:1,flexDirection:"column",children:L.content},void 0,!1,void 0,this)};return Y1.jsxDEV(U,{flexDirection:"column",flexGrow:1,children:[Y1.jsxDEV(U,{children:z()},void 0,!1,void 0,this),$.some((L)=>L.content)&&F()]},void 0,!0,void 0,this)};var X2=A(h(),1);var J2=A(q(),1),nZ=({interaction:$,renderer:Z,onChange:Y})=>{let J=X2.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 J2.jsxDEV(U,{backgroundColor:X,paddingX:J.layout.padding,marginBottom:1,flexDirection:"column",children:Z.render({...$,config:J},Y)},void 0,!1,void 0,this)};UZ();var $$=A(q(),1),JX=($)=>{return V$($,"fullTitle")},aZ=()=>{let $=P1(),[Z,Y]=i1.useState(null),{focusNext:J,focus:X}=x1(),K=i1.useMemo(()=>{return $.getInteractions()},[$.getInteractions()]);i1.useEffect(()=>{if(K.length>0&&!Z)Y(K[0].id)},[K,Z]);let W=i1.useMemo(()=>{return K.map((z)=>{let F={idle:"\uD83D\uDD04",active:"\uD83D\uDD04",submitted:"✅",edited:"⛔",cancelled:"\uD83D\uDEAB"}[z.state]||"",L=JX(z.metadata.title||z.content.type);return{id:z.id,label:`${F} ${L}`,content:null}})},[K]),O=i1.useCallback((z,F)=>{Y(F.id)},[]),_=i1.useCallback((z)=>{if(K.every((M)=>M.state==="submitted"||M.state==="edited"||M.state==="cancelled")){X("global-input");return}let w=(K.findIndex((M)=>M.id===z)+1)%K.length;Y(K[w].id)},[K,X]),G=K2(()=>{J()});M1(G,Z?100:null);let N=()=>{if(!Z)return null;let z=K.find((L)=>L.id===Z);if(!z)return null;let F=G$.get(z.content.type);if(!F)return $$.jsxDEV(U,{paddingX:1,children:$$.jsxDEV(Q,{color:"red",children:["Unknown renderer: ",z.content.type]},void 0,!0,void 0,this)},void 0,!1,void 0,this);return $$.jsxDEV(nZ,{interaction:z,renderer:F,onChange:(L)=>{if($.updateInteraction(z.id,L),L.state==="submitted"||L.state==="edited"||L.state==="cancelled")_(z.id)}},z.id,!1,void 0,this)};if(K.length===0)return null;return $$.jsxDEV(U,{flexDirection:"column",width:"100%",children:[$$.jsxDEV(U,{justifyContent:"space-between",paddingX:1,marginBottom:1,children:$$.jsxDEV(Q,{color:"cyan",bold:!0,children:["Interactions (",K.length,")"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),$$.jsxDEV(U,{paddingX:1,marginBottom:1,children:$$.jsxDEV(Y2,{items:W,defaultIndex:W.findIndex((z)=>z.id===Z),onChange:O,autoFocus:!0,variant:"line"},Z,!1,void 0,this)},void 0,!1,void 0,this),N()]},void 0,!0,void 0,this)};UZ();function W2(){G$.register("approval",dZ),G$.register("selection",iZ),G$.register("input",oZ),G$.register("confirm",rZ)}W2();var E$=A(q(),1);import{z as U$}from"zod";var KX=U$.object({label:U$.string().min(1).max(50).describe("选项显示文本,简洁明了(1-50 字符)")}),WX=U$.object({description:U$.string().min(1).describe("向用户提出的问题,清晰具体,包含必要的上下文"),type:U$.enum(["single_select","multi_select"]).describe("选择类型:single_select(单选)或 multi_select(多选)"),options:U$.array(KX).min(2).max(6).describe("选项列表,至少 2 个,最多 6 个"),allow_custom_input:U$.boolean().default(!0).describe("是否允许用户输入自定义文本,默认 true"),placeholder:U$.string().optional().describe("自定义输入框的占位符文本")}),QX=({tool:$})=>{let{addInteraction:Z,getInteractions:Y,updateInteraction:J}=P1(),[X,K]=B$.useState(null),W=B$.useRef(!1),O=$.getInputRepaired();if(B$.useEffect(()=>{if($.state==="interrupted"&&!X&&!W.current){let G={type:"selection",options:O.options?.map((z,F)=>({label:z.label,value:z.label}))||[],singleSelect:O.type==="single_select",allowCustomInput:O.allow_custom_input??!0,placeholder:O.placeholder},N=Z(G,{tool:$,metadata:{title:O.description||"请选择一个选项",groupKey:"user-input"}});K(N.id)}},[$,X,Z,O]),B$.useEffect(()=>{if(!X||W.current)return;let _=()=>{let z=Y().find((F)=>F.id===X);if(z&&(z.state==="submitted"||z.state==="edited"||z.state==="cancelled")&&!z.resultSent){W.current=!0;let F=z.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 G=setInterval(_,100);return()=>clearInterval(G)},[X,Y,J,$]),$.state==="interrupted"&&!$.output)return E$.jsxDEV(U,{flexDirection:"column",children:E$.jsxDEV(U,{paddingX:1,children:E$.jsxDEV(Q,{color:"yellow",children:"⏳ 等待用户选择..."},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this);if($.output)return E$.jsxDEV(Q,{color:"yellow",children:$.output},void 0,!1,void 0,this);return null},Q2=i({name:"ask_user_questions",description:"Ask the user a question with selectable options",parameters:WX,handler:n.waitForUIDone,render($){return E$.jsxDEV(QX,{tool:$},void 0,!1,void 0,this)}});var f$=A(h(),1);var r$=A(q(),1),g$=({content:$,maxLines:Z=10,borderColor:Y="cyan",borderStyle:J="single",marginTop:X=0,paddingX:K=0,showOmittedInfo:W=!0})=>{let{stdout:O}=_2();if(!$)return null;let _=O.columns,G=$.split(`
40
- `).map((F)=>F.slice(0,_-10)),N=Math.max(0,G.length-Z),z=G.slice(-Z).join(`
41
- `);return r$.jsxDEV(U,{flexDirection:"column",width:_-5,children:r$.jsxDEV(U,{borderStyle:J,borderColor:Y,borderLeft:!1,borderRight:!1,flexDirection:"column",paddingX:K,marginTop:X,children:[W&&N>0&&r$.jsxDEV(Q,{color:"gray",dimColor:!0,children:["... ",N," lines omitted ..."]},void 0,!0,void 0,this),r$.jsxDEV(Q,{dimColor:!0,children:z},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)};var L1=A(q(),1),_X=({tool:$})=>{let{addInteraction:Z,getInteractions:Y,updateInteraction:J}=P1(),[X,K]=f$.useState(null),W=f$.useRef(!1),O=$.getHumanInTheLoopData();if(f$.useEffect(()=>{if(O?.reviewConfig&&$.state==="interrupted"&&!X&&!W.current){let G=$.getInputRepaired()?.description,N={type:"approval",toolCall:{name:$.message.name,args:$.getInputRepaired()},editableFields:["args"]},z=Z(N,{tool:$,metadata:{title:`Approve ${$.message.name}`,description:G,groupKey:"approvals"}});K(z.id)}},[O,$,X,Z]),f$.useEffect(()=>{if(!X||W.current)return;let G=()=>{let F=Y().find((L)=>L.id===X);if(F&&(F.state==="submitted"||F.state==="edited"||F.state==="cancelled")&&!F.resultSent){W.current=!0;let L=F.result;if(L){if(L.status==="approved")$.sendResumeData({type:"approve"});else if(L.status==="edited"){let w={name:$.message.name,args:L.editedArgs};$.sendResumeData({type:"edit",edited_action:w})}else if(L.status==="rejected"){let w=L.message||"User rejected to run this tool";$.sendResumeData({type:"reject",message:w})}}J(X,{resultSent:!0})}};G();let N=setInterval(G,100);return()=>clearInterval(N)},[X,Y,J,$]),O?.reviewConfig&&X&&!$.output)return L1.jsxDEV(U,{flexDirection:"column",children:L1.jsxDEV(U,{paddingX:1,paddingY:1,children:L1.jsxDEV(Q,{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 L1.jsxDEV(U,{flexDirection:"column",children:(()=>{if(!$.output)return null;return L1.jsxDEV(g$,{content:$.output,maxLines:5,borderColor:"cyan"},void 0,!1,void 0,this)})()},void 0,!1,void 0,this)},OX=({tool:$})=>{let Y=$.getInputRepaired()?.command||"",J=Y.length>50?Y.substring(0,50)+"...":Y;return L1.jsxDEV(U,{paddingX:1,children:[L1.jsxDEV(Q,{color:"magenta",children:"Run "},void 0,!1,void 0,this),L1.jsxDEV(Q,{dimColor:!0,children:"("},void 0,!1,void 0,this),L1.jsxDEV(Q,{color:"magenta",children:J},void 0,!1,void 0,this),L1.jsxDEV(Q,{dimColor:!0,children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},O2=i({name:"terminal",description:"",parameters:{},handler:n.waitForUIDone,render($){return L1.jsxDEV(U,{flexDirection:"column",children:[L1.jsxDEV(OX,{tool:$},void 0,!1,void 0,this),L1.jsxDEV(_X,{tool:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}});import{diff_match_patch as GX}from"diff-match-patch";function UX($,Z,Y){if($===Z)return[{type:"unchanged",content:$,lineNumbers:{old:1,new:1}}];let J=new GX,X=J.diff_main($,Z);J.diff_cleanupSemantic(X);let K=[],W=1,O=1,_=[];for(let[b,f]of X){if(f==="")continue;let k=f.split(`
42
- `),g=f.endsWith(`
43
- `);for(let p=0;p<k.length;p++){let o=k[p];if(o===""&&(p<k.length-1||!g))continue;let S={type:b===0?"unchanged":b===-1?"added":"removed",content:o};if(b===0)S.lineNumbers={old:W,new:O},W++,O++;else if(b===-1)S.lineNumbers={new:O},O++;else if(b===1)S.lineNumbers={old:W},W++;_.push(S)}}if(!Y?.maxLines)return _;let G=Y.maxLines,N=Y.contextLines||3,z=_.map((b,f)=>b.type!=="unchanged"?f:-1).filter((b)=>b!==-1);if(z.length===0||_.length<=G)return _;let F=[],L=0,w=[],M=[];for(let b=0;b<z.length;b++)if(M.length===0)M.push(z[b]);else{let f=M[M.length-1];if(z[b]-f<=1)M.push(z[b]);else w.push([...M]),M=[z[b]]}if(M.length>0)w.push(M);for(let b of w){if(L>=G)break;let f=b[0],k=b[b.length-1],g=Math.max(0,f-N),p=Math.min(_.length-1,k+N),o=p-g+1;if(L+o>G&&L>0){F.push({type:"unchanged",content:"..."});break}for(let S=g;S<=p;S++){if(L>=G){if(S<p)F.push({type:"unchanged",content:"..."});break}F.push(_[S]),L++}if(b===w[w.length-1]&&L<_.length){let S=_.length-p-1;if(S>0)F.push({type:"unchanged",content:`... (${S} more lines)`})}}return F}function G2($,Z=1000){return $=$||"",$.length>Z||$.split(`
44
- `).length>50}function U2($,Z,Y){let J=G2($)||G2(Z),K=Y!==void 0&&"maxLines"in Y?Y.maxLines:J?10:20,W=Y?.contextLines??(J?1:3);return UX($,Z,{maxLines:K,contextLines:W})}var p$=A(q(),1),zX=["sky","primary"];function NX($){let Z=$%2;return P$(zX[Z])}function HX($){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 FX=({path:$,color:Z="cyan",line:Y,rainbow:J=!1})=>{let X=z2($)??"",K=Y!==void 0?`:${Y}`:"";if(!J)return p$.jsxDEV(Q,{color:P$(Z),children:[X,K]},void 0,!0,void 0,this);let W=HX(X),O=-1;for(let G=W.length-1;G>=0;G--)if(W[G].type==="segment"){O=G;break}let _=0;return p$.jsxDEV(Q,{children:[W.map((G,N)=>{if(G.type==="separator")return p$.jsxDEV(Q,{dimColor:!0,color:"gray",children:G.value},`sep-${N}`,!1,void 0,this);let z=N===O,F=NX(_);return _++,p$.jsxDEV(Q,{color:F,dimColor:!z,children:G.value},`seg-${N}`,!1,void 0,this)}),K&&p$.jsxDEV(Q,{color:"gray",children:K},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},q1=FX;var X1=A(q(),1),LX=N2.schema,H2=i({name:"edit_file",description:"Performs exact string replacements in files with diff visualization",parameters:LX.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output,J=Z.old_string&&Z.new_string&&Z.old_string!==Z.new_string,X=0,K=0;if(J){let W=U2(Z.old_string,Z.new_string,{maxLines:void 0});for(let O of W){if(O.type==="removed")X++;if(O.type==="added")K++}}return X1.jsxDEV(U,{flexDirection:"column",paddingX:1,children:[X1.jsxDEV(U,{children:[X1.jsxDEV(Q,{color:"yellow",children:"Edit "},void 0,!1,void 0,this),X1.jsxDEV(Q,{dimColor:!0,children:"("},void 0,!1,void 0,this),X1.jsxDEV(q1,{path:Z.file_path,rainbow:!0},void 0,!1,void 0,this),X1.jsxDEV(Q,{dimColor:!0,children:")"},void 0,!1,void 0,this),J&&X1.jsxDEV(X1.Fragment,{children:[X1.jsxDEV(Q,{color:"gray",children:" ("},void 0,!1,void 0,this),X1.jsxDEV(Q,{color:"red",children:["-",X]},void 0,!0,void 0,this),X1.jsxDEV(Q,{color:"gray",children:"/"},void 0,!1,void 0,this),X1.jsxDEV(Q,{color:"green",children:["+",K]},void 0,!0,void 0,this),X1.jsxDEV(Q,{color:"gray",children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Y&&Y.startsWith("Error:")&&X1.jsxDEV(U,{marginTop:0,marginLeft:1,marginBottom:1,children:X1.jsxDEV(Q,{color:"red",children:Y},void 0,!1,void 0,this)},void 0,!1,void 0,this),!Y&&X1.jsxDEV(U,{marginTop:0,children:X1.jsxDEV(Q,{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 y1=A(q(),1),AX={pending:"gray",in_progress:"yellow",completed:"green"},wX={pending:"○",in_progress:"◐",completed:"✓"},L2=i({name:"todo_write",description:"Use this tool to create and manage a structured task list",parameters:F2.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired();if(!Z||!Z.todos||!Array.isArray(Z.todos))return y1.jsxDEV(U,{flexDirection:"column",borderStyle:"round",borderColor:"red",children:y1.jsxDEV(Q,{color:"red",children:"Error: Invalid todo data structure"},void 0,!1,void 0,this)},void 0,!1,void 0,this);let Y=Z.todos;return y1.jsxDEV(U,{flexDirection:"column",paddingY:1,children:y1.jsxDEV(U,{flexDirection:"column",marginTop:0,children:(()=>{if(Y.length===0)return y1.jsxDEV(U,{paddingX:1,children:y1.jsxDEV(Q,{color:"gray",children:"No tasks in todo list"},void 0,!1,void 0,this)},void 0,!1,void 0,this);return y1.jsxDEV(U,{flexDirection:"column",marginTop:0,children:Y.map((X,K)=>y1.jsxDEV(U,{paddingX:1,paddingY:0,children:[y1.jsxDEV(Q,{color:AX[X.status],bold:!0,children:[wX[X.status]," "]},void 0,!0,void 0,this),y1.jsxDEV(Q,{color:X.status==="in_progress"?"white":"gray",children:[K+1,". ",X.content]},void 0,!0,void 0,this)]},X.id,!0,void 0,this))},void 0,!1,void 0,this)})()},void 0,!1,void 0,this)},void 0,!1,void 0,this)}});var h1=A(q(),1),MX=A2.schema,w2=i({name:"read_file",description:"Reads a file from the local filesystem",parameters:MX.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output;if(!Y)return h1.jsxDEV(h1.Fragment,{},void 0,!1,void 0,this);let X=Y.split(`
45
- `).length;return h1.jsxDEV(U,{flexDirection:"column",paddingX:1,children:h1.jsxDEV(U,{children:[h1.jsxDEV(Q,{color:"blue",children:"Read "},void 0,!1,void 0,this),h1.jsxDEV(Q,{dimColor:!0,children:"("},void 0,!1,void 0,this),h1.jsxDEV(q1,{path:Z.file_path,rainbow:!0},void 0,!1,void 0,this),h1.jsxDEV(Q,{dimColor:!0,children:")"},void 0,!1,void 0,this),h1.jsxDEV(Q,{color:"gray",dimColor:!0,children:[" ","(",X," lines)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}});var D1=A(q(),1),qX=M2.schema,q2=i({name:"glob_files",description:"Find files by name patterns",parameters:qX.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output;if(!Y)return D1.jsxDEV(D1.Fragment,{},void 0,!1,void 0,this);let X=Y.split(`
46
- `).filter(Boolean).length;return D1.jsxDEV(U,{flexDirection:"column",paddingX:1,children:D1.jsxDEV(Q,{children:[D1.jsxDEV(Q,{color:"cyan",children:"Glob "},void 0,!1,void 0,this),D1.jsxDEV(Q,{dimColor:!0,children:"("},void 0,!1,void 0,this),D1.jsxDEV(q1,{path:Z.pattern,rainbow:!0},void 0,!1,void 0,this),D1.jsxDEV(Q,{dimColor:!0,children:")"},void 0,!1,void 0,this),D1.jsxDEV(Q,{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)}});var Q1=A(q(),1),b2=i({name:"search_files_rg",description:"Ripgrep - fast text search tool",parameters:{},handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output;if(!Y)return Q1.jsxDEV(Q1.Fragment,{},void 0,!1,void 0,this);let X=Y.split(`
47
- `).filter(Boolean).length,K=Z.pattern,W=Z.path;if(!K){let _=(Z.args||[]).filter((G)=>!G.startsWith("-"));if(_.length>0){if(W=_[_.length-1],_.length>1)K=_[_.length-2]}}return Q1.jsxDEV(U,{flexDirection:"column",paddingX:1,children:Q1.jsxDEV(Q,{children:[Q1.jsxDEV(Q,{color:"magenta",children:"Ripgrep "},void 0,!1,void 0,this),K&&Q1.jsxDEV(Q1.Fragment,{children:[Q1.jsxDEV(Q,{dimColor:!0,children:"("},void 0,!1,void 0,this),Q1.jsxDEV(q1,{path:K,color:"magenta"},void 0,!1,void 0,this),Q1.jsxDEV(Q,{dimColor:!0,children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),W&&W!=="./"&&Q1.jsxDEV(Q1.Fragment,{children:[Q1.jsxDEV(Q,{dimColor:!0,children:" in "},void 0,!1,void 0,this),Q1.jsxDEV(q1,{path:W,rainbow:!0},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Q1.jsxDEV(Q,{color:"gray",dimColor:!0,children:[" ","(",X," matches)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}});import{z as NZ}from"zod";var o1=A(q(),1),bX=NZ.object({description:NZ.string().optional(),file_path:NZ.string(),content:NZ.string()}),R2=i({name:"write_file",description:"Writes a file to the local filesystem",parameters:bX.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output,J=Z.content?.split(`
48
- `)?.length;return o1.jsxDEV(U,{flexDirection:"column",paddingX:1,children:[o1.jsxDEV(U,{children:[o1.jsxDEV(Q,{color:"green",children:"Write "},void 0,!1,void 0,this),o1.jsxDEV(Q,{dimColor:!0,children:"("},void 0,!1,void 0,this),o1.jsxDEV(q1,{path:Z.file_path,rainbow:!0},void 0,!1,void 0,this),o1.jsxDEV(Q,{dimColor:!0,children:")"},void 0,!1,void 0,this),o1.jsxDEV(Q,{dimColor:!0,children:[" (",J," lines)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),Y&&Y.startsWith("Error:")&&o1.jsxDEV(U,{marginTop:0,marginLeft:1,marginBottom:1,children:o1.jsxDEV(Q,{color:"red",children:Y},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}});var G1=A(q(),1),RX=B2.schema,f2=i({name:"folder_operations",description:"Unified folder operations tool supporting create, list, delete, and existence check",parameters:RX.shape,render($){let Z=$.getInputRepaired(),Y=$.output;if(!Y)return G1.jsxDEV(G1.Fragment,{},void 0,!1,void 0,this);let X={create:"green",list:"blue",exists:"yellow",delete:"red"}[Z?.operation]||"cyan",W=Y.split(`
49
- `).map((O,_)=>{if(O.match(/\d+ \w+|[\d-]+ [\d:]+/))return G1.jsxDEV(Q,{dimColor:!0,children:O},_,!1,void 0,this);if(O.includes("✓")||O.includes("successfully")||O.includes("created")||O.includes("deleted"))return G1.jsxDEV(Q,{color:"green",children:O},_,!1,void 0,this);if(O.includes("✗")||O.includes("Error")||O.includes("not found")||O.includes("failed"))return G1.jsxDEV(Q,{color:"red",children:O},_,!1,void 0,this);if(O.startsWith("/")||O.includes("/:"))return G1.jsxDEV(Q,{color:"cyan",children:O},_,!1,void 0,this);return G1.jsxDEV(Q,{children:O},_,!1,void 0,this)});return G1.jsxDEV(U,{flexDirection:"column",paddingX:1,children:G1.jsxDEV(U,{children:[G1.jsxDEV(Q,{bold:!0,color:X,children:[Z.operation,"Folder"]},void 0,!0,void 0,this),G1.jsxDEV(Q,{dimColor:!0,children:" ("},void 0,!1,void 0,this),G1.jsxDEV(q1,{path:Z.folder_path,rainbow:!0},void 0,!1,void 0,this),G1.jsxDEV(Q,{dimColor:!0,children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}});import{z as BX}from"zod";var W1=A(q(),1),fX=BX.object({}),P2=i({name:"load_mcp_tools",description:`加载并查询所有可用的 MCP 工具列表。
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
+ `).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),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
+ `),u=P.endsWith(`
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:fX.shape,handler:n.waitForUIDone,render($){let Z=$.output,Y=null;try{Y=JSON.parse(Z)}catch(J){}return W1.jsxDEV(U,{flexDirection:"column",children:[W1.jsxDEV(U,{children:W1.jsxDEV(Q,{color:"blue",bold:!0,children:"load_mcp_tools"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Y?.status&&W1.jsxDEV(U,{flexDirection:"column",marginTop:1,children:[W1.jsxDEV(Q,{color:"green",children:"✓ MCP 已连接"},void 0,!1,void 0,this),Y.status.servers&&Y.status.servers.length>0&&W1.jsxDEV(U,{marginLeft:2,children:W1.jsxDEV(Q,{color:"gray",children:["服务器: ",Y.status.servers.join(", ")]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Y.status.toolCount!==void 0&&W1.jsxDEV(U,{marginLeft:2,children:W1.jsxDEV(Q,{color:"gray",children:["工具数量: ",Y.status.toolCount]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Y?.tools&&Y.tools.length>0&&W1.jsxDEV(U,{flexDirection:"column",marginTop:1,children:[W1.jsxDEV(Q,{color:"gray",dimColor:!0,children:["可用工具 (",Y.tools.length,"):"]},void 0,!0,void 0,this),Y.tools.slice(0,5).map((J,X)=>W1.jsxDEV(U,{marginLeft:2,children:[W1.jsxDEV(Q,{color:"cyan",children:J.name},void 0,!1,void 0,this),J.description&&W1.jsxDEV(Q,{color:"gray",dimColor:!0,children:[" ","- ",J.description.slice(0,50),J.description.length>50?"...":""]},void 0,!0,void 0,this)]},X,!0,void 0,this)),Y.tools.length>5&&W1.jsxDEV(U,{marginLeft:2,children:W1.jsxDEV(Q,{color:"gray",dimColor:!0,children:["... 还有 ",Y.tools.length-5," 个工具"]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z&&W1.jsxDEV(g$,{content:Z,maxLines:10,borderColor:"gray"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}});import{z as C$}from"zod";var A1=A(q(),1),PX=C$.object({commands:C$.array(C$.object({name:C$.string().describe("MCP 工具名称"),args:C$.record(C$.string(),C$.any()).describe("工具参数,JSON 对象格式")})).describe("要执行的 MCP 工具列表")}),C2=i({name:"execute_mcp_tool",description:`执行一个或多个 MCP 工具。
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,112 +69,112 @@ ${F.selected.join(`
69
69
  重要:
70
70
  - 所有工具独立执行,失败不影响其他工具
71
71
  - 返回结果按命令顺序排列
72
- - 适合批量执行 MCP 相关操作`,parameters:PX.shape,handler:n.waitForUIDone,render($){let Z=$.getInputRepaired(),Y=$.output,J=null;try{J=JSON.parse(Y)}catch(X){}return A1.jsxDEV(U,{flexDirection:"column",children:[A1.jsxDEV(U,{children:A1.jsxDEV(Q,{color:"blue",bold:!0,children:"execute_mcp_tool"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Z?.commands&&Z.commands.length>0&&A1.jsxDEV(U,{flexDirection:"column",marginTop:1,children:[A1.jsxDEV(Q,{color:"gray",dimColor:!0,children:["执行 ",Z.commands.length," 个 MCP 工具:"]},void 0,!0,void 0,this),Z.commands.map((X,K)=>A1.jsxDEV(U,{marginLeft:2,children:[A1.jsxDEV(Q,{color:"yellow",children:[K+1,"."]},void 0,!0,void 0,this),A1.jsxDEV(Q,{color:"cyan",children:X.name},void 0,!1,void 0,this)]},K,!0,void 0,this))]},void 0,!0,void 0,this),J?.results&&A1.jsxDEV(U,{flexDirection:"column",marginTop:1,children:J.results.map((X,K)=>A1.jsxDEV(U,{marginLeft:2,children:X.error?A1.jsxDEV(Q,{color:"red",children:["✗ ",X.tool]},void 0,!0,void 0,this):A1.jsxDEV(Q,{color:"green",children:["✓ ",X.tool]},void 0,!0,void 0,this)},K,!1,void 0,this))},void 0,!1,void 0,this),Y&&A1.jsxDEV(g$,{content:Y,maxLines:10,borderColor:"gray"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}});var r1=A(q(),1);import{z as m$}from"zod";var CX=m$.object({task_id:m$.string().optional().describe("The task id to ask the subagent"),subagent_id:m$.string().describe("The id of subagent to use"),subagent_type:m$.string().describe("The type of subagent to use (general-purpose, statusline-setup, output-style-setup)"),task_description:m$.string().describe("Describe what you want the subagent to do"),data_transfer:m$.any().optional().describe("Data to transfer to the subagent")}),SX=({tool:$})=>{let Z=$.getInputRepaired();return r1.jsxDEV(U,{paddingX:1,flexDirection:"column",children:r1.jsxDEV(U,{children:[r1.jsxDEV(Q,{color:"yellow",children:"Task "},void 0,!1,void 0,this),r1.jsxDEV(Q,{dimColor:!0,children:"("},void 0,!1,void 0,this),r1.jsxDEV(Q,{color:"cyan",children:Z.subagent_id},void 0,!1,void 0,this),r1.jsxDEV(Q,{dimColor:!0,children:")"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},IX=({tool:$})=>{let Z=$.getInputRepaired(),Y=$.output;return r1.jsxDEV(U,{flexDirection:"column",children:r1.jsxDEV(SX,{tool:$},void 0,!1,void 0,this)},void 0,!1,void 0,this)},S2=i({name:"task",description:"Launch a subagent to handle complex tasks autonomously",parameters:CX.shape,handler:n.waitForUIDone,render($){return r1.jsxDEV(IX,{tool:$},void 0,!1,void 0,this)}});var I2=[O2,Q2,H2,L2,w2,q2,b2,R2,f2,P2,C2,S2];var r=A(h(),1);var R=A(q(),1),vX=({validation:$,onComplete:Z})=>{let{config:Y,updateConfig:J}=Z1(),[X,K]=r.useState("welcome"),[W,O]=r.useState(!1),[_,G]=r.useState(null),[N,z]=r.useState(0),[F,L]=r.useState(null),w=r.useRef(!0),M=r.useRef([]),b=r.useRef(N),f=Y?.providers||[];r.useEffect(()=>{M.current=f},[f]),r.useEffect(()=>{b.current=N},[N]);let k=f[N],g=r.useCallback(()=>L(null),[]);M1(g,F?3000:null);let p=r.useCallback(()=>{w.current=!0,G(null),O(!0),L(null)},[]),o=r.useCallback(()=>{let D=M.current,l=b.current,x=D[l];if(!x)return;w.current=!1,G(x),O(!0),L(null)},[]),S=r.useCallback(()=>{O(!1),G(null),L(null)},[]),t=r.useCallback(async(D)=>{let l=M.current,x=w.current,A$=x?[...l,D]:l.map((w$)=>w$.id===D.id?D:w$);if(await J({providers:A$}),L(x?`已添加 Provider: ${D.id}`:`已更新 Provider: ${D.id}`),x){let w$=A$.findIndex((w0)=>w0.id===D.id);z(w$>=0?w$:0)}S()},[J,S]),c=r.useCallback(()=>{if(!k||!k.apiKey){L("请先配置 Provider 的 API Key");return}J({provider_id:k.id,provider_type:k.type}).then(()=>{K("model")})},[k,J]);if(S1((D,l)=>{if(l.return||D===" ")K("provider")},{isActive:X==="welcome"}),S1((D,l)=>{if(W)return;if(l.upArrow)z((x)=>x>0?x-1:f.length-1);else if(l.downArrow)z((x)=>x<f.length-1?x+1:0);else if(D==="n"||D==="N")p();else if((D==="e"||D==="E"||l.return)&&k)o();else if(D==="s"||D==="S")c()},{isActive:X==="provider"}),X==="welcome")return R.jsxDEV(U,{flexDirection:"column",paddingX:2,paddingY:1,width:"100%",children:[R.jsxDEV(U,{marginBottom:1,children:R.jsxDEV(Q,{bold:!0,color:"cyan",children:"欢迎使用 Zen Code"},void 0,!1,void 0,this)},void 0,!1,void 0,this),R.jsxDEV(U,{marginBottom:1,children:R.jsxDEV(Q,{color:"yellow",children:$.reason||"需要进行初始配置"},void 0,!1,void 0,this)},void 0,!1,void 0,this),R.jsxDEV(U,{flexDirection:"column",marginBottom:1,children:[R.jsxDEV(Q,{dimColor:!0,children:"接下来将引导你完成:"},void 0,!1,void 0,this),R.jsxDEV(Q,{dimColor:!0,children:" 1. 配置 Provider(API 服务提供商)"},void 0,!1,void 0,this),R.jsxDEV(Q,{dimColor:!0,children:" 2. 选择 Model(AI 模型)"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV(U,{children:R.jsxDEV(Q,{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 R.jsxDEV(U,{flexDirection:"column",width:"100%",children:[R.jsxDEV(U,{paddingX:2,paddingY:1,children:R.jsxDEV(Q,{bold:!0,color:"cyan",children:"步骤 1/2: Provider 配置"},void 0,!1,void 0,this)},void 0,!1,void 0,this),W?R.jsxDEV(k2,{provider:_||void 0,onCancel:S,onSave:t},void 0,!1,void 0,this):R.jsxDEV(R.Fragment,{children:R.jsxDEV(U,{flexDirection:"column",paddingX:2,gap:1,children:[f.length===0?R.jsxDEV(U,{paddingY:1,children:R.jsxDEV(Q,{color:"yellow",children:"未配置任何 Provider,请按 'n' 新增"},void 0,!1,void 0,this)},void 0,!1,void 0,this):f.map((D,l)=>{let x=!!D.apiKey,A$=x?"green":"yellow";return R.jsxDEV(U,{marginBottom:0,gap:1,children:[R.jsxDEV(Q,{color:l===N?"cyan":"gray",bold:l===N,children:l===N?">":" "},void 0,!1,void 0,this),R.jsxDEV(Q,{bold:l===N,color:l===N?"cyan":void 0,children:D.id},void 0,!1,void 0,this),R.jsxDEV(Q,{color:"gray",dimColor:l!==N,children:[" ",D.type]},void 0,!0,void 0,this),R.jsxDEV(Q,{color:A$,dimColor:l!==N,children:[" ","[",x?"已配置":"未配置","]"]},void 0,!0,void 0,this)]},D.id,!0,void 0,this)}),R.jsxDEV(U,{marginTop:1,children:[R.jsxDEV(Q,{color:"gray",dimColor:!0,children:[R.jsxDEV(Q,{color:"cyan",children:"↑↓"},void 0,!1,void 0,this)," 导航 ",R.jsxDEV(Q,{color:"cyan",children:"n"},void 0,!1,void 0,this)," 新增"," ",R.jsxDEV(Q,{color:"cyan",children:"e/Enter"},void 0,!1,void 0,this)," 编辑"," "]},void 0,!0,void 0,this),f.some((D)=>D.apiKey)&&R.jsxDEV(Q,{children:[R.jsxDEV(Q,{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&&R.jsxDEV(U,{paddingX:2,paddingY:0,children:R.jsxDEV(Q,{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 R.jsxDEV(kX,{onComplete:Z,onBack:()=>K("provider")},void 0,!1,void 0,this);return null},kX=({onComplete:$,onBack:Z})=>{let{config:Y,updateConfig:J}=Z1(),[X,K]=r.useState(0),W=r.useMemo(()=>{return Y?.providers.find((z)=>z.id===Y.provider_id)||null},[Y?.providers,Y?.provider_id]),{data:O=[],isLoading:_,error:G}=v2({provider:W,enabled:!!W?.apiKey}),N=O[X];if(S1((z,F)=>{if(F.upArrow)K((L)=>L>0?L-1:O.length-1);else if(F.downArrow)K((L)=>L<O.length-1?L+1:0);else if(F.escape||z==="b"||z==="B")Z();else if((F.return||z===" ")&&N)J({model_id:N.id}).then(()=>{$()})},{isActive:!_&&!G&&Y!==null}),_)return R.jsxDEV(U,{flexDirection:"column",paddingX:2,paddingY:1,children:[R.jsxDEV(Q,{bold:!0,color:"cyan",children:"步骤 2/2: Model 选择"},void 0,!1,void 0,this),R.jsxDEV(U,{marginTop:1,children:R.jsxDEV(Q,{color:"gray",children:"加载模型列表中..."},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);if(G)return R.jsxDEV(U,{flexDirection:"column",paddingX:2,paddingY:1,children:[R.jsxDEV(Q,{bold:!0,color:"cyan",children:"步骤 2/2: Model 选择"},void 0,!1,void 0,this),R.jsxDEV(U,{marginTop:1,children:R.jsxDEV(Q,{color:"red",children:["加载失败: ",G.message]},void 0,!0,void 0,this)},void 0,!1,void 0,this),R.jsxDEV(U,{marginTop:1,children:R.jsxDEV(Q,{color:"gray",dimColor:!0,children:["按 ",R.jsxDEV(Q,{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 R.jsxDEV(U,{flexDirection:"column",width:"100%",children:[R.jsxDEV(U,{paddingX:2,paddingY:1,children:[R.jsxDEV(Q,{bold:!0,color:"cyan",children:"步骤 2/2: Model 选择"},void 0,!1,void 0,this),W&&R.jsxDEV(Q,{dimColor:!0,children:[" ","- ",W.id," (",W.type,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),R.jsxDEV(U,{flexDirection:"column",paddingX:2,gap:0,children:O.map((z,F)=>R.jsxDEV(U,{marginBottom:0,gap:1,children:[R.jsxDEV(Q,{color:F===X?"cyan":"gray",bold:F===X,children:F===X?">":" "},void 0,!1,void 0,this),R.jsxDEV(Q,{bold:F===X,color:F===X?"cyan":void 0,children:z.id},void 0,!1,void 0,this),z.name!==z.id&&R.jsxDEV(Q,{dimColor:F!==X,children:["(",z.name,")"]},void 0,!0,void 0,this)]},z.id,!0,void 0,this))},void 0,!1,void 0,this),R.jsxDEV(U,{marginTop:1,paddingX:2,children:R.jsxDEV(Q,{color:"gray",dimColor:!0,children:[R.jsxDEV(Q,{color:"cyan",children:"↑↓"},void 0,!1,void 0,this)," 导航 ",R.jsxDEV(Q,{color:"cyan",children:"Enter/Space"},void 0,!1,void 0,this)," 确认"," ",R.jsxDEV(Q,{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)},T2=vX;var c$=A(q(),1),TX=({children:$})=>{let{extraParams:Z,toggleCompactMode:Y,config:J}=Z1(),{setTools:X,loading:K}=$1(),{hasPendingInteractions:W}=P1();g0({tools:I2,setTools:X});let{needsSetup:O,validation:_}=c0({config:J});x0({shouldFocus:!K});let G=d0(),{isChatView:N}=G,{handleExecuteTask:z}=l0({closePanel:G.closePanel});if(S1((L,w)=>{if(w.ctrl&&L==="o"&&N&&!K)Y();else if(w.ctrl&&L==="z"&&globalThis.Bun)import("v8").then((M)=>{M.writeHeapSnapshot("my-application.heapsnapshot")})},{isActive:N}),O&&_)return c$.jsxDEV(m,{name:"SetupWizard",fallback:null,children:c$.jsxDEV(T2,{validation:_,onComplete:G.closePanel},void 0,!1,void 0,this)},void 0,!1,void 0,this);let F={activeView:G.activeView,isChatView:G.isChatView,switchToHistory:G.switchToHistory,switchToKnowledge:G.switchToKnowledge,switchToSettings:G.switchToSettings,switchToModelProvider:G.switchToModelProvider,switchToAgent:G.switchToAgent,switchToTask:G.switchToTask,switchToMcp:G.switchToMcp,switchToProcess:G.switchToProcess,closePanel:G.closePanel,handleExecuteTask:z,hasPendingInteractions:W};return c$.jsxDEV(m,{name:"ChatPanelContext",fallback:null,children:c$.jsxDEV(o0,{value:F,children:$},void 0,!1,void 0,this)},void 0,!1,void 0,this)},y2=({children:$})=>{return c$.jsxDEV(TX,{children:$},void 0,!1,void 0,this)};var o4=A(h(),1);var PZ=A(h(),1);var Y$=A(q(),1),yX=({content:$,messageNumber:Z})=>{let Y=HZ(),J=()=>{if(typeof $==="string")return Y$.jsxDEV(Q,{color:"white",children:$},void 0,!1,void 0,this);if(Array.isArray($))return $.filter((X)=>X.type==="text").map((X,K)=>Y$.jsxDEV(Q,{color:"white",children:X.text},void 0,!1,void 0,this));return Y$.jsxDEV(Q,{color:"white",children:JSON.stringify($)},void 0,!1,void 0,this)};return Y$.jsxDEV(U,{flexDirection:"column",children:[Y$.jsxDEV(U,{children:Y$.jsxDEV(Q,{color:P$("amber"),children:[Z," ",Y]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Y$.jsxDEV(U,{children:Y$.jsxDEV(Q,{color:"gray",children:["└─ ",J()]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},FZ=yX;var B=A(L5(),1);function tZ(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var I$=tZ();function p2($){I$=$}var t$={exec:()=>null};function j($,Z=""){let Y=typeof $=="string"?$:$.source,J={replace:(X,K)=>{let W=typeof K=="string"?K:K.source;return W=W.replace(U1.caret,"$1"),Y=Y.replace(X,W),J},getRegex:()=>new RegExp(Y,Z)};return J}var hX=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),U1={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")},DX=/^(?:[ \t]*(?:\n|$))+/,VX=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,jX=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,e$=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,EX=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,eZ=/(?:[*+-]|\d{1,9}[.)])/,m2=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,c2=j(m2).replace(/bull/g,eZ).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(),gX=j(m2).replace(/bull/g,eZ).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(),$0=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,pX=/^[^\n]+/,Z0=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,mX=j(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Z0).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),cX=j(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,eZ).getRegex(),qZ="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",Y0=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,uX=j("^ {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",Y0).replace("tag",qZ).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),u2=j($0).replace("hr",e$).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",qZ).getRegex(),xX=j(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",u2).getRegex(),X0={blockquote:xX,code:VX,def:mX,fences:jX,heading:EX,hr:e$,html:uX,lheading:c2,list:cX,newline:DX,paragraph:u2,table:t$,text:pX},h2=j("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",e$).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",qZ).getRegex(),dX={...X0,lheading:gX,table:h2,paragraph:j($0).replace("hr",e$).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",h2).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",qZ).getRegex()},lX={...X0,html:j(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Y0).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:t$,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:j($0).replace("hr",e$).replace("heading",` *#{1,6} *[^
73
- ]`).replace("lheading",c2).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},iX=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,oX=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,x2=/^( {2,}|\\)\n(?!\s*$)/,rX=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,bZ=/[\p{P}\p{S}]/u,J0=/[\s\p{P}\p{S}]/u,d2=/[^\s\p{P}\p{S}]/u,nX=j(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,J0).getRegex(),l2=/(?!~)[\p{P}\p{S}]/u,aX=/(?!~)[\s\p{P}\p{S}]/u,sX=/(?:[^\s\p{P}\p{S}]|~)/u,tX=j(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("precode-",hX?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),i2=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,eX=j(i2,"u").replace(/punct/g,bZ).getRegex(),$5=j(i2,"u").replace(/punct/g,l2).getRegex(),o2="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Z5=j(o2,"gu").replace(/notPunctSpace/g,d2).replace(/punctSpace/g,J0).replace(/punct/g,bZ).getRegex(),Y5=j(o2,"gu").replace(/notPunctSpace/g,sX).replace(/punctSpace/g,aX).replace(/punct/g,l2).getRegex(),X5=j("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,d2).replace(/punctSpace/g,J0).replace(/punct/g,bZ).getRegex(),J5=j(/\\(punct)/,"gu").replace(/punct/g,bZ).getRegex(),K5=j(/^<(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(),W5=j(Y0).replace("(?:-->|$)","-->").getRegex(),Q5=j("^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",W5).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),AZ=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,_5=j(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",AZ).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),r2=j(/^!?\[(label)\]\[(ref)\]/).replace("label",AZ).replace("ref",Z0).getRegex(),n2=j(/^!?\[(ref)\](?:\[\])?/).replace("ref",Z0).getRegex(),O5=j("reflink|nolink(?!\\()","g").replace("reflink",r2).replace("nolink",n2).getRegex(),D2=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,K0={_backpedal:t$,anyPunctuation:J5,autolink:K5,blockSkip:tX,br:x2,code:oX,del:t$,emStrongLDelim:eX,emStrongRDelimAst:Z5,emStrongRDelimUnd:X5,escape:iX,link:_5,nolink:n2,punctuation:nX,reflink:r2,reflinkSearch:O5,tag:Q5,text:rX,url:t$},G5={...K0,link:j(/^!?\[(label)\]\((.*?)\)/).replace("label",AZ).getRegex(),reflink:j(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",AZ).getRegex()},sZ={...K0,emStrongRDelimAst:Y5,emStrongLDelim:$5,url:j(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",D2).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:j(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",D2).getRegex()},U5={...sZ,br:j(x2).replace("{2,}","*").getRegex(),text:j(sZ.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},LZ={normal:X0,gfm:dX,pedantic:lX},n$={normal:K0,gfm:sZ,breaks:U5,pedantic:G5},z5={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},V2=($)=>z5[$];function n1($,Z){if(Z){if(U1.escapeTest.test($))return $.replace(U1.escapeReplace,V2)}else if(U1.escapeTestNoEncode.test($))return $.replace(U1.escapeReplaceNoEncode,V2);return $}function j2($){try{$=encodeURI($).replace(U1.percentDecode,"%")}catch{return null}return $}function E2($,Z){let Y=$.replace(U1.findPipe,(K,W,O)=>{let _=!1,G=W;for(;--G>=0&&O[G]==="\\";)_=!_;return _?"|":" |"}),J=Y.split(U1.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(U1.slashPipe,"|");return J}function a$($,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 N5($,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 g2($,Z,Y,J,X){let K=Z.href,W=Z.title||null,O=$[1].replace(X.other.outputLinkReplace,"$1");J.state.inLink=!0;let _={type:$[0].charAt(0)==="!"?"image":"link",raw:Y,href:K,title:W,text:O,tokens:J.inlineTokens(O)};return J.state.inLink=!1,_}function H5($,Z,Y){let J=$.match(Y.other.indentCodeCompensation);if(J===null)return Z;let X=J[1];return Z.split(`
74
- `).map((K)=>{let W=K.match(Y.other.beginningSpace);if(W===null)return K;let[O]=W;return O.length>=X.length?K.slice(X.length):K}).join(`
75
- `)}var wZ=class{options;rules;lexer;constructor($){this.options=$||I$}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:a$(Y,`
76
- `)}}}fences($){let Z=this.rules.block.fences.exec($);if(Z){let Y=Z[0],J=H5(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=a$(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:a$(Z[0],`
77
- `)}}blockquote($){let Z=this.rules.block.blockquote.exec($);if(Z){let Y=a$(Z[0],`
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={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},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
+ `).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
+ `)}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=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
+ `)}}blockquote($){let Z=this.rules.block.blockquote.exec($);if(Z){let Y=Z$(Z[0],`
78
78
  `).split(`
79
- `),J="",X="",K=[];for(;Y.length>0;){let W=!1,O=[],_;for(_=0;_<Y.length;_++)if(this.rules.other.blockquoteStart.test(Y[_]))O.push(Y[_]),W=!0;else if(!W)O.push(Y[_]);else break;Y=Y.slice(_);let G=O.join(`
80
- `),N=G.replace(this.rules.other.blockquoteSetextReplace,`
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(`
80
+ `),N=O.replace(this.rules.other.blockquoteSetextReplace,`
81
81
  $1`).replace(this.rules.other.blockquoteSetextReplace2,"");J=J?`${J}
82
- ${G}`:G,X=X?`${X}
83
- ${N}`:N;let z=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(N,K,!0),this.lexer.state.top=z,Y.length===0)break;let F=K.at(-1);if(F?.type==="code")break;if(F?.type==="blockquote"){let L=F,w=L.raw+`
82
+ ${O}`:O,X=X?`${X}
83
+ ${N}`:N;let U=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(N,K,!0),this.lexer.state.top=U,Y.length===0)break;let F=K.at(-1);if(F?.type==="code")break;if(F?.type==="blockquote"){let L=F,q=L.raw+`
84
84
  `+Y.join(`
85
- `),M=this.blockquote(w);K[K.length-1]=M,J=J.substring(0,J.length-L.raw.length)+M.raw,X=X.substring(0,X.length-L.text.length)+M.text;break}else if(F?.type==="list"){let L=F,w=L.raw+`
85
+ `),w=this.blockquote(q);K[K.length-1]=w,J=J.substring(0,J.length-L.raw.length)+w.raw,X=X.substring(0,X.length-L.text.length)+w.text;break}else if(F?.type==="list"){let L=F,q=L.raw+`
86
86
  `+Y.join(`
87
- `),M=this.list(w);K[K.length-1]=M,J=J.substring(0,J.length-F.raw.length)+M.raw,X=X.substring(0,X.length-L.raw.length)+M.raw,Y=w.substring(K.at(-1).raw.length).split(`
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),W=!1;for(;$;){let _=!1,G="",N="";if(!(Z=K.exec($))||this.rules.block.hr.test($))break;G=Z[0],$=$.substring(G.length);let z=Z[2].split(`
89
- `,1)[0].replace(this.rules.other.listReplaceTabs,(f)=>" ".repeat(3*f.length)),F=$.split(`
90
- `,1)[0],L=!z.trim(),w=0;if(this.options.pedantic?(w=2,N=z.trimStart()):L?w=Z[1].length+1:(w=Z[2].search(this.rules.other.nonSpaceChar),w=w>4?1:w,N=z.slice(w),w+=Z[1].length),L&&this.rules.other.blankLine.test(F)&&(G+=F+`
91
- `,$=$.substring(F.length+1),_=!0),!_){let f=this.rules.other.nextBulletRegex(w),k=this.rules.other.hrRegex(w),g=this.rules.other.fencesBeginRegex(w),p=this.rules.other.headingBeginRegex(w),o=this.rules.other.htmlBeginRegex(w);for(;$;){let S=$.split(`
92
- `,1)[0],t;if(F=S,this.options.pedantic?(F=F.replace(this.rules.other.listReplaceNesting," "),t=F):t=F.replace(this.rules.other.tabCharGlobal," "),g.test(F)||p.test(F)||o.test(F)||f.test(F)||k.test(F))break;if(t.search(this.rules.other.nonSpaceChar)>=w||!F.trim())N+=`
93
- `+t.slice(w);else{if(L||z.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||g.test(z)||p.test(z)||k.test(z))break;N+=`
94
- `+F}!L&&!F.trim()&&(L=!0),G+=S+`
95
- `,$=$.substring(S.length+1),z=t.slice(w)}}X.loose||(W?X.loose=!0:this.rules.other.doubleBlankLine.test(G)&&(W=!0));let M=null,b;this.options.gfm&&(M=this.rules.other.listIsTask.exec(N),M&&(b=M[0]!=="[ ] ",N=N.replace(this.rules.other.listReplaceTask,""))),X.items.push({type:"list_item",raw:G,task:!!M,checked:b,loose:!1,text:N,tokens:[]}),X.raw+=G}let O=X.items.at(-1);if(O)O.raw=O.raw.trimEnd(),O.text=O.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 G=X.items[_].tokens.filter((z)=>z.type==="space"),N=G.length>0&&G.some((z)=>this.rules.other.anyLine.test(z.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=E2(Z[1]),J=Z[2].replace(this.rules.other.tableAlignChars,"").split("|"),X=Z[3]?.trim()?Z[3].replace(this.rules.other.tableRowBlankLine,"").split(`
96
- `):[],K={type:"table",raw:Z[0],header:[],align:[],rows:[]};if(Y.length===J.length){for(let W of J)this.rules.other.tableAlignRight.test(W)?K.align.push("right"):this.rules.other.tableAlignCenter.test(W)?K.align.push("center"):this.rules.other.tableAlignLeft.test(W)?K.align.push("left"):K.align.push(null);for(let W=0;W<Y.length;W++)K.header.push({text:Y[W],tokens:this.lexer.inline(Y[W]),header:!0,align:K.align[W]});for(let W of X)K.rows.push(E2(W,K.header.length).map((O,_)=>({text:O,tokens:this.lexer.inline(O),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=a$(Y.slice(0,-1),"\\");if((Y.length-K.length)%2===0)return}else{let K=N5(Z[2],"()");if(K===-2)return;if(K>-1){let W=(Z[0].indexOf("!")===0?5:4)+Z[1].length+K;Z[2]=Z[2].substring(0,K),Z[0]=Z[0].substring(0,W).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)),g2(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 g2(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,W,O=X,_=0,G=J[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(G.lastIndex=0,Z=Z.slice(-1*$.length+X);(J=G.exec(Z))!=null;){if(K=J[1]||J[2]||J[3]||J[4]||J[5]||J[6],!K)continue;if(W=[...K].length,J[3]||J[4]){O+=W;continue}else if((J[5]||J[6])&&X%3&&!((X+W)%3)){_+=W;continue}if(O-=W,O>0)continue;W=Math.min(W,W+O+_);let N=[...J[0]][0].length,z=$.slice(0,X+J.index+N+W);if(Math.min(X,W)%2){let L=z.slice(1,-1);return{type:"em",raw:z,text:L,tokens:this.lexer.inlineTokens(L)}}let F=z.slice(2,-2);return{type:"strong",raw:z,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}}}},V1=class ${tokens;options;state;tokenizer;inlineQueue;constructor(Z){this.tokens=[],this.tokens.links=Object.create(null),this.options=Z||I$,this.options.tokenizer=this.options.tokenizer||new wZ,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:U1,block:LZ.normal,inline:n$.normal};this.options.pedantic?(Y.block=LZ.pedantic,Y.inline=n$.pedantic):this.options.gfm&&(Y.block=LZ.gfm,this.options.breaks?Y.inline=n$.breaks:Y.inline=n$.gfm),this.tokenizer.rules=Y}static get rules(){return{block:LZ,inline:n$}}static lex(Z,Y){return new $(Y).lex(Z)}static lexInline(Z,Y){return new $(Y).inlineTokens(Z)}lex(Z){Z=Z.replace(U1.carriageReturn,`
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(U1.tabCharGlobal," ").replace(U1.spaceLine,""));Z;){let X;if(this.options.extensions?.block?.some((W)=>(X=W.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 W=Y.at(-1);X.raw.length===1&&W!==void 0?W.raw+=`
99
- `:Y.push(X);continue}if(X=this.tokenizer.code(Z)){Z=Z.substring(X.raw.length);let W=Y.at(-1);W?.type==="paragraph"||W?.type==="text"?(W.raw+=(W.raw.endsWith(`
87
+ `),w=this.list(q);K[K.length-1]=w,J=J.substring(0,J.length-F.raw.length)+w.raw,X=X.substring(0,X.length-L.raw.length)+w.raw,Y=q.substring(K.at(-1).raw.length).split(`
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
+ `,1)[0].replace(this.rules.other.listReplaceTabs,(P)=>" ".repeat(3*P.length)),F=$.split(`
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),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
+ `+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
+ `+F}!L&&!F.trim()&&(L=!0),O+=v+`
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
+ `):[],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=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
+ `),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
+ `: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
  `)?"":`
101
- `)+X.raw,W.text+=`
102
- `+X.text,this.inlineQueue.at(-1).src=W.text):Y.push(X);continue}if(X=this.tokenizer.fences(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.heading(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.hr(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.blockquote(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.list(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.html(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.def(Z)){Z=Z.substring(X.raw.length);let W=Y.at(-1);W?.type==="paragraph"||W?.type==="text"?(W.raw+=(W.raw.endsWith(`
101
+ `)+X.raw,Q.text+=`
102
+ `+X.text,this.inlineQueue.at(-1).src=Q.text):Y.push(X);continue}if(X=this.tokenizer.fences(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.heading(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.hr(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.blockquote(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.list(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.html(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.def(Z)){Z=Z.substring(X.raw.length);let Q=Y.at(-1);Q?.type==="paragraph"||Q?.type==="text"?(Q.raw+=(Q.raw.endsWith(`
103
103
  `)?"":`
104
- `)+X.raw,W.text+=`
105
- `+X.raw,this.inlineQueue.at(-1).src=W.text):this.tokens.links[X.tag]||(this.tokens.links[X.tag]={href:X.href,title:X.title},Y.push(X));continue}if(X=this.tokenizer.table(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.lheading(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}let K=Z;if(this.options.extensions?.startBlock){let W=1/0,O=Z.slice(1),_;this.options.extensions.startBlock.forEach((G)=>{_=G.call({lexer:this},O),typeof _=="number"&&_>=0&&(W=Math.min(W,_))}),W<1/0&&W>=0&&(K=Z.substring(0,W+1))}if(this.state.top&&(X=this.tokenizer.paragraph(K))){let W=Y.at(-1);J&&W?.type==="paragraph"?(W.raw+=(W.raw.endsWith(`
104
+ `)+X.raw,Q.text+=`
105
+ `+X.raw,this.inlineQueue.at(-1).src=Q.text):this.tokens.links[X.tag]||(this.tokens.links[X.tag]={href:X.href,title:X.title},Y.push(X));continue}if(X=this.tokenizer.table(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}if(X=this.tokenizer.lheading(Z)){Z=Z.substring(X.raw.length),Y.push(X);continue}let K=Z;if(this.options.extensions?.startBlock){let Q=1/0,W=Z.slice(1),_;this.options.extensions.startBlock.forEach((O)=>{_=O.call({lexer:this},W),typeof _=="number"&&_>=0&&(Q=Math.min(Q,_))}),Q<1/0&&Q>=0&&(K=Z.substring(0,Q+1))}if(this.state.top&&(X=this.tokenizer.paragraph(K))){let Q=Y.at(-1);J&&Q?.type==="paragraph"?(Q.raw+=(Q.raw.endsWith(`
106
106
  `)?"":`
107
- `)+X.raw,W.text+=`
108
- `+X.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=W.text):Y.push(X),J=K.length!==Z.length,Z=Z.substring(X.raw.length);continue}if(X=this.tokenizer.text(Z)){Z=Z.substring(X.raw.length);let W=Y.at(-1);W?.type==="text"?(W.raw+=(W.raw.endsWith(`
107
+ `)+X.raw,Q.text+=`
108
+ `+X.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=Q.text):Y.push(X),J=K.length!==Z.length,Z=Z.substring(X.raw.length);continue}if(X=this.tokenizer.text(Z)){Z=Z.substring(X.raw.length);let Q=Y.at(-1);Q?.type==="text"?(Q.raw+=(Q.raw.endsWith(`
109
109
  `)?"":`
110
- `)+X.raw,W.text+=`
111
- `+X.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=W.text):Y.push(X);continue}if(Z){let W="Infinite loop on byte: "+Z.charCodeAt(0);if(this.options.silent){console.error(W);break}else throw Error(W)}}return this.state.top=!0,Y}inline(Z,Y=[]){return this.inlineQueue.push({src:Z,tokens:Y}),Y}inlineTokens(Z,Y=[]){let J=Z,X=null;if(this.tokens.links){let _=Object.keys(this.tokens.links);if(_.length>0)for(;(X=this.tokenizer.rules.inline.reflinkSearch.exec(J))!=null;)_.includes(X[0].slice(X[0].lastIndexOf("[")+1,-1))&&(J=J.slice(0,X.index)+"["+"a".repeat(X[0].length-2)+"]"+J.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(X=this.tokenizer.rules.inline.anyPunctuation.exec(J))!=null;)J=J.slice(0,X.index)+"++"+J.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let K;for(;(X=this.tokenizer.rules.inline.blockSkip.exec(J))!=null;)K=X[2]?X[2].length:0,J=J.slice(0,X.index+K)+"["+"a".repeat(X[0].length-K-2)+"]"+J.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);J=this.options.hooks?.emStrongMask?.call({lexer:this},J)??J;let W=!1,O="";for(;Z;){W||(O=""),W=!1;let _;if(this.options.extensions?.inline?.some((N)=>(_=N.call({lexer:this},Z,Y))?(Z=Z.substring(_.raw.length),Y.push(_),!0):!1))continue;if(_=this.tokenizer.escape(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.tag(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.link(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.reflink(Z,this.tokens.links)){Z=Z.substring(_.raw.length);let N=Y.at(-1);_.type==="text"&&N?.type==="text"?(N.raw+=_.raw,N.text+=_.text):Y.push(_);continue}if(_=this.tokenizer.emStrong(Z,J,O)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.codespan(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.br(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.del(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.autolink(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(!this.state.inLink&&(_=this.tokenizer.url(Z))){Z=Z.substring(_.raw.length),Y.push(_);continue}let G=Z;if(this.options.extensions?.startInline){let N=1/0,z=Z.slice(1),F;this.options.extensions.startInline.forEach((L)=>{F=L.call({lexer:this},z),typeof F=="number"&&F>=0&&(N=Math.min(N,F))}),N<1/0&&N>=0&&(G=Z.substring(0,N+1))}if(_=this.tokenizer.inlineText(G)){Z=Z.substring(_.raw.length),_.raw.slice(-1)!=="_"&&(O=_.raw.slice(-1)),W=!0;let N=Y.at(-1);N?.type==="text"?(N.raw+=_.raw,N.text+=_.text):Y.push(_);continue}if(Z){let N="Infinite loop on byte: "+Z.charCodeAt(0);if(this.options.silent){console.error(N);break}else throw Error(N)}}return Y}},MZ=class{options;parser;constructor($){this.options=$||I$}space($){return""}code({text:$,lang:Z,escaped:Y}){let J=(Z||"").match(U1.notSpaceStart)?.[0],X=$.replace(U1.endingNewline,"")+`
112
- `;return J?'<pre><code class="language-'+n1(J)+'">'+(Y?X:n1(X,!0))+`</code></pre>
113
- `:"<pre><code>"+(Y?X:n1(X,!0))+`</code></pre>
110
+ `)+X.raw,Q.text+=`
111
+ `+X.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=Q.text):Y.push(X);continue}if(Z){let Q="Infinite loop on byte: "+Z.charCodeAt(0);if(this.options.silent){console.error(Q);break}else throw Error(Q)}}return this.state.top=!0,Y}inline(Z,Y=[]){return this.inlineQueue.push({src:Z,tokens:Y}),Y}inlineTokens(Z,Y=[]){let J=Z,X=null;if(this.tokens.links){let _=Object.keys(this.tokens.links);if(_.length>0)for(;(X=this.tokenizer.rules.inline.reflinkSearch.exec(J))!=null;)_.includes(X[0].slice(X[0].lastIndexOf("[")+1,-1))&&(J=J.slice(0,X.index)+"["+"a".repeat(X[0].length-2)+"]"+J.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(X=this.tokenizer.rules.inline.anyPunctuation.exec(J))!=null;)J=J.slice(0,X.index)+"++"+J.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let K;for(;(X=this.tokenizer.rules.inline.blockSkip.exec(J))!=null;)K=X[2]?X[2].length:0,J=J.slice(0,X.index+K)+"["+"a".repeat(X[0].length-K-2)+"]"+J.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);J=this.options.hooks?.emStrongMask?.call({lexer:this},J)??J;let Q=!1,W="";for(;Z;){Q||(W=""),Q=!1;let _;if(this.options.extensions?.inline?.some((N)=>(_=N.call({lexer:this},Z,Y))?(Z=Z.substring(_.raw.length),Y.push(_),!0):!1))continue;if(_=this.tokenizer.escape(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.tag(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.link(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.reflink(Z,this.tokens.links)){Z=Z.substring(_.raw.length);let N=Y.at(-1);_.type==="text"&&N?.type==="text"?(N.raw+=_.raw,N.text+=_.text):Y.push(_);continue}if(_=this.tokenizer.emStrong(Z,J,W)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.codespan(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.br(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.del(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(_=this.tokenizer.autolink(Z)){Z=Z.substring(_.raw.length),Y.push(_);continue}if(!this.state.inLink&&(_=this.tokenizer.url(Z))){Z=Z.substring(_.raw.length),Y.push(_);continue}let O=Z;if(this.options.extensions?.startInline){let N=1/0,U=Z.slice(1),F;this.options.extensions.startInline.forEach((L)=>{F=L.call({lexer:this},U),typeof F=="number"&&F>=0&&(N=Math.min(N,F))}),N<1/0&&N>=0&&(O=Z.substring(0,N+1))}if(_=this.tokenizer.inlineText(O)){Z=Z.substring(_.raw.length),_.raw.slice(-1)!=="_"&&(W=_.raw.slice(-1)),Q=!0;let N=Y.at(-1);N?.type==="text"?(N.raw+=_.raw,N.text+=_.text):Y.push(_);continue}if(Z){let N="Infinite loop on byte: "+Z.charCodeAt(0);if(this.options.silent){console.error(N);break}else throw Error(N)}}return Y}},B$=class{options;parser;constructor($){this.options=$||T0}space($){return""}code({text:$,lang:Z,escaped:Y}){let J=(Z||"").match(z1.notSpaceStart)?.[0],X=$.replace(z1.endingNewline,"")+`
112
+ `;return J?'<pre><code class="language-'+e1(J)+'">'+(Y?X:e1(X,!0))+`</code></pre>
113
+ `:"<pre><code>"+(Y?X:e1(X,!0))+`</code></pre>
114
114
  `}blockquote({tokens:$}){return`<blockquote>
115
115
  ${this.parser.parse($)}</blockquote>
116
116
  `}html({text:$}){return $}def($){return""}heading({tokens:$,depth:Z}){return`<h${Z}>${this.parser.parseInline($)}</h${Z}>
117
117
  `}hr($){return`<hr>
118
- `}list($){let{ordered:Z,start:Y}=$,J="";for(let W=0;W<$.items.length;W++){let O=$.items[W];J+=this.listitem(O)}let X=Z?"ol":"ul",K=Z&&Y!==1?' start="'+Y+'"':"";return"<"+X+K+`>
118
+ `}list($){let{ordered:Z,start:Y}=$,J="";for(let Q=0;Q<$.items.length;Q++){let W=$.items[Q];J+=this.listitem(W)}let X=Z?"ol":"ul",K=Z&&Y!==1?' start="'+Y+'"':"";return"<"+X+K+`>
119
119
  `+J+"</"+X+`>
120
- `}listitem($){let Z="";if($.task){let Y=this.checkbox({checked:!!$.checked});$.loose?$.tokens[0]?.type==="paragraph"?($.tokens[0].text=Y+" "+$.tokens[0].text,$.tokens[0].tokens&&$.tokens[0].tokens.length>0&&$.tokens[0].tokens[0].type==="text"&&($.tokens[0].tokens[0].text=Y+" "+n1($.tokens[0].tokens[0].text),$.tokens[0].tokens[0].escaped=!0)):$.tokens.unshift({type:"text",raw:Y+" ",text:Y+" ",escaped:!0}):Z+=Y+" "}return Z+=this.parser.parse($.tokens,!!$.loose),`<li>${Z}</li>
120
+ `}listitem($){let Z="";if($.task){let Y=this.checkbox({checked:!!$.checked});$.loose?$.tokens[0]?.type==="paragraph"?($.tokens[0].text=Y+" "+$.tokens[0].text,$.tokens[0].tokens&&$.tokens[0].tokens.length>0&&$.tokens[0].tokens[0].type==="text"&&($.tokens[0].tokens[0].text=Y+" "+e1($.tokens[0].tokens[0].text),$.tokens[0].tokens[0].escaped=!0)):$.tokens.unshift({type:"text",raw:Y+" ",text:Y+" ",escaped:!0}):Z+=Y+" "}return Z+=this.parser.parse($.tokens,!!$.loose),`<li>${Z}</li>
121
121
  `}checkbox({checked:$}){return"<input "+($?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:$}){return`<p>${this.parser.parseInline($)}</p>
122
- `}table($){let Z="",Y="";for(let X=0;X<$.header.length;X++)Y+=this.tablecell($.header[X]);Z+=this.tablerow({text:Y});let J="";for(let X=0;X<$.rows.length;X++){let K=$.rows[X];Y="";for(let W=0;W<K.length;W++)Y+=this.tablecell(K[W]);J+=this.tablerow({text:Y})}return J&&(J=`<tbody>${J}</tbody>`),`<table>
122
+ `}table($){let Z="",Y="";for(let X=0;X<$.header.length;X++)Y+=this.tablecell($.header[X]);Z+=this.tablerow({text:Y});let J="";for(let X=0;X<$.rows.length;X++){let K=$.rows[X];Y="";for(let Q=0;Q<K.length;Q++)Y+=this.tablecell(K[Q]);J+=this.tablerow({text:Y})}return J&&(J=`<tbody>${J}</tbody>`),`<table>
123
123
  <thead>
124
124
  `+Z+`</thead>
125
125
  `+J+`</table>
126
126
  `}tablerow({text:$}){return`<tr>
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
- `}strong({tokens:$}){return`<strong>${this.parser.parseInline($)}</strong>`}em({tokens:$}){return`<em>${this.parser.parseInline($)}</em>`}codespan({text:$}){return`<code>${n1($,!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=j2($);if(X===null)return J;$=X;let K='<a href="'+$+'"';return Z&&(K+=' title="'+n1(Z)+'"'),K+=">"+J+"</a>",K}image({href:$,title:Z,text:Y,tokens:J}){J&&(Y=this.parser.parseInline(J,this.parser.textRenderer));let X=j2($);if(X===null)return n1(Y);$=X;let K=`<img src="${$}" alt="${Y}"`;return Z&&(K+=` title="${n1(Z)}"`),K+=">",K}text($){return"tokens"in $&&$.tokens?this.parser.parseInline($.tokens):("escaped"in $)&&$.escaped?$.text:n1($.text)}},W0=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""}},j1=class ${options;renderer;textRenderer;constructor(Z){this.options=Z||I$,this.options.renderer=this.options.renderer||new MZ,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new W0}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 O=K,_=this.options.extensions.renderers[O.type].call({parser:this},O);if(_!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(O.type)){J+=_||"";continue}}let W=K;switch(W.type){case"space":{J+=this.renderer.space(W);continue}case"hr":{J+=this.renderer.hr(W);continue}case"heading":{J+=this.renderer.heading(W);continue}case"code":{J+=this.renderer.code(W);continue}case"table":{J+=this.renderer.table(W);continue}case"blockquote":{J+=this.renderer.blockquote(W);continue}case"list":{J+=this.renderer.list(W);continue}case"html":{J+=this.renderer.html(W);continue}case"def":{J+=this.renderer.def(W);continue}case"paragraph":{J+=this.renderer.paragraph(W);continue}case"text":{let O=W,_=this.renderer.text(O);for(;X+1<Z.length&&Z[X+1].type==="text";)O=Z[++X],_+=`
130
- `+this.renderer.text(O);Y?J+=this.renderer.paragraph({type:"paragraph",raw:_,text:_,tokens:[{type:"text",raw:_,text:_,escaped:!0}]}):J+=_;continue}default:{let O='Token with "'+W.type+'" type was not found.';if(this.options.silent)return console.error(O),"";throw Error(O)}}}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 O=this.options.extensions.renderers[K.type].call({parser:this},K);if(O!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(K.type)){J+=O||"";continue}}let W=K;switch(W.type){case"escape":{J+=Y.text(W);break}case"html":{J+=Y.html(W);break}case"link":{J+=Y.link(W);break}case"image":{J+=Y.image(W);break}case"strong":{J+=Y.strong(W);break}case"em":{J+=Y.em(W);break}case"codespan":{J+=Y.codespan(W);break}case"br":{J+=Y.br(W);break}case"del":{J+=Y.del(W);break}case"text":{J+=Y.text(W);break}default:{let O='Token with "'+W.type+'" type was not found.';if(this.options.silent)return console.error(O),"";throw Error(O)}}}return J}},s$=class{options;block;constructor($){this.options=$||I$}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?V1.lex:V1.lexInline}provideParser(){return this.block?j1.parse:j1.parseInline}},F5=class{defaults=tZ();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=j1;Renderer=MZ;TextRenderer=W0;Lexer=V1;Tokenizer=wZ;Hooks=s$;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 W of K)Y=Y.concat(this.walkTokens(W.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 W=X[K].flat(1/0);Y=Y.concat(this.walkTokens(W,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(...W){let O=X.renderer.apply(this,W);return O===!1&&(O=K.apply(this,W)),O}: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 MZ(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 W=K,O=Y.renderer[W],_=X[W];X[W]=(...G)=>{let N=O.apply(X,G);return N===!1&&(N=_.apply(X,G)),N||""}}J.renderer=X}if(Y.tokenizer){let X=this.defaults.tokenizer||new wZ(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 W=K,O=Y.tokenizer[W],_=X[W];X[W]=(...G)=>{let N=O.apply(X,G);return N===!1&&(N=_.apply(X,G)),N}}J.tokenizer=X}if(Y.hooks){let X=this.defaults.hooks||new s$;for(let K in Y.hooks){if(!(K in X))throw Error(`hook '${K}' does not exist`);if(["options","block"].includes(K))continue;let W=K,O=Y.hooks[W],_=X[W];s$.passThroughHooks.has(K)?X[W]=(G)=>{if(this.defaults.async&&s$.passThroughHooksRespectAsync.has(K))return(async()=>{let z=await O.call(X,G);return _.call(X,z)})();let N=O.call(X,G);return _.call(X,N)}:X[W]=(...G)=>{if(this.defaults.async)return(async()=>{let z=await O.apply(X,G);return z===!1&&(z=await _.apply(X,G)),z})();let N=O.apply(X,G);return N===!1&&(N=_.apply(X,G)),N}}J.hooks=X}if(Y.walkTokens){let X=this.defaults.walkTokens,K=Y.walkTokens;J.walkTokens=function(W){let O=[];return O.push(K.call(this,W)),X&&(O=O.concat(X.call(this,W))),O}}this.defaults={...this.defaults,...J}}),this}setOptions($){return this.defaults={...this.defaults,...$},this}lexer($,Z){return V1.lex($,Z??this.defaults)}parser($,Z){return j1.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 W=X.hooks?await X.hooks.preprocess(Z):Z,O=await(X.hooks?await X.hooks.provideLexer():$?V1.lex:V1.lexInline)(W,X),_=X.hooks?await X.hooks.processAllTokens(O):O;X.walkTokens&&await Promise.all(this.walkTokens(_,X.walkTokens));let G=await(X.hooks?await X.hooks.provideParser():$?j1.parse:j1.parseInline)(_,X);return X.hooks?await X.hooks.postprocess(G):G})().catch(K);try{X.hooks&&(Z=X.hooks.preprocess(Z));let W=(X.hooks?X.hooks.provideLexer():$?V1.lex:V1.lexInline)(Z,X);X.hooks&&(W=X.hooks.processAllTokens(W)),X.walkTokens&&this.walkTokens(W,X.walkTokens);let O=(X.hooks?X.hooks.provideParser():$?j1.parse:j1.parseInline)(W,X);return X.hooks&&(O=X.hooks.postprocess(O)),O}catch(W){return K(W)}}}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>"+n1(Y.message+"",!0)+"</pre>";return Z?Promise.resolve(J):J}if(Z)return Promise.reject(Y);throw Y}}},S$=new F5;function E($,Z){return S$.parse($,Z)}E.options=E.setOptions=function($){return S$.setOptions($),E.defaults=S$.defaults,p2(E.defaults),E};E.getDefaults=tZ;E.defaults=I$;E.use=function(...$){return S$.use(...$),E.defaults=S$.defaults,p2(E.defaults),E};E.walkTokens=function($,Z){return S$.walkTokens($,Z)};E.parseInline=S$.parseInline;E.Parser=j1;E.parser=j1.parse;E.Renderer=MZ;E.TextRenderer=W0;E.Lexer=V1;E.lexer=V1.lex;E.Tokenizer=wZ;E.Hooks=s$;E.parse=E;var{options:EK,setOptions:gK,use:pK,walkTokens:mK,parseInline:cK}=E;var uK=j1.parse,xK=V1.lex;var v$=A(h(),1),z1={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}},A5=["color","backgroundColor","dimColor","bold","italic","underline","strikethrough","inverse","wrap"],w5=["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 w1($){if(!$)return{};let Z={};for(let Y of A5)if(Y in $)Z[Y]=$[Y];return Z}function X$($){if(!$)return{};let Z={};for(let Y of w5)if(Y in $)Z[Y]=$[Y];return Z}function N1($,Z){if(!$&&!Z)return{};if(!$)return Z;if(!Z)return $;return{...$,...Z}}function b1($,Z,Y){if(!$||$.length===0)return null;return $.map((J,X)=>{let K=`inline-${X}`;switch(J.type){case"text":case"escape":{let W=J;if("tokens"in W&&W.tokens)return B.jsx(Q,{children:b1(W.tokens,Z,Y)},K);return B.jsx(Q,{children:W.text},K)}case"strong":{let W=J,O=N1(z1.strong,Z.strong);if(Y.strong)return B.jsx(Q,{children:Y.strong(b1(W.tokens,Z,Y),W)},K);return B.jsx(Q,{...w1(O),children:b1(W.tokens,Z,Y)},K)}case"em":{let W=J,O=N1(z1.em,Z.em);if(Y.em)return B.jsx(Q,{children:Y.em(b1(W.tokens,Z,Y),W)},K);return B.jsx(Q,{...w1(O),children:b1(W.tokens,Z,Y)},K)}case"del":{let W=J,O=N1(z1.del,Z.del);if(Y.del)return B.jsx(Q,{children:Y.del(b1(W.tokens,Z,Y),W)},K);return B.jsx(Q,{...w1(O),children:b1(W.tokens,Z,Y)},K)}case"codespan":{let W=J,O=N1(z1.codespan,Z.codespan);if(Y.codespan)return B.jsx(Q,{children:Y.codespan(W.text,W)},K);return B.jsx(Q,{...w1(O),children:W.text},K)}case"link":{let W=J,O=N1(z1.link,Z.link);if(Y.link)return B.jsx(Q,{children:Y.link(W.text,W.href,W.title,W)},K);return B.jsxs(Q,{...w1(O),children:[W.text,W.href&&` (${W.href})`]},K)}case"image":{let W=J,O=N1(z1.image,Z.image);if(Y.image)return B.jsx(Q,{children:Y.image(W.text,W.href,W.title,W)},K);return B.jsxs(Q,{...w1(O),children:["[Image: ",W.text||W.href,"]"]},K)}case"br":return B.jsx(Q,{children:`
132
- `},K);default:if("text"in J)return B.jsx(Q,{children:J.text},K);return null}})}function a2($,Z,Y,J){switch($.type){case"heading":{let X=$,K=`h${X.depth}`,W=`h${X.depth}`,O=Y[K];if(O)return O(X.text,X);let _=N1(z1[W],Z[W]),G=typeof _.showSharp=="boolean"?_.showSharp:Boolean(J);return B.jsx(U,{...X$(_),children:B.jsxs(Q,{...w1(_),children:[G&&`${"#".repeat(X.depth)} `,b1(X.tokens,Z,Y)]})})}case"paragraph":{let X=$,K=N1(z1.paragraph,Z.paragraph),W=b1(X.tokens,Z,Y);if(Y.paragraph)return Y.paragraph(W,X);return B.jsx(U,{...X$(K),children:B.jsx(Q,{...w1(K),children:W})})}case"code":{let X=$,K=N1(z1.code,Z.code);if(Y.code)return Y.code(X.text,X.lang,X);return B.jsx(U,{...X$(K),children:B.jsx(Q,{...w1(K),children:X.text})})}case"blockquote":{let X=$,K=N1(z1.blockquote,Z.blockquote);if(Y.blockquote){let W=X.tokens.map((O,_)=>B.jsx(U,{children:a2(O,Z,Y,J)},`bq-${_}`));return Y.blockquote(W,X)}return B.jsx(U,{...X$(K),children:B.jsx(U,{flexDirection:"column",children:X.tokens.map((W,O)=>B.jsx(Q,{...w1(K),children:W.type==="paragraph"?b1(W.tokens,Z,Y):W.text||""},`bq-text-${O}`))})})}case"list":{let X=$,K=N1(z1.list,Z.list),W=N1(z1.listItem,Z.listItem),O=W.bullet||"●",_=X.items.map((G,N)=>{let z=typeof X.start=="number"?X.start:1,F=X.ordered?`${z+N}. `:`${O} `,L=b1(G.tokens,Z,Y);if(Y.listItem)return B.jsx(U,{...X$(W),children:Y.listItem(L,G)},`li-${N}`);return B.jsx(U,{...X$(W),children:B.jsxs(Q,{...w1(W),children:[F,L]})},`li-${N}`)});if(Y.list)return Y.list(_,X.ordered,X);return B.jsx(U,{flexDirection:"column",...X$(K),children:_})}case"hr":{let X=$,K=N1(z1.hr,Z.hr),W=K.char||"─",O=K.width||40;if(Y.hr)return Y.hr(X);return B.jsx(U,{...X$(K),children:B.jsx(Q,{...w1(K),children:W.repeat(O)})})}case"table":{let X=$,K=N1(z1.table,Z.table),W=N1(z1.tableCell,Z.tableCell),O=(M)=>M.map((b)=>{if("text"in b)return b.text;return""}).join(""),_=X.header.map((M,b)=>{let f=O(M.tokens).length,k=Math.max(...X.rows.map((g)=>{let p=g[b]?.tokens;return p?O(p).length:0}),0);return Math.max(f,k,3)}),G=B.jsxs(Q,{dimColor:!0,children:["┌─",_.map((M)=>"─".repeat(M)).join("─┬─"),"─┐"]}),N=B.jsxs(Q,{children:[B.jsx(Q,{dimColor:!0,children:"│ "}),X.header.map((M,b)=>{let f=b1(M.tokens,Z,Y),k=O(M.tokens);return B.jsxs(Q,{children:[B.jsxs(Q,{bold:!0,...w1(W),children:[f," ".repeat(Math.max(0,(_[b]||3)-k.length))]}),B.jsxs(Q,{dimColor:!0,children:[" ","│",b<X.header.length-1?" ":""]})]},`th-${b}`)})]}),z=B.jsxs(Q,{dimColor:!0,children:["├─",_.map((M)=>"─".repeat(M)).join("─┼─"),"─┤"]}),F=X.rows.map((M,b)=>B.jsxs(Q,{children:[B.jsx(Q,{dimColor:!0,children:"│ "}),M.map((f,k)=>{let g=b1(f.tokens,Z,Y),p=O(f.tokens),o=_[k]||3;return B.jsxs(Q,{children:[B.jsxs(Q,{...w1(W),children:[g," ".repeat(Math.max(0,o-p.length))]}),B.jsxs(Q,{dimColor:!0,children:[" │",k<M.length-1?" ":""]})]},`td-${b}-${k}`)})]},`tr-${b}`)),L=B.jsxs(Q,{dimColor:!0,children:["└─",_.map((M)=>"─".repeat(M)).join("─┴─"),"─┘"]}),w=B.jsxs(B.Fragment,{children:[G,N,z,F,L]});if(Y.table)return Y.table(N,F,X);return B.jsx(U,{flexDirection:"column",...X$(K),children:w})}case"space":return B.jsx(Q,{children:`
133
- `});case"html":return B.jsx(Q,{dimColor:!0,children:$.text});default:if("text"in $)return B.jsx(Q,{children:$.text});return null}}var s2=v$.memo(function({token:$,styles:Z,renderers:Y,showSharp:J}){return B.jsx(B.Fragment,{children:a2($,Z,Y,J)})},($,Z)=>$.token===Z.token);s2.displayName="MemoizedBlock";function M5({children:$,id:Z,styles:Y={},renderers:J={},showSharp:X=!1}){let K=v$.useId(),W=Z||K,O=v$.useMemo(()=>E.lexer($,{silent:!0,gfm:!0}),[$]);return B.jsx(U,{flexDirection:"column",children:O.map((_,G)=>B.jsx(s2,{token:_,styles:Y,renderers:J,showSharp:X},`${W}-block-${G}`))})}var t2=v$.memo(M5);t2.displayName="Markdown";var q5=t2,e2=q5;var $4=A(h(),1);var $Z=A(q(),1),Z4=({children:$,color:Z,dim:Y,bold:J,italic:X})=>{let K=$4.useMemo(()=>{return $.split(`
134
- `).map((W)=>W===""?`
135
- `:W)},[$]);return $Z.jsxDEV($Z.Fragment,{children:K.map((W,O)=>$Z.jsxDEV(Q,{color:Z,dimColor:Y,bold:J,italic:X,children:W},O,!1,void 0,this))},void 0,!1,void 0,this)};var RZ=A(h(),1),Q0=A(q(),1),b5=($,Z,Y=5)=>{if(!Z||!$||$.trim()==="")return $;let J=$.split(`
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}},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
+ `).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),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
- `)}`},R5=({children:$,simple:Z,loading:Y,maxRows:J=5})=>{let X=RZ.useMemo(()=>{return b5($,Y,J)},[$,Y,J]);if(Z)return Q0.jsxDEV(Z4,{children:X},void 0,!1,void 0,this);return Q0.jsxDEV(e2,{children:X},void 0,!1,void 0,this)},Y4=RZ.memo(R5);var R1=A(q(),1),B5=({message:$,messageNumber:Z,loading:Y})=>{let X=n0($),K=D$($);if(!K)return R1.jsxDEV(R1.Fragment,{},void 0,!1,void 0,this);return R1.jsxDEV(U,{flexDirection:"column",children:[R1.jsxDEV(U,{paddingBottom:0,marginBottom:1,children:R1.jsxDEV(Q,{color:P$("teal"),children:[Z," ","Zen Code"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),X&&R1.jsxDEV(f5,{thinking:X,visible:K.trim().length===0},void 0,!1,void 0,this),R1.jsxDEV(Y4,{simple:!1,loading:Y,children:K},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},f5=({thinking:$,visible:Z})=>{let Y=$.split(`
139
- `);return R1.jsxDEV(U,{flexDirection:"column",marginBottom:1,children:[R1.jsxDEV(U,{paddingBottom:0,children:R1.jsxDEV(Q,{color:"gray",bold:!0,children:["Think ",Y.length," rows"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),Z&&R1.jsxDEV(X4,{content:$,maxLines:3},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},BZ=B5;var C=A(q(),1),J4=["yellow","magenta","blue"],P5=($)=>{let Z=0;for(let J=0;J<$.length;J++)Z=$.charCodeAt(J)+((Z<<5)-Z);let Y=Math.abs(Z%J4.length);return J4[Y]},C5=($)=>{return{success:"✓",completed:"✓",ok:"✓",error:"✗",failed:"✗",pending:"⏳",in_progress:"⏳",running:"⏳",cancelled:"⏹"}[$]||"⏳"},S5=($,Z=4,Y=100)=>{let J=$.split(`
140
- `),X=(O)=>{if(O.length<=Y)return O;return O.substring(0,Y)+`... (${O.length-Y} more chars)`};if(J.length<=Z)return J.map(X).join(`
141
- `);let K=J.slice(0,2).map(X),W=J.slice(J.length-3).map(X);return[...K,`... and more ${J.length-5} lines`,...W].join(`
142
- `)},I5=({content:$})=>{let Z=(Y,J=0,X=0)=>{let W=" ".repeat(J);if(X>=3)return C.jsxDEV(Q,{dimColor:!0,children:"{...} (truncated)"},void 0,!1,void 0,this);if(Y===null)return C.jsxDEV(Q,{color:"gray",children:"null"},void 0,!1,void 0,this);if(typeof Y!=="object"){let G=JSON.stringify(Y);if(typeof Y==="string"&&G.length>102){let N=G.substring(1,101);return C.jsxDEV(Q,{children:[C.jsxDEV(Q,{color:"cyan",children:['"',N,'..."']},void 0,!0,void 0,this)," ",C.jsxDEV(Q,{dimColor:!0,children:["(truncated, ",G.length-2," chars)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}if(typeof Y==="string")return C.jsxDEV(Q,{color:"cyan",children:G},void 0,!1,void 0,this);else if(typeof Y==="number")return C.jsxDEV(Q,{color:"yellow",children:Y},void 0,!1,void 0,this);else if(typeof Y==="boolean")return C.jsxDEV(Q,{color:"magenta",children:Y.toString()},void 0,!1,void 0,this);else return C.jsxDEV(Q,{children:G},void 0,!1,void 0,this)}if(Array.isArray(Y)){if(Y.length===0)return C.jsxDEV(Q,{color:"gray",children:"[]"},void 0,!1,void 0,this);let G=5;return C.jsxDEV(C.Fragment,{children:[`
143
- `,Y.slice(0,G).map((N,z)=>C.jsxDEV(Q,{children:[C.jsxDEV(Q,{children:W},void 0,!1,void 0,this),C.jsxDEV(Q,{color:"green",children:"- "},void 0,!1,void 0,this)," ",Z(N,J+1,X+1),z<Math.min(Y.length,G)-1?`
144
- `:""]},void 0,!0,void 0,this)),Y.length>G&&C.jsxDEV(Q,{children:[`
145
- `,C.jsxDEV(Q,{children:W},void 0,!1,void 0,this),C.jsxDEV(Q,{dimColor:!0,children:["... (",Y.length-G," more)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)}let O=Object.keys(Y);if(O.length===0)return C.jsxDEV(Q,{color:"gray"},void 0,!1,void 0,this);let _=5;return C.jsxDEV(C.Fragment,{children:[O.slice(0,_).map((G,N)=>C.jsxDEV(Q,{children:[C.jsxDEV(Q,{children:W},void 0,!1,void 0,this),C.jsxDEV(Q,{color:"blue",children:G},void 0,!1,void 0,this)," ",C.jsxDEV(Q,{color:"gray",children:": "},void 0,!1,void 0,this)," ",Z(Y[G],J+1,X+1),N<Math.min(O.length,_)-1?`
146
- `:""]},void 0,!0,void 0,this)),O.length>_&&C.jsxDEV(Q,{children:[`
147
- `,C.jsxDEV(Q,{children:W},void 0,!1,void 0,this),C.jsxDEV(Q,{dimColor:!0,children:["... (",O.length-_," more)"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};return C.jsxDEV(Q,{children:Z($)},void 0,!1,void 0,this)},v5=({message:$,messageNumber:Z})=>{let{getToolUIRender:Y,client:J}=$1(),X=new uZ($,J),K=X.getInputRepaired(),W=K?.title?`: ${K.title}`:K?.description?`: ${K.description}`:"",O=$.name?Y($.name):null,_=P5($.name||"");return _=$.status==="error"?"red":"yellow",C.jsxDEV(m,{children:C.jsxDEV(U,{flexDirection:"column",children:[C.jsxDEV(U,{children:[C.jsxDEV(Q,{color:_,children:[Z," ",$.name,C.jsxDEV(Q,{color:"gray",children:W},void 0,!1,void 0,this)]},void 0,!0,void 0,this),C.jsxDEV(Q,{children:[" ",C5($?.status)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),O?C.jsxDEV(U,{children:[C.jsxDEV(Q,{color:"gray",children:"└─ "},void 0,!1,void 0,this),C.jsxDEV(U,{flexDirection:"column",children:O($)},void 0,!1,void 0,this)]},void 0,!0,void 0,this):C.jsxDEV(U,{flexDirection:"column",paddingTop:0,children:[C.jsxDEV(U,{children:[C.jsxDEV(Q,{color:"gray",children:"└─ "},void 0,!1,void 0,this),C.jsxDEV(I5,{content:X.getInputRepaired()},void 0,!1,void 0,this)]},void 0,!0,void 0,this),C.jsxDEV(U,{paddingTop:0,paddingBottom:0,children:[C.jsxDEV(Q,{color:"gray",children:"└─ "},void 0,!1,void 0,this),C.jsxDEV(Q,{dimColor:!0,italic:!0,children:S5(K4($.content))},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),$.sub_messages?.length?C.jsxDEV(U,{children:[C.jsxDEV(Q,{color:"gray",children:"└─ "},void 0,!1,void 0,this),C.jsxDEV(Q,{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)},W4=v5;var z$=A(q(),1),Q4=PZ.memo(function({renderMessages:Z,startIndex:Y,staticKey:J,loading:X}){let[K,W]=PZ.useState(!1);M1(()=>W(!0),K?null:0);let O=(z,F,L,w)=>z$.jsxDEV(U,{flexDirection:"column",paddingLeft:1,paddingBottom:1,children:z.type==="human"?z$.jsxDEV(FZ,{content:z.content,messageNumber:F+1+Y},void 0,!1,void 0,this):z.type==="tool"?z$.jsxDEV(W4,{message:z,messageNumber:F+1+Y},void 0,!1,void 0,this):z$.jsxDEV(BZ,{message:z,messageNumber:F+1+Y,loading:X},void 0,!1,void 0,this)},z.id?`${w}-${z.id}`:`${w}-msg-${F}`,!1,void 0,this),_=Z.findIndex((z)=>{if(z.type==="tool"&&!z.done&&!["success","error"].includes(z.status))return!0;return!1});if(_===-1)_=Z.length-1;let G=Z.slice(0,_),N=Z.slice(_);if(!K)return z$.jsxDEV(U,{flexDirection:"column",children:Z.map((z,F)=>O(z,F,F===_,"init"))},void 0,!1,void 0,this);return z$.jsxDEV(U,{flexDirection:"column",children:[z$.jsxDEV(fZ,{items:G,children:(z,F)=>O(z,F,!1,"hist")},J,!1,void 0,this),N.map((z,F)=>O(z,G.length+F,!0,"curr"))]},void 0,!0,void 0,this)});var N$=A(h(),1);var u$=A(h(),1);var CZ=A(q(),1),k5=({staticKey:$,children:Z,delay:Y=1})=>{let[J,X]=u$.useState(!0),K=u$.useRef(!0);return u$.useEffect(()=>{X(!1),K.current=!0},[$]),M1(()=>{if(K.current)console.clear(),X(!0),K.current=!1},J?null:Y),CZ.jsxDEV(CZ.Fragment,{children:J?Z():null},void 0,!1,void 0,this)},_4=k5;var a=A(q(),1),T5=N$.memo(function({toolGroup:Z,groupId:Y,getToolUIRender:J,depth:X=0,loading:K}){if(X>1)return null;return a.jsxDEV(U,{flexDirection:"column",children:Z.map((W,O)=>{let _=W.name?J(W.name):null;if(!_)return null;let G=W.sub_messages?.length||0,N=W.sub_messages?.slice(-4)||[],z=G-N.length;return a.jsxDEV(N$.Fragment,{children:[a.jsxDEV(()=>{return a.jsxDEV(m,{fallback:W.name+" is error",children:_(W)},void 0,!1,void 0,this)},{},void 0,!1,void 0,this),N.length?a.jsxDEV(a.Fragment,{children:[z>0&&a.jsxDEV(U,{paddingLeft:2,children:a.jsxDEV(Q,{dimColor:!0,children:["... ",z," more submessage",z>1?"s":""]},void 0,!0,void 0,this)},void 0,!1,void 0,this),a.jsxDEV(_0,{renderMessages:N,startIndex:1,depth:X+1,staticKey:`sub-d${X}-i${O}`,getToolUIRender:J,loading:K},void 0,!1,void 0,this)]},void 0,!0,void 0,this):null]},`${Y}-${O}-${W.status}`,!0,void 0,this)})},void 0,!1,void 0,this)}),O4=N$.memo(function({message:Z,displayIndex:Y,isCurrent:J,startIndex:X=0,getToolUIRender:K,depth:W=0,loading:O}){return a.jsxDEV(U,{flexDirection:"column",paddingBottom:1,children:[Z.type==="human"?a.jsxDEV(FZ,{content:Z.content,messageNumber:Y+1+X},void 0,!1,void 0,this):null,Z.type==="ai"?a.jsxDEV(BZ,{message:Z,messageNumber:Y+1+X,loading:O},void 0,!1,void 0,this):null,Z.type==="group"&&a.jsxDEV(a.Fragment,{children:a.jsxDEV(T5,{toolGroup:Z.toolGroup,groupId:Z.id,getToolUIRender:K,depth:W,loading:O},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)}),G4=($)=>{if($.type!=="ai")return!0;try{let Z=D$($);return!!(Z&&Z.trim().length>0)}catch{return!1}},_0=N$.memo(function({renderMessages:Z,startIndex:Y,staticKey:J,depth:X=0,getToolUIRender:K,loading:W}){let O=N$.useMemo(()=>{let z=0;return Z.filter((F)=>{if(F.type==="ai")return G4(F);return!0}).reduce((F,L)=>{if(L.type==="tool"){let w=F[F.length-1];if(w&&w.type==="group"&&w.toolGroup.length<5)w.toolGroup.push(L);else F.push({id:`tool-group-${z++}`,type:"group",toolGroup:[L]})}else F.push(L);return F},[])},[Z,G4]),_=O.length-1;if(_===-1)_=O.length-1;if(!W)_=O.length;let G=O.slice(0,_),N=O.slice(_);return a.jsxDEV(U,{flexDirection:"column",children:[a.jsxDEV(_4,{staticKey:`${J} ${G.length}`,children:()=>a.jsxDEV(fZ,{items:G,children:(z,F)=>a.jsxDEV(O4,{message:z,displayIndex:F,isCurrent:!1,startIndex:Y,getToolUIRender:K,depth:X,loading:W},z.id?`hist-${z.id}`:`hist-msg-${X}-${F}`,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),N.map((z,F)=>a.jsxDEV(O4,{message:z,displayIndex:G.length+F,isCurrent:!0,startIndex:Y,getToolUIRender:K,depth:X,loading:W},z.id?`curr-${z.id}`:`curr-msg-${X}-${G.length}-${F}`,!1,void 0,this))]},void 0,!0,void 0,this)});var P=A(q(),1),y5=()=>{let $=HZ(),Z=new Date().toLocaleDateString(),{extraParams:Y,AVAILABLE_MODELS:J,config:X}=Z1(),K=Y.mcp_config||{},W=Object.keys(K).length,O=U4(),_=process.platform,G=_==="darwin"?"macOS":_==="win32"?"Windows":"Linux",N=process.cwd(),z=X?.provider_id||process.env.MODEL_PROVIDER||"openai",L=!!X?.providers?.find((b)=>b.id===z)?.apiKey,w=J.length>0,M=L&&w;return P.jsxDEV(U,{flexDirection:"column",borderStyle:"round",borderColor:"cyan",paddingX:1,marginBottom:1,children:[P.jsxDEV(U,{flexDirection:"row",justifyContent:"space-between",borderBottom:!1,children:[P.jsxDEV(Q,{color:"cyan",bold:!0,children:"ZEN CODE"},void 0,!1,void 0,this),P.jsxDEV(Q,{color:"gray",children:Z},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P.jsxDEV(U,{flexDirection:"row",marginTop:1,gap:2,children:[P.jsxDEV(U,{flexDirection:"column",children:P.jsxDEV(Q,{color:"cyan",children:`███████╗███████╗███╗ ██╗
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
+ `),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
+ `);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
+ `)},$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
+ `,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
+ `:""]},void 0,!0,void 0,this)),Y.length>O&&C.jsxDEV(G,{children:[`
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
+ `:""]},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)},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),P.jsxDEV(U,{flexDirection:"column",justifyContent:"center",flexGrow:1,children:[P.jsxDEV(U,{marginBottom:1,children:M?P.jsxDEV(Q,{color:"green",bold:!0,children:[" ","[ SYSTEM ONLINE ]"]},void 0,!0,void 0,this):P.jsxDEV(Q,{color:"red",bold:!0,children:[" ","[ CONFIG REQUIRED ]"]},void 0,!0,void 0,this)},void 0,!1,void 0,this),P.jsxDEV(U,{flexDirection:"column",gap:0,children:[P.jsxDEV(U,{children:[P.jsxDEV(Q,{color:"blue",children:"USER::"},void 0,!1,void 0,this),P.jsxDEV(Q,{color:"white",children:$},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P.jsxDEV(U,{children:[P.jsxDEV(Q,{color:"blue",children:"ARCH::"},void 0,!1,void 0,this),P.jsxDEV(Q,{color:"white",children:process.arch},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P.jsxDEV(U,{children:[P.jsxDEV(Q,{color:"blue",children:"PLATFORM::"},void 0,!1,void 0,this),P.jsxDEV(Q,{color:"white",children:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P.jsxDEV(U,{children:[P.jsxDEV(Q,{color:"blue",children:"NODE::"},void 0,!1,void 0,this),P.jsxDEV(Q,{color:"white",children:process.version},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P.jsxDEV(U,{children:[P.jsxDEV(Q,{color:"blue",children:"TERM::"},void 0,!1,void 0,this),P.jsxDEV(Q,{color:"white",children:O},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P.jsxDEV(U,{children:[P.jsxDEV(Q,{color:"blue",children:[z?.toUpperCase(),"::"]},void 0,!0,void 0,this),P.jsxDEV(Q,{color:w?"white":"red",children:w?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),P.jsxDEV(U,{marginTop:1,paddingX:1,flexDirection:"column",gap:0,children:[P.jsxDEV(U,{children:P.jsxDEV(Q,{color:"blue",children:"WORKING_DIR ::"},void 0,!1,void 0,this)},void 0,!1,void 0,this),P.jsxDEV(U,{children:P.jsxDEV(Q,{color:"gray",children:N},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),!M&&P.jsxDEV(U,{marginTop:1,paddingX:1,flexDirection:"column",gap:0,children:[P.jsxDEV(Q,{color:"red",bold:!0,children:["⚠️ 需要配置 ",z==="anthropic"?"Anthropic":"OpenAI"," API:"]},void 0,!0,void 0,this),!L&&P.jsxDEV(Q,{color:"yellow",children:" • 请使用 /m 进入模型配置面板"},void 0,!1,void 0,this),!w&&P.jsxDEV(Q,{color:"yellow",children:" • 请确保网络连接正常以获取模型列表"},void 0,!1,void 0,this),P.jsxDEV(Q,{color:"gray",children:" • 配置后使用 /m 查看可用模型"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),P.jsxDEV(U,{marginTop:1,paddingTop:1,borderTop:!1,flexDirection:"row",justifyContent:"space-between",children:[P.jsxDEV(U,{gap:3,children:[P.jsxDEV(U,{children:[P.jsxDEV(Q,{color:"green",children:"●"},void 0,!1,void 0,this),P.jsxDEV(Q,{color:"white",dimColor:!0,children:[" ","AGENTS"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),P.jsxDEV(U,{children:[P.jsxDEV(Q,{color:W>0?"green":"gray",children:"●"},void 0,!1,void 0,this),P.jsxDEV(Q,{color:"white",dimColor:!0,children:[" ","MCP (",W,")"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),P.jsxDEV(U,{children:[M?P.jsxDEV(Q,{color:"yellow",bold:!0,children:">>> WAITING_FOR_INPUT"},void 0,!1,void 0,this):P.jsxDEV(Q,{color:"red",bold:!0,children:">>> CONFIGURATION_NEEDED"},void 0,!1,void 0,this),P.jsxDEV(Q,{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)},z4=y5;var kZ=A(h(),1);var YZ=A(h(),1);class N4{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(W){return{success:!1,message:`命令执行失败: ${W instanceof Error?W.message:String(W)}`}}}getSuggestions($){if(!$.startsWith("/"))return[];let Z=$.slice(1).toLowerCase(),Y=[];if(Z===""){let O=["new","history","task","agent","model","settings","mcp","knowledge","summarize","template","plan","interview","help"];for(let _ of O){let G=this.commands.get(_);if(G)Y.push({command:_,displayText:`/${_}`,description:G.description})}return Y.slice(0,10)}let J=new Set(["history","knowledge","help","init","model","config"]),X=[],K=[];for(let[O,_]of this.commands){let G=O.toLowerCase();if(G.startsWith(Z))X.push({command:O,displayText:`/${O}`,description:_.description});else if(G.includes(Z))K.push({command:O,displayText:`/${O}`,description:_.description});if(_.aliases)for(let N of _.aliases){let z=N.toLowerCase();if(z.startsWith(Z))X.push({command:O,displayText:`/${N}`,description:`${_.description} (别名)`});else if(z.includes(Z))K.push({command:O,displayText:`/${N}`,description:`${_.description} (别名)`})}}let W=(O,_)=>{let G=J.has(O.command)?1:0,N=J.has(_.command)?1:0;if(G!==N)return N-G;return O.displayText.length-_.displayText.length};return X.sort(W),K.sort(W),Y.push(...X,...K),Y.slice(0,10)}getHelp($){if($){let Y=this.getCommand($);if(!Y)return`未找到命令: /${$}`;let J=`命令: /${Y.name}
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 J$=new N4;var H4={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 h5={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}}},D5={name:"help",description:"显示命令帮助信息",aliases:["h","?"],usage:"/help [命令名]",execute:async($,Z)=>{let Y=$[0];return{success:!0,message:J$.getHelp(Y),shouldClearInput:!0}}},V5={name:"task",description:"打开任务看板面板",aliases:["tasks","kanban"],usage:"/task",execute:async($,Z)=>{return Z.switchToTask?.(),{success:!0,message:"打开任务看板",shouldClearInput:!0}}},j5={name:"process",description:"打开进程管理器面板",aliases:["ps","proc"],usage:"/process",execute:async($,Z)=>{return Z.switchToProcess?.(),{success:!0,message:"打开进程管理器",shouldClearInput:!0}}},F4=[h5,D5,V5,H4,j5];import{readFileSync as E5,readdirSync as g5}from"fs";import{join as L4}from"path";var ZZ=null;function p5($){let Z=$.split(`
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 W of J){let O=W.match(/^(\w+):\s*(.+)$/);if(O){let[,_,G]=O;if(_==="name")X.name=G.trim();if(_==="description")X.description=G.trim()}}let K=Z.slice(Y+1).join(`
161
- `).trim();return{metadata:X,content:K}}function A4($,Z){let Y=new Map;try{let J=g5($,{withFileTypes:!0});for(let X of J){let K=L4($,X.name);if(X.isDirectory())A4(K,Z).forEach((O)=>Y.set(O.name,O));else if(X.name.endsWith(".md"))try{let W=E5(K,"utf-8"),{metadata:O,content:_}=p5(W),G=O.name||X.name.replace(/\.md$/,"");if(!O.name)console.warn(`Template missing "name" in frontmatter: ${K}`);Y.set(G,{name:G,description:O.description||"No description",content:_,path:K})}catch(W){console.warn(`Failed to read template file: ${K}`,W)}}}catch(J){if(J.code!=="ENOENT")console.warn(`Error scanning templates directory: ${$}`,J)}return Y}function w4(){ZZ=null}function M4($="./.claude/templates"){if(ZZ)return Array.from(ZZ.values());let Z=$.startsWith("/")?$:L4(process.cwd(),$);return ZZ=A4(Z,Z),Array.from(ZZ.values())}var m5={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}}},c5={name:"template",description:"插入预定义的消息模板",aliases:["tpl","t"],usage:"/template <模板名>",execute:async($,Z)=>{let Y=$[0];if($.includes("--refresh"))return w4(),{success:!0,message:"模板缓存已清除",shouldClearInput:!0};let J=M4();if(!Y){if(J.length===0)return{success:!0,message:"当前没有可用的模板。可以在 ./.claude/templates/ 目录下创建 .md 模板文件。",shouldClearInput:!0};return{success:!0,message:`可用模板:
163
- ${J.map((W)=>` - ${W.name}: ${W.description}`).join(`
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
+ `);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=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
+ ${J.map((Q)=>` - ${Q.name}: ${Q.description}`).join(`
164
164
  `)}
165
165
 
166
- 使用 /template <name> 插入模板`,shouldClearInput:!0}}let X=J.find((K)=>K.name===Y);if(!X){let K=J.map((W)=>W.name).join(", ");return{success:!1,message:`未找到模板 "${Y}"。可用模板: ${K||"(无)"}`}}return Z.setUserInput(X.content),{success:!0,message:`已插入模板: ${X.name}
167
- ${X.description}`,shouldClearInput:!1}}},u5={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(`
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}}},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}}}},x5={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(`
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
- ${K.map((O)=>{return` - ${O}`}).join(`
174
- `)}`,shouldClearInput:!0}}case"add":{if($.length<2)return{success:!1,message:"用法: /mcp add <name> <json_string>",shouldClearInput:!0};let[K,W,...O]=$,_=O.join(""),G={...X,[W]:JSON.parse(_)};if(!Z.updateConfig)return{success:!1,message:"无法访问配置更新功能",shouldClearInput:!0};return await Z.updateConfig({mcp_config:G}),{success:!0,message:`MCP 服务器 "${W}" 已添加`,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 W={...X};if(delete W[K],!Z.updateConfig)return{success:!1,message:"无法访问配置更新功能",shouldClearInput:!0};return await Z.updateConfig({mcp_config:W}),{success:!0,message:`MCP 服务器 "${K}" 已移除
175
- 重启程序生效`,shouldClearInput:!0}}case"get":{if($.length<2)return{success:!1,message:"用法: /mcp get <name>",shouldClearInput:!0};let K=$[1],W=X[K];if(!W)return{success:!1,message:`MCP 服务器 "${K}" 不存在`,shouldClearInput:!0};return{success:!0,message:[`MCP 服务器: ${K}`,` URL: ${W.url}`,` Headers: ${JSON.stringify(W.headers||{},null,2)}`].join(`
173
+ ${K.map((W)=>{return` - ${W}`}).join(`
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
+ 重启程序生效`,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}}}},d5={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}}}},l5={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}}},i5={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}}},o5={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}}},r5={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}}},n5={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}}},q4=[m5,c5,u5,x5,d5,l5,i5,o5,r5,n5];var a5={name:"agent",description:"打开 Agent 选择面板",aliases:["a"],usage:"/agent",execute:async($,Z)=>{if(Z.switchToAgent)Z.switchToAgent();return{success:!0,message:"打开 Agent 面板",shouldClearInput:!0}}},b4=[a5];var s5=`
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
- `,t5={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=s5+Y;return Z.sendMessage([{type:"human",content:J}],{extraParams:Z.extraParams}),{success:!0,message:"\uD83D\uDCCB Interview mode activated",shouldClearInput:!0}}},R4=[t5];var e5=`
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
- `,$8={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=e5+Y;return Z.sendMessage([{type:"human",content:J}],{extraParams:Z.extraParams}),{success:!0,message:"\uD83D\uDCCB Plan mode activated",shouldClearInput:!0}}},B4=[$8];var f4=`
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
- `,Z8={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=f4+Y;return Z.sendMessage([{type:"human",content:J}],{extraParams:Z.extraParams}),{success:!0,message:"\uD83D\uDCDD AGENTS.md creation mode activated",shouldClearInput:!0}}},Y8={name:"init-agents-md",description:"快速初始化 AGENTS.md 项目指南文档",aliases:["iam","init-agents"],usage:"/init-agents-md",requiresArgs:!1,execute:async($,Z)=>{let J=f4+"初始化项目 AGENTS.md 指南文档";return Z.sendMessage([{type:"human",content:J}],{extraParams:Z.extraParams}),{success:!0,message:"\uD83D\uDCDD 开始初始化 AGENTS.md...",shouldClearInput:!0}}},P4=[Z8,Y8];var C4={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 S4={name:"mcp",description:"打开 MCP 服务器配置面板",aliases:[],usage:"/mcp",execute:async($,Z)=>{return Z.switchToMcp?.(),{success:!0,message:"打开 MCP 配置面板",shouldClearInput:!0}}};var I4={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 X8=`
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,26 +304,31 @@ Provide a detailed report of:
304
304
 
305
305
  ---
306
306
 
307
- `,J8={name:"memory-clear",description:"整理 .claude/memories 文件夹,清理、合并和优化项目记忆",aliases:["mem-clean","clean-memory"],usage:"/memory-clear",execute:async($,Z)=>{let Y=$.join(" ").trim(),J=X8+(Y?`Additional context: ${Y}
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}}},v4=[J8];function E1($){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 O0(){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 k4(){return typeof Bun<"u"}function K8(){let $=O0();if(k4()&&typeof Bun.gc==="function"){Bun.gc(!0);let Z=O0(),Y=$.heapUsed-Z.heapUsed;return{success:!0,before:$,after:Z,freed:Y,message:`GC 执行成功,释放了 ${E1(Math.max(0,Y))} 内存`}}if(globalThis.global&&typeof globalThis.global.gc==="function"){globalThis.global.gc();let Z=O0(),Y=$.heapUsed-Z.heapUsed;return{success:!0,before:$,after:Z,freed:Y,message:`GC 执行成功,释放了 ${E1(Math.max(0,Y))} 内存`}}return{success:!1,before:$,message:`/gc 命令仅在 Bun 或者 node --expose-gc 可用
310
- `+"当前内存使用: "+E1($.heapUsed)+" / "+E1($.heapTotal)}}function W8(){let $=[];if(!k4())$.push("/gc 命令仅支持 Bun 运行时,请使用 bun 启动应用");else $.push("当前运行在 Bun 环境,/gc 命令已就绪");return $.join(`
311
- `)}var T4={name:"gc",description:"手动触发垃圾回收,减少内存占用",aliases:["garbage-collect","mem-opt","memory"],usage:"/gc",execute:async($,Z)=>{let Y=$.includes("-v")||$.includes("--verbose"),J=K8(),X=`\uD83D\uDDD1️ ${J.message}
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
- `,X+=` Before: ${E1(J.before.heapUsed)} / ${E1(J.before.heapTotal)}
315
- `,X+=` After: ${E1(J.after.heapUsed)} / ${E1(J.after.heapTotal)}
316
- `,J.freed!==void 0&&J.freed>0)X+=` Freed: ${E1(J.freed)}
314
+ `,X+=` Before: ${u1(J.before.heapUsed)} / ${u1(J.before.heapTotal)}
315
+ `,X+=` After: ${u1(J.after.heapUsed)} / ${u1(J.after.heapTotal)}
316
+ `,J.freed!==void 0&&J.freed>0)X+=` Freed: ${u1(J.freed)}
317
317
  `}else if(J.before)X+=`
318
- \uD83D\uDCCA 当前内存使用: ${E1(J.before.heapUsed)} / ${E1(J.before.heapTotal)}
318
+ \uD83D\uDCCA 当前内存使用: ${u1(J.before.heapUsed)} / ${u1(J.before.heapTotal)}
319
319
  `;if(!J.success||Y)X+=`
320
320
  \uD83D\uDCA1 提示:
321
- `,X+=` ${W8().replace(/\n/g,`
321
+ `,X+=` ${T5().replace(/\n/g,`
322
322
  `)}
323
- `;return{success:J.success,message:X,shouldClearInput:!0}}};[...F4,...q4,...b4,...R4,...B4,...P4,...v4,C4,S4,I4,T4].forEach(($)=>{J$.register($)});var K$=A(q(),1),y4=($)=>{let{onCommandExecuted:Z,switchToHistory:Y,switchToKnowledge:J,switchToSettings:X,switchToAgent:K,closePanel:W,switchToTask:O,switchToModelProvider:_,switchToMcp:G,switchToProcess:N}=$,{userInput:z,setUserInput:F,sendMessage:L,currentAgent:w,client:M,createNewChat:b,renderMessages:f}=$1(),{extraParams:k,updateConfig:g,AVAILABLE_MODELS:p,compactMode:o}=Z1(),[S,t]=YZ.useState(null),[c,D]=YZ.useState(null);M1(()=>{t(null)},S?3000:null),M1(()=>{D(null)},c?5000:null);let l=z.startsWith("/"),x=l?J$.getSuggestions(z):[],A$=l,w$=YZ.useCallback(async(JZ)=>{let x$=JZ||z;if(!J$.isCommand(x$))return!1;try{let d$={userInput:x$,setUserInput:F,sendMessage(yZ,M0={}){return L(yZ,{extraParams:{...k,...M0.extraParams},...M0,metadata:d1})},currentAgent:w,client:M,extraParams:k,createNewChat(){return b(d1)},updateConfig:g,AVAILABLE_MODELS:p,renderMessages:f,compactMode:o,switchToHistory:Y,switchToKnowledge:J,switchToSettings:X,switchToModelProvider:_,switchToAgent:K,switchToTask:O,switchToMcp:G,switchToProcess:N,closePanel:W,startRalphLoop:$.startRalphLoop},O$=await J$.executeCommand(x$,d$);if(!O$.success)t(O$.message||"命令执行失败");else if(O$.message)D(O$.message);if(O$.shouldClearInput)F("");if(O$.shouldSendMessage&&O$.messageContent){let yZ=[{type:"human",content:O$.messageContent}];L(yZ,{extraParams:k})}return Z?.(),!0}catch(d$){return t(`命令执行错误: ${d$ instanceof Error?d$.message:String(d$)}`),!0}},[z,F,L,w,M,k,b,Z,p,o,Y,J,X,_,K,O,G,N,W,$.startRalphLoop]);return{isCommandInput:l,commandSuggestions:x,showCommandHint:A$,commandError:S,executeCommand:w$,CommandHintUI:()=>{if(!A$||x.length===0)return null;return K$.jsxDEV(U,{marginBottom:1,flexDirection:"column",children:[K$.jsxDEV(Q,{color:"yellow",bold:!0,children:"命令建议:"},void 0,!1,void 0,this),x.slice(0,5).map((JZ,x$)=>K$.jsxDEV(Q,{color:"cyan",children:[JZ.displayText," - ",JZ.description]},x$,!0,void 0,this)),x.length>5&&K$.jsxDEV(Q,{color:"gray",children:["...还有 ",x.length-5," 个命令"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},CommandErrorUI:()=>{if(!S)return null;return K$.jsxDEV(U,{marginBottom:1,children:K$.jsxDEV(Q,{color:"red",children:["❌ ",S]},void 0,!0,void 0,this)},void 0,!1,void 0,this)},CommandSuccessUI:()=>{if(!c)return null;return K$.jsxDEV(U,{marginBottom:1,children:K$.jsxDEV(Q,{color:"green",children:["✅ ",c]},void 0,!0,void 0,this)},void 0,!1,void 0,this)}}};function h4({manager:$,enabled:Z=!0}){return SZ({queryKey:IZ.skills.list(),queryFn:async()=>{if(!$)throw Error("ConfigManager not initialized");return await $.listSkills()},enabled:Z&&!!$,staleTime:120000})}var Q8=[{id:"agents/default",name:"Jarvis",description:"代码实现助手"},{id:"agents/manager",name:"Manager",description:"任务管理员"}];function D4({enabled:$=!0}={}){return SZ({queryKey:IZ.agents.list(),queryFn:async()=>{return Q8},enabled:$,staleTime:300000})}var g1=A(h(),1);function V4({loading:$,renderMessages:Z,sendMessage:Y,setUserInput:J,extraParams:X}){let[K,W]=g1.useState(null),[O,_]=g1.useState(!1),G=g1.useRef(!1),N=g1.useRef(0),z=g1.useCallback(async(L)=>{if(!L)return;let w=G.current?`
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.]`:"",M=[{type:"human",content:L+w}];await Y(M,{extraParams:X,metadata:d1})},[Y,X]);M1(()=>{if(K)z(K);_(!1)},O?100:null);let F=g1.useCallback((L)=>{W(L),G.current=!0,N.current=0,_(!0)},[]);return g1.useEffect(()=>{if(G.current&&K&&!$){let L=Z.length;if(L>N.current){N.current=L;let w=Z[L-1],M=D$(w);if(typeof M==="string"&&M.includes("<COMPLETE></COMPLETE>"))G.current=!1,W(null),t1("Ralph 循环完成");else z(K)}}},[$,Z,K,z]),{ralphLoopText:K,startRalphLoop:F,sendTextMessage:z}}var _1=A(h(),1);var k$=A(h(),1);import G0 from"fuzzysort";function _8($,Z){if(Z===0)return!0;let Y=$[Z-1];return Y===" "||Y===`
326
- `||Y==="\t"}function O8($,Z){let Y=Z+1;while(Y<$.length&&!/[\s\n\t]/.test($[Y]))Y++;return $.slice(Z+1,Y)}function G8($,Z,Y){if(!Z)return $.slice(0,Y).map((W)=>({skill:W,result:null}));let J=$.map((W)=>({skill:W,name:G0.prepare(W.name.toLowerCase()),description:G0.prepare((W.description||"").toLowerCase())}));return G0.go(Z.toLowerCase(),J,{key:"name",limit:Y,threshold:-1e4}).map((W)=>({skill:W.obj.skill,result:W}))}function j4({skills:$,maxSuggestions:Z=5}){let[Y,J]=k$.useState({visible:!1,query:"",filteredSkills:[],triggerPosition:-1}),X=k$.useCallback((G,N)=>{let z=G.lastIndexOf("#");if(z===-1){J((w)=>({...w,visible:!1,query:"",filteredSkills:[],triggerPosition:-1}));return}if(!_8(G,z)){J((w)=>({...w,visible:!1,query:"",filteredSkills:[],triggerPosition:-1}));return}let F=O8(G,z),L=G8($,F,Z);if(L.length===1&&L[0].skill.name.toLowerCase()===F.toLowerCase()){J((w)=>({...w,visible:!1,query:"",filteredSkills:[],triggerPosition:-1}));return}J((w)=>({...w,visible:!0,query:F,filteredSkills:L,triggerPosition:z}))},[$.length,Z]),K=k$.useCallback(()=>{if(!Y.visible||Y.filteredSkills.length===0)return null;return Y.filteredSkills[0]?.skill??null},[Y.visible,Y.filteredSkills]),W=k$.useCallback((G)=>{let N=K();if(!N)return G;let z=G.slice(0,Y.triggerPosition),F=G.slice(Y.triggerPosition+1+Y.query.length);return`${z}#${N.name} ${F}`},[K,Y.triggerPosition,Y.query]),O=k$.useCallback(()=>{J((G)=>({...G,visible:!1,query:"",filteredSkills:[],triggerPosition:-1}))},[]),_=Y.visible&&Y.filteredSkills.length>0;return{state:Y,checkTrigger:X,getFirstSkill:K,complete:W,hide:O,isActive:_}}var T$=A(h(),1);function U8($,Z){if(Z===0)return!0;let Y=$[Z-1];return Y===" "||Y===`
327
- `||Y==="\t"}function z8($,Z){let Y=Z+1;while(Y<$.length&&!/[\s\n\t]/.test($[Y]))Y++;return $.slice(Z+1,Y)}function N8($,Z,Y){let J=Z.toLowerCase(),X=$.filter((K)=>{let W=K.name.toLowerCase(),O=K.id.toLowerCase();return W.startsWith(J)||O.includes(J)});return X.sort((K,W)=>K.name.localeCompare(W.name)),X.slice(0,Y)}function E4({agents:$,maxSuggestions:Z=5}){let[Y,J]=T$.useState({visible:!1,query:"",filteredAgents:[],triggerPosition:-1}),X=T$.useCallback((G,N)=>{let z=G.lastIndexOf("@");if(z===-1){J((w)=>({...w,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}));return}if(!U8(G,z)){J((w)=>({...w,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}));return}let F=z8(G,z),L=N8($,F,Z);if(L.length===1&&L[0].name.toLowerCase()===F.toLowerCase()){J((w)=>({...w,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}));return}J((w)=>({...w,visible:!0,query:F,filteredAgents:L,triggerPosition:z}))},[$.length,Z]),K=T$.useCallback(()=>{if(!Y.visible||Y.filteredAgents.length===0)return null;return Y.filteredAgents[0]??null},[Y.visible,Y.filteredAgents]),W=T$.useCallback((G)=>{let N=K();if(!N)return G;let z=G.slice(0,Y.triggerPosition),F=G.slice(Y.triggerPosition+1+Y.query.length);return`${z}@${N.name} ${F}`},[K,Y.triggerPosition,Y.query]),O=T$.useCallback(()=>{J((G)=>({...G,visible:!1,query:"",filteredAgents:[],triggerPosition:-1}))},[]),_=Y.visible&&Y.filteredAgents.length>0;return{state:Y,checkTrigger:X,getFirstAgent:K,complete:W,hide:O,isActive:_}}var g4=A(h(),1);var B1=A(q(),1);function H8({name:$,result:Z}){if(!Z)return B1.jsxDEV(Q,{color:"cyan",children:$},void 0,!1,void 0,this);let Y=Z.highlight((J)=>B1.jsxDEV(Q,{color:"green",bold:!0,children:J},void 0,!1,void 0,this));if(Array.isArray(Y))return B1.jsxDEV(Q,{color:"cyan",children:Y.map((J,X)=>{if(typeof J==="string")return B1.jsxDEV(Q,{children:J},`p-${X}`,!1,void 0,this);return B1.jsxDEV(g4.default.Fragment,{children:J},`m-${X}`,!1,void 0,this)})},void 0,!1,void 0,this);return B1.jsxDEV(Q,{color:"cyan",children:$},void 0,!1,void 0,this)}var p4=({visible:$,skills:Z,query:Y,maxVisible:J=5})=>{if(!$||Z.length===0)return null;let X=Z.slice(0,J);return B1.jsxDEV(U,{marginBottom:1,flexDirection:"column",children:[B1.jsxDEV(Q,{color:"yellow",bold:!0,children:"技能建议 (按 → 补全):"},void 0,!1,void 0,this),X.map(({skill:K,result:W})=>B1.jsxDEV(U,{children:[B1.jsxDEV(Q,{children:" #"},void 0,!1,void 0,this),B1.jsxDEV(H8,{name:K.name,result:W},void 0,!1,void 0,this)]},K.name,!0,void 0,this)),Z.length>J&&B1.jsxDEV(Q,{color:"gray",children:["...还有 ",Z.length-J," 个技能"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var H1=A(q(),1);function F8({name:$,query:Z}){if(!Z)return H1.jsxDEV(Q,{color:"magenta",children:$},void 0,!1,void 0,this);let Y=$.toLowerCase(),J=Z.toLowerCase();if(Y.startsWith(J))return H1.jsxDEV(H1.Fragment,{children:[H1.jsxDEV(Q,{color:"green",bold:!0,children:$.slice(0,Z.length)},void 0,!1,void 0,this),H1.jsxDEV(Q,{color:"magenta",children:$.slice(Z.length)},void 0,!1,void 0,this)]},void 0,!0,void 0,this);return H1.jsxDEV(Q,{color:"magenta",children:$},void 0,!1,void 0,this)}var m4=({visible:$,agents:Z,query:Y,maxVisible:J=5})=>{if(!$||Z.length===0)return null;let X=Z.slice(0,J);return H1.jsxDEV(U,{marginBottom:1,flexDirection:"column",children:[H1.jsxDEV(Q,{color:"yellow",bold:!0,children:"Agent 建议 (按 → 补全):"},void 0,!1,void 0,this),X.map((K)=>H1.jsxDEV(U,{children:[H1.jsxDEV(Q,{children:" @"},void 0,!1,void 0,this),H1.jsxDEV(F8,{name:K.name,query:Y},void 0,!1,void 0,this),H1.jsxDEV(Q,{dimColor:!0,children:[" - ",K.description]},void 0,!0,void 0,this)]},K.id,!0,void 0,this)),Z.length>J&&H1.jsxDEV(Q,{color:"gray",children:["...还有 ",Z.length-J," 个 Agent"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var u4=A(h(),1);function x4(){let{extraParams:$}=Z1(),{sendMessage:Z,loading:Y}=$1(),{bufferedMessage:J,clearBuffer:X}=vZ(),K=c4();u4.useEffect(()=>{if(!Y&&J.trim()){let W=[{type:"human",content:J}];X(),Z(W,{extraParams:$}).then(()=>{t1("Zen Code 完成任务")}).catch((O)=>{console.error("Failed to send buffered message:",O)})}},[Y,J,Z,$,X,K])}var W$=A(q(),1),d4=({value:$,onChange:Z,onSubmit:Y,loading:J,placeholder:X="输入消息...",commandHandler:K,skills:W=[],agents:O=[]})=>{x4();let{bufferedMessage:_,setBufferedMessage:G,clearBuffer:N}=vZ(),[z,F]=_1.useState($),L=_1.useRef(!1),w=j4({skills:W,maxSuggestions:5}),M=E4({agents:O,maxSuggestions:5});_1.useEffect(()=>{if($!==z)L.current=!0,F($)},[$]);let b=_1.useMemo(()=>z.startsWith("/"),[z]);_1.useEffect(()=>{if(!b)w.checkTrigger(z),M.checkTrigger(z)},[z,b]);let f=_1.useCallback((c)=>{if(L.current){L.current=!1;return}F(c),Z(c)},[Z]),k=_1.useCallback((c)=>{if(!c.trim())return;if(w.hide(),M.hide(),b){Y(c),F("");return}if(J)G(c),F("");else Y(c),F("")},[b,J,Y,G,w,M]),g=_1.useCallback(()=>{if(M.isActive){M.hide();return}if(w.isActive){w.hide();return}if(_)N();else F("")},[_,N,w.isActive,M.isActive]),p=_1.useCallback(()=>{if(!b||!K.commandSuggestions||K.commandSuggestions.length===0)return!1;let D=K.commandSuggestions[0],x=(D.displayText||D.command||"")+" ";return f(x),!0},[b,K.commandSuggestions,f]),o=_1.useCallback(()=>{if(!w.isActive)return!1;let c=w.complete(z);return f(c),w.hide(),!0},[w.isActive,z,f]),S=_1.useCallback(()=>{if(!M.isActive)return!1;let c=M.complete(z);return f(c),M.hide(),!0},[M.isActive,z,f]),t=_1.useMemo(()=>{if(J)return _?"按 Esc 清空缓冲区":"AI 响应中,Enter 将消息加入缓冲区";if(b)return"输入命令... (试试 /help,按 → 补全第一个建议)";if(M.isActive)return"按 → 补全 Agent";if(w.isActive)return"按 → 补全技能";return X},[J,_,b,M.isActive,w.isActive,X]);return W$.jsxDEV(U,{flexDirection:"column",children:[_&&W$.jsxDEV(U,{padding:1,children:W$.jsxDEV(Q,{color:"yellow",children:["\uD83D\uDCDD 缓冲区: ",_.slice(0,50),_.length>50?"...":""]},void 0,!0,void 0,this)},void 0,!1,void 0,this),W$.jsxDEV(K.CommandHintUI,{},void 0,!1,void 0,this),W$.jsxDEV(m4,{visible:M.state.visible,agents:M.state.filteredAgents,query:M.state.query},void 0,!1,void 0,this),W$.jsxDEV(p4,{visible:w.state.visible,skills:w.state.filteredSkills,query:w.state.query},void 0,!1,void 0,this),W$.jsxDEV(U,{paddingY:1,children:W$.jsxDEV(T1,{id:"global-input",value:z,onChange:f,onSubmit:k,onHotKey:(c,D)=>{if(D.escape)return g(),!1;if(D.rightArrow){if(M.isActive){if(S())return!1}if(w.isActive){if(o())return!1}if(p())return!1}return!0},placeholder:t},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};var XZ=A(q(),1),U0=kZ.memo(()=>{let{userInput:$,setUserInput:Z,loading:Y,renderMessages:J,sendMessage:X}=$1(),{extraParams:K,manager:W}=Z1(),{switchToHistory:O,switchToKnowledge:_,switchToSettings:G,switchToModelProvider:N,switchToAgent:z,switchToTask:F,switchToMcp:L,switchToProcess:w,closePanel:M}=h$(),{data:b=[]}=h4({manager:W}),{data:f=[]}=D4(),{startRalphLoop:k}=V4({loading:Y,renderMessages:J,sendMessage:X,setUserInput:Z,extraParams:K}),g=y4({extraParams:K,switchToHistory:O,switchToKnowledge:_,switchToSettings:G,switchToModelProvider:N,switchToAgent:z,switchToTask:F,switchToMcp:L,switchToProcess:w,closePanel:M,startRalphLoop:k}),p=kZ.useCallback(async(o)=>{if(!o)return;if(o.startsWith("/")){if(await g.executeCommand(o)){Z("");return}}await X([{type:"human",content:o}],{extraParams:K,metadata:d1}),t1("Zen Code 完成任务")},[g,Z]);return XZ.jsxDEV(U,{flexDirection:"column",paddingX:0,paddingY:0,borderColor:"grey",borderTop:!0,borderStyle:"single",borderLeft:!1,borderBottom:!1,borderRight:!1,children:[XZ.jsxDEV(g.CommandErrorUI,{},void 0,!1,void 0,this),XZ.jsxDEV(g.CommandSuccessUI,{},void 0,!1,void 0,this),XZ.jsxDEV(d4,{value:$,onChange:Z,onSubmit:p,loading:Y,commandHandler:{isCommandInput:g.isCommandInput,CommandHintUI:g.CommandHintUI,commandSuggestions:g.commandSuggestions},skills:b,agents:f},void 0,!1,void 0,this)]},void 0,!0,void 0,this)});U0.displayName="ChatInput";var f1=A(q(),1),L8=()=>{let{renderMessages:$,currentChatId:Z,getToolUIRender:Y,loading:J}=$1(),{compactMode:X}=Z1(),[K]=l4($,50),W=o4.useCallback((O)=>Y(O),[Y]);return f1.jsxDEV(U,{flexDirection:"column",flexGrow:1,paddingX:0,paddingY:0,children:[K.length===0&&f1.jsxDEV(z4,{},void 0,!1,void 0,this),K.length?X?f1.jsxDEV(_0,{renderMessages:K,startIndex:0,staticKey:Z,getToolUIRender:W,loading:J},Z,!1,void 0,this):f1.jsxDEV(Q4,{loading:J,renderMessages:K,startIndex:0,staticKey:Z},void 0,!1,void 0,this):null]},void 0,!0,void 0,this)},z0=()=>{let{hasPendingInteractions:$}=P1();return f1.jsxDEV(U,{flexDirection:"column",flexGrow:1,children:[f1.jsxDEV(m,{name:"ChatMessages",fallback:null,children:f1.jsxDEV(L8,{},void 0,!1,void 0,this)},void 0,!1,void 0,this),f1.jsxDEV(i4,{children:f1.jsxDEV(m,{name:"InteractionArea",fallback:null,children:$?f1.jsxDEV(U,{paddingX:0,paddingY:0,children:f1.jsxDEV(aZ,{},void 0,!1,void 0,this)},void 0,!1,void 0,this):f1.jsxDEV(U0,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)};z0.displayName="ChatMain";var p1=A(h(),1);var Q$=A(h(),1),r4=Q$.lazy(()=>import("./chunk-p1bn8p65.js").then(($)=>({default:$.default}))),n4=Q$.lazy(()=>import("./chunk-czbkc7pc.js").then(($)=>({default:$.default}))),a4=Q$.lazy(()=>import("./chunk-jn4j9rm3.js").then(($)=>({default:$.default}))),s4=Q$.lazy(()=>import("./chunk-f7d0m4h3.js").then(($)=>({default:$.default}))),t4=Q$.lazy(()=>import("./chunk-cqrb18vt.js").then(($)=>({default:$.default}))),e4=Q$.lazy(()=>import("./chunk-f4tc5awt.js").then(($)=>({default:$.default}))),$Y=Q$.lazy(()=>import("./chunk-pyw1vxnf.js").then(($)=>({default:$.default}))),ZY=Q$.lazy(()=>import("./chunk-ph818by4.js").then(($)=>({default:$.default})));var T=A(q(),1),H$=()=>T.jsxDEV(U,{paddingX:1,paddingY:1,children:T.jsxDEV(Q,{color:"grey",children:"Loading..."},void 0,!1,void 0,this)},void 0,!1,void 0,this),F$=($)=>T.jsxDEV(U,{paddingX:1,paddingY:1,children:[T.jsxDEV(Q,{color:"red",children:["✗ ",$," panel error"]},void 0,!0,void 0,this),T.jsxDEV(U,{marginTop:1,children:T.jsxDEV(Q,{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),N0=p1.memo(()=>{let{activeView:$,closePanel:Z,handleExecuteTask:Y}=h$();return T.jsxDEV(U,{flexGrow:1,flexDirection:"row",children:[$==="history"&&T.jsxDEV(p1.Suspense,{fallback:T.jsxDEV(H$,{},void 0,!1,void 0,this),children:T.jsxDEV(m,{name:"HistoryPanel",fallback:F$("History"),children:T.jsxDEV(r4,{onClose:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$==="knowledge"&&T.jsxDEV(p1.Suspense,{fallback:T.jsxDEV(H$,{},void 0,!1,void 0,this),children:T.jsxDEV(m,{name:"KnowledgePanel",fallback:F$("Knowledge"),children:T.jsxDEV(n4,{onClose:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$==="settings"&&T.jsxDEV(p1.Suspense,{fallback:T.jsxDEV(H$,{},void 0,!1,void 0,this),children:T.jsxDEV(m,{name:"SettingsPanel",fallback:F$("Settings"),children:T.jsxDEV(a4,{onClose:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$==="model-provider"&&T.jsxDEV(p1.Suspense,{fallback:T.jsxDEV(H$,{},void 0,!1,void 0,this),children:T.jsxDEV(m,{name:"ModelProviderPanel",fallback:F$("Model Provider"),children:T.jsxDEV(s4,{onClose:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$==="agent"&&T.jsxDEV(p1.Suspense,{fallback:T.jsxDEV(H$,{},void 0,!1,void 0,this),children:T.jsxDEV(m,{name:"AgentPanel",fallback:F$("Agent"),children:T.jsxDEV(t4,{onClose:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$==="task"&&T.jsxDEV(p1.Suspense,{fallback:T.jsxDEV(H$,{},void 0,!1,void 0,this),children:T.jsxDEV(m,{name:"TaskPanel",fallback:F$("Task"),children:T.jsxDEV(e4,{onClose:Z,onExecuteTask:Y},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$==="mcp"&&T.jsxDEV(p1.Suspense,{fallback:T.jsxDEV(H$,{},void 0,!1,void 0,this),children:T.jsxDEV(m,{name:"McpPanel",fallback:F$("MCP"),children:T.jsxDEV($Y,{onClose:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this),$==="process"&&T.jsxDEV(p1.Suspense,{fallback:T.jsxDEV(H$,{},void 0,!1,void 0,this),children:T.jsxDEV(m,{name:"ProcessPanel",fallback:F$("Process"),children:T.jsxDEV(ZY,{onClose:Z},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)});N0.displayName="LazyChatViewManager";var L$=A(h(),1);var YY=A(h(),1);var TZ=A(q(),1),XY=()=>{let{renderMessages:$}=$1(),Z=YY.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((W)=>W.type==="text")?.text||"";if(K.includes("load_mcp_tools"))try{let W=JSON.parse(K);if(W.status&&W.status.toolCount!==void 0)return W.status}catch(W){}}catch(X){}}return null},[$]);if(!Z||Z.toolCount===0)return null;return TZ.jsxDEV(U,{paddingX:1,children:[TZ.jsxDEV(Q,{color:"green",bold:!0,children:"MCP"},void 0,!1,void 0,this),TZ.jsxDEV(Q,{color:"cyan",children:[" ",Z.toolCount]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)};var m1=A(h(),1);function F0($){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 JY($){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 KY($){let[Z,Y]=m1.useState(0),J=m1.useRef(null);return m1.useEffect(()=>{if($)J.current=Date.now(),Y(0);else J.current=null,Y(0)},[$]),H0(()=>{if(J.current)Y(Date.now()-J.current)},$?1000:null),Z}function WY(){let[$,Z]=m1.useState({cpuPercent:0,memoryRSS:0,memoryHeapUsed:0,memoryHeapTotal:0}),Y=m1.useRef(process.cpuUsage()),J=m1.useRef(Date.now()),X=()=>{let K=Date.now(),W=process.cpuUsage(),O=process.memoryUsage(),_=K-J.current,G=W.user-Y.current.user,N=W.system-Y.current.system,F=(G+N)/1000/_*100;Z({cpuPercent:Math.min(100,Math.max(0,F)),memoryRSS:O.rss,memoryHeapUsed:O.heapUsed,memoryHeapTotal:O.heapTotal}),Y.current=W,J.current=K};return m1.useEffect(()=>{X()},[]),H0(X,2000),$}function QY($){if($<50)return"green";if($<80)return"yellow";return"red"}function _Y($,Z){if(Z===0)return"gray";let Y=$/Z*100;if(Y<50)return"green";if(Y<80)return"yellow";return"red"}var _$=A(q(),1),A8=()=>{let $=WY(),Z=QY($.cpuPercent),Y=_Y($.memoryHeapUsed,$.memoryHeapTotal);return _$.jsxDEV(U,{paddingX:1,width:"100%",children:_$.jsxDEV(U,{gap:2,children:[_$.jsxDEV(U,{children:[_$.jsxDEV(Q,{dimColor:!0,children:"CPU:"},void 0,!1,void 0,this),_$.jsxDEV(Q,{color:Z,children:[" ",$.cpuPercent.toFixed(0),"%"]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),_$.jsxDEV(U,{children:[_$.jsxDEV(Q,{dimColor:!0,children:"MEM:"},void 0,!1,void 0,this),_$.jsxDEV(Q,{color:Y,children:[F0($.memoryHeapUsed),"/",F0($.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)},OY=A8;var J1=A(q(),1);import w8 from"path";var M8=()=>{let{extraParams:$,compactMode:Z,showDetailedInfo:Y}=Z1(),{currentChatId:J,renderMessages:X}=$1(),{loading:K,stopGeneration:W}=$1(),O=process.env.YOLO_MODE==="true",[_,G]=L$.useState(0);L$.useEffect(()=>{let M=async()=>{let f=await UY.getProcessList();G(f.length)};M();let b=setInterval(M,2000);return()=>clearInterval(b)},[]);let N=L$.useCallback((M,b)=>{if(b.ctrl&&M==="c")process.exit()},[K,W]);S1(N);let z=KY(K),F=L$.default.useMemo(()=>{return w8.basename(process.cwd())},[]),w=(X?.length||0)>100;return J1.jsxDEV(U,{flexDirection:"column",width:"100%",children:[J1.jsxDEV(U,{paddingX:1,paddingY:0,justifyContent:"space-between",width:"100%",marginBottom:1,children:[J1.jsxDEV(U,{gap:1,children:[K&&J1.jsxDEV(Q,{color:"yellow",bold:!0,children:J1.jsxDEV(GY,{text:"LOADING"},void 0,!1,void 0,this)},void 0,!1,void 0,this),!K&&J1.jsxDEV(Q,{color:"magenta",bold:!0,children:"Zen Code"},void 0,!1,void 0,this),J1.jsxDEV(Q,{color:"cyan",bold:!0,children:[" ",$.model_id]},void 0,!0,void 0,this),J1.jsxDEV(Q,{color:"yellow",bold:!0,children:[" ","@",$.switch_command||"default"]},void 0,!0,void 0,this),!Z&&J1.jsxDEV(Q,{color:"blue",bold:!0,children:[" ","[FULL]"]},void 0,!0,void 0,this),O&&J1.jsxDEV(Q,{color:"red",bold:!0,children:[" ","YOLO"]},void 0,!0,void 0,this),J1.jsxDEV(XY,{},void 0,!1,void 0,this),_>0&&J1.jsxDEV(Q,{color:"magenta",bold:!0,children:[" ","● BG (",_,")"]},void 0,!0,void 0,this),w&&J1.jsxDEV(Q,{color:"red",bold:!0,children:[" ","/summary"]},void 0,!0,void 0,this),J1.jsxDEV(Q,{color:"green",bold:!0,children:X.length},void 0,!1,void 0,this),J1.jsxDEV(Q,{color:"blue",children:F},void 0,!1,void 0,this)]},void 0,!0,void 0,this),K&&J1.jsxDEV(U,{children:J1.jsxDEV(Q,{color:"yellow",children:JY(z)},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Y&&J1.jsxDEV(OY,{},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},zY=M8;var u=A(q(),1),q8=()=>{let{activeView:$}=h$();return u.jsxDEV(U,{flexDirection:"column",width:"100%",children:[u.jsxDEV(U,{flexGrow:1,flexDirection:"row",children:[u.jsxDEV(m,{name:"ChatMain",fallback:u.jsxDEV(Q,{color:"yellow",children:"Chat view unavailable"},void 0,!1,void 0,this),children:$==="chat"?u.jsxDEV(z0,{},void 0,!1,void 0,this):null},void 0,!1,void 0,this),u.jsxDEV(m,{name:"PanelView",fallback:u.jsxDEV(Q,{color:"yellow",children:"Panel unavailable"},void 0,!1,void 0,this),children:$!=="chat"?u.jsxDEV(N0,{},void 0,!1,void 0,this):null},void 0,!1,void 0,this)]},void 0,!0,void 0,this),u.jsxDEV(m,{name:"StatusBar",fallback:null,children:u.jsxDEV(zY,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},b8=()=>{return u.jsxDEV(m,{name:"Chat",children:u.jsxDEV(y2,{children:u.jsxDEV(q8,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},R8=()=>{return u.jsxDEV(m,{name:"AppRoot",children:u.jsxDEV(NY,{apiUrl:"http://127.0.0.1:8123",defaultAgent:"code",defaultHeaders:{},withCredentials:!1,showHistory:!1,showGraph:!1,onInitError:($,Z)=>{console.error($,Z)},fetch:j0,autoRestoreLastSession:!0,historyFilter:{metadata:{path:process.cwd()}},children:u.jsxDEV(m,{name:"TanStackQueryProvider",children:u.jsxDEV(R0,{children:u.jsxDEV(m,{name:"SettingsProvider",children:u.jsxDEV(FY,{get_allowed_models:E0,children:u.jsxDEV(m,{name:"ApprovalProvider",children:u.jsxDEV(HY,{children:u.jsxDEV(m,{name:"InteractionProvider",children:u.jsxDEV(QZ,{children:u.jsxDEV(b8,{},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},void 0,!1,void 0,this)},B8=()=>u.jsxDEV(R8,{},void 0,!1,void 0,this),L0=B8;var c1=A(q(),1),f8=({error:$})=>c1.jsxDEV(U,{flexDirection:"column",padding:2,borderStyle:"double",borderColor:"red",children:[c1.jsxDEV(Q,{color:"red",bold:!0,children:"✗ Application Crashed"},void 0,!1,void 0,this),c1.jsxDEV(U,{marginTop:1,children:c1.jsxDEV(Q,{color:"red",children:$.message},void 0,!1,void 0,this)},void 0,!1,void 0,this),c1.jsxDEV(U,{marginTop:1,children:c1.jsxDEV(Q,{color:"gray",children:["Stack: ",$.stack?.split(`
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
+
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
+ `+' 例如: 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=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
+ `);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}=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(`
328
333
  `).slice(0,3).join(`
329
- `)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),c1.jsxDEV(U,{marginTop:1,children:c1.jsxDEV(Q,{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{A0(c1.jsxDEV(L0,{},void 0,!1,void 0,this),{exitOnCtrlC:!1})}catch($){console.error("Critical rendering error:",$),A0(c1.jsxDEV(f8,{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:",$)});
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:",$)});