@cline/shared 0.0.67 → 0.0.68

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.
@@ -547,6 +547,7 @@ export declare const AgentResultSchema: z.ZodObject<{
547
547
  maxInputTokens: z.ZodOptional<z.ZodNumber>;
548
548
  capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
549
549
  images: "images";
550
+ video: "video";
550
551
  tools: "tools";
551
552
  streaming: "streaming";
552
553
  "prompt-cache": "prompt-cache";
@@ -819,6 +820,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
819
820
  maxInputTokens: z.ZodOptional<z.ZodNumber>;
820
821
  capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
821
822
  images: "images";
823
+ video: "video";
822
824
  tools: "tools";
823
825
  streaming: "streaming";
824
826
  "prompt-cache": "prompt-cache";
@@ -30,10 +30,11 @@ export type { ToolApprovalRequest, ToolApprovalResult, ToolCallRecord, ToolPolic
30
30
  export { ToolCallRecordSchema } from "./llms/tools";
31
31
  export { type BasicLogger, type BasicLogMetadata, noopBasicLogger, } from "./logging/logger";
32
32
  export * from "./mcp";
33
+ export { getErrorCode, getErrorMessage } from "./parse/error";
33
34
  export { normalizeJsonLikeStringsForSchema, parseJsonStream, safeJsonParse, safeJsonStringify, } from "./parse/json";
34
35
  export { decodeJwtPayload } from "./parse/jwt";
35
36
  export { type OmitUndefinedValues, omitUndefinedValues } from "./parse/object";
36
- export { getDefaultShell, getShellArgs, getShellKind, type ShellKind, } from "./parse/shell";
37
+ export { getDefaultShell, getShellArgs, getShellInvocation, getShellKind, type ShellInvocation, type ShellKind, } from "./parse/shell";
37
38
  export { maskSecret, sanitizeFileName, stripUtf8Bom, trimNonEmpty, truncateSplit, truncateStr, } from "./parse/string";
38
39
  export { formatHumanReadableDate, formatUptime } from "./parse/time";
39
40
  export { validateWithZod, zodToJsonSchema } from "./parse/zod";
@@ -1,15 +1,15 @@
1
- import{z as E}from"zod";import{z as Z}from"zod";import{z as V}from"zod";var En=["none","minimal","low","medium","high","xhigh","max"],kn=V.enum(En),An=kn.exclude(["none"]),s4=V.enum([...En,"default"]).nullable(),Hn=V.discriminatedUnion("type",[V.object({type:V.literal("toggle")}).strict(),V.object({type:V.literal("effort"),values:V.array(s4)}).strict(),V.object({type:V.literal("budget_tokens"),min:V.number().min(-1).optional(),max:V.number().min(0).optional()}).strict().refine((n)=>n.min===void 0||n.max===void 0||n.min<=n.max,{message:"Minimum reasoning budget cannot exceed maximum",path:["min"]})]);var Ef=Z.enum(["default","openai-responses","r1"]),z4={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},Af=Z.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),If=Z.enum(["active","preview","deprecated","legacy"]),$f=Z.object({input:Z.number().optional(),output:Z.number().optional(),cacheWrite:Z.number().optional(),cacheRead:Z.number().optional()}),Df=Z.object({maxBudget:Z.number().optional(),outputPrice:Z.number().optional(),thinkingLevel:Z.enum(["low","high"]).optional()}),Yf=Z.object({reasoningDefaultOn:Z.boolean().optional()}).catchall(Z.unknown()),In=Z.object({id:Z.string(),name:Z.string().optional(),description:Z.string().optional(),maxTokens:Z.number().optional(),contextWindow:Z.number().optional(),maxInputTokens:Z.number().optional(),capabilities:Z.array(Af).optional(),reasoningOptions:Z.array(Hn).optional(),apiFormat:Ef.optional(),systemRole:Z.enum(["system","developer"]).optional(),temperature:Z.number().optional(),pricing:$f.optional(),thinkingConfig:Df.optional(),status:If.optional(),deprecationNotice:Z.string().optional(),replacedBy:Z.string().optional(),releaseDate:Z.string().optional(),deprecationDate:Z.string().optional(),family:Z.string().optional(),metadata:Yf.optional()});import{z as O}from"zod";var Ln=O.object({id:O.string(),name:O.string(),input:O.unknown(),output:O.unknown(),error:O.string().optional(),durationMs:O.number(),startedAt:O.date(),endedAt:O.date()});var p4=E.enum(["completed","max_iterations","aborted","mistake_limit","error"]),i4=E.object({inputTokens:E.number(),outputTokens:E.number(),cacheReadTokens:E.number().optional(),cacheWriteTokens:E.number().optional(),totalCost:E.number().optional()}),s0=E.object({text:E.string(),usage:i4,messages:E.array(E.custom()),toolCalls:E.array(Ln),iterations:E.number(),finishReason:p4,model:E.object({id:E.string(),provider:E.string(),info:In.optional()}),startedAt:E.date(),endedAt:E.date(),durationMs:E.number()}),z0=E.object({sessionId:E.string().optional(),providerId:E.string(),modelId:E.string(),apiKey:E.string().optional(),baseUrl:E.string().url().optional(),headers:E.record(E.string(),E.string()).optional(),knownModels:E.record(E.string(),In).optional(),providerConfig:E.unknown().optional(),initialMessages:E.array(E.custom()).optional(),systemPrompt:E.string(),tools:E.array(E.custom()),maxIterations:E.number().positive().optional(),maxParallelToolCalls:E.number().int().positive().default(8),maxTokensPerTurn:E.number().positive().optional(),temperature:E.number().nonnegative().optional(),apiTimeoutMs:E.number().positive().default(180000),userFileContentLoader:E.function().input([E.string()]).output(E.promise(E.string())).optional(),toolContextMetadata:E.record(E.string(),E.unknown()).optional(),execution:E.object({maxConsecutiveMistakes:E.number().int().positive().optional(),reminderAfterIterations:E.number().nonnegative().optional(),reminderText:E.string().optional(),loopDetection:E.union([E.literal(!1),E.object({softThreshold:E.number().int().positive().optional(),hardThreshold:E.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:An.optional(),thinkingBudgetTokens:E.number().positive().optional(),thinking:E.boolean().optional(),onEvent:E.function().input([E.custom()]).output(E.void()).optional(),hooks:E.custom().optional(),parentAgentId:E.string().optional(),extensions:E.array(E.custom()).optional(),hookErrorMode:E.enum(["ignore","throw"]).default("ignore"),toolPolicies:E.record(E.string(),E.object({enabled:E.boolean().optional(),autoApprove:E.boolean().optional()})).optional(),requestToolApproval:E.function().input([E.object({sessionId:E.string(),agentId:E.string(),conversationId:E.string(),iteration:E.number(),toolCallId:E.string(),toolName:E.string(),input:E.unknown(),policy:E.object({enabled:E.boolean().optional(),autoApprove:E.boolean().optional()}).default({})})]).output(E.union([E.object({approved:E.boolean(),reason:E.string().optional()}),E.promise(E.object({approved:E.boolean(),reason:E.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:E.function().input([E.object({iteration:E.number().int().positive(),consecutiveMistakes:E.number().int().positive(),maxConsecutiveMistakes:E.number().int().positive(),reason:E.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:E.string().optional()})]).output(E.union([E.object({action:E.literal("continue"),guidance:E.string().optional()}),E.object({action:E.literal("stop"),reason:E.string().optional()}),E.promise(E.union([E.object({action:E.literal("continue"),guidance:E.string().optional()}),E.object({action:E.literal("stop"),reason:E.string().optional()})]))])).optional(),logger:E.custom().optional(),extensionContext:E.custom().optional(),abortSignal:E.custom().optional()});import{z as b}from"zod";var Mf=b.enum(["connector.started","connector.stopping","session.authorize","message.received","message.denied","message.completed","message.failed","session.started","session.reused","session.reset","schedule.delivery.started","schedule.delivery.sent","schedule.delivery.failed"]),Gf=b.object({id:b.string().optional(),label:b.string().optional(),role:b.string().optional(),participantKey:b.string().optional(),participantLabel:b.string().optional(),platformUserId:b.string().optional(),metadata:b.record(b.string(),b.unknown()).optional()}),yf=b.object({source:b.string(),sourceEvent:b.string(),threadId:b.string(),channelId:b.string(),isDM:b.boolean(),sessionId:b.string().optional(),workspaceRoot:b.string().optional(),metadata:b.record(b.string(),b.unknown()).optional()}),a4=b.object({actor:Gf,context:yf,payload:b.record(b.string(),b.unknown()).optional()}),e4=b.object({action:b.enum(["allow","deny"]).default("allow"),message:b.string().optional(),reason:b.string().optional(),metadata:b.record(b.string(),b.unknown()).optional()}),t4=b.object({adapter:b.string(),botUserName:b.string().optional(),event:Mf,payload:b.record(b.string(),b.unknown()),ts:b.string()});var Xf=[{name:"discord",description:"Discord interactions and gateway bridge backed by RPC runtime sessions"},{name:"gchat",description:"Google Chat webhook bridge backed by RPC runtime sessions"},{name:"linear",description:"Linear webhook bridge backed by RPC runtime sessions"},{name:"slack",description:"Slack webhook/socket bridge backed by RPC runtime sessions"},{name:"telegram",description:"Bridge Telegram bot messages into RPC chat sessions"},{name:"whatsapp",description:"Bridge WhatsApp webhook messages into RPC chat sessions"}];function bf(){return Xf.map((n)=>({...n}))}function n6(n,f){let _=n.includeWhen;if(!_)return!0;let w=f[_.flag]??"";if(_.equals!==void 0&&w!==_.equals)return!1;if(_.notEquals!==void 0&&w===_.notEquals)return!1;return!0}function f6(n=qf){let f=new Set(bf().map((_)=>_.name));return n.filter((_)=>f.has(_.id)).map((_)=>({id:_.id,name:_.name,type:_.type,hint:_.hint,fields:_.fields.map((w)=>({flag:w.flag,label:w.label,placeholder:w.placeholder,required:w.required,help:w.help,initialValue:w.initialValue,options:w.options,includeWhen:w.includeWhen})),security:_.security?{prompt:_.security.prompt,fields:_.security.fields.map((w)=>({key:w.key,label:w.label,placeholder:w.placeholder,help:w.help,requiredMessage:w.requiredMessage}))}:void 0}))}function _6(n){return/^\d+$/.test(n)?void 0:"Telegram user ID must contain digits only"}function d6(n){return/^T[A-Z0-9]+$/.test(n)?void 0:"Slack workspace ID must start with T and contain uppercase letters or digits only"}function w6(n){return/^[UW][A-Z0-9]+$/.test(n)?void 0:"Slack member ID must start with U or W and contain uppercase letters or digits only"}var qf=[{id:"telegram",name:"Telegram",type:"polling",hint:"Easiest to set up. No public URL needed.",derivedReconnectFlags:["-m","--bot-username"],fields:[{flag:"-k",aliases:["--bot-token"],label:"Bot token",placeholder:"7123456789:AAH...",required:!0,help:["Open Telegram and start a chat with @BotFather","Send /newbot and follow the prompts","BotFather gives you this after creating the bot","It looks like 7123456789:AAHxxx..."]}],security:{prompt:"By default, anyone who finds your bot can message it and run tasks on your machine. Restrict access to your Telegram user ID?",fields:[{key:"userId",label:"Your Telegram user ID",placeholder:"123456789",help:["Message @userinfobot on Telegram","It will reply with your numeric user ID"],requiredMessage:"User ID is required to restrict access",validate:_6}],argumentFlags:["--allowed-user-id","--hook-command"],buildArgs:({userId:n})=>["--allowed-user-id",n??""]}},{id:"slack",name:"Slack",type:"hybrid",hint:"Public URL for webhook mode; leave blank for socket mode.",fields:[{flag:"--bot-token",label:"Bot token",placeholder:"xoxb-...",required:!0,help:["Go to api.slack.com/apps and create a new app","Add Bot Token Scopes: chat:write, app_mentions:read, channels:history, channels:read, im:history, im:read, im:write, users:read","Install to workspace and copy the Bot Token"]},{flag:"--base-url",label:"Public base URL",placeholder:"leave blank for socket mode",help:["Enter a publicly accessible URL for webhook mode","Leave blank to use Slack socket mode instead"]},{flag:"--signing-secret",label:"Signing secret",required:!0,help:["Found in your app's Basic Information page"],includeWhen:{flag:"--base-url",notEquals:""}},{flag:"--app-token",label:"App-level token",placeholder:"xapp-...",required:!0,help:["Enable Socket Mode in the Slack app","Generate an app-level token with the connections:write scope"],includeWhen:{flag:"--base-url",equals:""}}],security:{prompt:"Restrict which Slack users can interact with the bot?",fields:[{key:"teamId",label:"Allowed Slack workspace ID",placeholder:"T01ABC123",help:["Open your Slack workspace URL in a browser","The workspace ID is the segment after /client/, for example T01ABC123"],requiredMessage:"Workspace ID is required to restrict access",validate:d6},{key:"userId",label:"Allowed Slack member ID",placeholder:"U01ABC123",help:["Click a user's name in Slack, then View full profile","Click ... and Copy member ID"],requiredMessage:"Member ID is required to restrict access",validate:w6}],argumentFlags:["--hook-command"],buildArgs:({teamId:n,userId:f})=>["--hook-command",`jq -r ".payload.actor.participantKey" | grep -qx "slack:team:${n}:user:${f}" && echo '{"action":"allow"}' || echo '{"action":"deny"}'`]}},{id:"discord",name:"Discord",type:"webhook",hint:"Requires a Discord app and public URL.",fields:[{flag:"--application-id",aliases:["--app-id"],label:"Application ID",required:!0,help:["Go to discord.com/developers/applications","Create a new app, copy the Application ID"]},{flag:"--bot-token",aliases:["--token"],label:"Bot token",required:!0,help:["Go to Bot section, create a bot, copy the token"]},{flag:"--public-key",label:"Public key",required:!0,help:["Found in General Information of your app"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0,help:["Base URL for the connector","For Discord, set the Interactions Endpoint URL to <base-url>/api/webhooks/discord"]}]},{id:"whatsapp",name:"WhatsApp",type:"webhook",hint:"Requires Meta developer account and public URL.",fields:[{flag:"--phone-number-id",label:"Phone number ID",required:!0,help:["From your WhatsApp Business account in Meta Developer portal"]},{flag:"--access-token",label:"Access token",required:!0,help:["Generate a permanent token in Meta Developer portal"]},{flag:"--app-secret",label:"App secret",required:!0,help:["Found in App Settings > Basic"]},{flag:"--verify-token",label:"Webhook verify token",placeholder:"my-verify-token",required:!0,help:["Any string you choose, used to verify webhook setup"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"gchat",name:"Google Chat",type:"webhook",hint:"Requires Google Cloud project and public URL.",fields:[{flag:"--credentials-json",label:"Service account credentials JSON",required:!0,help:["Create a service account in Google Cloud Console","Download the credentials JSON file","Paste the JSON content here"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"linear",name:"Linear",type:"webhook",hint:"React to Linear issues and comments.",fields:[{flag:"--api-key",label:"API key",required:!0,help:["Go to Linear Settings > API > Personal API keys"]},{flag:"--webhook-secret",label:"Webhook signing secret",required:!0,help:["Go to Settings > API > Webhooks, create one","Copy the signing secret"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]}];var B6=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],R6=new Set(B6);function Hf(n,f){return n.name||`extension_${String(f).padStart(4,"0")}`}function Zf(n){return Array.isArray(n)&&n.every((f)=>typeof f==="string")}function kf(n){if(!Array.isArray(n))return;let f=n.filter((_)=>typeof _==="string").map((_)=>_.trim()).filter((_)=>_.length>0);return f.length>0?f:void 0}function Lf(n){let f=kf(n.providerIds),_=kf(n.modelIds);return{...n,...f?{providerIds:f}:{},..._?{modelIds:_}:{}}}function E6(n,f){let _=Hf(n,f),w=n.manifest;if(!w||typeof w!=="object")throw Error(`Invalid manifest for extension "${_}": manifest is required`);if(!Array.isArray(w.capabilities)||w.capabilities.length===0)throw Error(`Invalid manifest for extension "${_}": capabilities must be a non-empty array`);let B=new Set;for(let D of w.capabilities){if(!R6.has(D))throw Error(`Invalid manifest for extension "${_}": unsupported capability "${String(D)}"`);B.add(D)}if(Object.hasOwn(w,"providerIds")&&!Zf(w.providerIds))throw Error(`Invalid manifest for extension "${_}": providerIds must be a string array when provided`);if(Object.hasOwn(w,"modelIds")&&!Zf(w.modelIds))throw Error(`Invalid manifest for extension "${_}": modelIds must be a string array when provided`);let I=B.has("hooks");if(n.hooks!==void 0&&!I)throw Error(`Invalid manifest for extension "${_}": runtime hooks require the "hooks" capability`);return{capabilities:B,raw:Lf(w)}}function A6(n,f){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${f}": expected object`);let _=typeof n.eventType==="string"?n.eventType.trim():"",w=typeof n.source==="string"?n.source.trim():"";if(!_)throw Error(`Invalid automation event contribution for extension "${f}": eventType is required`);if(!w)throw Error(`Invalid automation event contribution for extension "${f}": source is required`);return{...n,eventType:_,source:w,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class Jn{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,f)=>({extension:n,order:f,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:E6(n.extension,n.order)})),this.phase="setup"}async setup(n={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let f,_=[];for(let w of this.normalized){let{extension:B}=w;if(B.disabled)continue;let I=Hf(B,w.order),A={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},D={registerTool:(Y)=>A.tools.push(Y),registerCommand:(Y)=>A.commands.push(Y),registerRule:(Y)=>{if(!w.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${I}": registerRule requires the "rules" capability`);A.rules.push(Y)},registerMessageBuilder:(Y)=>A.messageBuilder.push(Y),registerProvider:(Y)=>A.providers.push(Y),registerAutomationEventType:(Y)=>{if(!w.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${I}": registerAutomationEventType requires the "automationEvents" capability`);A.automationEventTypes.push(A6(Y,I))},registerMcpServer:(Y)=>{if(!w.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${I}": registerMcpServer requires the "mcp" capability`);A.mcpServers.push({...Y,metadata:{...Y.metadata??{},source:"plugin",plugin:I}})}},y=w.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await B.setup?.(D,y),_.push(A)}catch(Y){if(n.tolerateSetupErrors!==!0)throw Y;f??=Y}}if(f&&n.tolerateSetupErrors!==!0)throw f;for(let w of _)this.registry.tools.push(...w.tools),this.registry.commands.push(...w.commands),this.registry.rules.push(...w.rules),this.registry.messageBuilder.push(...w.messageBuilder),this.registry.providers.push(...w.providers),this.registry.automationEventTypes.push(...w.automationEventTypes),this.registry.mcpServers.push(...w.mcpServers);if(this.phase="activate",f)throw f}activate(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase==="setup")throw Error("Contribution registry setup must complete before activation");if(this.phase!=="activate")return;this.phase="run"}async initialize(n={}){this.resolve(),this.validate();try{await this.setup(n)}finally{if(this.phase==="activate")this.activate()}}isActivated(){return this.phase==="run"}getRegistrySnapshot(){return{tools:[...this.registry.tools],commands:[...this.registry.commands],rules:[...this.registry.rules],messageBuilder:[...this.registry.messageBuilder],providers:[...this.registry.providers],automationEventTypes:[...this.registry.automationEventTypes],mcpServers:[...this.registry.mcpServers]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getRegisteredMcpServers(){return[...this.registry.mcpServers]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,f)=>n.order-f.order).map(({extension:n})=>n)}}function I6(n={}){return new Jn(n)}var $6=[".js",".ts"];var Jf={CLINE_PASS:"ext-cline-pass"},D6={[Jf.CLINE_PASS]:!1},Y6=Object.values(Jf);import{z as $}from"zod";var of=$.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),h=$.record($.string(),$.string()),M6=$.object({toolName:$.string(),parameters:h}),G6=$.object({toolName:$.string(),parameters:h,result:$.string(),success:$.boolean(),executionTimeMs:$.number()}),y6=$.object({prompt:$.string(),attachments:$.array($.string())}),X6=$.object({taskMetadata:h}),b6=$.object({taskMetadata:h,previousState:h}),q6=$.object({taskMetadata:h}),Z6=$.object({taskMetadata:h}),k6=$.object({taskId:$.string(),ulid:$.string(),contextSize:$.number(),compactionStrategy:$.string(),previousApiReqIndex:$.number(),tokensIn:$.number(),tokensOut:$.number(),tokensInCache:$.number(),tokensOutCache:$.number(),deletedRangeStart:$.number(),deletedRangeEnd:$.number(),contextJsonPath:$.string(),contextRawPath:$.string()}),Kf=$.object({clineVersion:$.string(),hookName:of,timestamp:$.string(),taskId:$.string(),sessionContext:$.object({rootSessionId:$.string().optional(),hookLogPath:$.string().optional()}).optional(),workspaceRoots:$.array($.string()),workspaceInfo:$.custom().optional(),userId:$.string(),agent_id:$.string(),parent_agent_id:$.string().nullable(),iteration:$.number().optional(),reason:$.string().optional(),tool_call:$.object({id:$.string(),name:$.string(),input:$.unknown()}).optional(),tool_result:$.custom().optional(),turn:$.unknown().optional(),error:$.object({name:$.string(),message:$.string(),stack:$.string().optional()}).optional(),preToolUse:M6.optional(),postToolUse:G6.optional(),userPromptSubmit:y6.optional(),taskStart:X6.optional(),taskResume:b6.optional(),taskCancel:q6.optional(),taskComplete:Z6.optional(),preCompact:k6.optional()}).passthrough();function H6(n){let f=Kf.safeParse(n);if(!f.success)return;return f.data}var E1="v1",A1="v1",I1="v1",$1=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function $n(n){let f=/^v(\d+)$/.exec(n?.trim()??"");if(!f)return;return Number.parseInt(f[1]??"",10)}function D1(n,f="v1"){let _=$n(n.protocolVersion),w=$n(f);if(_===void 0||w===void 0)return{compatible:!1,reason:"missing_protocol"};let B=$n(n.minClientProtocolVersion)??_,I=$n(n.maxClientProtocolVersion)??_;return w>=B&&w<=I?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var Y1="0",M1="__hubScheduleRunAt",Tf=["act","plan","yolo"];function L6(n){return Tf.some((f)=>f===n)}function G1(n,f){if(!n||!Object.hasOwn(n,"mode"))return f;let _=n.mode;if(L6(_))return _;throw Error(`mode must be one of: ${Tf.join(", ")}`)}var J6=30000,y1=5000;function o6(n){switch(n){case"run.start":case"session.send_input":return null;default:return J6}}function X1(n,f){return f===void 0?o6(n):f}var K6=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],T6=new Set(K6);function b1(n){return typeof n==="string"&&T6.has(n)}var q1="tool_executor.",Z1="custom_tool.",k1="hook.",H1="compaction.compact",L1="checkpoint.create",J1="mistake_limit.decide",o1="user_instructions.snapshot";function on(n,f){return`<file_content path="${n}">
1
+ import{z as E}from"zod";import{z as k}from"zod";import{z as K}from"zod";var En=["none","minimal","low","medium","high","xhigh","max"],Zn=K.enum(En),An=Zn.exclude(["none"]),z4=K.enum([...En,"default"]).nullable(),Hn=K.discriminatedUnion("type",[K.object({type:K.literal("toggle")}).strict(),K.object({type:K.literal("effort"),values:K.array(z4)}).strict(),K.object({type:K.literal("budget_tokens"),min:K.number().min(-1).optional(),max:K.number().min(0).optional()}).strict().refine((n)=>n.min===void 0||n.max===void 0||n.min<=n.max,{message:"Minimum reasoning budget cannot exceed maximum",path:["min"]})]);var Af=k.enum(["default","openai-responses","r1"]),p4={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},If=k.enum(["images","video","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),$f=k.enum(["active","preview","deprecated","legacy"]),Df=k.object({input:k.number().optional(),output:k.number().optional(),cacheWrite:k.number().optional(),cacheRead:k.number().optional()}),Yf=k.object({maxBudget:k.number().optional(),outputPrice:k.number().optional(),thinkingLevel:k.enum(["low","high"]).optional()}),Mf=k.object({reasoningDefaultOn:k.boolean().optional()}).catchall(k.unknown()),In=k.object({id:k.string(),name:k.string().optional(),description:k.string().optional(),maxTokens:k.number().optional(),contextWindow:k.number().optional(),maxInputTokens:k.number().optional(),capabilities:k.array(If).optional(),reasoningOptions:k.array(Hn).optional(),apiFormat:Af.optional(),systemRole:k.enum(["system","developer"]).optional(),temperature:k.number().optional(),pricing:Df.optional(),thinkingConfig:Yf.optional(),status:$f.optional(),deprecationNotice:k.string().optional(),replacedBy:k.string().optional(),releaseDate:k.string().optional(),deprecationDate:k.string().optional(),family:k.string().optional(),metadata:Mf.optional()});import{z as g}from"zod";var on=g.object({id:g.string(),name:g.string(),input:g.unknown(),output:g.unknown(),error:g.string().optional(),durationMs:g.number(),startedAt:g.date(),endedAt:g.date()});var i4=E.enum(["completed","max_iterations","aborted","mistake_limit","error"]),a4=E.object({inputTokens:E.number(),outputTokens:E.number(),cacheReadTokens:E.number().optional(),cacheWriteTokens:E.number().optional(),totalCost:E.number().optional()}),i0=E.object({text:E.string(),usage:a4,messages:E.array(E.custom()),toolCalls:E.array(on),iterations:E.number(),finishReason:i4,model:E.object({id:E.string(),provider:E.string(),info:In.optional()}),startedAt:E.date(),endedAt:E.date(),durationMs:E.number()}),a0=E.object({sessionId:E.string().optional(),providerId:E.string(),modelId:E.string(),apiKey:E.string().optional(),baseUrl:E.string().url().optional(),headers:E.record(E.string(),E.string()).optional(),knownModels:E.record(E.string(),In).optional(),providerConfig:E.unknown().optional(),initialMessages:E.array(E.custom()).optional(),systemPrompt:E.string(),tools:E.array(E.custom()),maxIterations:E.number().positive().optional(),maxParallelToolCalls:E.number().int().positive().default(8),maxTokensPerTurn:E.number().positive().optional(),temperature:E.number().nonnegative().optional(),apiTimeoutMs:E.number().positive().default(180000),userFileContentLoader:E.function().input([E.string()]).output(E.promise(E.string())).optional(),toolContextMetadata:E.record(E.string(),E.unknown()).optional(),execution:E.object({maxConsecutiveMistakes:E.number().int().positive().optional(),reminderAfterIterations:E.number().nonnegative().optional(),reminderText:E.string().optional(),loopDetection:E.union([E.literal(!1),E.object({softThreshold:E.number().int().positive().optional(),hardThreshold:E.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:An.optional(),thinkingBudgetTokens:E.number().positive().optional(),thinking:E.boolean().optional(),onEvent:E.function().input([E.custom()]).output(E.void()).optional(),hooks:E.custom().optional(),parentAgentId:E.string().optional(),extensions:E.array(E.custom()).optional(),hookErrorMode:E.enum(["ignore","throw"]).default("ignore"),toolPolicies:E.record(E.string(),E.object({enabled:E.boolean().optional(),autoApprove:E.boolean().optional()})).optional(),requestToolApproval:E.function().input([E.object({sessionId:E.string(),agentId:E.string(),conversationId:E.string(),iteration:E.number(),toolCallId:E.string(),toolName:E.string(),input:E.unknown(),policy:E.object({enabled:E.boolean().optional(),autoApprove:E.boolean().optional()}).default({})})]).output(E.union([E.object({approved:E.boolean(),reason:E.string().optional()}),E.promise(E.object({approved:E.boolean(),reason:E.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:E.function().input([E.object({iteration:E.number().int().positive(),consecutiveMistakes:E.number().int().positive(),maxConsecutiveMistakes:E.number().int().positive(),reason:E.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:E.string().optional()})]).output(E.union([E.object({action:E.literal("continue"),guidance:E.string().optional()}),E.object({action:E.literal("stop"),reason:E.string().optional()}),E.promise(E.union([E.object({action:E.literal("continue"),guidance:E.string().optional()}),E.object({action:E.literal("stop"),reason:E.string().optional()})]))])).optional(),logger:E.custom().optional(),extensionContext:E.custom().optional(),abortSignal:E.custom().optional()});import{z as b}from"zod";var Gf=b.enum(["connector.started","connector.stopping","session.authorize","message.received","message.denied","message.completed","message.failed","session.started","session.reused","session.reset","schedule.delivery.started","schedule.delivery.sent","schedule.delivery.failed"]),yf=b.object({id:b.string().optional(),label:b.string().optional(),role:b.string().optional(),participantKey:b.string().optional(),participantLabel:b.string().optional(),platformUserId:b.string().optional(),metadata:b.record(b.string(),b.unknown()).optional()}),Xf=b.object({source:b.string(),sourceEvent:b.string(),threadId:b.string(),channelId:b.string(),isDM:b.boolean(),sessionId:b.string().optional(),workspaceRoot:b.string().optional(),metadata:b.record(b.string(),b.unknown()).optional()}),e4=b.object({actor:yf,context:Xf,payload:b.record(b.string(),b.unknown()).optional()}),t4=b.object({action:b.enum(["allow","deny"]).default("allow"),message:b.string().optional(),reason:b.string().optional(),metadata:b.record(b.string(),b.unknown()).optional()}),n6=b.object({adapter:b.string(),botUserName:b.string().optional(),event:Gf,payload:b.record(b.string(),b.unknown()),ts:b.string()});var bf=[{name:"discord",description:"Discord interactions and gateway bridge backed by RPC runtime sessions"},{name:"gchat",description:"Google Chat webhook bridge backed by RPC runtime sessions"},{name:"linear",description:"Linear webhook bridge backed by RPC runtime sessions"},{name:"slack",description:"Slack webhook/socket bridge backed by RPC runtime sessions"},{name:"telegram",description:"Bridge Telegram bot messages into RPC chat sessions"},{name:"whatsapp",description:"Bridge WhatsApp webhook messages into RPC chat sessions"}];function qf(){return bf.map((n)=>({...n}))}function f6(n,f){let _=n.includeWhen;if(!_)return!0;let B=f[_.flag]??"";if(_.equals!==void 0&&B!==_.equals)return!1;if(_.notEquals!==void 0&&B===_.notEquals)return!1;return!0}function _6(n=kf){let f=new Set(qf().map((_)=>_.name));return n.filter((_)=>f.has(_.id)).map((_)=>({id:_.id,name:_.name,type:_.type,hint:_.hint,fields:_.fields.map((B)=>({flag:B.flag,label:B.label,placeholder:B.placeholder,required:B.required,help:B.help,initialValue:B.initialValue,options:B.options,includeWhen:B.includeWhen})),security:_.security?{prompt:_.security.prompt,fields:_.security.fields.map((B)=>({key:B.key,label:B.label,placeholder:B.placeholder,help:B.help,requiredMessage:B.requiredMessage}))}:void 0}))}function w6(n){return/^\d+$/.test(n)?void 0:"Telegram user ID must contain digits only"}function B6(n){return/^T[A-Z0-9]+$/.test(n)?void 0:"Slack workspace ID must start with T and contain uppercase letters or digits only"}function d6(n){return/^[UW][A-Z0-9]+$/.test(n)?void 0:"Slack member ID must start with U or W and contain uppercase letters or digits only"}var kf=[{id:"telegram",name:"Telegram",type:"polling",hint:"Easiest to set up. No public URL needed.",derivedReconnectFlags:["-m","--bot-username"],fields:[{flag:"-k",aliases:["--bot-token"],label:"Bot token",placeholder:"7123456789:AAH...",required:!0,help:["Open Telegram and start a chat with @BotFather","Send /newbot and follow the prompts","BotFather gives you this after creating the bot","It looks like 7123456789:AAHxxx..."]}],security:{prompt:"By default, anyone who finds your bot can message it and run tasks on your machine. Restrict access to your Telegram user ID?",fields:[{key:"userId",label:"Your Telegram user ID",placeholder:"123456789",help:["Message @userinfobot on Telegram","It will reply with your numeric user ID"],requiredMessage:"User ID is required to restrict access",validate:w6}],argumentFlags:["--allowed-user-id","--hook-command"],buildArgs:({userId:n})=>["--allowed-user-id",n??""]}},{id:"slack",name:"Slack",type:"hybrid",hint:"Public URL for webhook mode; leave blank for socket mode.",fields:[{flag:"--bot-token",label:"Bot token",placeholder:"xoxb-...",required:!0,help:["Go to api.slack.com/apps and create a new app","Add Bot Token Scopes: chat:write, app_mentions:read, channels:history, channels:read, im:history, im:read, im:write, users:read","Install to workspace and copy the Bot Token"]},{flag:"--base-url",label:"Public base URL",placeholder:"leave blank for socket mode",help:["Enter a publicly accessible URL for webhook mode","Leave blank to use Slack socket mode instead"]},{flag:"--signing-secret",label:"Signing secret",required:!0,help:["Found in your app's Basic Information page"],includeWhen:{flag:"--base-url",notEquals:""}},{flag:"--app-token",label:"App-level token",placeholder:"xapp-...",required:!0,help:["Enable Socket Mode in the Slack app","Generate an app-level token with the connections:write scope"],includeWhen:{flag:"--base-url",equals:""}}],security:{prompt:"Restrict which Slack users can interact with the bot?",fields:[{key:"teamId",label:"Allowed Slack workspace ID",placeholder:"T01ABC123",help:["Open your Slack workspace URL in a browser","The workspace ID is the segment after /client/, for example T01ABC123"],requiredMessage:"Workspace ID is required to restrict access",validate:B6},{key:"userId",label:"Allowed Slack member ID",placeholder:"U01ABC123",help:["Click a user's name in Slack, then View full profile","Click ... and Copy member ID"],requiredMessage:"Member ID is required to restrict access",validate:d6}],argumentFlags:["--hook-command"],buildArgs:({teamId:n,userId:f})=>["--hook-command",`jq -r ".payload.actor.participantKey" | grep -qx "slack:team:${n}:user:${f}" && echo '{"action":"allow"}' || echo '{"action":"deny"}'`]}},{id:"discord",name:"Discord",type:"webhook",hint:"Requires a Discord app and public URL.",fields:[{flag:"--application-id",aliases:["--app-id"],label:"Application ID",required:!0,help:["Go to discord.com/developers/applications","Create a new app, copy the Application ID"]},{flag:"--bot-token",aliases:["--token"],label:"Bot token",required:!0,help:["Go to Bot section, create a bot, copy the token"]},{flag:"--public-key",label:"Public key",required:!0,help:["Found in General Information of your app"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0,help:["Base URL for the connector","For Discord, set the Interactions Endpoint URL to <base-url>/api/webhooks/discord"]}]},{id:"whatsapp",name:"WhatsApp",type:"webhook",hint:"Requires Meta developer account and public URL.",fields:[{flag:"--phone-number-id",label:"Phone number ID",required:!0,help:["From your WhatsApp Business account in Meta Developer portal"]},{flag:"--access-token",label:"Access token",required:!0,help:["Generate a permanent token in Meta Developer portal"]},{flag:"--app-secret",label:"App secret",required:!0,help:["Found in App Settings > Basic"]},{flag:"--verify-token",label:"Webhook verify token",placeholder:"my-verify-token",required:!0,help:["Any string you choose, used to verify webhook setup"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"gchat",name:"Google Chat",type:"webhook",hint:"Requires Google Cloud project and public URL.",fields:[{flag:"--credentials-json",label:"Service account credentials JSON",required:!0,help:["Create a service account in Google Cloud Console","Download the credentials JSON file","Paste the JSON content here"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"linear",name:"Linear",type:"webhook",hint:"React to Linear issues and comments.",fields:[{flag:"--api-key",label:"API key",required:!0,help:["Go to Linear Settings > API > Personal API keys"]},{flag:"--webhook-secret",label:"Webhook signing secret",required:!0,help:["Go to Settings > API > Webhooks, create one","Copy the signing secret"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]}];var R6=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],E6=new Set(R6);function of(n,f){return n.name||`extension_${String(f).padStart(4,"0")}`}function Zf(n){return Array.isArray(n)&&n.every((f)=>typeof f==="string")}function Hf(n){if(!Array.isArray(n))return;let f=n.filter((_)=>typeof _==="string").map((_)=>_.trim()).filter((_)=>_.length>0);return f.length>0?f:void 0}function Lf(n){let f=Hf(n.providerIds),_=Hf(n.modelIds);return{...n,...f?{providerIds:f}:{},..._?{modelIds:_}:{}}}function A6(n,f){let _=of(n,f),B=n.manifest;if(!B||typeof B!=="object")throw Error(`Invalid manifest for extension "${_}": manifest is required`);if(!Array.isArray(B.capabilities)||B.capabilities.length===0)throw Error(`Invalid manifest for extension "${_}": capabilities must be a non-empty array`);let d=new Set;for(let D of B.capabilities){if(!E6.has(D))throw Error(`Invalid manifest for extension "${_}": unsupported capability "${String(D)}"`);d.add(D)}if(Object.hasOwn(B,"providerIds")&&!Zf(B.providerIds))throw Error(`Invalid manifest for extension "${_}": providerIds must be a string array when provided`);if(Object.hasOwn(B,"modelIds")&&!Zf(B.modelIds))throw Error(`Invalid manifest for extension "${_}": modelIds must be a string array when provided`);let I=d.has("hooks");if(n.hooks!==void 0&&!I)throw Error(`Invalid manifest for extension "${_}": runtime hooks require the "hooks" capability`);return{capabilities:d,raw:Lf(B)}}function I6(n,f){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${f}": expected object`);let _=typeof n.eventType==="string"?n.eventType.trim():"",B=typeof n.source==="string"?n.source.trim():"";if(!_)throw Error(`Invalid automation event contribution for extension "${f}": eventType is required`);if(!B)throw Error(`Invalid automation event contribution for extension "${f}": source is required`);return{...n,eventType:_,source:B,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class Ln{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,f)=>({extension:n,order:f,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:A6(n.extension,n.order)})),this.phase="setup"}async setup(n={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let f,_=[];for(let B of this.normalized){let{extension:d}=B;if(d.disabled)continue;let I=of(d,B.order),A={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},D={registerTool:(Y)=>A.tools.push(Y),registerCommand:(Y)=>A.commands.push(Y),registerRule:(Y)=>{if(!B.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${I}": registerRule requires the "rules" capability`);A.rules.push(Y)},registerMessageBuilder:(Y)=>A.messageBuilder.push(Y),registerProvider:(Y)=>A.providers.push(Y),registerAutomationEventType:(Y)=>{if(!B.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${I}": registerAutomationEventType requires the "automationEvents" capability`);A.automationEventTypes.push(I6(Y,I))},registerMcpServer:(Y)=>{if(!B.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${I}": registerMcpServer requires the "mcp" capability`);A.mcpServers.push({...Y,metadata:{...Y.metadata??{},source:"plugin",plugin:I}})}},y=B.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await d.setup?.(D,y),_.push(A)}catch(Y){if(n.tolerateSetupErrors!==!0)throw Y;f??=Y}}if(f&&n.tolerateSetupErrors!==!0)throw f;for(let B of _)this.registry.tools.push(...B.tools),this.registry.commands.push(...B.commands),this.registry.rules.push(...B.rules),this.registry.messageBuilder.push(...B.messageBuilder),this.registry.providers.push(...B.providers),this.registry.automationEventTypes.push(...B.automationEventTypes),this.registry.mcpServers.push(...B.mcpServers);if(this.phase="activate",f)throw f}activate(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase==="setup")throw Error("Contribution registry setup must complete before activation");if(this.phase!=="activate")return;this.phase="run"}async initialize(n={}){this.resolve(),this.validate();try{await this.setup(n)}finally{if(this.phase==="activate")this.activate()}}isActivated(){return this.phase==="run"}getRegistrySnapshot(){return{tools:[...this.registry.tools],commands:[...this.registry.commands],rules:[...this.registry.rules],messageBuilder:[...this.registry.messageBuilder],providers:[...this.registry.providers],automationEventTypes:[...this.registry.automationEventTypes],mcpServers:[...this.registry.mcpServers]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getRegisteredMcpServers(){return[...this.registry.mcpServers]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,f)=>n.order-f.order).map(({extension:n})=>n)}}function $6(n={}){return new Ln(n)}var D6=[".js",".ts"];var Jf={CLINE_PASS:"ext-cline-pass"},Y6={[Jf.CLINE_PASS]:!1},M6=Object.values(Jf);import{z as $}from"zod";var Tf=$.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),v=$.record($.string(),$.string()),G6=$.object({toolName:$.string(),parameters:v}),y6=$.object({toolName:$.string(),parameters:v,result:$.string(),success:$.boolean(),executionTimeMs:$.number()}),X6=$.object({prompt:$.string(),attachments:$.array($.string())}),b6=$.object({taskMetadata:v}),q6=$.object({taskMetadata:v,previousState:v}),k6=$.object({taskMetadata:v}),Z6=$.object({taskMetadata:v}),H6=$.object({taskId:$.string(),ulid:$.string(),contextSize:$.number(),compactionStrategy:$.string(),previousApiReqIndex:$.number(),tokensIn:$.number(),tokensOut:$.number(),tokensInCache:$.number(),tokensOutCache:$.number(),deletedRangeStart:$.number(),deletedRangeEnd:$.number(),contextJsonPath:$.string(),contextRawPath:$.string()}),Vf=$.object({clineVersion:$.string(),hookName:Tf,timestamp:$.string(),taskId:$.string(),sessionContext:$.object({rootSessionId:$.string().optional(),hookLogPath:$.string().optional()}).optional(),workspaceRoots:$.array($.string()),workspaceInfo:$.custom().optional(),userId:$.string(),agent_id:$.string(),parent_agent_id:$.string().nullable(),iteration:$.number().optional(),reason:$.string().optional(),tool_call:$.object({id:$.string(),name:$.string(),input:$.unknown()}).optional(),tool_result:$.custom().optional(),turn:$.unknown().optional(),error:$.object({name:$.string(),message:$.string(),stack:$.string().optional()}).optional(),preToolUse:G6.optional(),postToolUse:y6.optional(),userPromptSubmit:X6.optional(),taskStart:b6.optional(),taskResume:q6.optional(),taskCancel:k6.optional(),taskComplete:Z6.optional(),preCompact:H6.optional()}).passthrough();function o6(n){let f=Vf.safeParse(n);if(!f.success)return;return f.data}var $1="v1",D1="v1",Y1="v1",M1=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function $n(n){let f=/^v(\d+)$/.exec(n?.trim()??"");if(!f)return;return Number.parseInt(f[1]??"",10)}function G1(n,f="v1"){let _=$n(n.protocolVersion),B=$n(f);if(_===void 0||B===void 0)return{compatible:!1,reason:"missing_protocol"};let d=$n(n.minClientProtocolVersion)??_,I=$n(n.maxClientProtocolVersion)??_;return B>=d&&B<=I?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var y1="0",X1="__hubScheduleRunAt",Kf=["act","plan","yolo"];function L6(n){return Kf.some((f)=>f===n)}function b1(n,f){if(!n||!Object.hasOwn(n,"mode"))return f;let _=n.mode;if(L6(_))return _;throw Error(`mode must be one of: ${Kf.join(", ")}`)}var J6=30000,q1=5000;function T6(n){switch(n){case"run.start":case"session.send_input":return null;default:return J6}}function k1(n,f){return f===void 0?T6(n):f}var V6=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],K6=new Set(V6);function Z1(n){return typeof n==="string"&&K6.has(n)}var H1="tool_executor.",o1="custom_tool.",L1="hook.",J1="compaction.compact",T1="checkpoint.create",V1="mistake_limit.decide",K1="user_instructions.snapshot";function Jn(n,f){return`<file_content path="${n}">
2
2
  ${f}
3
- </file_content>`}function V6(n,f="act"){return`<user_input mode="${f}">${n}</user_input>`}function U6(n,f){return`<user_command slash="${f}">${n}</user_command>`}function F6(n,f){return`<mode_notice>The user switched from ${n} mode to ${f} mode before sending this message.</mode_notice>`}function Q6(){let n=null;return{record(f,_){if(f===_)return;if(n){n=n.from===_?null:{from:n.from,to:_};return}n={from:f,to:_}},consume(){let f=n;return n=null,f}}}function j6(n,f){let _=n.trim(),w=new RegExp(`^<${f}\\b([^>]*)>([\\s\\S]*?)<\\/${f}>$`,"i").exec(_);if(!w)return;return{attrs:w[1]??"",content:w[2]??""}}function P6(n,f){return new RegExp(`${f}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function Vf(n){if(!n?.trim())return;let f=j6(n,"user_command");if(!f)return;let _=P6(f.attrs,"slash");if(!_)return;return{slash:_,content:f.content.trim()}}function Uf(n){if(!n?.trim())return"";let f=n.trim();for(let _ of["user_input","user_command"]){let w=Qf(f,_);f=(w!==f?w:f.replace(new RegExp(`<${_}[^>]*>`,"g"),"")).trim()}return f}function Ff(n){if(!n?.trim())return"";return W6(n,"mode_notice").trim()}function W6(n,f){let _=`<${f}>`,w=`</${f}>`,B=n,I=B.indexOf(_);while(I!==-1){let A=B.indexOf(w,I+_.length);if(A===-1)break;B=B.slice(0,I)+B.slice(A+w.length),I=B.indexOf(_,I)}return B}function O6(n){let f=Ff(Uf(n)),_=Vf(n);if(!_)return f;if(_.slash.toLowerCase()==="team"){let B=f.toLowerCase().startsWith("spawn a team of agents for the following task:")?f.slice(46).trim():f;return B?`/team ${B}`:"/team"}return f?`/${_.slash} ${f}`:`/${_.slash}`}function Qf(n,f){if(!n?.trim())return"";if(!f)return n;let _=new RegExp(`<${f}\\b[^>]*>([\\s\\S]*?)</${f}>`,"g");return n.replace(_,"$1")}var v="[media omitted: invalid or exceeds size limit]",Yn=["image/png","image/jpeg","image/gif","image/webp"],g6=5242880,S=5242880,m=6291456,N6=8388608;function C6(n){return n.length}function jf(n){let f=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-f}function S6(n=5242880){return Math.floor(n*3/4)}function Kn(n){return Math.ceil(n/3)*4}function Pf(n={}){return{maxImageEncodedBytes:n.maxImageEncodedBytes??5242880,maxImageDecodedBytes:n.maxImageDecodedBytes??6291456,maxTotalMediaBytes:n.maxTotalMediaBytes??8388608}}function Mn(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function Dn(n,f){n.omittedImages+=1,n.omittedReasons[f]=(n.omittedReasons[f]??0)+1}function nn(n,f,_,w){let B=Pf(_);if(n>B.maxImageEncodedBytes){let I={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${B.maxImageEncodedBytes} byte encoded limit`};return Dn(w,I.reason),I}if(f>B.maxImageDecodedBytes){let I={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${B.maxImageDecodedBytes} byte decoded limit`};return Dn(w,I.reason),I}if(w.totalEncodedBytes+n>B.maxTotalMediaBytes){let I={ok:!1,reason:"total_limit",message:`Image media exceeds the ${B.maxTotalMediaBytes} byte total media limit`};return Dn(w,I.reason),I}return w.totalEncodedBytes+=n,w.keptImages+=1,null}function Wf(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function c6(n){return n.length>0&&Of(n,0,n.length)}function Of(n,f,_){let w=_-f;if(w%4!==0)return!1;let B=_;if(w>=2&&n.charCodeAt(_-2)===61&&n.charCodeAt(_-1)===61)B-=2;else if(w>=1&&n.charCodeAt(_-1)===61)B-=1;for(let I=f;I<B;I++)if(!Wf(n.charCodeAt(I)))return!1;for(let I=B;I<_;I++)if(n.charCodeAt(I)!==61)return!1;return!0}function h6(n,f,_){return _-f>=5&&(n.charCodeAt(f)|32)===100&&(n.charCodeAt(f+1)|32)===97&&(n.charCodeAt(f+2)|32)===116&&(n.charCodeAt(f+3)|32)===97&&n.charCodeAt(f+4)===58}function v6(n){let f=0,_=n.length;while(f<_&&/\s/.test(n[f]??""))f+=1;while(_>f&&/\s/.test(n[_-1]??""))_-=1;return{start:f,end:_}}function m6(n,f,_){if(!h6(n,f,_))return;let w=f+5,B=n.indexOf(",",w);if(B===-1||B>=_)return;if(B-w>128)return;let I=n.slice(w,B).toLowerCase(),A=";base64";if(!I.endsWith(A))return;let D=I.slice(0,-A.length);if(!D||D.includes(";"))return;return{mediaType:D,base64Start:B+1,base64End:_}}function gf(n,f,_={}){let w=_.maxEncodedBytes??5242880,B=_.maxDecodedBytes??6291456,I=new Set(_.supportedMediaTypes??Yn),A=n?.toLowerCase(),D=v6(f),y=D.start,Y=D.end,X=m6(f,D.start,D.end);if(X){if(A&&A!==X.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${X.mediaType}`};A=X.mediaType,y=X.base64Start,Y=X.base64End}if(!A||!I.has(A))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let K=Y-y;if(K===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(K>w)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${w} byte encoded limit`};if(!Of(f,y,Y))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let T=f.slice(y,Y),o=jf(T);if(o>B)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${B} byte decoded limit`};return{ok:!0,mediaType:A,base64:T,encodedBytes:K,decodedBytes:o}}function fn(n,f,_,w){let B=gf(n,f,{maxEncodedBytes:_.maxImageEncodedBytes,maxDecodedBytes:_.maxImageDecodedBytes});if(!B.ok)return Dn(w,B.reason),B;let I=nn(B.encodedBytes,B.decodedBytes,_,w);if(I)return I;return B}function F(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var Tn="ERROR: EMPTY CONTENT",u6="[image attached]";function Nf(n,f){let _=n[n.length-1];if(f.role==="tool"&&_?.role==="tool"&&Array.isArray(_.content)&&Array.isArray(f.content)){_.content.push(...f.content);return}n.push(f)}function x6(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((f)=>{if(!f||typeof f!=="object")return!1;let _=f;if(_.type==="text")return typeof _.text==="string";if(_.type==="image")return typeof _.data==="string"&&typeof _.mediaType==="string";return!1})}function u(){return{type:"text",text:v}}function Cf(n){return nn(S,0,{maxImageEncodedBytes:S,maxImageDecodedBytes:m},n)===null}function l6(n){try{return new URL(n).protocol}catch{return}}function Vn(n,f){let _=fn(n.mediaType,n.data,{maxImageEncodedBytes:S,maxImageDecodedBytes:m},f);if(!_.ok)return u();return{type:"image-data",data:_.base64,mediaType:_.mediaType}}function r6(n,f){if(n.image instanceof URL){if(n.image.protocol==="data:"){let A=fn(n.mediaType,n.image.href,{maxImageEncodedBytes:S,maxImageDecodedBytes:m},f);if(!A.ok)return u();return{type:"image",image:`data:${A.mediaType};base64,${A.base64}`,mediaType:A.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return u();if(!Cf(f))return u();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let A=l6(n.image);if(A==="http:"||A==="https:"){if(!Cf(f))return u();return{type:"image",image:n.image,mediaType:n.mediaType}}let D=A==="data:",y=fn(n.mediaType??(D?void 0:"image/png"),n.image,{maxImageEncodedBytes:S,maxImageDecodedBytes:m},f);if(!y.ok)return u();return{type:"image",image:D?`data:${y.mediaType};base64,${y.base64}`:y.base64,mediaType:y.mediaType}}let _=n.image.byteLength,w=Kn(_),B=n.mediaType?.toLowerCase()??"image/png";if(!Yn.includes(B)||nn(w,_,{maxImageEncodedBytes:S,maxImageDecodedBytes:m},f))return u();return{type:"image",image:n.image,mediaType:B}}function Un(n,f,_,w=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let y=[],Y=!1,X=!1;for(let K of n){if(K&&typeof K==="object"){let o=K;if(o.type==="image"&&typeof o.data==="string"&&typeof o.mediaType==="string"){if(!w){y.push(v),Y=!0,X=!0;continue}let wn={type:"image",data:o.data,mediaType:o.mediaType},x=Vn(wn,_);if(x.type==="image-data")f.push({type:"image",data:x.data,mediaType:x.mediaType});else y.push(x.text);Y=!0,X=!0;continue}if(o.type==="image"){y.push(v),Y=!0,X=!0;continue}if(o.type==="text"&&typeof o.text==="string"){y.push(o.text),Y=!0;continue}}let T=Un(K,f,_,w);y.push(T.value),Y||=T.changed,X||=T.mediaChanged}return{value:Y?y:n,changed:Y,mediaChanged:X}}let B=n;if(B.type==="image"){if(typeof B.data==="string"&&typeof B.mediaType==="string"){if(!w)return{value:v,changed:!0,mediaChanged:!0};let y={type:"image",data:B.data,mediaType:B.mediaType},Y=Vn(y,_);if(Y.type==="image-data")return f.push({type:"image",data:Y.data,mediaType:Y.mediaType}),{value:u6,changed:!0,mediaChanged:!0};return{value:Y.text,changed:!0,mediaChanged:!0}}return{value:v,changed:!0,mediaChanged:!0}}let I={},A=!1,D=!1;for(let[y,Y]of Object.entries(B)){let X=Un(Y,f,_,w);I[y]=X.value,A||=X.changed,D||=X.mediaChanged}return{value:A?I:n,changed:A,mediaChanged:D}}function _n(n){if(typeof n==="string")return F(n);if(Array.isArray(n))return n.map((f)=>_n(f));if(n!==null&&typeof n==="object"){let f=n,_={};for(let[w,B]of Object.entries(f))_[w]=_n(B);return _}return n}function Sf(n,f=!1,_=Mn()){if(typeof n==="string")return{type:f?"error-text":"text",value:F(n)};if(!f&&x6(n))return{type:"content",value:n.map((w)=>w.type==="image"?Vn(w,_):{type:"text",text:F(w.text)})};if(n!==null&&typeof n==="object"){let w=[],B=Un(n,w,_,!f);if(!f&&w.length>0)return{type:"content",value:[{type:"text",text:typeof B.value==="string"?F(B.value):JSON.stringify(_n(B.value))},...w.map((A)=>({type:"image-data",data:A.data,mediaType:A.mediaType}))]};if(B.mediaChanged)return{type:f?"error-json":"json",value:_n(B.value)}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:f?"error-json":"json",value:_n(n)};return{type:f?"error-text":"text",value:F(String(n))}}function s6(n,f,_){let w=_?.assistantToolCallArgKey??"input",B=[],I=Mn();if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)B.push({role:"system",content:typeof n==="string"?F(n):n});for(let A of f){let D=A.content;if(typeof D==="string"){if(D.trim().length===0){B.push({role:A.role,content:[{type:"text",text:Tn}]});continue}B.push({role:A.role,content:F(D)});continue}let y=[],Y=[];if(D.length===0){B.push({role:A.role,content:[{type:"text",text:Tn}]});continue}for(let X of D)switch(X.type){case"text":y.push({type:"text",text:F(X.text),...X.providerOptions?{providerOptions:X.providerOptions}:{}});break;case"reasoning":y.push({type:"reasoning",text:F(X.text),...X.providerOptions?{providerOptions:X.providerOptions}:{}});break;case"image":y.push(r6(X,I));break;case"file":y.push({type:"text",text:on(X.path,F(X.content))});break;case"tool-call":if(A.role==="assistant")y.push({type:"tool-call",toolCallId:X.toolCallId,toolName:X.toolName,[w]:X.input,...X.providerOptions?{providerOptions:X.providerOptions}:{}});break;case"tool-result":{Y.push({type:"tool-result",toolCallId:X.toolCallId,toolName:X.toolName,output:Sf(X.output,X.isError??!1,I)});break}}if(y.length>0)Nf(B,{role:A.role,content:y});if(Y.length>0)Nf(B,{role:"tool",content:Y})}return B}var j1=["show","hide","subscription"];function cf(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function z6(n,f){if(!n&&!f)return;let _=n?.metadata,w=f?.metadata,B={...n??{},...f??{}};if(cf(_)&&cf(w))B.metadata={..._,...w};return B}var dn={max:1,xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},p6=void 0;function i6(n,f){if(typeof n==="string"&&n.toLowerCase()in dn)return n.toLowerCase();return f?void 0:void 0}function hf(n,f){let _=typeof n==="string"?n.toLowerCase():void 0;if(_&&_ in dn)return dn[_];if(f?.fallbackEffort)return dn[f.fallbackEffort];return}function a6(n){let f=hf(n.effort,{fallbackEffort:n.fallbackEffort});if(f===void 0)return;if(f<=0)return 0;let _=n.minimumBudget??1;if(n.maxBudget<_)return;let w=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(w*f),_),n.maxBudget)}function e6(n){return n instanceof Error?{name:n.name,message:n.message}:n}var t6=3;function vf(n){return Math.max(1,Math.ceil(n/3))}function Fn(n){let f=new WeakSet;try{return JSON.stringify(n,(_,w)=>{if(typeof w==="bigint")return w.toString();if(typeof w!=="object"||w===null)return w;if(f.has(w))return"[Circular]";return f.add(w),w})??""}catch{return String(n??"")}}function n_(n){let f;try{f=JSON.stringify({systemPrompt:n.systemPrompt,messages:n.messages,tools:n.tools})}catch{f=[Fn(n.systemPrompt),Fn(n.messages),Fn(n.tools)].join(`
4
- `)}return vf(f.length)}var f_={debug:()=>{},log:()=>{},error:()=>{}};var S1=60,c1=1,h1=3600;function __(n){return typeof n==="number"&&Number.isFinite(n)}function d_(n){return Math.min(Math.max(n,1),3600)}function v1(n){if(!__(n))return 60;return d_(n)}function m1(n,f,_){let w=_?` (${_})`:"",B=Math.round(f/100)/10;return`MCP request to "${n}"${w} timed out after ${B}s. Increase the "timeout" field (in seconds) for this server in cline_mcp_settings.json.`}class c extends Error{constructor(n,f){super(`${n} at position ${f}`);this.position=f}}function mf(n){return/^[0-9A-Fa-f]$/.test(n)}function N(n){return n>="0"&&n<="9"}function uf(n){return n>=" "}function p(n){return`,:[]/{}()
3
+ </file_content>`}function U6(n,f="act"){return`<user_input mode="${f}">${n}</user_input>`}function F6(n,f){return`<user_command slash="${f}">${n}</user_command>`}function Q6(n,f){return`<mode_notice>The user switched from ${n} mode to ${f} mode before sending this message.</mode_notice>`}function j6(){let n=null;return{record(f,_){if(f===_)return;if(n){n=n.from===_?null:{from:n.from,to:_};return}n={from:f,to:_}},consume(){let f=n;return n=null,f}}}function P6(n,f){let _=n.trim(),B=new RegExp(`^<${f}\\b([^>]*)>([\\s\\S]*?)<\\/${f}>$`,"i").exec(_);if(!B)return;return{attrs:B[1]??"",content:B[2]??""}}function W6(n,f){return new RegExp(`${f}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function Uf(n){if(!n?.trim())return;let f=P6(n,"user_command");if(!f)return;let _=W6(f.attrs,"slash");if(!_)return;return{slash:_,content:f.content.trim()}}function Ff(n){if(!n?.trim())return"";let f=n.trim();for(let _ of["user_input","user_command"]){let B=jf(f,_);f=(B!==f?B:f.replace(new RegExp(`<${_}[^>]*>`,"g"),"")).trim()}return f}function Qf(n){if(!n?.trim())return"";return g6(n,"mode_notice").trim()}function g6(n,f){let _=`<${f}>`,B=`</${f}>`,d=n,I=d.indexOf(_);while(I!==-1){let A=d.indexOf(B,I+_.length);if(A===-1)break;d=d.slice(0,I)+d.slice(A+B.length),I=d.indexOf(_,I)}return d}function O6(n){let f=Qf(Ff(n)),_=Uf(n);if(!_)return f;if(_.slash.toLowerCase()==="team"){let d=f.toLowerCase().startsWith("spawn a team of agents for the following task:")?f.slice(46).trim():f;return d?`/team ${d}`:"/team"}return f?`/${_.slash} ${f}`:`/${_.slash}`}function jf(n,f){if(!n?.trim())return"";if(!f)return n;let _=new RegExp(`<${f}\\b[^>]*>([\\s\\S]*?)</${f}>`,"g");return n.replace(_,"$1")}var h="[media omitted: invalid or exceeds size limit]",Yn=["image/png","image/jpeg","image/gif","image/webp"],N6=5242880,S=5242880,u=6291456,C6=8388608;function S6(n){return n.length}function Pf(n){let f=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-f}function c6(n=5242880){return Math.floor(n*3/4)}function Tn(n){return Math.ceil(n/3)*4}function Wf(n={}){return{maxImageEncodedBytes:n.maxImageEncodedBytes??5242880,maxImageDecodedBytes:n.maxImageDecodedBytes??6291456,maxTotalMediaBytes:n.maxTotalMediaBytes??8388608}}function Mn(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function Dn(n,f){n.omittedImages+=1,n.omittedReasons[f]=(n.omittedReasons[f]??0)+1}function nn(n,f,_,B){let d=Wf(_);if(n>d.maxImageEncodedBytes){let I={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${d.maxImageEncodedBytes} byte encoded limit`};return Dn(B,I.reason),I}if(f>d.maxImageDecodedBytes){let I={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${d.maxImageDecodedBytes} byte decoded limit`};return Dn(B,I.reason),I}if(B.totalEncodedBytes+n>d.maxTotalMediaBytes){let I={ok:!1,reason:"total_limit",message:`Image media exceeds the ${d.maxTotalMediaBytes} byte total media limit`};return Dn(B,I.reason),I}return B.totalEncodedBytes+=n,B.keptImages+=1,null}function gf(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function v6(n){return n.length>0&&Of(n,0,n.length)}function Of(n,f,_){let B=_-f;if(B%4!==0)return!1;let d=_;if(B>=2&&n.charCodeAt(_-2)===61&&n.charCodeAt(_-1)===61)d-=2;else if(B>=1&&n.charCodeAt(_-1)===61)d-=1;for(let I=f;I<d;I++)if(!gf(n.charCodeAt(I)))return!1;for(let I=d;I<_;I++)if(n.charCodeAt(I)!==61)return!1;return!0}function h6(n,f,_){return _-f>=5&&(n.charCodeAt(f)|32)===100&&(n.charCodeAt(f+1)|32)===97&&(n.charCodeAt(f+2)|32)===116&&(n.charCodeAt(f+3)|32)===97&&n.charCodeAt(f+4)===58}function u6(n){let f=0,_=n.length;while(f<_&&/\s/.test(n[f]??""))f+=1;while(_>f&&/\s/.test(n[_-1]??""))_-=1;return{start:f,end:_}}function m6(n,f,_){if(!h6(n,f,_))return;let B=f+5,d=n.indexOf(",",B);if(d===-1||d>=_)return;if(d-B>128)return;let I=n.slice(B,d).toLowerCase(),A=";base64";if(!I.endsWith(A))return;let D=I.slice(0,-A.length);if(!D||D.includes(";"))return;return{mediaType:D,base64Start:d+1,base64End:_}}function Nf(n,f,_={}){let B=_.maxEncodedBytes??5242880,d=_.maxDecodedBytes??6291456,I=new Set(_.supportedMediaTypes??Yn),A=n?.toLowerCase(),D=u6(f),y=D.start,Y=D.end,X=m6(f,D.start,D.end);if(X){if(A&&A!==X.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${X.mediaType}`};A=X.mediaType,y=X.base64Start,Y=X.base64End}if(!A||!I.has(A))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let T=Y-y;if(T===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(T>B)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${B} byte encoded limit`};if(!Of(f,y,Y))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let V=f.slice(y,Y),J=Pf(V);if(J>d)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${d} byte decoded limit`};return{ok:!0,mediaType:A,base64:V,encodedBytes:T,decodedBytes:J}}function fn(n,f,_,B){let d=Nf(n,f,{maxEncodedBytes:_.maxImageEncodedBytes,maxDecodedBytes:_.maxImageDecodedBytes});if(!d.ok)return Dn(B,d.reason),d;let I=nn(d.encodedBytes,d.decodedBytes,_,B);if(I)return I;return d}function F(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var Vn="ERROR: EMPTY CONTENT",x6="[image attached]";function Cf(n,f){let _=n[n.length-1];if(f.role==="tool"&&_?.role==="tool"&&Array.isArray(_.content)&&Array.isArray(f.content)){_.content.push(...f.content);return}n.push(f)}function l6(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((f)=>{if(!f||typeof f!=="object")return!1;let _=f;if(_.type==="text")return typeof _.text==="string";if(_.type==="image")return typeof _.data==="string"&&typeof _.mediaType==="string";return!1})}function m(){return{type:"text",text:h}}function Sf(n){return nn(S,0,{maxImageEncodedBytes:S,maxImageDecodedBytes:u},n)===null}function r6(n){try{return new URL(n).protocol}catch{return}}function Kn(n,f){let _=fn(n.mediaType,n.data,{maxImageEncodedBytes:S,maxImageDecodedBytes:u},f);if(!_.ok)return m();return{type:"image-data",data:_.base64,mediaType:_.mediaType}}function s6(n,f){if(n.image instanceof URL){if(n.image.protocol==="data:"){let A=fn(n.mediaType,n.image.href,{maxImageEncodedBytes:S,maxImageDecodedBytes:u},f);if(!A.ok)return m();return{type:"image",image:`data:${A.mediaType};base64,${A.base64}`,mediaType:A.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return m();if(!Sf(f))return m();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let A=r6(n.image);if(A==="http:"||A==="https:"){if(!Sf(f))return m();return{type:"image",image:n.image,mediaType:n.mediaType}}let D=A==="data:",y=fn(n.mediaType??(D?void 0:"image/png"),n.image,{maxImageEncodedBytes:S,maxImageDecodedBytes:u},f);if(!y.ok)return m();return{type:"image",image:D?`data:${y.mediaType};base64,${y.base64}`:y.base64,mediaType:y.mediaType}}let _=n.image.byteLength,B=Tn(_),d=n.mediaType?.toLowerCase()??"image/png";if(!Yn.includes(d)||nn(B,_,{maxImageEncodedBytes:S,maxImageDecodedBytes:u},f))return m();return{type:"image",image:n.image,mediaType:d}}function Un(n,f,_,B=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let y=[],Y=!1,X=!1;for(let T of n){if(T&&typeof T==="object"){let J=T;if(J.type==="image"&&typeof J.data==="string"&&typeof J.mediaType==="string"){if(!B){y.push(h),Y=!0,X=!0;continue}let Bn={type:"image",data:J.data,mediaType:J.mediaType},x=Kn(Bn,_);if(x.type==="image-data")f.push({type:"image",data:x.data,mediaType:x.mediaType});else y.push(x.text);Y=!0,X=!0;continue}if(J.type==="image"){y.push(h),Y=!0,X=!0;continue}if(J.type==="text"&&typeof J.text==="string"){y.push(J.text),Y=!0;continue}}let V=Un(T,f,_,B);y.push(V.value),Y||=V.changed,X||=V.mediaChanged}return{value:Y?y:n,changed:Y,mediaChanged:X}}let d=n;if(d.type==="image"){if(typeof d.data==="string"&&typeof d.mediaType==="string"){if(!B)return{value:h,changed:!0,mediaChanged:!0};let y={type:"image",data:d.data,mediaType:d.mediaType},Y=Kn(y,_);if(Y.type==="image-data")return f.push({type:"image",data:Y.data,mediaType:Y.mediaType}),{value:x6,changed:!0,mediaChanged:!0};return{value:Y.text,changed:!0,mediaChanged:!0}}return{value:h,changed:!0,mediaChanged:!0}}let I={},A=!1,D=!1;for(let[y,Y]of Object.entries(d)){let X=Un(Y,f,_,B);I[y]=X.value,A||=X.changed,D||=X.mediaChanged}return{value:A?I:n,changed:A,mediaChanged:D}}function _n(n){if(typeof n==="string")return F(n);if(Array.isArray(n))return n.map((f)=>_n(f));if(n!==null&&typeof n==="object"){let f=n,_={};for(let[B,d]of Object.entries(f))_[B]=_n(d);return _}return n}function cf(n,f=!1,_=Mn()){if(typeof n==="string")return{type:f?"error-text":"text",value:F(n)};if(!f&&l6(n))return{type:"content",value:n.map((B)=>B.type==="image"?Kn(B,_):{type:"text",text:F(B.text)})};if(n!==null&&typeof n==="object"){let B=[],d=Un(n,B,_,!f);if(!f&&B.length>0)return{type:"content",value:[{type:"text",text:typeof d.value==="string"?F(d.value):JSON.stringify(_n(d.value))},...B.map((A)=>({type:"image-data",data:A.data,mediaType:A.mediaType}))]};if(d.mediaChanged)return{type:f?"error-json":"json",value:_n(d.value)}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:f?"error-json":"json",value:_n(n)};return{type:f?"error-text":"text",value:F(String(n))}}function z6(n,f,_){let B=_?.assistantToolCallArgKey??"input",d=[],I=Mn();if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)d.push({role:"system",content:typeof n==="string"?F(n):n});for(let A of f){let D=A.content;if(typeof D==="string"){if(D.trim().length===0){d.push({role:A.role,content:[{type:"text",text:Vn}]});continue}d.push({role:A.role,content:F(D)});continue}let y=[],Y=[];if(D.length===0){d.push({role:A.role,content:[{type:"text",text:Vn}]});continue}for(let X of D)switch(X.type){case"text":y.push({type:"text",text:F(X.text),...X.providerOptions?{providerOptions:X.providerOptions}:{}});break;case"reasoning":y.push({type:"reasoning",text:F(X.text),...X.providerOptions?{providerOptions:X.providerOptions}:{}});break;case"image":y.push(s6(X,I));break;case"file":y.push({type:"text",text:Jn(X.path,F(X.content))});break;case"tool-call":if(A.role==="assistant")y.push({type:"tool-call",toolCallId:X.toolCallId,toolName:X.toolName,[B]:X.input,...X.providerOptions?{providerOptions:X.providerOptions}:{}});break;case"tool-result":{Y.push({type:"tool-result",toolCallId:X.toolCallId,toolName:X.toolName,output:cf(X.output,X.isError??!1,I)});break}}if(y.length>0)Cf(d,{role:A.role,content:y});if(Y.length>0)Cf(d,{role:"tool",content:Y})}return d}var g1=["show","hide","subscription"];function vf(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function p6(n,f){if(!n&&!f)return;let _=n?.metadata,B=f?.metadata,d={...n??{},...f??{}};if(vf(_)&&vf(B))d.metadata={..._,...B};return d}var wn={max:1,xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},i6=void 0;function a6(n,f){if(typeof n==="string"&&n.toLowerCase()in wn)return n.toLowerCase();return f?void 0:void 0}function hf(n,f){let _=typeof n==="string"?n.toLowerCase():void 0;if(_&&_ in wn)return wn[_];if(f?.fallbackEffort)return wn[f.fallbackEffort];return}function e6(n){let f=hf(n.effort,{fallbackEffort:n.fallbackEffort});if(f===void 0)return;if(f<=0)return 0;let _=n.minimumBudget??1;if(n.maxBudget<_)return;let B=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(B*f),_),n.maxBudget)}function t6(n){return n instanceof Error?{name:n.name,message:n.message}:n}var n_=3;function uf(n){return Math.max(1,Math.ceil(n/3))}function Fn(n){let f=new WeakSet;try{return JSON.stringify(n,(_,B)=>{if(typeof B==="bigint")return B.toString();if(typeof B!=="object"||B===null)return B;if(f.has(B))return"[Circular]";return f.add(B),B})??""}catch{return String(n??"")}}function f_(n){let f;try{f=JSON.stringify({systemPrompt:n.systemPrompt,messages:n.messages,tools:n.tools})}catch{f=[Fn(n.systemPrompt),Fn(n.messages),Fn(n.tools)].join(`
4
+ `)}return uf(f.length)}var __={debug:()=>{},log:()=>{},error:()=>{}};var h1=60,u1=1,m1=3600;function w_(n){return typeof n==="number"&&Number.isFinite(n)}function B_(n){return Math.min(Math.max(n,1),3600)}function x1(n){if(!w_(n))return 60;return B_(n)}function l1(n,f,_){let B=_?` (${_})`:"",d=Math.round(f/100)/10;return`MCP request to "${n}"${B} timed out after ${d}s. Increase the "timeout" field (in seconds) for this server in cline_mcp_settings.json.`}function d_(n){if(n instanceof Error)return n.message;return String(n)}function R_(n){if(n&&typeof n==="object"&&"code"in n&&typeof n.code==="string")return n.code;return""}class c extends Error{constructor(n,f){super(`${n} at position ${f}`);this.position=f}}function mf(n){return/^[0-9A-Fa-f]$/.test(n)}function N(n){return n>="0"&&n<="9"}function xf(n){return n>=" "}function p(n){return`,:[]/{}()
5
5
  +`.includes(n)}function Qn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"}function Gn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"||n>="0"&&n<="9"}var jn=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,Pn=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function Wn(n){return`,[]/{}
6
- +`.includes(n)}function On(n){return i(n)||w_.test(n)}var w_=/^[[{\w-]$/;function gn(n){return n===`
7
- `||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function g(n,f){let _=n.charCodeAt(f);return _===32||_===10||_===9||_===13}function xf(n,f){let _=n.charCodeAt(f);return _===32||_===9||_===13}function lf(n,f){let _=n.charCodeAt(f);return _===160||_===6158||_>=8192&&_<=8203||_===8239||_===8287||_===12288||_===65279}function i(n){return Nn(n)||yn(n)}function Nn(n){return n==='"'||n==="“"||n==="”"}function Cn(n){return n==='"'}function yn(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function Sn(n){return n==="'"}function a(n,f){let _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,w=n.lastIndexOf(f);return w!==-1?n.substring(0,w)+(_?"":n.substring(w+1)):n}function U(n,f){let _=n.length;if(!g(n,_-1))return n+f;while(g(n,_-1))_--;return n.substring(0,_)+f+n.substring(_)}function rf(n,f,_){return n.substring(0,f)+n.substring(f+_)}function sf(n){return/[,\n][ \t\r]*$/.test(n)}var B_={"&quot;":'"',"&amp;":"&","&lt;":"<","&gt;":">","&apos;":"'"},cn=12;function hn(n){if(n.charAt(0)!=="&")return null;let f=n.indexOf(";");if(f===-1)return null;let _=n.substring(0,f+1),w=B_[_];if(w!==void 0)return{char:w,length:_.length};if(n.charAt(1)==="#"){let B=n.substring(2,f),I=B.charAt(0)==="x"||B.charAt(0)==="X",A=I?B.substring(1):B;if(A.length>0){let D=Number.parseInt(A,I?16:10);if(!Number.isNaN(D)&&D>=0&&D<=1114111)return{char:String.fromCodePoint(D),length:_.length}}}return null}function zf(n){return n!==null&&n.char==='"'}function pf(n){return n!==null&&n.char==="'"}function z(n,f){let _=0;for(let w=0;w<n.length;w++)if(n.charAt(w)===f)_++;return _}function af(n,f){switch(f){case")":return z(n,"(")>z(n,")");case"]":return z(n,"[")>z(n,"]");case"}":return z(n,"{")>z(n,"}");default:return!1}}var ef={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},R_={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
8
- `,r:"\r",t:"\t"};function vn(n){let f=0,_="";if(Y(["```","[```","{```"]),!I())x4();Y(["```","```]","```}"]);let B=K(",");if(B)A();if(On(n[f])&&sf(_)){if(!B)_=U(_,",");c4()}else if(B)_=a(_,",");while(n[f]==="}"||n[f]==="]")f++,A();if(f>=n.length)return _;qn();function I(){A();let M=x()||S4()||l()||L()||h4()||ff(!1)||v4();return A(),M}function A(){let M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,G=f,q=D(M);do if(q=y(),q)q=D(M);while(q);return f>G}function D(M){let G=M?g:xf,q="";while(!0)if(G(n,f))q+=n[f],f++;else if(lf(n,f))q+=" ",f++;else break;if(q.length>0)return _+=q,!0;return!1}function y(){if(n[f]==="/"&&n[f+1]==="*"){while(f<n.length&&!E_(n,f))f++;return f+=2,!0}if(n[f]==="/"&&n[f+1]==="/"){while(f<n.length&&n[f]!==`
9
- `)f++;return!0}return!1}function Y(M){if(X(M)){if(Qn(n[f]))while(f<n.length&&Gn(n[f]))f++;return A(),!0}return!1}function X(M){D(!0);for(let G of M){let q=f+G.length;if(n.slice(f,q)===G)return f=q,!0}return!1}function K(M){if(n[f]===M)return _+=n[f],f++,!0;return!1}function T(M){if(n[f]===M)return f++,!0;return!1}function o(){return T("\\")}function wn(){if(A(),n[f]==="."&&n[f+1]==="."&&n[f+2]===".")return f+=3,A(),T(","),!0;return!1}function x(){if(n[f]==="{"){if(_+="{",f++,A(),T(","))A();let M=!0;while(f<n.length&&n[f]!=="}"){let G;if(!M){if(G=K(","),!G)_=U(_,",");A()}else G=!0;if(wn(),!(l()||ff(!0))){if(n[f]==="}"||n[f]==="{"||n[f]==="]"||n[f]==="["||n[f]===void 0){if(!M)_=a(_,",")}else l4();break}A();let P=K(":"),s=f>=n.length;if(!P)if(On(n[f])||s)_=U(_,":");else wf();if(!I())if(P||s)_+="null";else wf();M=!1}if(n[f]==="}")_+="}",f++;else _=U(_,"}");return!0}return!1}function S4(){if(n[f]==="["){if(_+="[",f++,A(),T(","))A();let M=!0;while(f<n.length&&n[f]!=="]"){if(!M){if(!K(","))_=U(_,",")}if(wn(),!I()){if(!M)_=a(_,",");break}M=!1}if(n[f]==="]")_+="]",f++;else _=U(_,"]");return!0}return!1}function c4(){let M=!0,G=!0;while(G){if(!M){if(!K(","))_=U(_,",")}else M=!1;G=I()}if(!G)_=a(_,",");_=`[
6
+ +`.includes(n)}function gn(n){return i(n)||E_.test(n)}var E_=/^[[{\w-]$/;function On(n){return n===`
7
+ `||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function O(n,f){let _=n.charCodeAt(f);return _===32||_===10||_===9||_===13}function lf(n,f){let _=n.charCodeAt(f);return _===32||_===9||_===13}function rf(n,f){let _=n.charCodeAt(f);return _===160||_===6158||_>=8192&&_<=8203||_===8239||_===8287||_===12288||_===65279}function i(n){return Nn(n)||yn(n)}function Nn(n){return n==='"'||n==="“"||n==="”"}function Cn(n){return n==='"'}function yn(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function Sn(n){return n==="'"}function a(n,f){let _=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,B=n.lastIndexOf(f);return B!==-1?n.substring(0,B)+(_?"":n.substring(B+1)):n}function U(n,f){let _=n.length;if(!O(n,_-1))return n+f;while(O(n,_-1))_--;return n.substring(0,_)+f+n.substring(_)}function sf(n,f,_){return n.substring(0,f)+n.substring(f+_)}function zf(n){return/[,\n][ \t\r]*$/.test(n)}var A_={"&quot;":'"',"&amp;":"&","&lt;":"<","&gt;":">","&apos;":"'"},cn=12;function vn(n){if(n.charAt(0)!=="&")return null;let f=n.indexOf(";");if(f===-1)return null;let _=n.substring(0,f+1),B=A_[_];if(B!==void 0)return{char:B,length:_.length};if(n.charAt(1)==="#"){let d=n.substring(2,f),I=d.charAt(0)==="x"||d.charAt(0)==="X",A=I?d.substring(1):d;if(A.length>0){let D=Number.parseInt(A,I?16:10);if(!Number.isNaN(D)&&D>=0&&D<=1114111)return{char:String.fromCodePoint(D),length:_.length}}}return null}function pf(n){return n!==null&&n.char==='"'}function af(n){return n!==null&&n.char==="'"}function z(n,f){let _=0;for(let B=0;B<n.length;B++)if(n.charAt(B)===f)_++;return _}function ef(n,f){switch(f){case")":return z(n,"(")>z(n,")");case"]":return z(n,"[")>z(n,"]");case"}":return z(n,"{")>z(n,"}");default:return!1}}var tf={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},I_={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
8
+ `,r:"\r",t:"\t"};function hn(n){let f=0,_="";if(Y(["```","[```","{```"]),!I())l4();Y(["```","```]","```}"]);let d=T(",");if(d)A();if(gn(n[f])&&zf(_)){if(!d)_=U(_,",");v4()}else if(d)_=a(_,",");while(n[f]==="}"||n[f]==="]")f++,A();if(f>=n.length)return _;qn();function I(){A();let M=x()||c4()||l()||o()||h4()||_f(!1)||u4();return A(),M}function A(){let M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,G=f,q=D(M);do if(q=y(),q)q=D(M);while(q);return f>G}function D(M){let G=M?O:lf,q="";while(!0)if(G(n,f))q+=n[f],f++;else if(rf(n,f))q+=" ",f++;else break;if(q.length>0)return _+=q,!0;return!1}function y(){if(n[f]==="/"&&n[f+1]==="*"){while(f<n.length&&!$_(n,f))f++;return f+=2,!0}if(n[f]==="/"&&n[f+1]==="/"){while(f<n.length&&n[f]!==`
9
+ `)f++;return!0}return!1}function Y(M){if(X(M)){if(Qn(n[f]))while(f<n.length&&Gn(n[f]))f++;return A(),!0}return!1}function X(M){D(!0);for(let G of M){let q=f+G.length;if(n.slice(f,q)===G)return f=q,!0}return!1}function T(M){if(n[f]===M)return _+=n[f],f++,!0;return!1}function V(M){if(n[f]===M)return f++,!0;return!1}function J(){return V("\\")}function Bn(){if(A(),n[f]==="."&&n[f+1]==="."&&n[f+2]===".")return f+=3,A(),V(","),!0;return!1}function x(){if(n[f]==="{"){if(_+="{",f++,A(),V(","))A();let M=!0;while(f<n.length&&n[f]!=="}"){let G;if(!M){if(G=T(","),!G)_=U(_,",");A()}else G=!0;if(Bn(),!(l()||_f(!0))){if(n[f]==="}"||n[f]==="{"||n[f]==="]"||n[f]==="["||n[f]===void 0){if(!M)_=a(_,",")}else r4();break}A();let P=T(":"),s=f>=n.length;if(!P)if(gn(n[f])||s)_=U(_,":");else df();if(!I())if(P||s)_+="null";else df();M=!1}if(n[f]==="}")_+="}",f++;else _=U(_,"}");return!0}return!1}function c4(){if(n[f]==="["){if(_+="[",f++,A(),V(","))A();let M=!0;while(f<n.length&&n[f]!=="]"){if(!M){if(!T(","))_=U(_,",")}if(Bn(),!I()){if(!M)_=a(_,",");break}M=!1}if(n[f]==="]")_+="]",f++;else _=U(_,"]");return!0}return!1}function v4(){let M=!0,G=!0;while(G){if(!M){if(!T(","))_=U(_,",")}else M=!1;G=I()}if(!G)_=a(_,",");_=`[
10
10
  ${_}
11
- ]`}function l(){let M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,q=n[f]==="\\";if(q){if(f++,!i(n[f]))qn()}let P=n[f]==="&"?hn(n.slice(f,f+cn)):null,s=zf(P)||pf(P);if(i(n[f])||s){let Bf=Cn(n[f])?Cn:Sn(n[f])?Sn:yn(n[f])?yn:Nn,Bn=f,Rn=_.length,k='"';f+=s&&P?P.length:1;while(!0){if(f>=n.length){let J=_f(f-1);if(!M&&p(n.charAt(J)))return f=Bn,_=_.substring(0,Rn),l(!0);return k=U(k,'"'),_+=k,!0}if(f===G)return k=U(k,'"'),_+=k,!0;let W=s&&n[f]==="&"?hn(n.slice(f,f+cn)):null;if(W&&P?W.char===P.char:Bf(n[f])){let J=f,Zn=k.length;if(k+='"',f+=W?W.length:1,_+=k,A(!1),M||f>=n.length||p(n[f])&&!af(k,n[f])||i(n[f])&&!m4(f)||N(n[f]))return nf(),!0;if(n[f]==="\\")qn();let C=_f(J-1),Rf=n.charAt(C);if(Rf===",")return f=Bn,_=_.substring(0,Rn),l(!1,C);if(p(Rf))return f=Bn,_=_.substring(0,Rn),l(!0);_=_.substring(0,Rn),f=J+(W?W.length:1),k=`${k.substring(0,Zn)}\\${k.substring(Zn)}`}else if(M&&Wn(n[f])){if(n[f-1]===":"&&jn.test(n.substring(Bn+1,f+2)))while(f<n.length&&Pn.test(n[f]))k+=n[f],f++;return k=U(k,'"'),_+=k,nf(),!0}else if(W){let J=W.char;if(J==='"')k+="\\\"";else if(gn(J))k+=ef[J];else k+=J;f+=W.length}else if(n[f]==="\\"){let J=n.charAt(f+1);if(R_[J]!==void 0)k+=n.slice(f,f+2),f+=2;else if(J==="u"){let C=2;while(C<6&&mf(n[f+C]))C++;if(C===6)k+=n.slice(f,f+6),f+=6;else if(f+C>=n.length)f=n.length;else r4()}else if(J===`
12
- `)k+="\\n",f+=2;else k+=J,f+=2}else{let J=n.charAt(f);if(J==='"'&&n[f-1]!=="\\")k+=`\\${J}`,f++;else if(gn(J))k+=ef[J],f++;else{if(!uf(J))u4(J);k+=J,f++}}if(q)o()}}return!1}function nf(){let M=!1;A();while(n[f]==="+"){M=!0,f++,A(),_=a(_,'"',!0);let G=_.length;if(l())_=rf(_,G,1);else _=U(_,'"')}return M}function L(){let M=f,G="",q=!1;if(n[f]==="-"){if(G+=n[f],f++,!N(n[f])&&df())G+="0"}if(n[f]==="0"&&N(n[f+1]))q=!0;while(N(n[f]))G+=n[f],f++;if(n[f]==="."){if(G===""||G==="-")G+="0";if(G+=n[f],f++,!N(n[f]))G+="0";while(N(n[f]))G+=n[f],f++}if(f>M){if(n[f]==="e"||n[f]==="E"){if(G==="-")q=!0;if(G+=n[f],f++,n[f]==="-"||n[f]==="+")G+=n[f],f++;if(!N(n[f]))G+="0";while(N(n[f]))G+=n[f],f++}if(!df())return f=M,!1;return _+=q?`"${n.substring(M,f)}"`:G,!0}return!1}function h4(){return r("true","true")||r("false","false")||r("null","null")||r("True","true")||r("False","false")||r("None","null")}function r(M,G){if(n.slice(f,f+M.length)===M&&!Gn(n[f+M.length]))return _+=G,f+=M.length,!0;return!1}function ff(M){let G=f;if(Qn(n[f])){while(f<n.length&&Gn(n[f]))f++;let q=f;while(g(n,q))q++;if(n[q]==="("){if(f=q+1,I(),n[f]===")"){if(f++,n[f]===";")f++}return!0}}while(f<n.length&&!Wn(n[f])&&!i(n[f])&&(!M||n[f]!==":"))f++;if(n[f-1]===":"&&jn.test(n.substring(G,f+2)))while(f<n.length&&Pn.test(n[f]))f++;if(f>G){while(g(n,f-1)&&f>0)f--;let q=n.slice(G,f);if(_+=q==="undefined"?"null":JSON.stringify(q),n[f]==='"')f++;return!0}}function v4(){if(n[f]==="/"){let M=f;f++;while(f<n.length&&(n[f]!=="/"||n[f-1]==="\\"))f++;return f++,_+=JSON.stringify(n.substring(M,f)),!0}}function _f(M){let G=M;while(G>0&&g(n,G))G--;return G}function m4(M){let G=M+1;while(G<n.length&&g(n,G))G++;return G>=n.length||p(n[G])}function df(){return f>=n.length||p(n[f])||g(n,f)}function u4(M){throw new c(`Invalid character ${JSON.stringify(M)}`,f)}function qn(){throw new c(`Unexpected character ${JSON.stringify(n[f])}`,f)}function x4(){throw new c("Unexpected end of json string",n.length)}function l4(){throw new c("Object key expected",f)}function wf(){throw new c("Colon expected",f)}function r4(){let M=n.slice(f,f+6);throw new c(`Invalid unicode character "${M}"`,f)}}function E_(n,f){return n[f]==="*"&&n[f+1]==="/"}var A_=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function I_(n){let f=n.match(A_);if(!f)return;let[,_,w]=f,B=w.trim();if(!B)return;let I=B[0];if(I==='"'||I==="{"||I==="["||B==="true"||B==="false"||B==="null"||Number.isFinite(Number(B)))return;return JSON.parse(`{"${_}":${JSON.stringify(B)}}`)}var $_=[(n)=>JSON.parse(n),(n)=>JSON.parse(vn(n)),I_];function D_(n){if(typeof n!=="string")return n;let f=n.trimStart();if(f[0]!=="{"&&f[0]!=="[")return n;for(let _ of $_)try{let w=_(f);if(w!==void 0)return w}catch{}return n}function Y_(n){let f=new WeakSet;try{return JSON.stringify(n,(w,B)=>{if(typeof B==="bigint")return B.toString();if(B&&typeof B==="object"){if(f.has(B))return"[Circular]";f.add(B)}return B})??"null"}catch{return String(n)}}function M_(n){try{return JSON.parse(n)}catch{return}}function e(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function G_(n){let f=n.type;if(typeof f==="string")return[f];return Array.isArray(f)?f.filter((_)=>typeof _==="string"):[]}function mn(n,f){if(G_(n).includes(f))return!0;for(let w of["anyOf","oneOf","allOf"]){let B=n[w];if(Array.isArray(B)&&B.some((I)=>e(I)&&mn(I,f)))return!0}return!1}function y_(n,f){if(typeof n!=="string")return n;let _=n.trim(),w=mn(f,"array"),B=mn(f,"object");if((!w||!_.startsWith("["))&&(!B||!_.startsWith("{")))return n;try{let I=JSON.parse(_);if(Array.isArray(I))return w?I:n;if(e(I))return B?I:n;return n}catch{return n}}function un(n,f){let _=y_(n,f);if(Array.isArray(_)){let A=f.items;if(!e(A))return _;let D=!1,y=_.map((Y)=>{let X=un(Y,A);return D||=X!==Y,X});return D?y:_}if(!e(_))return _;let w=f.properties;if(!e(w))return _;let B=!1,I={..._};for(let[A,D]of Object.entries(w)){if(!(A in _)||!e(D))continue;let y=un(_[A],D);if(y!==_[A])I[A]=y,B=!0}return B?I:_}function X_(n){if(typeof globalThis.atob==="function")try{let f=globalThis.atob(n),_=Uint8Array.from(f,(w)=>w.charCodeAt(0));return new TextDecoder().decode(_)}catch{return null}if(typeof Buffer<"u")try{return Buffer.from(n,"base64").toString("utf8")}catch{return null}return null}function b_(n){let f=n?.trim();if(!f)return null;try{let _=f.split(".");if(_.length!==3)return null;let w=_[1];if(!w)return null;let B=w.replace(/-/g,"+").replace(/_/g,"/"),I=B.padEnd(B.length+(4-B.length%4)%4,"="),A=X_(I);return A?JSON.parse(A):null}catch{return null}}function q_(n){return Object.fromEntries(Object.entries(n).filter(([,f])=>f!==void 0))}function Z_(n){let f=n.replaceAll("\\","/"),_=f.lastIndexOf("/");return(_>=0?f.slice(_+1):f).toLowerCase()}function k_(n){return n==="win32"?"powershell":"/bin/bash"}function tf(n){let f=Z_(n);if(f==="powershell"||f==="powershell.exe"||f==="pwsh"||f==="pwsh.exe")return"powershell";if(f==="cmd"||f==="cmd.exe")return"cmd";if(f==="wsl"||f==="wsl.exe")return"wsl";return"posix"}function H_(n,f){switch(tf(n)){case"powershell":return["-NoProfile","-NonInteractive","-Command",f];case"cmd":return["/d","/s","/c",f];case"wsl":return["bash","-c",f];case"posix":return["-c",f]}}function L_(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function J_(n){let f=n?.trim();return f?f:void 0}function n4(n,f){if(n.length<=f)return n;return`${n.slice(0,f-1)}…`}function o_(n,f="/",_=100){if(!n||n.length<=_)return n||"";let w=n.split(f)?.shift()?.trim()?.slice(0,_-1);return w?`${w}…`:n4(n,_)}function K_(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function T_(n){return n.charCodeAt(0)===65279?n.slice(1):n}function V_(n){if(!n)return"(unknown-date)";let f=new Date(n);if(Number.isNaN(f.getTime()))return n;return f.toLocaleString("en-US",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0})}function U_(n){let f=Math.max(0,Math.floor(n/1000)),_=Math.floor(f/86400),w=Math.floor(f%86400/3600),B=Math.floor(f%3600/60),I=f%60;if(_>0)return`${_}d ${w}h`;if(w>0)return`${w}h ${B}m`;if(B>0)return`${B}m ${I}s`;return`${I}s`}import{z as f4}from"zod";function F_(n,f){let _=n.safeParse(f);if(!_.success)throw Error(f4.prettifyError(_.error));return _.data}function xn(n){return f4.toJSONSchema(n)}function ln(n){return n==="cline"||n==="cline-pass"}var _4=`You are Cline, an AI coding agent. Your primary goal is to assist users with various coding tasks by leveraging your knowledge and the tools at your disposal. Given the user's prompt, you should use the tools available to you to answer user's question.
11
+ ]`}function l(){let M=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,q=n[f]==="\\";if(q){if(f++,!i(n[f]))qn()}let P=n[f]==="&"?vn(n.slice(f,f+cn)):null,s=pf(P)||af(P);if(i(n[f])||s){let Rf=Cn(n[f])?Cn:Sn(n[f])?Sn:yn(n[f])?yn:Nn,dn=f,Rn=_.length,Z='"';f+=s&&P?P.length:1;while(!0){if(f>=n.length){let L=wf(f-1);if(!M&&p(n.charAt(L)))return f=dn,_=_.substring(0,Rn),l(!0);return Z=U(Z,'"'),_+=Z,!0}if(f===G)return Z=U(Z,'"'),_+=Z,!0;let W=s&&n[f]==="&"?vn(n.slice(f,f+cn)):null;if(W&&P?W.char===P.char:Rf(n[f])){let L=f,kn=Z.length;if(Z+='"',f+=W?W.length:1,_+=Z,A(!1),M||f>=n.length||p(n[f])&&!ef(Z,n[f])||i(n[f])&&!m4(f)||N(n[f]))return ff(),!0;if(n[f]==="\\")qn();let C=wf(L-1),Ef=n.charAt(C);if(Ef===",")return f=dn,_=_.substring(0,Rn),l(!1,C);if(p(Ef))return f=dn,_=_.substring(0,Rn),l(!0);_=_.substring(0,Rn),f=L+(W?W.length:1),Z=`${Z.substring(0,kn)}\\${Z.substring(kn)}`}else if(M&&Wn(n[f])){if(n[f-1]===":"&&jn.test(n.substring(dn+1,f+2)))while(f<n.length&&Pn.test(n[f]))Z+=n[f],f++;return Z=U(Z,'"'),_+=Z,ff(),!0}else if(W){let L=W.char;if(L==='"')Z+="\\\"";else if(On(L))Z+=tf[L];else Z+=L;f+=W.length}else if(n[f]==="\\"){let L=n.charAt(f+1);if(I_[L]!==void 0)Z+=n.slice(f,f+2),f+=2;else if(L==="u"){let C=2;while(C<6&&mf(n[f+C]))C++;if(C===6)Z+=n.slice(f,f+6),f+=6;else if(f+C>=n.length)f=n.length;else s4()}else if(L===`
12
+ `)Z+="\\n",f+=2;else Z+=L,f+=2}else{let L=n.charAt(f);if(L==='"'&&n[f-1]!=="\\")Z+=`\\${L}`,f++;else if(On(L))Z+=tf[L],f++;else{if(!xf(L))x4(L);Z+=L,f++}}if(q)J()}}return!1}function ff(){let M=!1;A();while(n[f]==="+"){M=!0,f++,A(),_=a(_,'"',!0);let G=_.length;if(l())_=sf(_,G,1);else _=U(_,'"')}return M}function o(){let M=f,G="",q=!1;if(n[f]==="-"){if(G+=n[f],f++,!N(n[f])&&Bf())G+="0"}if(n[f]==="0"&&N(n[f+1]))q=!0;while(N(n[f]))G+=n[f],f++;if(n[f]==="."){if(G===""||G==="-")G+="0";if(G+=n[f],f++,!N(n[f]))G+="0";while(N(n[f]))G+=n[f],f++}if(f>M){if(n[f]==="e"||n[f]==="E"){if(G==="-")q=!0;if(G+=n[f],f++,n[f]==="-"||n[f]==="+")G+=n[f],f++;if(!N(n[f]))G+="0";while(N(n[f]))G+=n[f],f++}if(!Bf())return f=M,!1;return _+=q?`"${n.substring(M,f)}"`:G,!0}return!1}function h4(){return r("true","true")||r("false","false")||r("null","null")||r("True","true")||r("False","false")||r("None","null")}function r(M,G){if(n.slice(f,f+M.length)===M&&!Gn(n[f+M.length]))return _+=G,f+=M.length,!0;return!1}function _f(M){let G=f;if(Qn(n[f])){while(f<n.length&&Gn(n[f]))f++;let q=f;while(O(n,q))q++;if(n[q]==="("){if(f=q+1,I(),n[f]===")"){if(f++,n[f]===";")f++}return!0}}while(f<n.length&&!Wn(n[f])&&!i(n[f])&&(!M||n[f]!==":"))f++;if(n[f-1]===":"&&jn.test(n.substring(G,f+2)))while(f<n.length&&Pn.test(n[f]))f++;if(f>G){while(O(n,f-1)&&f>0)f--;let q=n.slice(G,f);if(_+=q==="undefined"?"null":JSON.stringify(q),n[f]==='"')f++;return!0}}function u4(){if(n[f]==="/"){let M=f;f++;while(f<n.length&&(n[f]!=="/"||n[f-1]==="\\"))f++;return f++,_+=JSON.stringify(n.substring(M,f)),!0}}function wf(M){let G=M;while(G>0&&O(n,G))G--;return G}function m4(M){let G=M+1;while(G<n.length&&O(n,G))G++;return G>=n.length||p(n[G])}function Bf(){return f>=n.length||p(n[f])||O(n,f)}function x4(M){throw new c(`Invalid character ${JSON.stringify(M)}`,f)}function qn(){throw new c(`Unexpected character ${JSON.stringify(n[f])}`,f)}function l4(){throw new c("Unexpected end of json string",n.length)}function r4(){throw new c("Object key expected",f)}function df(){throw new c("Colon expected",f)}function s4(){let M=n.slice(f,f+6);throw new c(`Invalid unicode character "${M}"`,f)}}function $_(n,f){return n[f]==="*"&&n[f+1]==="/"}var D_=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function Y_(n){let f=n.match(D_);if(!f)return;let[,_,B]=f,d=B.trim();if(!d)return;let I=d[0];if(I==='"'||I==="{"||I==="["||d==="true"||d==="false"||d==="null"||Number.isFinite(Number(d)))return;return JSON.parse(`{"${_}":${JSON.stringify(d)}}`)}var M_=[(n)=>JSON.parse(n),(n)=>JSON.parse(hn(n)),Y_];function G_(n){if(typeof n!=="string")return n;let f=n.trimStart();if(f[0]!=="{"&&f[0]!=="[")return n;for(let _ of M_)try{let B=_(f);if(B!==void 0)return B}catch{}return n}function y_(n){let f=new WeakSet;try{return JSON.stringify(n,(B,d)=>{if(typeof d==="bigint")return d.toString();if(d&&typeof d==="object"){if(f.has(d))return"[Circular]";f.add(d)}return d})??"null"}catch{return String(n)}}function X_(n){try{return JSON.parse(n)}catch{return}}function e(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function b_(n){let f=n.type;if(typeof f==="string")return[f];return Array.isArray(f)?f.filter((_)=>typeof _==="string"):[]}function un(n,f){if(b_(n).includes(f))return!0;for(let B of["anyOf","oneOf","allOf"]){let d=n[B];if(Array.isArray(d)&&d.some((I)=>e(I)&&un(I,f)))return!0}return!1}function q_(n,f){if(typeof n!=="string")return n;let _=n.trim(),B=un(f,"array"),d=un(f,"object");if((!B||!_.startsWith("["))&&(!d||!_.startsWith("{")))return n;try{let I=JSON.parse(_);if(Array.isArray(I))return B?I:n;if(e(I))return d?I:n;return n}catch{return n}}function mn(n,f){let _=q_(n,f);if(Array.isArray(_)){let A=f.items;if(!e(A))return _;let D=!1,y=_.map((Y)=>{let X=mn(Y,A);return D||=X!==Y,X});return D?y:_}if(!e(_))return _;let B=f.properties;if(!e(B))return _;let d=!1,I={..._};for(let[A,D]of Object.entries(B)){if(!(A in _)||!e(D))continue;let y=mn(_[A],D);if(y!==_[A])I[A]=y,d=!0}return d?I:_}function k_(n){if(typeof globalThis.atob==="function")try{let f=globalThis.atob(n),_=Uint8Array.from(f,(B)=>B.charCodeAt(0));return new TextDecoder().decode(_)}catch{return null}if(typeof Buffer<"u")try{return Buffer.from(n,"base64").toString("utf8")}catch{return null}return null}function Z_(n){let f=n?.trim();if(!f)return null;try{let _=f.split(".");if(_.length!==3)return null;let B=_[1];if(!B)return null;let d=B.replace(/-/g,"+").replace(/_/g,"/"),I=d.padEnd(d.length+(4-d.length%4)%4,"="),A=k_(I);return A?JSON.parse(A):null}catch{return null}}function H_(n){return Object.fromEntries(Object.entries(n).filter(([,f])=>f!==void 0))}function o_(n){let f=n.replaceAll("\\","/"),_=f.lastIndexOf("/");return(_>=0?f.slice(_+1):f).toLowerCase()}function L_(n){return n==="win32"?"powershell":"/bin/bash"}function xn(n){let f=o_(n);if(f==="powershell"||f==="powershell.exe"||f==="pwsh"||f==="pwsh.exe")return"powershell";if(f==="cmd"||f==="cmd.exe")return"cmd";if(f==="wsl"||f==="wsl.exe")return"wsl";return"posix"}function n4(n,f){switch(xn(n)){case"powershell":return{args:["-NoProfile","-NonInteractive","-Command","[Console]::InputEncoding=[Text.UTF8Encoding]::new();[Console]::OutputEncoding=[Text.UTF8Encoding]::new();$c=[Console]::In.ReadToEnd();$c+=[Environment]::NewLine+'if(-not $?){exit 1}';& ([ScriptBlock]::Create($c))"],input:f};case"cmd":return{args:["/d","/s","/c",f]};case"wsl":return{args:["bash","-c",f]};case"posix":return{args:["-c",f]}}}function J_(n,f){if(xn(n)==="powershell")return["-NoProfile","-NonInteractive","-Command",f];return n4(n,f).args}function T_(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function V_(n){let f=n?.trim();return f?f:void 0}function f4(n,f){if(n.length<=f)return n;return`${n.slice(0,f-1)}…`}function K_(n,f="/",_=100){if(!n||n.length<=_)return n||"";let B=n.split(f)?.shift()?.trim()?.slice(0,_-1);return B?`${B}…`:f4(n,_)}function U_(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function F_(n){return n.charCodeAt(0)===65279?n.slice(1):n}function Q_(n){if(!n)return"(unknown-date)";let f=new Date(n);if(Number.isNaN(f.getTime()))return n;return f.toLocaleString("en-US",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0})}function j_(n){let f=Math.max(0,Math.floor(n/1000)),_=Math.floor(f/86400),B=Math.floor(f%86400/3600),d=Math.floor(f%3600/60),I=f%60;if(_>0)return`${_}d ${B}h`;if(B>0)return`${B}h ${d}m`;if(d>0)return`${d}m ${I}s`;return`${I}s`}import{z as _4}from"zod";function P_(n,f){let _=n.safeParse(f);if(!_.success)throw Error(_4.prettifyError(_.error));return _.data}function ln(n){return _4.toJSONSchema(n)}function rn(n){return n==="cline"||n==="cline-pass"}var w4=`You are Cline, an AI coding agent. Your primary goal is to assist users with various coding tasks by leveraging your knowledge and the tools at your disposal. Given the user's prompt, you should use the tools available to you to answer user's question.
13
13
 
14
14
  Always gather all the necessary context before starting to work on a task. For example, if you are generating a unit test or new code, make sure you understand the requirement, the naming conventions, frameworks and libraries used and aligned in the current codebase, and the environment and commands used to run and test the code etc. Always validate the new unit test at the end including running the code if possible for live feedback.
15
15
  Review each question carefully and answer it with detailed, accurate information.
@@ -44,7 +44,7 @@ When you have completed the task, please provide a summary of what you did and a
44
44
 
45
45
  If user asked a simple question without any coding context, answer it directly without using any tools.
46
46
  {{CLINE_RULES}}
47
- {{CLINE_METADATA}}`,d4=`You are Cline, a careful and helpful coding agent that works in the background.
47
+ {{CLINE_METADATA}}`,B4=`You are Cline, a careful and helpful coding agent that works in the background.
48
48
  You are tasked to solve an issue reported by the user who you cannot communicate with directly.
49
49
  Your goal is to utilize the tools at your disposal to investigate and answer the question according to user's instructions with the aim to verify that the issue is resolved.
50
50
 
@@ -74,9 +74,9 @@ IMPORTANT:
74
74
  - Always includes tool calls in your response until the task is completed. You should only end the task when all the requirements are met by calling the 'submit_and_exit' tool.
75
75
  - Response without the submit_and_exit tool call will considered not completed and the task will continue.
76
76
  {{CLINE_RULES}}
77
- {{CLINE_METADATA}}`;var rn="# Workspace Configuration",B4=`# Plan / Act Modes
77
+ {{CLINE_METADATA}}`;var sn="# Workspace Configuration",R4=`# Plan / Act Modes
78
78
 
79
- User messages arrive wrapped in a <user_input mode="..."> tag. The mode attribute is the interaction mode the user was in when they sent that message: "plan" means plan-mode constraints applied (explore, analyze, and align on a plan -- no edits or state-changing commands), while "act" (or "yolo") means implementation was allowed. If the mode attribute changes between messages, the user switched modes -- the newest message's mode is what governs right now, regardless of what earlier messages allowed. A <mode_notice> block inside a message marks exactly when such a switch happened.`,R4=`# Plan Mode
79
+ User messages arrive wrapped in a <user_input mode="..."> tag. The mode attribute is the interaction mode the user was in when they sent that message: "plan" means plan-mode constraints applied (explore, analyze, and align on a plan -- no edits or state-changing commands), while "act" (or "yolo") means implementation was allowed. If the mode attribute changes between messages, the user switched modes -- the newest message's mode is what governs right now, regardless of what earlier messages allowed. A <mode_notice> block inside a message marks exactly when such a switch happened.`,E4=`# Plan Mode
80
80
 
81
81
  You are in Plan mode. Your role is to explore, analyze, and plan -- not to execute.
82
82
 
@@ -89,10 +89,10 @@ You are in Plan mode. Your role is to explore, analyze, and plan -- not to execu
89
89
 
90
90
  The run_commands tool remains available in plan mode strictly for read-only inspection -- listing files, searching (grep), reading configs, inspecting git history and diffs, checking tool versions, and the like. Never use it to change anything: no creating, modifying, or deleting files, no writing scripts that make changes, and no state-changing commands (installs, migrations, database or schema changes, container commands that mutate state, etc.). If the task requires a mutation, put it in the plan; it happens only after the user switches to act mode.
91
91
 
92
- Once the user has reviewed your plan and explicitly approved it in a follow-up message, use the switch_to_act_mode tool to switch to act mode and begin implementation. Calling switch_to_act_mode immediately starts execution, so never call it in the same turn you present a plan and never treat the original task request as approval -- end your turn after presenting the plan and wait for the user's response.`;function w4(n,f,_){if(_?.trim()?.includes(rn))return _.trim();let w=_||JSON.stringify({workspaces:{[n]:{hint:f||n.split("/").at(-1)||n}}},null,2);return`
93
- ${rn}
94
- ${w}`}function Q_(n){let{ide:f="Terminal Shell",mode:_,platform:w="unknown",workspaceName:B,metadata:I,rules:A,overridePrompt:D,providerId:y}=n,Y=n.workspaceRoot??n.rootPath??"",X=ln(y||"");if(D?.trim()){let o=D.trim();if(X&&I?.trim()&&!o.includes(rn))return`${o}
92
+ Once the user has reviewed your plan and explicitly approved it in a follow-up message, use the switch_to_act_mode tool to switch to act mode and begin implementation. Calling switch_to_act_mode immediately starts execution, so never call it in the same turn you present a plan and never treat the original task request as approval -- end your turn after presenting the plan and wait for the user's response.`;function d4(n,f,_){if(_?.trim()?.includes(sn))return _.trim();let B=_||JSON.stringify({workspaces:{[n]:{hint:f||n.split("/").at(-1)||n}}},null,2);return`
93
+ ${sn}
94
+ ${B}`}function W_(n){let{ide:f="Terminal Shell",mode:_,platform:B="unknown",workspaceName:d,metadata:I,rules:A,overridePrompt:D,providerId:y}=n,Y=n.workspaceRoot??n.rootPath??"",X=rn(y||"");if(D?.trim()){let J=D.trim();if(X&&I?.trim()&&!J.includes(sn))return`${J}
95
95
 
96
- ${w4(Y,B,I)}`.trim();return o}let K=_==="yolo"?d4:_4,T=[A,B4,_==="plan"?R4:void 0].filter(Boolean).join(`
96
+ ${d4(Y,d,I)}`.trim();return J}let T=_==="yolo"?B4:w4,V=[A,R4,_==="plan"?E4:void 0].filter(Boolean).join(`
97
97
 
98
- `);return K.replace("{{PLATFORM_NAME}}",w).replace("{{CWD}}",Y).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",f).replace("{{CLINE_METADATA}}",X?w4(Y,B,I):"").replace("{{CLINE_RULES}}",T).trim()}var j_="anthropic/claude-sonnet-5";var P_="remote://";import{z as R}from"zod";var E4=R.object({id:R.string(),temperature:R.number().optional(),maxTokens:R.number().optional(),contextWindow:R.number().optional(),inputPrice:R.number().optional(),outputPrice:R.number().optional(),supportsImages:R.boolean().optional()}),A4=R.object({models:R.array(E4).optional(),openAiBaseUrl:R.string().optional(),openAiHeaders:R.record(R.string(),R.string()).optional(),azureApiVersion:R.string().optional(),azureIdentity:R.boolean().optional()}),I4=R.object({id:R.string(),thinkingBudgetTokens:R.number().optional()}),$4=R.object({name:R.string(),baseModelId:R.string(),thinkingBudgetTokens:R.number().optional()}),D4=R.object({models:R.array(I4).optional(),customModels:R.array($4).optional(),awsRegion:R.string().optional(),awsUseCrossRegionInference:R.boolean().optional(),awsUseGlobalInference:R.boolean().optional(),awsBedrockUsePromptCache:R.boolean().optional(),awsBedrockEndpoint:R.string().optional()}),Y4=R.object({id:R.string()}),M4=R.object({models:R.array(Y4).optional()}),G4=R.object({id:R.string(),thinkingBudgetTokens:R.number().optional()}),y4=R.object({models:R.array(G4).optional(),vertexProjectId:R.string().optional(),vertexRegion:R.string().optional()}),X4=R.object({id:R.string(),thinkingBudgetTokens:R.number().optional(),promptCachingEnabled:R.boolean().optional()}),b4=R.object({models:R.array(X4).optional(),baseUrl:R.string().optional()}),q4=R.object({id:R.string(),thinkingBudgetTokens:R.number().optional()}),Z4=R.object({models:R.array(q4).optional(),baseUrl:R.string().optional()}),W_=R.object({OpenAiCompatible:A4.optional(),AwsBedrock:D4.optional(),Cline:M4.optional(),Vertex:y4.optional(),LiteLLM:b4.optional(),Anthropic:Z4.optional()}),k4=R.object({id:R.string()}),H4=R.object({name:R.string(),url:R.string(),alwaysEnabled:R.boolean().optional(),headers:R.record(R.string(),R.string()).optional()}),sn=R.object({alwaysEnabled:R.boolean(),name:R.string(),contents:R.string()}),Xn=R.object({bucket:R.string(),accessKeyId:R.string(),secretAccessKey:R.string(),region:R.string().optional(),endpoint:R.string().optional(),accountId:R.string().optional()}),L4=R.object({enabled:R.boolean().optional(),type:R.union([R.literal("s3_access_keys"),R.literal("r2_access_keys"),R.literal("azure_access_keys")]).optional(),s3AccessSettings:Xn.optional(),r2AccessSettings:Xn.optional(),azureAccessSettings:Xn.optional()}),J4=R.object({promptUploading:L4.optional()}),O_=R.object({version:R.string(),providerSettings:W_.optional(),telemetryEnabled:R.boolean().optional(),kanbanEnabled:R.boolean().optional(),mcpMarketplaceEnabled:R.boolean().optional(),allowedMCPServers:R.array(k4).optional(),remoteMCPServers:R.array(H4).optional(),blockPersonalRemoteMCPServers:R.boolean().optional(),yoloModeAllowed:R.boolean().optional(),openTelemetryEnabled:R.boolean().optional(),openTelemetryMetricsExporter:R.string().optional(),openTelemetryLogsExporter:R.string().optional(),openTelemetryOtlpProtocol:R.string().optional(),openTelemetryOtlpEndpoint:R.string().optional(),openTelemetryOtlpHeaders:R.record(R.string(),R.string()).optional(),openTelemetryOtlpMetricsProtocol:R.string().optional(),openTelemetryOtlpMetricsEndpoint:R.string().optional(),openTelemetryOtlpMetricsHeaders:R.record(R.string(),R.string()).optional(),openTelemetryOtlpLogsProtocol:R.string().optional(),openTelemetryOtlpLogsEndpoint:R.string().optional(),openTelemetryOtlpLogsHeaders:R.record(R.string(),R.string()).optional(),openTelemetryMetricExportInterval:R.number().optional(),openTelemetryOtlpInsecure:R.boolean().optional(),openTelemetryLogBatchSize:R.number().optional(),openTelemetryLogBatchTimeout:R.number().optional(),openTelemetryLogMaxQueueSize:R.number().optional(),enterpriseTelemetry:J4.optional(),globalRules:R.array(sn).optional(),globalWorkflows:R.array(sn).optional()}),g_=R.record(R.string(),R.string());var N_=4317;var C_="127.0.0.1:4317";import zn from"zod";var S_=zn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),c_=zn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),h_=zn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var v_="runtime.team.progress.v1",m_="runtime.team.lifecycle.v1";var u_="CLINE_ENVIRONMENT",x_="CLINE_ENVIRONMENT_OVERRIDE",pn={production:{environment:"production",appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",mcpBaseUrl:"https://api.cline.bot/v1/mcp",workOsClientId:"client_01K3A541FN8TA3EPPHTD2325AR"},staging:{environment:"staging",appBaseUrl:"https://staging-app.cline.bot",apiBaseUrl:"https://core-api.staging.int.cline.bot",mcpBaseUrl:"https://core-api.staging.int.cline.bot/v1/mcp",workOsClientId:"client_01K3A5415VF6QBQBG3XYCW91G6"},local:{environment:"local",appBaseUrl:"http://localhost:3000",apiBaseUrl:"http://localhost:7777",mcpBaseUrl:"http://localhost:7777/v1/mcp",workOsClientId:"client_01K6XQAY7JK6T5HXVSZW2S5VYK"}},l_="production";function o4(n){let f=n?.trim().toLowerCase();if(f==="production"||f==="staging"||f==="local")return f;return}function K4(){if(typeof process>"u"||!process?.env)return{};return process.env}function T4(){let n=K4();return o4(n.CLINE_ENVIRONMENT_OVERRIDE)??o4(n.CLINE_ENVIRONMENT)??"production"}function r_(n){if(typeof n==="string")return pn[n];return pn[T4()]}function s_(n,f){if(f.CLINE_API_BASE_URL)n={...n,apiBaseUrl:f.CLINE_API_BASE_URL,mcpBaseUrl:`${f.CLINE_API_BASE_URL}/v1/mcp`};return n}function z_(n){let f=r_(n);return s_(f,K4())}var p_="agent.reasoning.unexpected_tokens",i_="task.provider_request_started",a_="task.provider_stream_started",e_="task.first_chunk_received",t_="task.provider_stream_failed",n0="task.cancelled",f0="sdk.error";function _0(n,f){n?.capture({event:"agent.reasoning.unexpected_tokens",properties:F4({sessionId:f.sessionId,agentId:f.agentId,runId:f.runId,iteration:f.iteration,providerId:f.providerId,modelId:f.modelId,requestedThinking:f.requestedThinking,reasoningTokenCount:f.reasoningTokenCount})})}function d0(n,f){if(!n)return;n.capture({event:f.event,properties:F4({sessionId:f.sessionId,ulid:f.ulid??f.sessionId,agentId:f.agentId,conversationId:f.conversationId,runId:f.runId,iteration:f.iteration,provider:f.providerId,providerId:f.providerId,model:f.modelId,modelId:f.modelId,phase:f.phase,durationMs:f.durationMs,eventType:f.eventType,...f.error===void 0?{}:en(f.error,f.messageLimit)})})}function w0(n,f){if(!n)return;n.capture({event:f.event??"sdk.error",properties:U4(f)})}function U4(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...en(n.error,n.messageLimit)}}function F4(n){let f={};for(let[_,w]of Object.entries(n))if(w!==void 0)f[_]=w;return f}function en(n,f=500){let _=E0(n)?n:void 0,w=n instanceof Error?n:void 0,B=w?.message??V4(_?.message)??(typeof n==="string"?n:String(n)),I=A0(_?.code),A=an(_?.status)??an(_?.statusCode)??an(_?.responseStatus);return{error_type:w?.name?.trim()||V4(_?.name)||w?.constructor?.name||"Error",error_message:R0(B0(B),f),...I!==void 0?{error_code:I}:{},...A!==void 0?{error_status:A}:{}}}function B0(n){return n.replace(/(authorization=Bearer\s+)[^&\s]+/gi,"$1[redacted]").replace(/(api[_-]?key|access[_-]?token|refresh[_-]?token|authorization|password|secret)=([^&\s]+)/gi,"$1=[redacted]").replace(/(Bearer\s+)[A-Za-z0-9._~+/-]+=*/gi,"$1[redacted]").replace(/\/Users\/[^/\s]+/g,"/Users/[redacted]").replace(/\/home\/[^/\s]+/g,"/home/[redacted]").replace(/([A-Za-z]:[\\/]+Users[\\/]+)[^\\/\s]+/g,"$1[redacted]")}function R0(n,f){let _=Math.max(1,Math.floor(f));return n.length>_?n.substring(0,_):n}function E0(n){return typeof n==="object"&&n!==null}function V4(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function A0(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function an(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function Q4(n){let f={};if(!n)return f;return n.split(",").forEach((_)=>{let w=_.indexOf("=");if(w<=0)return;try{let B=decodeURIComponent(_.substring(0,w).trim()),I=decodeURIComponent(_.substring(w+1).trim());if(!B||!I)return;f[B]=I}catch{}}),f}function I0(){if(!process.env)return{enabled:!1};return{enabled:process.env.OTEL_TELEMETRY_ENABLED==="1"||process.env.OTEL_TELEMETRY_ENABLED==="true",metricsExporter:process.env.OTEL_METRICS_EXPORTER||"otlp",logsExporter:process.env.OTEL_LOGS_EXPORTER||"otlp",tracesExporter:process.env.OTEL_TRACES_EXPORTER,otlpProtocol:process.env.OTEL_EXPORTER_OTLP_PROTOCOL||"http/json",otlpEndpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,metricExportInterval:process.env.OTEL_METRIC_EXPORT_INTERVAL?Number.parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL,10):void 0,otlpHeaders:process.env.OTEL_EXPORTER_OTLP_HEADERS?Q4(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function j4(n={}){return{extension_version:"unknown",cline_type:"unknown",platform:"terminal",platform_version:process?.version||"unknown",os_type:process?.platform||"unknown",os_version:process?.platform==="win32"?process?.env?.OS??"unknown":"unknown",...n}}function $0(n={}){return{...I0(),...n,metadata:j4(n.metadata)}}function P4(n){let f=n?.trim();return f?f:void 0}function D0(n,f){if(!n)return;let _=typeof n==="function"?n(f):n;if(!_)return;let w=P4(_.rootSessionId);if(!w)return;return{rootSessionId:w}}function Y0(n){return P4(n?.rootSessionId)}var M0=(n)=>crypto.getRandomValues(new Uint8Array(n)),G0=(n,f,_)=>{let w=256-256%n.length;if(w===256){let I=n.length-1;return(A=f)=>{if(!A)return"";let D="";while(!0){let y=_(A),Y=A;while(Y--)if(D+=n[y[Y]&I],D.length>=A)return D}}}let B=Math.ceil(409.6*f/w);return(I=f)=>{if(!I)return"";let A="";while(!0){let D=_(B),y=B;while(y--)if(D[y]<w){if(A+=n[D[y]%n.length],A.length>=I)return A}}}},W4=(n,f=21)=>G0(n,f|0,M0);function y0(n="",f=""){let _=W4("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${_(5)}${f}`}var X0=["idle","running","pending","completed","failed","cancelled"];var tn=["rules","skills","workflows","plugins"],O4=tn,b0=new Set(tn);function g4(n){return typeof n==="string"&&b0.has(n)}function q0(n){if(!Array.isArray(n))return;let f=n.map((_)=>typeof _==="string"?_.trim():"").filter(g4);return[...new Set(f)]}function Z0(n,f){return new Set(n??O4).has(f)}import{z as Q}from"zod";var k0=Q.object({rootPath:Q.string().min(1),hint:Q.string().min(1).optional(),associatedRemoteUrls:Q.array(Q.string().min(1)).optional(),latestGitCommitHash:Q.string().min(1).optional(),latestGitBranchName:Q.string().min(1).optional()}),H0=Q.object({currentWorkspacePath:Q.string().min(1).optional(),workspaces:Q.record(Q.string().min(1),k0)});function Wd(){return{workspaces:{}}}function Od(n,f){let _={...n,workspaces:{...n.workspaces,[f.rootPath]:f}};if(!_.currentWorkspacePath)_.currentWorkspacePath=f.rootPath;return H0.parse(_)}var L0="workspaces",J0="chat";function o0(n){let f=n.trim(),_=/^[A-Za-z]:[\\/]/.test(f)||f.startsWith("\\\\"),w=f.startsWith("/");if(!_&&!w)return!1;let B=f.split(_?/[\\/]+/:/\/+/).filter(Boolean),I=B.at(-1)??"",A=B.at(-2)??"",D=B.at(-3)??"";return(B.at(-4)??"")===".cline"&&D==="data"&&A==="workspaces"&&I==="chat"}import{z as d}from"zod";var K0=["current_state","boundary_analysis","interface_proposal"],Sd=3600000,cd=240,hd=400,j=d.preprocess((n)=>n instanceof Date?n.toISOString():n,d.string().datetime()),t=d.enum(["pending","in_progress","blocked","completed"]),N4=d.enum(["queued","running","completed","failed","cancelled","interrupted"]),bn=d.enum(["draft","in_review","finalized"]),T0=d.object({agentId:d.string(),role:d.enum(["lead","teammate"]),description:d.string().optional(),status:d.enum(["idle","running","stopped"])}),vd=d.object({agentId:d.string(),rolePrompt:d.string(),modelId:d.string().optional(),maxIterations:d.number().optional()});function H(n){return d.preprocess((f)=>f===null?void 0:f,n.optional())}var md=d.object({agentId:d.string().min(1).describe("Teammate identifier"),rolePrompt:d.string().min(1).describe("System prompt describing teammate role")}).strict(),ud=d.object({agentId:d.string().min(1).describe("Teammate identifier"),reason:H(d.string().min(1)).describe("Optional shutdown reason")}),xd=d.object({}),V0={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},ld={create:["status","taskId","summary","reason"]},rd=d.object({action:d.enum(["create","list","claim","complete","block"]),title:H(d.string().min(1)).describe("Task title"),description:H(d.string().min(1)).describe("Task details"),dependsOn:H(d.array(d.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:H(d.string().min(1)).describe("Optional assignee"),status:H(d.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:H(d.string()).describe("Task ID"),summary:H(d.string().min(1)).describe("Completion summary"),reason:H(d.string().min(1)).describe("Blocking reason")}).superRefine((n,f)=>{for(let _ of V0[n.action]){if(n[_]!==void 0)continue;f.addIssue({code:"custom",path:[_],message:`Field "${_}" is required when action=${n.action}`})}}),sd=d.object({agentId:d.string().describe("Teammate agent ID"),task:d.string().min(1).describe("Task instructions for the teammate"),taskId:H(d.string()).describe("Optional shared task list ID"),runMode:H(d.enum(["sync","async"])).describe("Execution mode: 'sync' blocks until the teammate finishes and returns the result (default if omitted); 'async' queues the run and returns a runId immediately — use team_await_runs to collect results later."),continueConversation:H(d.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),zd=d.object({status:H(d.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:H(d.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:H(d.boolean()).describe("Include completed/failed runs (default true)")}),pd=d.object({runId:d.string().min(1).describe("Run ID"),reason:H(d.string().min(1)).describe("Optional cancellation reason")}),id=d.object({runId:H(d.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),ad=d.object({toAgentId:d.string().min(1).describe("Recipient agent ID"),subject:d.string().min(1).describe("Message subject"),body:d.string().min(1).describe("Message body"),taskId:H(d.string().min(1)).describe("Optional task ID context")}),ed=d.object({subject:d.string().min(1).describe("Message subject"),body:d.string().min(1).describe("Message body"),taskId:H(d.string().min(1)).describe("Optional task ID context")}),td=d.object({unreadOnly:H(d.boolean()).describe("Only unread messages for read action (default true)")}),nw=d.object({kind:d.enum(["progress","handoff","blocked","decision","done","error"]),summary:d.string().min(1).describe("Update summary"),taskId:H(d.string().min(1)).describe("Optional task ID context"),evidence:H(d.array(d.string().min(1))).describe("Optional evidence links/snippets"),nextAction:H(d.string().min(1)).describe("Planned next step")}),fw=d.object({}),_w=d.object({title:d.string().describe("Outcome title"),requiredSections:d.array(d.string()).default(K0).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),dw=d.object({outcomeId:d.string().describe("Outcome ID"),section:d.string().describe("Section name"),sourceRunId:H(d.string()).describe("Optional source run ID"),content:d.string().describe("Section fragment content")}),ww=d.object({fragmentId:d.string().describe("Fragment ID"),approved:d.boolean().describe("Review decision")}),Bw=d.object({outcomeId:d.string().describe("Outcome ID")}),Rw=d.object({}),Ew=d.object({teamId:d.string(),teamName:d.string(),members:d.array(T0),taskCounts:d.record(t,d.number()),unreadMessages:d.number(),missionLogEntries:d.number(),activeRuns:d.number(),queuedRuns:d.number(),outcomeCounts:d.record(bn,d.number())}),U0=d.object({id:d.string(),title:d.string(),description:d.string(),status:t,createdAt:j,updatedAt:j,createdBy:d.string(),assignee:d.string().optional(),dependsOn:d.array(d.string()),summary:d.string().optional(),isReady:d.boolean(),blockedBy:d.array(d.string())}),Aw=d.discriminatedUnion("action",[d.object({action:d.literal("create"),taskId:d.string(),status:t,ignoredFields:d.array(d.string()).optional(),note:d.string().optional()}),d.object({action:d.literal("list"),tasks:d.array(U0)}),d.object({action:d.literal("claim"),taskId:d.string(),status:t,nextStep:d.string()}),d.object({action:d.literal("complete"),taskId:d.string(),status:t}),d.object({action:d.literal("block"),taskId:d.string(),status:t})]),Iw=d.object({agentId:d.string(),mode:d.enum(["sync","async"]),status:d.enum(["dispatched","running","queued","joined"]),dispatched:d.boolean(),message:d.string(),deduped:d.boolean().optional(),runId:d.string().optional(),text:d.string().optional(),iterations:d.number().optional()}),F0=d.object({textPreview:d.string(),iterations:d.number(),finishReason:d.string(),durationMs:d.number(),usage:d.object({inputTokens:d.number(),outputTokens:d.number(),cacheReadTokens:d.number().optional(),cacheWriteTokens:d.number().optional(),totalCost:d.number().optional()})}),$w=d.object({id:d.string(),agentId:d.string(),taskId:d.string().optional(),status:N4,messagePreview:d.string(),priority:d.number(),retryCount:d.number(),maxRetries:d.number(),nextAttemptAt:j.optional(),continueConversation:d.boolean().optional(),startedAt:j,endedAt:j.optional(),leaseOwner:d.string().optional(),heartbeatAt:j.optional(),lastProgressAt:j.optional(),lastProgressMessage:d.string().optional(),currentActivity:d.string().optional(),error:d.string().optional(),resultSummary:F0.optional()}),Dw=d.object({id:d.string(),teamId:d.string(),fromAgentId:d.string(),toAgentId:d.string(),subject:d.string(),body:d.string(),taskId:d.string().optional(),sentAt:j,readAt:j.optional()}),Yw=d.object({id:d.string(),teamId:d.string(),title:d.string(),status:bn,requiredSections:d.array(d.string()),createdBy:d.string(),createdAt:j,finalizedAt:j.optional()}),Mw=d.object({outcomeId:d.string(),status:bn,requiredSections:d.array(d.string())}),Gw=d.object({agentId:d.string(),status:d.string()}),yw=d.object({runId:d.string(),status:N4}),Xw=d.object({id:d.string(),toAgentId:d.string()}),bw=d.object({delivered:d.number()}),qw=d.object({id:d.string()}),Zw=d.object({status:d.string()}),kw=d.object({fragmentId:d.string(),status:d.string()}),Hw=d.object({outcomeId:d.string(),status:bn});var Q0;((L)=>{L.TaskStart="task_start";L.TaskEnd="task_end";L.AgentEvent="agent_event";L.TeammateSpawned="teammate_spawned";L.TeammateShutdown="teammate_shutdown";L.TeamTaskUpdated="team_task_updated";L.TeamMessage="team_message";L.TeamMissionLog="team_mission_log";L.TeamTaskCompleted="team_task_completed";L.RunStarted="run_started";L.RunQueued="run_queued";L.RunProgress="run_progress";L.RunCompleted="run_completed";L.RunFailed="run_failed";L.RunCancelled="run_cancelled";L.RunInterrupted="run_interrupted";L.OutcomeCreated="outcome_created";L.OutcomeFragmentAttached="outcome_fragment_attached";L.OutcomeFragmentReviewed="outcome_fragment_reviewed";L.OutcomeFinalized="outcome_finalized"})(Q0||={});import{z as j0}from"zod";function P0(n){let{$schema:f,..._}=n;if(typeof _.type==="string")return _;if("properties"in _||"required"in _||"additionalProperties"in _)return{type:"object",..._};for(let w of["oneOf","anyOf","allOf"]){let B=_[w];if(!Array.isArray(B)||B.length===0)continue;if(w==="allOf"){if(B.some((D)=>D&&typeof D==="object"&&D.type==="object"))return{type:"object",..._};throw Error('Tool inputSchema must describe an object at the top level, but the schema has a top-level "allOf" with no branch that asserts type: "object". Add type: "object" to at least one allOf branch to make the object constraint explicit.')}if(B.every((A)=>A&&typeof A==="object"&&A.type==="object"))return{type:"object",..._};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${w}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return _}function W0(n){let f=P0(n.inputSchema instanceof j0.ZodType?xn(n.inputSchema):n.inputSchema);return{name:n.name,description:n.description,inputSchema:f,lifecycle:n.lifecycle,timeoutMs:n.timeoutMs??30000,retryable:n.retryable??!0,maxRetries:n.maxRetries??3,execute:n.execute}}var C4=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function O0(n){let f=(n instanceof Error?n.message:String(n)).toLowerCase();return C4.some((_)=>f.includes(_))}export{xn as zodToJsonSchema,Qf as xmlTagsRemoval,F_ as validateWithZod,gf as validateImageMedia,fn as validateAndReserveImageMedia,Od as upsertWorkspaceInfo,n4 as truncateStr,o_ as truncateSplit,J_ as trimNonEmpty,Sf as toAiSdkToolResultOutput,T_ as stripUtf8Bom,Ff as stripModeNotices,n6 as shouldIncludeConnectorField,e6 as serializeAbortReason,F as sanitizeSurrogates,L_ as sanitizeFileName,Y_ as safeJsonStringify,M_ as safeJsonParse,Y0 as resolveRootSessionId,hf as resolveReasoningEffortRatio,a6 as resolveReasoningBudgetFromRatio,Pf as resolveMediaBudget,v1 as resolveMcpTimeoutSeconds,X1 as resolveHubCommandTimeoutMs,D0 as resolveHookSessionContext,i6 as resolveEffectiveReasoningEffort,T4 as resolveClineEnvironment,nn as reserveImageMediaBytes,G1 as readHubScheduleMode,Vf as parseUserCommandEnvelope,q0 as parseRuntimeConfigExtensions,D_ as parseJsonStream,H6 as parseHookEventPayload,q_ as omitUndefinedValues,Uf as normalizeUserInput,en as normalizeSdkError,Lf as normalizePluginManifest,un as normalizeJsonLikeStringsForSchema,f_ as noopBasicLogger,z6 as mergeModelOptions,K_ as maskSecret,bf as listConnectorCatalog,g4 as isRuntimeConfigExtensionKind,__ as isMcpTimeoutConfigured,O0 as isLikelyAuthError,b1 as isHubToolExecutorName,L6 as isHubScheduleMode,D1 as isHubProtocolCompatible,ln as isClineProvider,o0 as isChatWorkspacePath,c6 as isCanonicalBase64,Wf as isBase64Char,S6 as imageFileMaxDecodedBytesForBase64Limit,Kn as imageBase64LengthForDecodedBytes,C6 as imageBase64EncodedByteLength,jf as imageBase64DecodedByteLength,Z0 as hasRuntimeConfigExtension,tf as getShellKind,H_ as getShellArgs,k_ as getDefaultShell,o6 as getDefaultHubCommandTimeoutMs,z_ as getClineEnvironmentConfig,V6 as formatUserInputBlock,U6 as formatUserCommandBlock,U_ as formatUptime,F6 as formatModeSwitchNotice,s6 as formatMessagesForAiSdk,m1 as formatMcpTimeoutErrorMessage,V_ as formatHumanReadableDate,on as formatFileContentBlock,O6 as formatDisplayUserInput,vf as estimateTokens,n_ as estimateRequestInputTokens,Wd as emptyWorkspaceManifest,b_ as decodeJwtPayload,W0 as createTool,y0 as createSessionId,Q6 as createModeSwitchNoticeTracker,Mn as createMediaBudgetState,I6 as createContributionRegistry,j4 as createClineTelemetryServiceMetadata,$0 as createClineTelemetryServiceConfig,f6 as connectorChannelsFromPlatforms,d_ as clampMcpTimeoutSeconds,d0 as captureTaskLifecycleEvent,w0 as captureSdkError,_0 as captureAgentUnexpectedReasoningTokens,U4 as buildSdkErrorProperties,Q_ as buildClineSystemPrompt,H0 as WorkspaceManifestSchema,k0 as WorkspaceInfoSchema,y4 as VertexSettingsSchema,G4 as VertexModelSchema,j1 as USAGE_COST_DISPLAYS,Ln as ToolCallRecordSchema,Df as ThinkingConfigSchema,vd as TeamTeammateSpecSchema,Aw as TeamTaskToolResultSchema,U0 as TeamTaskListItemToolResultSchema,rd as TeamTaskInputSchema,Ew as TeamStatusToolResultSchema,xd as TeamStatusInputSchema,md as TeamSpawnTeammateInputSchema,Gw as TeamSimpleAgentStatusToolResultSchema,ud as TeamShutdownTeammateInputSchema,Xw as TeamSendMessageToolResultSchema,ad as TeamSendMessageInputSchema,$w as TeamRunToolSummarySchema,Iw as TeamRunTaskToolResultSchema,sd as TeamRunTaskInputSchema,F0 as TeamRunResultSummarySchema,ww as TeamReviewOutcomeFragmentInputSchema,td as TeamReadMailboxInputSchema,Yw as TeamOutcomeToolResultSchema,kw as TeamOutcomeFragmentToolResultSchema,qw as TeamMissionLogToolResultSchema,nw as TeamMissionLogInputSchema,Q0 as TeamMessageType,Dw as TeamMailboxMessageToolResultSchema,zd as TeamListRunsInputSchema,Rw as TeamListOutcomesInputSchema,Hw as TeamFinalizeOutcomeToolResultSchema,Bw as TeamFinalizeOutcomeInputSchema,Mw as TeamCreateOutcomeToolResultSchema,_w as TeamCreateOutcomeInputSchema,Zw as TeamCleanupToolResultSchema,fw as TeamCleanupInputSchema,yw as TeamCancelRunToolResultSchema,pd as TeamCancelRunInputSchema,bw as TeamBroadcastToolResultSchema,ed as TeamBroadcastInputSchema,id as TeamAwaitRunsInputSchema,dw as TeamAttachOutcomeFragmentInputSchema,ld as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,hd as TEAM_RUN_TEXT_PREVIEW_LIMIT,cd as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,v_ as TEAM_PROGRESS_EVENT_TYPE,m_ as TEAM_LIFECYCLE_EVENT_TYPE,Sd as TEAM_AWAIT_TIMEOUT_MS,a_ as TASK_PROVIDER_STREAM_STARTED_EVENT,t_ as TASK_PROVIDER_STREAM_FAILED_EVENT,i_ as TASK_PROVIDER_REQUEST_STARTED_EVENT,e_ as TASK_FIRST_CHUNK_RECEIVED_EVENT,n0 as TASK_CANCELLED_EVENT,Yn as SUPPORTED_IMAGE_MEDIA_TYPES,X0 as SESSION_STATUS_VALUES,f0 as SDK_ERROR_TELEMETRY_EVENT,Xn as S3AccessKeySettingsSchema,H4 as RemoteMCPServerSchema,O_ as RemoteConfigSchema,kn as ReasoningLevelSchema,An as ReasoningEffortSchema,tn as RUNTIME_CONFIG_EXTENSION_KINDS,P_ as REMOTE_URI_SCHEME,En as REASONING_LEVELS,dn as REASONING_EFFORT_RATIOS,c_ as ProviderProtocolSchema,h_ as ProviderClientSchema,S_ as ProviderCapabilitySchema,L4 as PromptUploadingSchema,$6 as PLUGIN_FILE_EXTENSIONS,R4 as PLAN_MODE_INSTRUCTIONS,A4 as OpenAiCompatibleSchema,E4 as OpenAiCompatibleModelSchema,M1 as ONE_TIME_SCHEDULE_RUN_AT_METADATA_KEY,Y1 as ONE_TIME_SCHEDULE_CRON_PATTERN,If as ModelStatusSchema,Hn as ModelReasoningOptionSchema,$f as ModelPricingSchema,Yf as ModelMetadataSchema,In as ModelInfoSchema,Af as ModelCapabilitySchema,B4 as MODE_TAG_INSTRUCTIONS,c1 as MIN_MCP_TIMEOUT_SECONDS,A1 as MIN_CLIENT_HUB_PROTOCOL_VERSION,h1 as MAX_MCP_TIMEOUT_SECONDS,I1 as MAX_CLIENT_HUB_PROTOCOL_VERSION,b4 as LiteLLMSchema,X4 as LiteLLMModelSchema,v as IMAGE_OMITTED_PLACEHOLDER,Kf as HookEventPayloadSchema,of as HookEventNameSchema,o1 as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,K6 as HUB_TOOL_EXECUTOR_NAMES,q1 as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,Tf as HUB_SCHEDULE_MODES,J1 as HUB_MISTAKE_LIMIT_CAPABILITY,k1 as HUB_HOOK_CAPABILITY_PREFIX,J6 as HUB_DEFAULT_COMMAND_TIMEOUT_MS,Z1 as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,H1 as HUB_COMPACTION_CAPABILITY,y1 as HUB_COMMAND_SLOW_LOG_MS,L1 as HUB_CHECKPOINT_CAPABILITY,$1 as HUB_CAPABILITIES,sn as GlobalInstructionsFileSchema,D6 as FeatureFlagDefaultValue,Y6 as FEATURE_FLAGS,J4 as EnterpriseTelemetrySchema,Tn as EMPTY_CONTENT_TEXT,O4 as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,p6 as DEFAULT_REASONING_EFFORT,K0 as DEFAULT_OUTCOME_REQUIRED_SECTIONS,S1 as DEFAULT_MCP_TIMEOUT_SECONDS,N6 as DEFAULT_MAX_TOTAL_MEDIA_BYTES,S as DEFAULT_MAX_IMAGE_ENCODED_BYTES,m as DEFAULT_MAX_IMAGE_DECODED_BYTES,g6 as DEFAULT_MAX_IMAGE_BASE64_BYTES,l_ as DEFAULT_CLINE_ENVIRONMENT,Jn as ContributionRegistry,t4 as ConnectorHookEventSchema,Mf as ConnectorHookEventNameSchema,yf as ConnectorEventContextSchema,Gf as ConnectorEventActorSchema,a4 as ConnectorAuthorizationRequestSchema,e4 as ConnectorAuthorizationDecisionSchema,M4 as ClineSettingsSchema,Y4 as ClineModelSchema,E1 as CURRENT_HUB_PROTOCOL_VERSION,qf as CONNECTOR_PLATFORMS,Xf as CONNECTOR_CATALOG,L0 as CLINE_WORKSPACES_DIRECTORY_NAME,x_ as CLINE_ENVIRONMENT_OVERRIDE_ENV,u_ as CLINE_ENVIRONMENT_ENV,pn as CLINE_ENVIRONMENTS,N_ as CLINE_DEFAULT_RPC_PORT,C_ as CLINE_DEFAULT_RPC_ADDRESS,j_ as CLINE_DEFAULT_MODEL_ID,J0 as CLINE_CHAT_WORKSPACE_DIRECTORY_NAME,t6 as CHARS_PER_TOKEN,D4 as AwsBedrockSettingsSchema,I4 as AwsBedrockModelSchema,$4 as AwsBedrockCustomModelSchema,Ef as ApiFormatSchema,z4 as ApiFormat,Z4 as AnthropicSchema,q4 as AnthropicModelSchema,k4 as AllowedMCPServerSchema,i4 as AgentUsageSchema,s0 as AgentResultSchema,p4 as AgentFinishReasonSchema,z0 as AgentConfigSchema,C4 as AUTH_ERROR_PATTERNS,g_ as APIKeySchema,p_ as AGENT_UNEXPECTED_REASONING_TOKENS_EVENT};
98
+ `);return T.replace("{{PLATFORM_NAME}}",B).replace("{{CWD}}",Y).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",f).replace("{{CLINE_METADATA}}",X?d4(Y,d,I):"").replace("{{CLINE_RULES}}",V).trim()}var g_="anthropic/claude-sonnet-5";var O_="remote://";import{z as R}from"zod";var A4=R.object({id:R.string(),temperature:R.number().optional(),maxTokens:R.number().optional(),contextWindow:R.number().optional(),inputPrice:R.number().optional(),outputPrice:R.number().optional(),supportsImages:R.boolean().optional()}),I4=R.object({models:R.array(A4).optional(),openAiBaseUrl:R.string().optional(),openAiHeaders:R.record(R.string(),R.string()).optional(),azureApiVersion:R.string().optional(),azureIdentity:R.boolean().optional()}),$4=R.object({id:R.string(),thinkingBudgetTokens:R.number().optional()}),D4=R.object({name:R.string(),baseModelId:R.string(),thinkingBudgetTokens:R.number().optional()}),Y4=R.object({models:R.array($4).optional(),customModels:R.array(D4).optional(),awsRegion:R.string().optional(),awsUseCrossRegionInference:R.boolean().optional(),awsUseGlobalInference:R.boolean().optional(),awsBedrockUsePromptCache:R.boolean().optional(),awsBedrockEndpoint:R.string().optional()}),M4=R.object({id:R.string()}),G4=R.object({models:R.array(M4).optional()}),y4=R.object({id:R.string(),thinkingBudgetTokens:R.number().optional()}),X4=R.object({models:R.array(y4).optional(),vertexProjectId:R.string().optional(),vertexRegion:R.string().optional()}),b4=R.object({id:R.string(),thinkingBudgetTokens:R.number().optional(),promptCachingEnabled:R.boolean().optional()}),q4=R.object({models:R.array(b4).optional(),baseUrl:R.string().optional()}),k4=R.object({id:R.string(),thinkingBudgetTokens:R.number().optional()}),Z4=R.object({models:R.array(k4).optional(),baseUrl:R.string().optional()}),N_=R.object({OpenAiCompatible:I4.optional(),AwsBedrock:Y4.optional(),Cline:G4.optional(),Vertex:X4.optional(),LiteLLM:q4.optional(),Anthropic:Z4.optional()}),H4=R.object({id:R.string()}),o4=R.object({name:R.string(),url:R.string(),alwaysEnabled:R.boolean().optional(),headers:R.record(R.string(),R.string()).optional()}),zn=R.object({alwaysEnabled:R.boolean(),name:R.string(),contents:R.string()}),Xn=R.object({bucket:R.string(),accessKeyId:R.string(),secretAccessKey:R.string(),region:R.string().optional(),endpoint:R.string().optional(),accountId:R.string().optional()}),L4=R.object({enabled:R.boolean().optional(),type:R.union([R.literal("s3_access_keys"),R.literal("r2_access_keys"),R.literal("azure_access_keys")]).optional(),s3AccessSettings:Xn.optional(),r2AccessSettings:Xn.optional(),azureAccessSettings:Xn.optional()}),J4=R.object({promptUploading:L4.optional()}),C_=R.object({version:R.string(),providerSettings:N_.optional(),telemetryEnabled:R.boolean().optional(),kanbanEnabled:R.boolean().optional(),mcpMarketplaceEnabled:R.boolean().optional(),allowedMCPServers:R.array(H4).optional(),remoteMCPServers:R.array(o4).optional(),blockPersonalRemoteMCPServers:R.boolean().optional(),yoloModeAllowed:R.boolean().optional(),openTelemetryEnabled:R.boolean().optional(),openTelemetryMetricsExporter:R.string().optional(),openTelemetryLogsExporter:R.string().optional(),openTelemetryOtlpProtocol:R.string().optional(),openTelemetryOtlpEndpoint:R.string().optional(),openTelemetryOtlpHeaders:R.record(R.string(),R.string()).optional(),openTelemetryOtlpMetricsProtocol:R.string().optional(),openTelemetryOtlpMetricsEndpoint:R.string().optional(),openTelemetryOtlpMetricsHeaders:R.record(R.string(),R.string()).optional(),openTelemetryOtlpLogsProtocol:R.string().optional(),openTelemetryOtlpLogsEndpoint:R.string().optional(),openTelemetryOtlpLogsHeaders:R.record(R.string(),R.string()).optional(),openTelemetryMetricExportInterval:R.number().optional(),openTelemetryOtlpInsecure:R.boolean().optional(),openTelemetryLogBatchSize:R.number().optional(),openTelemetryLogBatchTimeout:R.number().optional(),openTelemetryLogMaxQueueSize:R.number().optional(),enterpriseTelemetry:J4.optional(),globalRules:R.array(zn).optional(),globalWorkflows:R.array(zn).optional()}),S_=R.record(R.string(),R.string());var c_=4317;var v_="127.0.0.1:4317";import pn from"zod";var h_=pn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),u_=pn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),m_=pn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var x_="runtime.team.progress.v1",l_="runtime.team.lifecycle.v1";var r_="CLINE_ENVIRONMENT",s_="CLINE_ENVIRONMENT_OVERRIDE",an={production:{environment:"production",appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",mcpBaseUrl:"https://api.cline.bot/v1/mcp",workOsClientId:"client_01K3A541FN8TA3EPPHTD2325AR"},staging:{environment:"staging",appBaseUrl:"https://staging-app.cline.bot",apiBaseUrl:"https://core-api.staging.int.cline.bot",mcpBaseUrl:"https://core-api.staging.int.cline.bot/v1/mcp",workOsClientId:"client_01K3A5415VF6QBQBG3XYCW91G6"},local:{environment:"local",appBaseUrl:"http://localhost:3000",apiBaseUrl:"http://localhost:7777",mcpBaseUrl:"http://localhost:7777/v1/mcp",workOsClientId:"client_01K6XQAY7JK6T5HXVSZW2S5VYK"}},z_="production";function T4(n){let f=n?.trim().toLowerCase();if(f==="production"||f==="staging"||f==="local")return f;return}function V4(){if(typeof process>"u"||!process?.env)return{};return process.env}function K4(){let n=V4();return T4(n.CLINE_ENVIRONMENT_OVERRIDE)??T4(n.CLINE_ENVIRONMENT)??"production"}function p_(n){if(typeof n==="string")return an[n];return an[K4()]}function i_(n,f){if(f.CLINE_API_BASE_URL)n={...n,apiBaseUrl:f.CLINE_API_BASE_URL,mcpBaseUrl:`${f.CLINE_API_BASE_URL}/v1/mcp`};return n}function a_(n){let f=p_(n);return i_(f,V4())}var e_="agent.reasoning.unexpected_tokens",t_="task.provider_request_started",n0="task.provider_stream_started",f0="task.first_chunk_received",_0="task.provider_stream_failed",w0="task.cancelled",B0="sdk.error";function d0(n,f){n?.capture({event:"agent.reasoning.unexpected_tokens",properties:Q4({sessionId:f.sessionId,agentId:f.agentId,runId:f.runId,iteration:f.iteration,providerId:f.providerId,modelId:f.modelId,requestedThinking:f.requestedThinking,reasoningTokenCount:f.reasoningTokenCount})})}function R0(n,f){if(!n)return;n.capture({event:f.event,properties:Q4({sessionId:f.sessionId,ulid:f.ulid??f.sessionId,agentId:f.agentId,conversationId:f.conversationId,runId:f.runId,iteration:f.iteration,provider:f.providerId,providerId:f.providerId,model:f.modelId,modelId:f.modelId,phase:f.phase,durationMs:f.durationMs,eventType:f.eventType,...f.error===void 0?{}:tn(f.error,f.messageLimit)})})}function E0(n,f){if(!n)return;n.capture({event:f.event??"sdk.error",properties:F4(f)})}function F4(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...tn(n.error,n.messageLimit)}}function Q4(n){let f={};for(let[_,B]of Object.entries(n))if(B!==void 0)f[_]=B;return f}function tn(n,f=500){let _=$0(n)?n:void 0,B=n instanceof Error?n:void 0,d=B?.message??U4(_?.message)??(typeof n==="string"?n:String(n)),I=D0(_?.code),A=en(_?.status)??en(_?.statusCode)??en(_?.responseStatus);return{error_type:B?.name?.trim()||U4(_?.name)||B?.constructor?.name||"Error",error_message:I0(A0(d),f),...I!==void 0?{error_code:I}:{},...A!==void 0?{error_status:A}:{}}}function A0(n){return n.replace(/(authorization=Bearer\s+)[^&\s]+/gi,"$1[redacted]").replace(/(api[_-]?key|access[_-]?token|refresh[_-]?token|authorization|password|secret)=([^&\s]+)/gi,"$1=[redacted]").replace(/(Bearer\s+)[A-Za-z0-9._~+/-]+=*/gi,"$1[redacted]").replace(/\/Users\/[^/\s]+/g,"/Users/[redacted]").replace(/\/home\/[^/\s]+/g,"/home/[redacted]").replace(/([A-Za-z]:[\\/]+Users[\\/]+)[^\\/\s]+/g,"$1[redacted]")}function I0(n,f){let _=Math.max(1,Math.floor(f));return n.length>_?n.substring(0,_):n}function $0(n){return typeof n==="object"&&n!==null}function U4(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function D0(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function en(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function j4(n){let f={};if(!n)return f;return n.split(",").forEach((_)=>{let B=_.indexOf("=");if(B<=0)return;try{let d=decodeURIComponent(_.substring(0,B).trim()),I=decodeURIComponent(_.substring(B+1).trim());if(!d||!I)return;f[d]=I}catch{}}),f}function Y0(){if(!process.env)return{enabled:!1};return{enabled:process.env.OTEL_TELEMETRY_ENABLED==="1"||process.env.OTEL_TELEMETRY_ENABLED==="true",metricsExporter:process.env.OTEL_METRICS_EXPORTER||"otlp",logsExporter:process.env.OTEL_LOGS_EXPORTER||"otlp",tracesExporter:process.env.OTEL_TRACES_EXPORTER,otlpProtocol:process.env.OTEL_EXPORTER_OTLP_PROTOCOL||"http/json",otlpEndpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,metricExportInterval:process.env.OTEL_METRIC_EXPORT_INTERVAL?Number.parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL,10):void 0,otlpHeaders:process.env.OTEL_EXPORTER_OTLP_HEADERS?j4(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function P4(n={}){return{extension_version:"unknown",cline_type:"unknown",platform:"terminal",platform_version:process?.version||"unknown",os_type:process?.platform||"unknown",os_version:process?.platform==="win32"?process?.env?.OS??"unknown":"unknown",...n}}function M0(n={}){return{...Y0(),...n,metadata:P4(n.metadata)}}function W4(n){let f=n?.trim();return f?f:void 0}function G0(n,f){if(!n)return;let _=typeof n==="function"?n(f):n;if(!_)return;let B=W4(_.rootSessionId);if(!B)return;return{rootSessionId:B}}function y0(n){return W4(n?.rootSessionId)}var X0=(n)=>crypto.getRandomValues(new Uint8Array(n)),b0=(n,f,_)=>{let B=256-256%n.length;if(B===256){let I=n.length-1;return(A=f)=>{if(!A)return"";let D="";while(!0){let y=_(A),Y=A;while(Y--)if(D+=n[y[Y]&I],D.length>=A)return D}}}let d=Math.ceil(409.6*f/B);return(I=f)=>{if(!I)return"";let A="";while(!0){let D=_(d),y=d;while(y--)if(D[y]<B){if(A+=n[D[y]%n.length],A.length>=I)return A}}}},g4=(n,f=21)=>b0(n,f|0,X0);function q0(n="",f=""){let _=g4("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${_(5)}${f}`}var k0=["idle","running","pending","completed","failed","cancelled"];var nf=["rules","skills","workflows","plugins"],O4=nf,Z0=new Set(nf);function N4(n){return typeof n==="string"&&Z0.has(n)}function H0(n){if(!Array.isArray(n))return;let f=n.map((_)=>typeof _==="string"?_.trim():"").filter(N4);return[...new Set(f)]}function o0(n,f){return new Set(n??O4).has(f)}import{z as Q}from"zod";var L0=Q.object({rootPath:Q.string().min(1),hint:Q.string().min(1).optional(),associatedRemoteUrls:Q.array(Q.string().min(1)).optional(),latestGitCommitHash:Q.string().min(1).optional(),latestGitBranchName:Q.string().min(1).optional()}),J0=Q.object({currentWorkspacePath:Q.string().min(1).optional(),workspaces:Q.record(Q.string().min(1),L0)});function Cw(){return{workspaces:{}}}function Sw(n,f){let _={...n,workspaces:{...n.workspaces,[f.rootPath]:f}};if(!_.currentWorkspacePath)_.currentWorkspacePath=f.rootPath;return J0.parse(_)}var T0="workspaces",V0="chat";function K0(n){let f=n.trim(),_=/^[A-Za-z]:[\\/]/.test(f)||f.startsWith("\\\\"),B=f.startsWith("/");if(!_&&!B)return!1;let d=f.split(_?/[\\/]+/:/\/+/).filter(Boolean),I=d.at(-1)??"",A=d.at(-2)??"",D=d.at(-3)??"";return(d.at(-4)??"")===".cline"&&D==="data"&&A==="workspaces"&&I==="chat"}import{z as w}from"zod";var U0=["current_state","boundary_analysis","interface_proposal"],uw=3600000,mw=240,xw=400,j=w.preprocess((n)=>n instanceof Date?n.toISOString():n,w.string().datetime()),t=w.enum(["pending","in_progress","blocked","completed"]),C4=w.enum(["queued","running","completed","failed","cancelled","interrupted"]),bn=w.enum(["draft","in_review","finalized"]),F0=w.object({agentId:w.string(),role:w.enum(["lead","teammate"]),description:w.string().optional(),status:w.enum(["idle","running","stopped"])}),lw=w.object({agentId:w.string(),rolePrompt:w.string(),modelId:w.string().optional(),maxIterations:w.number().optional()});function H(n){return w.preprocess((f)=>f===null?void 0:f,n.optional())}var rw=w.object({agentId:w.string().min(1).describe("Teammate identifier"),rolePrompt:w.string().min(1).describe("System prompt describing teammate role")}).strict(),sw=w.object({agentId:w.string().min(1).describe("Teammate identifier"),reason:H(w.string().min(1)).describe("Optional shutdown reason")}),zw=w.object({}),Q0={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},pw={create:["status","taskId","summary","reason"]},iw=w.object({action:w.enum(["create","list","claim","complete","block"]),title:H(w.string().min(1)).describe("Task title"),description:H(w.string().min(1)).describe("Task details"),dependsOn:H(w.array(w.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:H(w.string().min(1)).describe("Optional assignee"),status:H(w.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:H(w.string()).describe("Task ID"),summary:H(w.string().min(1)).describe("Completion summary"),reason:H(w.string().min(1)).describe("Blocking reason")}).superRefine((n,f)=>{for(let _ of Q0[n.action]){if(n[_]!==void 0)continue;f.addIssue({code:"custom",path:[_],message:`Field "${_}" is required when action=${n.action}`})}}),aw=w.object({agentId:w.string().describe("Teammate agent ID"),task:w.string().min(1).describe("Task instructions for the teammate"),taskId:H(w.string()).describe("Optional shared task list ID"),runMode:H(w.enum(["sync","async"])).describe("Execution mode: 'sync' blocks until the teammate finishes and returns the result (default if omitted); 'async' queues the run and returns a runId immediately — use team_await_runs to collect results later."),continueConversation:H(w.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),ew=w.object({status:H(w.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:H(w.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:H(w.boolean()).describe("Include completed/failed runs (default true)")}),tw=w.object({runId:w.string().min(1).describe("Run ID"),reason:H(w.string().min(1)).describe("Optional cancellation reason")}),nB=w.object({runId:H(w.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),fB=w.object({toAgentId:w.string().min(1).describe("Recipient agent ID"),subject:w.string().min(1).describe("Message subject"),body:w.string().min(1).describe("Message body"),taskId:H(w.string().min(1)).describe("Optional task ID context")}),_B=w.object({subject:w.string().min(1).describe("Message subject"),body:w.string().min(1).describe("Message body"),taskId:H(w.string().min(1)).describe("Optional task ID context")}),wB=w.object({unreadOnly:H(w.boolean()).describe("Only unread messages for read action (default true)")}),BB=w.object({kind:w.enum(["progress","handoff","blocked","decision","done","error"]),summary:w.string().min(1).describe("Update summary"),taskId:H(w.string().min(1)).describe("Optional task ID context"),evidence:H(w.array(w.string().min(1))).describe("Optional evidence links/snippets"),nextAction:H(w.string().min(1)).describe("Planned next step")}),dB=w.object({}),RB=w.object({title:w.string().describe("Outcome title"),requiredSections:w.array(w.string()).default(U0).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),EB=w.object({outcomeId:w.string().describe("Outcome ID"),section:w.string().describe("Section name"),sourceRunId:H(w.string()).describe("Optional source run ID"),content:w.string().describe("Section fragment content")}),AB=w.object({fragmentId:w.string().describe("Fragment ID"),approved:w.boolean().describe("Review decision")}),IB=w.object({outcomeId:w.string().describe("Outcome ID")}),$B=w.object({}),DB=w.object({teamId:w.string(),teamName:w.string(),members:w.array(F0),taskCounts:w.record(t,w.number()),unreadMessages:w.number(),missionLogEntries:w.number(),activeRuns:w.number(),queuedRuns:w.number(),outcomeCounts:w.record(bn,w.number())}),j0=w.object({id:w.string(),title:w.string(),description:w.string(),status:t,createdAt:j,updatedAt:j,createdBy:w.string(),assignee:w.string().optional(),dependsOn:w.array(w.string()),summary:w.string().optional(),isReady:w.boolean(),blockedBy:w.array(w.string())}),YB=w.discriminatedUnion("action",[w.object({action:w.literal("create"),taskId:w.string(),status:t,ignoredFields:w.array(w.string()).optional(),note:w.string().optional()}),w.object({action:w.literal("list"),tasks:w.array(j0)}),w.object({action:w.literal("claim"),taskId:w.string(),status:t,nextStep:w.string()}),w.object({action:w.literal("complete"),taskId:w.string(),status:t}),w.object({action:w.literal("block"),taskId:w.string(),status:t})]),MB=w.object({agentId:w.string(),mode:w.enum(["sync","async"]),status:w.enum(["dispatched","running","queued","joined"]),dispatched:w.boolean(),message:w.string(),deduped:w.boolean().optional(),runId:w.string().optional(),text:w.string().optional(),iterations:w.number().optional()}),P0=w.object({textPreview:w.string(),iterations:w.number(),finishReason:w.string(),durationMs:w.number(),usage:w.object({inputTokens:w.number(),outputTokens:w.number(),cacheReadTokens:w.number().optional(),cacheWriteTokens:w.number().optional(),totalCost:w.number().optional()})}),GB=w.object({id:w.string(),agentId:w.string(),taskId:w.string().optional(),status:C4,messagePreview:w.string(),priority:w.number(),retryCount:w.number(),maxRetries:w.number(),nextAttemptAt:j.optional(),continueConversation:w.boolean().optional(),startedAt:j,endedAt:j.optional(),leaseOwner:w.string().optional(),heartbeatAt:j.optional(),lastProgressAt:j.optional(),lastProgressMessage:w.string().optional(),currentActivity:w.string().optional(),error:w.string().optional(),resultSummary:P0.optional()}),yB=w.object({id:w.string(),teamId:w.string(),fromAgentId:w.string(),toAgentId:w.string(),subject:w.string(),body:w.string(),taskId:w.string().optional(),sentAt:j,readAt:j.optional()}),XB=w.object({id:w.string(),teamId:w.string(),title:w.string(),status:bn,requiredSections:w.array(w.string()),createdBy:w.string(),createdAt:j,finalizedAt:j.optional()}),bB=w.object({outcomeId:w.string(),status:bn,requiredSections:w.array(w.string())}),qB=w.object({agentId:w.string(),status:w.string()}),kB=w.object({runId:w.string(),status:C4}),ZB=w.object({id:w.string(),toAgentId:w.string()}),HB=w.object({delivered:w.number()}),oB=w.object({id:w.string()}),LB=w.object({status:w.string()}),JB=w.object({fragmentId:w.string(),status:w.string()}),TB=w.object({outcomeId:w.string(),status:bn});var W0;((o)=>{o.TaskStart="task_start";o.TaskEnd="task_end";o.AgentEvent="agent_event";o.TeammateSpawned="teammate_spawned";o.TeammateShutdown="teammate_shutdown";o.TeamTaskUpdated="team_task_updated";o.TeamMessage="team_message";o.TeamMissionLog="team_mission_log";o.TeamTaskCompleted="team_task_completed";o.RunStarted="run_started";o.RunQueued="run_queued";o.RunProgress="run_progress";o.RunCompleted="run_completed";o.RunFailed="run_failed";o.RunCancelled="run_cancelled";o.RunInterrupted="run_interrupted";o.OutcomeCreated="outcome_created";o.OutcomeFragmentAttached="outcome_fragment_attached";o.OutcomeFragmentReviewed="outcome_fragment_reviewed";o.OutcomeFinalized="outcome_finalized"})(W0||={});import{z as g0}from"zod";function O0(n){let{$schema:f,..._}=n;if(typeof _.type==="string")return _;if("properties"in _||"required"in _||"additionalProperties"in _)return{type:"object",..._};for(let B of["oneOf","anyOf","allOf"]){let d=_[B];if(!Array.isArray(d)||d.length===0)continue;if(B==="allOf"){if(d.some((D)=>D&&typeof D==="object"&&D.type==="object"))return{type:"object",..._};throw Error('Tool inputSchema must describe an object at the top level, but the schema has a top-level "allOf" with no branch that asserts type: "object". Add type: "object" to at least one allOf branch to make the object constraint explicit.')}if(d.every((A)=>A&&typeof A==="object"&&A.type==="object"))return{type:"object",..._};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${B}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return _}function N0(n){let f=O0(n.inputSchema instanceof g0.ZodType?ln(n.inputSchema):n.inputSchema);return{name:n.name,description:n.description,inputSchema:f,lifecycle:n.lifecycle,timeoutMs:n.timeoutMs??30000,retryable:n.retryable??!0,maxRetries:n.maxRetries??3,execute:n.execute}}var S4=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function C0(n){let f=(n instanceof Error?n.message:String(n)).toLowerCase();return S4.some((_)=>f.includes(_))}export{ln as zodToJsonSchema,jf as xmlTagsRemoval,P_ as validateWithZod,Nf as validateImageMedia,fn as validateAndReserveImageMedia,Sw as upsertWorkspaceInfo,f4 as truncateStr,K_ as truncateSplit,V_ as trimNonEmpty,cf as toAiSdkToolResultOutput,F_ as stripUtf8Bom,Qf as stripModeNotices,f6 as shouldIncludeConnectorField,t6 as serializeAbortReason,F as sanitizeSurrogates,T_ as sanitizeFileName,y_ as safeJsonStringify,X_ as safeJsonParse,y0 as resolveRootSessionId,hf as resolveReasoningEffortRatio,e6 as resolveReasoningBudgetFromRatio,Wf as resolveMediaBudget,x1 as resolveMcpTimeoutSeconds,k1 as resolveHubCommandTimeoutMs,G0 as resolveHookSessionContext,a6 as resolveEffectiveReasoningEffort,K4 as resolveClineEnvironment,nn as reserveImageMediaBytes,b1 as readHubScheduleMode,Uf as parseUserCommandEnvelope,H0 as parseRuntimeConfigExtensions,G_ as parseJsonStream,o6 as parseHookEventPayload,H_ as omitUndefinedValues,Ff as normalizeUserInput,tn as normalizeSdkError,Lf as normalizePluginManifest,mn as normalizeJsonLikeStringsForSchema,__ as noopBasicLogger,p6 as mergeModelOptions,U_ as maskSecret,qf as listConnectorCatalog,N4 as isRuntimeConfigExtensionKind,w_ as isMcpTimeoutConfigured,C0 as isLikelyAuthError,Z1 as isHubToolExecutorName,L6 as isHubScheduleMode,G1 as isHubProtocolCompatible,rn as isClineProvider,K0 as isChatWorkspacePath,v6 as isCanonicalBase64,gf as isBase64Char,c6 as imageFileMaxDecodedBytesForBase64Limit,Tn as imageBase64LengthForDecodedBytes,S6 as imageBase64EncodedByteLength,Pf as imageBase64DecodedByteLength,o0 as hasRuntimeConfigExtension,xn as getShellKind,n4 as getShellInvocation,J_ as getShellArgs,d_ as getErrorMessage,R_ as getErrorCode,L_ as getDefaultShell,T6 as getDefaultHubCommandTimeoutMs,a_ as getClineEnvironmentConfig,U6 as formatUserInputBlock,F6 as formatUserCommandBlock,j_ as formatUptime,Q6 as formatModeSwitchNotice,z6 as formatMessagesForAiSdk,l1 as formatMcpTimeoutErrorMessage,Q_ as formatHumanReadableDate,Jn as formatFileContentBlock,O6 as formatDisplayUserInput,uf as estimateTokens,f_ as estimateRequestInputTokens,Cw as emptyWorkspaceManifest,Z_ as decodeJwtPayload,N0 as createTool,q0 as createSessionId,j6 as createModeSwitchNoticeTracker,Mn as createMediaBudgetState,$6 as createContributionRegistry,P4 as createClineTelemetryServiceMetadata,M0 as createClineTelemetryServiceConfig,_6 as connectorChannelsFromPlatforms,B_ as clampMcpTimeoutSeconds,R0 as captureTaskLifecycleEvent,E0 as captureSdkError,d0 as captureAgentUnexpectedReasoningTokens,F4 as buildSdkErrorProperties,W_ as buildClineSystemPrompt,J0 as WorkspaceManifestSchema,L0 as WorkspaceInfoSchema,X4 as VertexSettingsSchema,y4 as VertexModelSchema,g1 as USAGE_COST_DISPLAYS,on as ToolCallRecordSchema,Yf as ThinkingConfigSchema,lw as TeamTeammateSpecSchema,YB as TeamTaskToolResultSchema,j0 as TeamTaskListItemToolResultSchema,iw as TeamTaskInputSchema,DB as TeamStatusToolResultSchema,zw as TeamStatusInputSchema,rw as TeamSpawnTeammateInputSchema,qB as TeamSimpleAgentStatusToolResultSchema,sw as TeamShutdownTeammateInputSchema,ZB as TeamSendMessageToolResultSchema,fB as TeamSendMessageInputSchema,GB as TeamRunToolSummarySchema,MB as TeamRunTaskToolResultSchema,aw as TeamRunTaskInputSchema,P0 as TeamRunResultSummarySchema,AB as TeamReviewOutcomeFragmentInputSchema,wB as TeamReadMailboxInputSchema,XB as TeamOutcomeToolResultSchema,JB as TeamOutcomeFragmentToolResultSchema,oB as TeamMissionLogToolResultSchema,BB as TeamMissionLogInputSchema,W0 as TeamMessageType,yB as TeamMailboxMessageToolResultSchema,ew as TeamListRunsInputSchema,$B as TeamListOutcomesInputSchema,TB as TeamFinalizeOutcomeToolResultSchema,IB as TeamFinalizeOutcomeInputSchema,bB as TeamCreateOutcomeToolResultSchema,RB as TeamCreateOutcomeInputSchema,LB as TeamCleanupToolResultSchema,dB as TeamCleanupInputSchema,kB as TeamCancelRunToolResultSchema,tw as TeamCancelRunInputSchema,HB as TeamBroadcastToolResultSchema,_B as TeamBroadcastInputSchema,nB as TeamAwaitRunsInputSchema,EB as TeamAttachOutcomeFragmentInputSchema,pw as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,xw as TEAM_RUN_TEXT_PREVIEW_LIMIT,mw as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,x_ as TEAM_PROGRESS_EVENT_TYPE,l_ as TEAM_LIFECYCLE_EVENT_TYPE,uw as TEAM_AWAIT_TIMEOUT_MS,n0 as TASK_PROVIDER_STREAM_STARTED_EVENT,_0 as TASK_PROVIDER_STREAM_FAILED_EVENT,t_ as TASK_PROVIDER_REQUEST_STARTED_EVENT,f0 as TASK_FIRST_CHUNK_RECEIVED_EVENT,w0 as TASK_CANCELLED_EVENT,Yn as SUPPORTED_IMAGE_MEDIA_TYPES,k0 as SESSION_STATUS_VALUES,B0 as SDK_ERROR_TELEMETRY_EVENT,Xn as S3AccessKeySettingsSchema,o4 as RemoteMCPServerSchema,C_ as RemoteConfigSchema,Zn as ReasoningLevelSchema,An as ReasoningEffortSchema,nf as RUNTIME_CONFIG_EXTENSION_KINDS,O_ as REMOTE_URI_SCHEME,En as REASONING_LEVELS,wn as REASONING_EFFORT_RATIOS,u_ as ProviderProtocolSchema,m_ as ProviderClientSchema,h_ as ProviderCapabilitySchema,L4 as PromptUploadingSchema,D6 as PLUGIN_FILE_EXTENSIONS,E4 as PLAN_MODE_INSTRUCTIONS,I4 as OpenAiCompatibleSchema,A4 as OpenAiCompatibleModelSchema,X1 as ONE_TIME_SCHEDULE_RUN_AT_METADATA_KEY,y1 as ONE_TIME_SCHEDULE_CRON_PATTERN,$f as ModelStatusSchema,Hn as ModelReasoningOptionSchema,Df as ModelPricingSchema,Mf as ModelMetadataSchema,In as ModelInfoSchema,If as ModelCapabilitySchema,R4 as MODE_TAG_INSTRUCTIONS,u1 as MIN_MCP_TIMEOUT_SECONDS,D1 as MIN_CLIENT_HUB_PROTOCOL_VERSION,m1 as MAX_MCP_TIMEOUT_SECONDS,Y1 as MAX_CLIENT_HUB_PROTOCOL_VERSION,q4 as LiteLLMSchema,b4 as LiteLLMModelSchema,h as IMAGE_OMITTED_PLACEHOLDER,Vf as HookEventPayloadSchema,Tf as HookEventNameSchema,K1 as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,V6 as HUB_TOOL_EXECUTOR_NAMES,H1 as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,Kf as HUB_SCHEDULE_MODES,V1 as HUB_MISTAKE_LIMIT_CAPABILITY,L1 as HUB_HOOK_CAPABILITY_PREFIX,J6 as HUB_DEFAULT_COMMAND_TIMEOUT_MS,o1 as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,J1 as HUB_COMPACTION_CAPABILITY,q1 as HUB_COMMAND_SLOW_LOG_MS,T1 as HUB_CHECKPOINT_CAPABILITY,M1 as HUB_CAPABILITIES,zn as GlobalInstructionsFileSchema,Y6 as FeatureFlagDefaultValue,M6 as FEATURE_FLAGS,J4 as EnterpriseTelemetrySchema,Vn as EMPTY_CONTENT_TEXT,O4 as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,i6 as DEFAULT_REASONING_EFFORT,U0 as DEFAULT_OUTCOME_REQUIRED_SECTIONS,h1 as DEFAULT_MCP_TIMEOUT_SECONDS,C6 as DEFAULT_MAX_TOTAL_MEDIA_BYTES,S as DEFAULT_MAX_IMAGE_ENCODED_BYTES,u as DEFAULT_MAX_IMAGE_DECODED_BYTES,N6 as DEFAULT_MAX_IMAGE_BASE64_BYTES,z_ as DEFAULT_CLINE_ENVIRONMENT,Ln as ContributionRegistry,n6 as ConnectorHookEventSchema,Gf as ConnectorHookEventNameSchema,Xf as ConnectorEventContextSchema,yf as ConnectorEventActorSchema,e4 as ConnectorAuthorizationRequestSchema,t4 as ConnectorAuthorizationDecisionSchema,G4 as ClineSettingsSchema,M4 as ClineModelSchema,$1 as CURRENT_HUB_PROTOCOL_VERSION,kf as CONNECTOR_PLATFORMS,bf as CONNECTOR_CATALOG,T0 as CLINE_WORKSPACES_DIRECTORY_NAME,s_ as CLINE_ENVIRONMENT_OVERRIDE_ENV,r_ as CLINE_ENVIRONMENT_ENV,an as CLINE_ENVIRONMENTS,c_ as CLINE_DEFAULT_RPC_PORT,v_ as CLINE_DEFAULT_RPC_ADDRESS,g_ as CLINE_DEFAULT_MODEL_ID,V0 as CLINE_CHAT_WORKSPACE_DIRECTORY_NAME,n_ as CHARS_PER_TOKEN,Y4 as AwsBedrockSettingsSchema,$4 as AwsBedrockModelSchema,D4 as AwsBedrockCustomModelSchema,Af as ApiFormatSchema,p4 as ApiFormat,Z4 as AnthropicSchema,k4 as AnthropicModelSchema,H4 as AllowedMCPServerSchema,a4 as AgentUsageSchema,i0 as AgentResultSchema,i4 as AgentFinishReasonSchema,a0 as AgentConfigSchema,S4 as AUTH_ERROR_PATTERNS,S_ as APIKeySchema,e_ as AGENT_UNEXPECTED_REASONING_TOKENS_EVENT};
package/dist/index.d.ts CHANGED
@@ -32,10 +32,11 @@ export type { ToolApprovalRequest, ToolApprovalResult, ToolCallRecord, ToolPolic
32
32
  export { ToolCallRecordSchema } from "./llms/tools";
33
33
  export { type BasicLogger, type BasicLogMetadata, noopBasicLogger, } from "./logging/logger";
34
34
  export * from "./mcp";
35
+ export { getErrorCode, getErrorMessage } from "./parse/error";
35
36
  export { normalizeJsonLikeStringsForSchema, parseJsonStream, safeJsonParse, safeJsonStringify, } from "./parse/json";
36
37
  export { decodeJwtPayload } from "./parse/jwt";
37
38
  export { type OmitUndefinedValues, omitUndefinedValues } from "./parse/object";
38
- export { getDefaultShell, getShellArgs, getShellKind, type ShellKind, } from "./parse/shell";
39
+ export { getDefaultShell, getShellArgs, getShellInvocation, getShellKind, type ShellInvocation, type ShellKind, } from "./parse/shell";
39
40
  export { maskSecret, sanitizeFileName, stripUtf8Bom, trimNonEmpty, truncateSplit, truncateStr, } from "./parse/string";
40
41
  export { formatHumanReadableDate, formatUptime } from "./parse/time";
41
42
  export { validateWithZod, zodToJsonSchema } from "./parse/zod";