@cline/shared 0.0.74 → 0.0.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/agent.d.ts CHANGED
@@ -34,6 +34,8 @@ export interface AgentToolCallPart {
34
34
  toolName: string;
35
35
  input: unknown;
36
36
  metadata?: unknown;
37
+ /** Absent for ordinary AgentRuntime-executed tools. */
38
+ execution?: ModelToolExecution;
37
39
  }
38
40
  export interface AgentToolResultPart {
39
41
  type: "tool-result";
@@ -41,6 +43,18 @@ export interface AgentToolResultPart {
41
43
  toolName: string;
42
44
  output: unknown;
43
45
  isError?: boolean;
46
+ /** Absent for ordinary AgentRuntime-executed tools. */
47
+ execution?: ModelToolExecution;
48
+ }
49
+ export type ModelToolExecution = "client" | "provider";
50
+ /** Observational record for a model tool executed outside AgentRuntime. */
51
+ export interface AgentModelToolActivity {
52
+ toolCallId: string;
53
+ toolName: string;
54
+ execution: ModelToolExecution;
55
+ input?: unknown;
56
+ output?: unknown;
57
+ isError?: boolean;
44
58
  }
45
59
  export type AgentMessagePart = AgentTextPart | AgentReasoningPart | AgentImagePart | AgentFilePart | AgentToolCallPart | AgentToolResultPart;
46
60
  export type AgentMessageRole = "user" | "assistant" | "tool";
@@ -132,6 +146,8 @@ export interface AgentModelRequest {
132
146
  systemPrompt?: string;
133
147
  messages: readonly AgentMessage[];
134
148
  tools: readonly AgentToolDefinition[];
149
+ /** Provider-executed tools enabled for this model request. */
150
+ modelTools?: readonly import("./llms/model-tools").ModelTool[];
135
151
  signal?: AbortSignal;
136
152
  options?: Record<string, unknown>;
137
153
  }
@@ -185,6 +201,16 @@ export type AgentModelEvent = {
185
201
  inputText?: string;
186
202
  input?: unknown;
187
203
  metadata?: unknown;
204
+ /** Set when execution is owned by AI SDK or the model provider. */
205
+ execution?: ModelToolExecution;
206
+ } | {
207
+ type: "tool-result";
208
+ toolCallId: string;
209
+ toolName: import("./llms/model-tools").ModelToolName;
210
+ input?: unknown;
211
+ output: unknown;
212
+ isError?: boolean;
213
+ execution: ModelToolExecution;
188
214
  } | {
189
215
  /**
190
216
  * A model-generated file (e.g. an image from an image-output
@@ -320,6 +346,8 @@ export interface AgentRuntimeConfig {
320
346
  messageModelInfo?: AgentMessage["modelInfo"];
321
347
  model: AgentModel;
322
348
  modelOptions?: Record<string, unknown>;
349
+ /** Provider-executed tools, separate from locally executed AgentTools. */
350
+ modelTools?: readonly import("./llms/model-tools").ModelTool[];
323
351
  tools?: readonly AgentTool<any, any>[];
324
352
  hooks?: Partial<AgentRuntimeHooks>;
325
353
  plugins?: readonly AgentRuntimePlugin[];
@@ -16,6 +16,7 @@ import type { AgentExtensionApi, AgentExtensionHooks, AgentExtensionRegistry as
16
16
  import type { HookControl } from "../hooks/contracts";
17
17
  import type { Message, MessageWithMetadata } from "../llms/messages";
18
18
  import type { ModelInfo } from "../llms/model-info";
19
+ import type { ModelTool } from "../llms/model-tools";
19
20
  import { type ReasoningEffort } from "../llms/reasoning-options";
20
21
  export { REASONING_LEVELS, type ReasoningEffort, ReasoningEffortSchema, type ReasoningLevel, ReasoningLevelSchema, } from "../llms/reasoning-options";
21
22
  import type { ToolApprovalRequest, ToolApprovalResult, ToolCallRecord, ToolPolicy } from "../llms/tools";
@@ -52,6 +53,8 @@ export interface AgentContentStartEvent extends AgentEventMetadata {
52
53
  toolCallId?: string;
53
54
  /** Input being passed to the tool */
54
55
  input?: unknown;
56
+ /** Where a model tool is executed; absent for ordinary local tools. */
57
+ execution?: "client" | "provider";
55
58
  }
56
59
  export interface AgentContentUpdateEvent extends AgentEventMetadata {
57
60
  type: "content_update";
@@ -80,6 +83,8 @@ export interface AgentContentEndEvent extends AgentEventMetadata {
80
83
  error?: string;
81
84
  /** Time taken in milliseconds for tool content */
82
85
  durationMs?: number;
86
+ /** Where a model tool is executed; absent for ordinary local tools. */
87
+ execution?: "client" | "provider";
83
88
  }
84
89
  export interface AgentIterationStartEvent extends AgentEventMetadata {
85
90
  type: "iteration_start";
@@ -528,6 +533,10 @@ export declare const AgentResultSchema: z.ZodObject<{
528
533
  toolCalls: z.ZodArray<z.ZodObject<{
529
534
  id: z.ZodString;
530
535
  name: z.ZodString;
536
+ execution: z.ZodOptional<z.ZodEnum<{
537
+ client: "client";
538
+ provider: "provider";
539
+ }>>;
531
540
  input: z.ZodUnknown;
532
541
  output: z.ZodUnknown;
533
542
  error: z.ZodOptional<z.ZodString>;
@@ -674,6 +683,8 @@ export interface AgentConfig {
674
683
  systemPrompt: string;
675
684
  /** Tools available to the agent */
676
685
  tools: AgentTool[];
686
+ /** Provider-executed tools enabled for the selected model. */
687
+ modelTools?: ModelTool[];
677
688
  /**
678
689
  * Maximum number of loop iterations
679
690
  * If undefined, no iteration cap is enforced.
@@ -902,6 +913,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
902
913
  initialMessages: z.ZodOptional<z.ZodArray<z.ZodCustom<Message, Message>>>;
903
914
  systemPrompt: z.ZodString;
904
915
  tools: z.ZodArray<z.ZodCustom<AgentTool<unknown, unknown>, AgentTool<unknown, unknown>>>;
916
+ modelTools: z.ZodOptional<z.ZodArray<z.ZodCustom<import("..").WebSearchModelTool, import("..").WebSearchModelTool>>>;
905
917
  maxIterations: z.ZodOptional<z.ZodNumber>;
906
918
  maxParallelToolCalls: z.ZodDefault<z.ZodNumber>;
907
919
  maxTokensPerTurn: z.ZodOptional<z.ZodNumber>;
@@ -22,6 +22,7 @@ export { createMediaBudgetState, DEFAULT_MAX_IMAGE_BASE64_BYTES, DEFAULT_MAX_IMA
22
22
  export type { ContentBlock, FileContent, ImageContent, Message, MessageRole, MessageWithMetadata, RedactedThinkingContent, TextContent, ThinkingContent, ToolDefinition, ToolResultContent, ToolUseContent, } from "./llms/messages";
23
23
  export { ApiFormat, ApiFormatSchema, type ModelCapability, ModelCapabilitySchema, type ModelInfo, ModelInfoSchema, type ModelMetadata, ModelMetadataSchema, type ModelPricing, ModelPricingSchema, type ModelStatus, ModelStatusSchema, type ThinkingConfig, ThinkingConfigSchema, } from "./llms/model-info";
24
24
  export { mergeModelOptions } from "./llms/model-options";
25
+ export * from "./llms/model-tools";
25
26
  export { DEFAULT_REASONING_EFFORT, REASONING_EFFORT_RATIOS, resolveEffectiveReasoningEffort, resolveReasoningBudgetFromRatio, resolveReasoningEffortRatio, } from "./llms/reasoning-effort";
26
27
  export { type ModelReasoningOption, ModelReasoningOptionSchema, REASONING_LEVELS, type ReasoningEffort, ReasoningEffortSchema, type ReasoningLevel, ReasoningLevelSchema, } from "./llms/reasoning-options";
27
28
  export { serializeAbortReason } from "./llms/requests";
@@ -1,14 +1,14 @@
1
- import{z as X}from"zod";import{z as W}from"zod";import{z as M}from"zod";var _0=["none","minimal","low","medium","high","xhigh","max"],E0=M.enum(_0),Q0=E0.exclude(["none"]),ef=M.enum([..._0,"default"]).nullable(),O0=M.discriminatedUnion("type",[M.object({type:M.literal("toggle")}).strict(),M.object({type:M.literal("effort"),values:M.array(ef)}).strict(),M.object({type:M.literal("budget_tokens"),min:M.number().min(-1).optional(),max:M.number().min(0).optional()}).strict().refine((f)=>f.min===void 0||f.max===void 0||f.min<=f.max,{message:"Minimum reasoning budget cannot exceed maximum",path:["min"]})]);var j1=W.enum(["default","openai-responses","r1"]),f6={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},V1=W.enum(["images","video","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),k1=W.enum(["active","preview","deprecated","legacy"]),F1=W.object({input:W.number().optional(),output:W.number().optional(),cacheWrite:W.number().optional(),cacheRead:W.number().optional()}),L1=W.object({maxBudget:W.number().optional(),outputPrice:W.number().optional(),thinkingLevel:W.enum(["low","high"]).optional()}),W1=W.object({reasoningDefaultOn:W.boolean().optional()}).catchall(W.unknown()),j0=W.object({id:W.string(),name:W.string().optional(),description:W.string().optional(),maxTokens:W.number().optional(),contextWindow:W.number().optional(),maxInputTokens:W.number().optional(),capabilities:W.array(V1).optional(),reasoningOptions:W.array(O0).optional(),apiFormat:j1.optional(),systemRole:W.enum(["system","developer"]).optional(),temperature:W.number().optional(),pricing:F1.optional(),thinkingConfig:L1.optional(),status:k1.optional(),deprecationNotice:W.string().optional(),replacedBy:W.string().optional(),releaseDate:W.string().optional(),deprecationDate:W.string().optional(),family:W.string().optional(),metadata:W1.optional()});import{z as n}from"zod";var b0=n.object({id:n.string(),name:n.string(),input:n.unknown(),output:n.unknown(),error:n.string().optional(),durationMs:n.number(),startedAt:n.date(),endedAt:n.date()});var $6=X.enum(["completed","max_iterations","aborted","mistake_limit","error"]),w6=X.object({inputTokens:X.number(),outputTokens:X.number(),cacheReadTokens:X.number().optional(),cacheWriteTokens:X.number().optional(),totalCost:X.number().optional()}),Z4=X.object({text:X.string(),usage:w6,messages:X.array(X.custom()),toolCalls:X.array(b0),iterations:X.number(),finishReason:$6,model:X.object({id:X.string(),provider:X.string(),info:j0.optional()}),startedAt:X.date(),endedAt:X.date(),durationMs:X.number()}),G4=X.object({sessionId:X.string().optional(),providerId:X.string(),modelId:X.string(),apiKey:X.string().optional(),baseUrl:X.string().url().optional(),headers:X.record(X.string(),X.string()).optional(),knownModels:X.record(X.string(),j0).optional(),providerConfig:X.unknown().optional(),initialMessages:X.array(X.custom()).optional(),systemPrompt:X.string(),tools:X.array(X.custom()),maxIterations:X.number().positive().optional(),maxParallelToolCalls:X.number().int().positive().default(8),maxTokensPerTurn:X.number().positive().optional(),temperature:X.number().nonnegative().optional(),apiTimeoutMs:X.number().positive().default(180000),userFileContentLoader:X.function().input([X.string()]).output(X.promise(X.string())).optional(),toolContextMetadata:X.record(X.string(),X.unknown()).optional(),execution:X.object({maxConsecutiveMistakes:X.number().int().positive().optional(),reminderAfterIterations:X.number().nonnegative().optional(),reminderText:X.string().optional(),loopDetection:X.union([X.literal(!1),X.object({softThreshold:X.number().int().positive().optional(),hardThreshold:X.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:Q0.optional(),thinkingBudgetTokens:X.number().positive().optional(),thinking:X.boolean().optional(),onEvent:X.function().input([X.custom()]).output(X.void()).optional(),hooks:X.custom().optional(),parentAgentId:X.string().optional(),extensions:X.array(X.custom()).optional(),hookErrorMode:X.enum(["ignore","throw"]).default("ignore"),toolPolicies:X.record(X.string(),X.object({enabled:X.boolean().optional(),autoApprove:X.boolean().optional()})).optional(),requestToolApproval:X.function().input([X.object({sessionId:X.string(),agentId:X.string(),conversationId:X.string(),iteration:X.number(),toolCallId:X.string(),toolName:X.string(),input:X.unknown(),policy:X.object({enabled:X.boolean().optional(),autoApprove:X.boolean().optional()}).default({})})]).output(X.union([X.object({approved:X.boolean(),reason:X.string().optional()}),X.promise(X.object({approved:X.boolean(),reason:X.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:X.function().input([X.object({iteration:X.number().int().positive(),consecutiveMistakes:X.number().int().positive(),maxConsecutiveMistakes:X.number().int().positive(),reason:X.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:X.string().optional()})]).output(X.union([X.object({action:X.literal("continue"),guidance:X.string().optional()}),X.object({action:X.literal("stop"),reason:X.string().optional()}),X.promise(X.union([X.object({action:X.literal("continue"),guidance:X.string().optional()}),X.object({action:X.literal("stop"),reason:X.string().optional()})]))])).optional(),logger:X.custom().optional(),extensionContext:X.custom().optional(),abortSignal:X.custom().optional()});import{z as F}from"zod";var A1=F.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"]),D1=F.object({id:F.string().optional(),label:F.string().optional(),role:F.string().optional(),participantKey:F.string().optional(),participantLabel:F.string().optional(),platformUserId:F.string().optional(),metadata:F.record(F.string(),F.unknown()).optional()}),U1=F.object({source:F.string(),sourceEvent:F.string(),threadId:F.string(),channelId:F.string(),isDM:F.boolean(),sessionId:F.string().optional(),workspaceRoot:F.string().optional(),metadata:F.record(F.string(),F.unknown()).optional()}),Y6=F.object({actor:D1,context:U1,payload:F.record(F.string(),F.unknown()).optional()}),q6=F.object({action:F.enum(["allow","deny"]).default("allow"),message:F.string().optional(),reason:F.string().optional(),metadata:F.record(F.string(),F.unknown()).optional()}),Z6=F.object({adapter:F.string(),botUserName:F.string().optional(),event:A1,payload:F.record(F.string(),F.unknown()),ts:F.string()});var P1=[{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 I1(){return P1.map((f)=>({...f}))}function G6(f,$){let w=f.includeWhen;if(!w)return!0;let q=$[w.flag]??"";if(w.equals!==void 0&&q!==w.equals)return!1;if(w.notEquals!==void 0&&q===w.notEquals)return!1;return!0}function X6(f=B1){let $=new Set(I1().map((w)=>w.name));return f.filter((w)=>$.has(w.id)).map((w)=>({id:w.id,name:w.name,type:w.type,hint:w.hint,fields:w.fields.map((q)=>({flag:q.flag,label:q.label,placeholder:q.placeholder,required:q.required,help:q.help,initialValue:q.initialValue,options:q.options,includeWhen:q.includeWhen})),security:w.security?{prompt:w.security.prompt,fields:w.security.fields.map((q)=>({key:q.key,label:q.label,placeholder:q.placeholder,help:q.help,requiredMessage:q.requiredMessage}))}:void 0}))}function H6(f){return/^\d+$/.test(f)?void 0:"Telegram user ID must contain digits only"}function R6(f){return/^T[A-Z0-9]+$/.test(f)?void 0:"Slack workspace ID must start with T and contain uppercase letters or digits only"}function J6(f){return/^[UW][A-Z0-9]+$/.test(f)?void 0:"Slack member ID must start with U or W and contain uppercase letters or digits only"}var B1=[{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:H6}],argumentFlags:["--allowed-user-id","--hook-command"],buildArgs:({userId:f})=>["--allowed-user-id",f??""]}},{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:R6},{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:J6}],argumentFlags:["--hook-command"],buildArgs:({teamId:f,userId:$})=>["--hook-command",`jq -r ".payload.actor.participantKey" | grep -qx "slack:team:${f}:user:${$}" && 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 K6=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],_6=new Set(K6);function O1(f,$){return f.name||`extension_${String($).padStart(4,"0")}`}function M1(f){return Array.isArray(f)&&f.every(($)=>typeof $==="string")}function E1(f){if(!Array.isArray(f))return;let $=f.filter((w)=>typeof w==="string").map((w)=>w.trim()).filter((w)=>w.length>0);return $.length>0?$:void 0}function b1(f){let $=E1(f.providerIds),w=E1(f.modelIds);return{...f,...$?{providerIds:$}:{},...w?{modelIds:w}:{}}}function Q6(f,$){let w=O1(f,$),q=f.manifest;if(!q||typeof q!=="object")throw Error(`Invalid manifest for extension "${w}": manifest is required`);if(!Array.isArray(q.capabilities)||q.capabilities.length===0)throw Error(`Invalid manifest for extension "${w}": capabilities must be a non-empty array`);let Z=new Set;for(let J of q.capabilities){if(!_6.has(J))throw Error(`Invalid manifest for extension "${w}": unsupported capability "${String(J)}"`);Z.add(J)}if(Object.hasOwn(q,"providerIds")&&!M1(q.providerIds))throw Error(`Invalid manifest for extension "${w}": providerIds must be a string array when provided`);if(Object.hasOwn(q,"modelIds")&&!M1(q.modelIds))throw Error(`Invalid manifest for extension "${w}": modelIds must be a string array when provided`);let H=Z.has("hooks");if(f.hooks!==void 0&&!H)throw Error(`Invalid manifest for extension "${w}": runtime hooks require the "hooks" capability`);return{capabilities:Z,raw:b1(q)}}function j6(f,$){if(!f||typeof f!=="object")throw Error(`Invalid automation event contribution for extension "${$}": expected object`);let w=typeof f.eventType==="string"?f.eventType.trim():"",q=typeof f.source==="string"?f.source.trim():"";if(!w)throw Error(`Invalid automation event contribution for extension "${$}": eventType is required`);if(!q)throw Error(`Invalid automation event contribution for extension "${$}": source is required`);return{...f,eventType:w,source:q,examples:f.examples?[...f.examples]:void 0,metadata:f.metadata?{...f.metadata}:void 0}}class N0{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(f={}){this.extensions=f.extensions??[],this.setupContext=f.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((f,$)=>({extension:f,order:$,manifest:{capabilities:new Set,raw:f.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((f)=>({...f,manifest:Q6(f.extension,f.order)})),this.phase="setup"}async setup(f={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let $,w=[];for(let q of this.normalized){let{extension:Z}=q;if(Z.disabled)continue;let H=O1(Z,q.order),R={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},J={registerTool:(V)=>R.tools.push(V),registerCommand:(V)=>R.commands.push(V),registerRule:(V)=>{if(!q.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${H}": registerRule requires the "rules" capability`);R.rules.push(V)},registerMessageBuilder:(V)=>R.messageBuilder.push(V),registerProvider:(V)=>R.providers.push(V),registerAutomationEventType:(V)=>{if(!q.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${H}": registerAutomationEventType requires the "automationEvents" capability`);R.automationEventTypes.push(j6(V,H))},registerMcpServer:(V)=>{if(!q.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${H}": registerMcpServer requires the "mcp" capability`);R.mcpServers.push({...V,metadata:{...V.metadata??{},source:"plugin",plugin:H}})}},k=q.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await Z.setup?.(J,k),w.push(R)}catch(V){if(f.tolerateSetupErrors!==!0)throw V;$??=V}}if($&&f.tolerateSetupErrors!==!0)throw $;for(let q of w)this.registry.tools.push(...q.tools),this.registry.commands.push(...q.commands),this.registry.rules.push(...q.rules),this.registry.messageBuilder.push(...q.messageBuilder),this.registry.providers.push(...q.providers),this.registry.automationEventTypes.push(...q.automationEventTypes),this.registry.mcpServers.push(...q.mcpServers);if(this.phase="activate",$)throw $}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(f={}){this.resolve(),this.validate();try{await this.setup(f)}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((f,$)=>f.order-$.order).map(({extension:f})=>f)}}function V6(f={}){return new N0(f)}var k6=[".js",".ts"];var N1={CLINE_PASS:"ext-cline-pass"},F6={[N1.CLINE_PASS]:!1},L6=Object.values(N1);import{z as K}from"zod";var T1=K.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),o=K.record(K.string(),K.string()),W6=K.object({toolName:K.string(),parameters:o}),A6=K.object({toolName:K.string(),parameters:o,result:K.string(),success:K.boolean(),executionTimeMs:K.number()}),D6=K.object({prompt:K.string(),attachments:K.array(K.string())}),U6=K.object({taskMetadata:o}),P6=K.object({taskMetadata:o,previousState:o}),I6=K.object({taskMetadata:o}),B6=K.object({taskMetadata:o}),M6=K.object({taskId:K.string(),ulid:K.string(),contextSize:K.number(),compactionStrategy:K.string(),previousApiReqIndex:K.number(),tokensIn:K.number(),tokensOut:K.number(),tokensInCache:K.number(),tokensOutCache:K.number(),deletedRangeStart:K.number(),deletedRangeEnd:K.number(),contextJsonPath:K.string(),contextRawPath:K.string()}),y1=K.object({clineVersion:K.string(),hookName:T1,timestamp:K.string(),taskId:K.string(),sessionContext:K.object({rootSessionId:K.string().optional(),hookLogPath:K.string().optional()}).optional(),workspaceRoots:K.array(K.string()),workspaceInfo:K.custom().optional(),userId:K.string(),agent_id:K.string(),parent_agent_id:K.string().nullable(),iteration:K.number().optional(),reason:K.string().optional(),tool_call:K.object({id:K.string(),name:K.string(),input:K.unknown()}).optional(),tool_result:K.custom().optional(),turn:K.unknown().optional(),error:K.object({name:K.string(),message:K.string(),stack:K.string().optional()}).optional(),preToolUse:W6.optional(),postToolUse:A6.optional(),userPromptSubmit:D6.optional(),taskStart:U6.optional(),taskResume:P6.optional(),taskCancel:I6.optional(),taskComplete:B6.optional(),preCompact:M6.optional()}).passthrough();function E6(f){let $=y1.safeParse(f);if(!$.success)return;return $.data}var W4="v1",A4="v1",D4="v1",U4=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set","connector.start","connector.stop","connector.supervised"];function V0(f){let $=/^v(\d+)$/.exec(f?.trim()??"");if(!$)return;return Number.parseInt($[1]??"",10)}function P4(f,$="v1"){let w=V0(f.protocolVersion),q=V0($);if(w===void 0||q===void 0)return{compatible:!1,reason:"missing_protocol"};let Z=V0(f.minClientProtocolVersion)??w,H=V0(f.maxClientProtocolVersion)??w;return q>=Z&&q<=H?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var I4="0",B4="__hubScheduleRunAt",C1=["act","plan","yolo"];function O6(f){return C1.some(($)=>$===f)}function M4(f,$){if(!f||!Object.hasOwn(f,"mode"))return $;let w=f.mode;if(O6(w))return w;throw Error(`mode must be one of: ${C1.join(", ")}`)}var b6=30000,E4=5000;function N6(f){switch(f){case"run.start":case"session.send_input":return null;default:return b6}}function O4(f,$){return $===void 0?N6(f):$}var T6=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],y6=new Set(T6);function b4(f){return typeof f==="string"&&y6.has(f)}var N4="tool_executor.",T4="custom_tool.",y4="hook.",C4="compaction.compact",S4="checkpoint.create",g4="mistake_limit.decide",n4="user_instructions.snapshot";function T0(f,$){return`<file_content path="${f}">
1
+ import{z as X}from"zod";import{z as W}from"zod";import{z as M}from"zod";var _0=["none","minimal","low","medium","high","xhigh","max"],E0=M.enum(_0),Q0=E0.exclude(["none"]),ef=M.enum([..._0,"default"]).nullable(),O0=M.discriminatedUnion("type",[M.object({type:M.literal("toggle")}).strict(),M.object({type:M.literal("effort"),values:M.array(ef)}).strict(),M.object({type:M.literal("budget_tokens"),min:M.number().min(-1).optional(),max:M.number().min(0).optional()}).strict().refine((f)=>f.min===void 0||f.max===void 0||f.min<=f.max,{message:"Minimum reasoning budget cannot exceed maximum",path:["min"]})]);var j1=W.enum(["default","openai-responses","r1"]),f6={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},V1=W.enum(["images","video","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),k1=W.enum(["active","preview","deprecated","legacy"]),F1=W.object({input:W.number().optional(),output:W.number().optional(),cacheWrite:W.number().optional(),cacheRead:W.number().optional()}),L1=W.object({maxBudget:W.number().optional(),outputPrice:W.number().optional(),thinkingLevel:W.enum(["low","high"]).optional()}),W1=W.object({reasoningDefaultOn:W.boolean().optional()}).catchall(W.unknown()),j0=W.object({id:W.string(),name:W.string().optional(),description:W.string().optional(),maxTokens:W.number().optional(),contextWindow:W.number().optional(),maxInputTokens:W.number().optional(),capabilities:W.array(V1).optional(),reasoningOptions:W.array(O0).optional(),apiFormat:j1.optional(),systemRole:W.enum(["system","developer"]).optional(),temperature:W.number().optional(),pricing:F1.optional(),thinkingConfig:L1.optional(),status:k1.optional(),deprecationNotice:W.string().optional(),replacedBy:W.string().optional(),releaseDate:W.string().optional(),deprecationDate:W.string().optional(),family:W.string().optional(),metadata:W1.optional()});import{z as S}from"zod";var b0=S.object({id:S.string(),name:S.string(),execution:S.enum(["client","provider"]).optional(),input:S.unknown(),output:S.unknown(),error:S.string().optional(),durationMs:S.number(),startedAt:S.date(),endedAt:S.date()});var $6=X.enum(["completed","max_iterations","aborted","mistake_limit","error"]),w6=X.object({inputTokens:X.number(),outputTokens:X.number(),cacheReadTokens:X.number().optional(),cacheWriteTokens:X.number().optional(),totalCost:X.number().optional()}),Z4=X.object({text:X.string(),usage:w6,messages:X.array(X.custom()),toolCalls:X.array(b0),iterations:X.number(),finishReason:$6,model:X.object({id:X.string(),provider:X.string(),info:j0.optional()}),startedAt:X.date(),endedAt:X.date(),durationMs:X.number()}),G4=X.object({sessionId:X.string().optional(),providerId:X.string(),modelId:X.string(),apiKey:X.string().optional(),baseUrl:X.string().url().optional(),headers:X.record(X.string(),X.string()).optional(),knownModels:X.record(X.string(),j0).optional(),providerConfig:X.unknown().optional(),initialMessages:X.array(X.custom()).optional(),systemPrompt:X.string(),tools:X.array(X.custom()),modelTools:X.array(X.custom()).optional(),maxIterations:X.number().positive().optional(),maxParallelToolCalls:X.number().int().positive().default(8),maxTokensPerTurn:X.number().positive().optional(),temperature:X.number().nonnegative().optional(),apiTimeoutMs:X.number().positive().default(180000),userFileContentLoader:X.function().input([X.string()]).output(X.promise(X.string())).optional(),toolContextMetadata:X.record(X.string(),X.unknown()).optional(),execution:X.object({maxConsecutiveMistakes:X.number().int().positive().optional(),reminderAfterIterations:X.number().nonnegative().optional(),reminderText:X.string().optional(),loopDetection:X.union([X.literal(!1),X.object({softThreshold:X.number().int().positive().optional(),hardThreshold:X.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:Q0.optional(),thinkingBudgetTokens:X.number().positive().optional(),thinking:X.boolean().optional(),onEvent:X.function().input([X.custom()]).output(X.void()).optional(),hooks:X.custom().optional(),parentAgentId:X.string().optional(),extensions:X.array(X.custom()).optional(),hookErrorMode:X.enum(["ignore","throw"]).default("ignore"),toolPolicies:X.record(X.string(),X.object({enabled:X.boolean().optional(),autoApprove:X.boolean().optional()})).optional(),requestToolApproval:X.function().input([X.object({sessionId:X.string(),agentId:X.string(),conversationId:X.string(),iteration:X.number(),toolCallId:X.string(),toolName:X.string(),input:X.unknown(),policy:X.object({enabled:X.boolean().optional(),autoApprove:X.boolean().optional()}).default({})})]).output(X.union([X.object({approved:X.boolean(),reason:X.string().optional()}),X.promise(X.object({approved:X.boolean(),reason:X.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:X.function().input([X.object({iteration:X.number().int().positive(),consecutiveMistakes:X.number().int().positive(),maxConsecutiveMistakes:X.number().int().positive(),reason:X.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:X.string().optional()})]).output(X.union([X.object({action:X.literal("continue"),guidance:X.string().optional()}),X.object({action:X.literal("stop"),reason:X.string().optional()}),X.promise(X.union([X.object({action:X.literal("continue"),guidance:X.string().optional()}),X.object({action:X.literal("stop"),reason:X.string().optional()})]))])).optional(),logger:X.custom().optional(),extensionContext:X.custom().optional(),abortSignal:X.custom().optional()});import{z as F}from"zod";var A1=F.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"]),D1=F.object({id:F.string().optional(),label:F.string().optional(),role:F.string().optional(),participantKey:F.string().optional(),participantLabel:F.string().optional(),platformUserId:F.string().optional(),metadata:F.record(F.string(),F.unknown()).optional()}),U1=F.object({source:F.string(),sourceEvent:F.string(),threadId:F.string(),channelId:F.string(),isDM:F.boolean(),sessionId:F.string().optional(),workspaceRoot:F.string().optional(),metadata:F.record(F.string(),F.unknown()).optional()}),Y6=F.object({actor:D1,context:U1,payload:F.record(F.string(),F.unknown()).optional()}),q6=F.object({action:F.enum(["allow","deny"]).default("allow"),message:F.string().optional(),reason:F.string().optional(),metadata:F.record(F.string(),F.unknown()).optional()}),Z6=F.object({adapter:F.string(),botUserName:F.string().optional(),event:A1,payload:F.record(F.string(),F.unknown()),ts:F.string()});var P1=[{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 I1(){return P1.map((f)=>({...f}))}function G6(f,$){let w=f.includeWhen;if(!w)return!0;let q=$[w.flag]??"";if(w.equals!==void 0&&q!==w.equals)return!1;if(w.notEquals!==void 0&&q===w.notEquals)return!1;return!0}function X6(f=B1){let $=new Set(I1().map((w)=>w.name));return f.filter((w)=>$.has(w.id)).map((w)=>({id:w.id,name:w.name,type:w.type,hint:w.hint,fields:w.fields.map((q)=>({flag:q.flag,label:q.label,placeholder:q.placeholder,required:q.required,help:q.help,initialValue:q.initialValue,options:q.options,includeWhen:q.includeWhen})),security:w.security?{prompt:w.security.prompt,fields:w.security.fields.map((q)=>({key:q.key,label:q.label,placeholder:q.placeholder,help:q.help,requiredMessage:q.requiredMessage}))}:void 0}))}function H6(f){return/^\d+$/.test(f)?void 0:"Telegram user ID must contain digits only"}function R6(f){return/^T[A-Z0-9]+$/.test(f)?void 0:"Slack workspace ID must start with T and contain uppercase letters or digits only"}function J6(f){return/^[UW][A-Z0-9]+$/.test(f)?void 0:"Slack member ID must start with U or W and contain uppercase letters or digits only"}var B1=[{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:H6}],argumentFlags:["--allowed-user-id","--hook-command"],buildArgs:({userId:f})=>["--allowed-user-id",f??""]}},{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:R6},{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:J6}],argumentFlags:["--hook-command"],buildArgs:({teamId:f,userId:$})=>["--hook-command",`jq -r ".payload.actor.participantKey" | grep -qx "slack:team:${f}:user:${$}" && 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 K6=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],_6=new Set(K6);function O1(f,$){return f.name||`extension_${String($).padStart(4,"0")}`}function M1(f){return Array.isArray(f)&&f.every(($)=>typeof $==="string")}function E1(f){if(!Array.isArray(f))return;let $=f.filter((w)=>typeof w==="string").map((w)=>w.trim()).filter((w)=>w.length>0);return $.length>0?$:void 0}function b1(f){let $=E1(f.providerIds),w=E1(f.modelIds);return{...f,...$?{providerIds:$}:{},...w?{modelIds:w}:{}}}function Q6(f,$){let w=O1(f,$),q=f.manifest;if(!q||typeof q!=="object")throw Error(`Invalid manifest for extension "${w}": manifest is required`);if(!Array.isArray(q.capabilities)||q.capabilities.length===0)throw Error(`Invalid manifest for extension "${w}": capabilities must be a non-empty array`);let Z=new Set;for(let J of q.capabilities){if(!_6.has(J))throw Error(`Invalid manifest for extension "${w}": unsupported capability "${String(J)}"`);Z.add(J)}if(Object.hasOwn(q,"providerIds")&&!M1(q.providerIds))throw Error(`Invalid manifest for extension "${w}": providerIds must be a string array when provided`);if(Object.hasOwn(q,"modelIds")&&!M1(q.modelIds))throw Error(`Invalid manifest for extension "${w}": modelIds must be a string array when provided`);let H=Z.has("hooks");if(f.hooks!==void 0&&!H)throw Error(`Invalid manifest for extension "${w}": runtime hooks require the "hooks" capability`);return{capabilities:Z,raw:b1(q)}}function j6(f,$){if(!f||typeof f!=="object")throw Error(`Invalid automation event contribution for extension "${$}": expected object`);let w=typeof f.eventType==="string"?f.eventType.trim():"",q=typeof f.source==="string"?f.source.trim():"";if(!w)throw Error(`Invalid automation event contribution for extension "${$}": eventType is required`);if(!q)throw Error(`Invalid automation event contribution for extension "${$}": source is required`);return{...f,eventType:w,source:q,examples:f.examples?[...f.examples]:void 0,metadata:f.metadata?{...f.metadata}:void 0}}class N0{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(f={}){this.extensions=f.extensions??[],this.setupContext=f.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((f,$)=>({extension:f,order:$,manifest:{capabilities:new Set,raw:f.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((f)=>({...f,manifest:Q6(f.extension,f.order)})),this.phase="setup"}async setup(f={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let $,w=[];for(let q of this.normalized){let{extension:Z}=q;if(Z.disabled)continue;let H=O1(Z,q.order),R={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},J={registerTool:(V)=>R.tools.push(V),registerCommand:(V)=>R.commands.push(V),registerRule:(V)=>{if(!q.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${H}": registerRule requires the "rules" capability`);R.rules.push(V)},registerMessageBuilder:(V)=>R.messageBuilder.push(V),registerProvider:(V)=>R.providers.push(V),registerAutomationEventType:(V)=>{if(!q.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${H}": registerAutomationEventType requires the "automationEvents" capability`);R.automationEventTypes.push(j6(V,H))},registerMcpServer:(V)=>{if(!q.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${H}": registerMcpServer requires the "mcp" capability`);R.mcpServers.push({...V,metadata:{...V.metadata??{},source:"plugin",plugin:H}})}},k=q.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await Z.setup?.(J,k),w.push(R)}catch(V){if(f.tolerateSetupErrors!==!0)throw V;$??=V}}if($&&f.tolerateSetupErrors!==!0)throw $;for(let q of w)this.registry.tools.push(...q.tools),this.registry.commands.push(...q.commands),this.registry.rules.push(...q.rules),this.registry.messageBuilder.push(...q.messageBuilder),this.registry.providers.push(...q.providers),this.registry.automationEventTypes.push(...q.automationEventTypes),this.registry.mcpServers.push(...q.mcpServers);if(this.phase="activate",$)throw $}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(f={}){this.resolve(),this.validate();try{await this.setup(f)}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((f,$)=>f.order-$.order).map(({extension:f})=>f)}}function V6(f={}){return new N0(f)}var k6=[".js",".ts"];var N1={CLINE_PASS:"ext-cline-pass"},F6={[N1.CLINE_PASS]:!1},L6=Object.values(N1);import{z as K}from"zod";var T1=K.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),o=K.record(K.string(),K.string()),W6=K.object({toolName:K.string(),parameters:o}),A6=K.object({toolName:K.string(),parameters:o,result:K.string(),success:K.boolean(),executionTimeMs:K.number()}),D6=K.object({prompt:K.string(),attachments:K.array(K.string())}),U6=K.object({taskMetadata:o}),P6=K.object({taskMetadata:o,previousState:o}),I6=K.object({taskMetadata:o}),B6=K.object({taskMetadata:o}),M6=K.object({taskId:K.string(),ulid:K.string(),contextSize:K.number(),compactionStrategy:K.string(),previousApiReqIndex:K.number(),tokensIn:K.number(),tokensOut:K.number(),tokensInCache:K.number(),tokensOutCache:K.number(),deletedRangeStart:K.number(),deletedRangeEnd:K.number(),contextJsonPath:K.string(),contextRawPath:K.string()}),y1=K.object({clineVersion:K.string(),hookName:T1,timestamp:K.string(),taskId:K.string(),sessionContext:K.object({rootSessionId:K.string().optional(),hookLogPath:K.string().optional()}).optional(),workspaceRoots:K.array(K.string()),workspaceInfo:K.custom().optional(),userId:K.string(),agent_id:K.string(),parent_agent_id:K.string().nullable(),iteration:K.number().optional(),reason:K.string().optional(),tool_call:K.object({id:K.string(),name:K.string(),input:K.unknown()}).optional(),tool_result:K.custom().optional(),turn:K.unknown().optional(),error:K.object({name:K.string(),message:K.string(),stack:K.string().optional()}).optional(),preToolUse:W6.optional(),postToolUse:A6.optional(),userPromptSubmit:D6.optional(),taskStart:U6.optional(),taskResume:P6.optional(),taskCancel:I6.optional(),taskComplete:B6.optional(),preCompact:M6.optional()}).passthrough();function E6(f){let $=y1.safeParse(f);if(!$.success)return;return $.data}var W4="v1",A4="v1",D4="v1",U4=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set","connector.start","connector.stop","connector.supervised"];function V0(f){let $=/^v(\d+)$/.exec(f?.trim()??"");if(!$)return;return Number.parseInt($[1]??"",10)}function P4(f,$="v1"){let w=V0(f.protocolVersion),q=V0($);if(w===void 0||q===void 0)return{compatible:!1,reason:"missing_protocol"};let Z=V0(f.minClientProtocolVersion)??w,H=V0(f.maxClientProtocolVersion)??w;return q>=Z&&q<=H?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var I4="0",B4="__hubScheduleRunAt",C1=["act","plan","yolo"];function O6(f){return C1.some(($)=>$===f)}function M4(f,$){if(!f||!Object.hasOwn(f,"mode"))return $;let w=f.mode;if(O6(w))return w;throw Error(`mode must be one of: ${C1.join(", ")}`)}var b6=30000,E4=5000;function N6(f){switch(f){case"run.start":case"session.send_input":return null;default:return b6}}function O4(f,$){return $===void 0?N6(f):$}var T6=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],y6=new Set(T6);function b4(f){return typeof f==="string"&&y6.has(f)}var N4="tool_executor.",T4="custom_tool.",y4="hook.",C4="compaction.compact",S4="checkpoint.create",g4="mistake_limit.decide",n4="user_instructions.snapshot";function T0(f,$){return`<file_content path="${f}">
2
2
  ${$}
3
- </file_content>`}function C6(f,$="act"){return`<user_input mode="${$}">${f}</user_input>`}function S6(f,$){return`<user_command slash="${$}">${f}</user_command>`}function g6(f,$){return`<mode_notice>The user switched from ${f} mode to ${$} mode before sending this message.</mode_notice>`}function n6(){let f=null;return{record($,w){if($===w)return;if(f){f=f.from===w?null:{from:f.from,to:w};return}f={from:$,to:w}},consume(){let $=f;return f=null,$}}}function v6(f,$){let w=f.trim(),q=new RegExp(`^<${$}\\b([^>]*)>([\\s\\S]*?)<\\/${$}>$`,"i").exec(w);if(!q)return;return{attrs:q[1]??"",content:q[2]??""}}function h6(f,$){return new RegExp(`${$}="([^"]+)"`,"i").exec(f)?.[1]?.trim()||void 0}function S1(f){if(!f?.trim())return;let $=v6(f,"user_command");if(!$)return;let w=h6($.attrs,"slash");if(!w)return;return{slash:w,content:$.content.trim()}}function g1(f){if(!f?.trim())return"";let $=f.trim();for(let w of["user_input","user_command"]){let q=v1($,w);$=(q!==$?q:$.replace(new RegExp(`<${w}[^>]*>`,"g"),"")).trim()}return $}function n1(f){if(!f?.trim())return"";return x6(f,"mode_notice").trim()}function x6(f,$){let w=`<${$}>`,q=`</${$}>`,Z=f,H=Z.indexOf(w);while(H!==-1){let R=Z.indexOf(q,H+w.length);if(R===-1)break;Z=Z.slice(0,H)+Z.slice(R+q.length),H=Z.indexOf(w,H)}return Z}function z6(f){let $=n1(g1(f)),w=S1(f);if(!w)return $;if(w.slash.toLowerCase()==="team"){let Z=$.toLowerCase().startsWith("spawn a team of agents for the following task:")?$.slice(46).trim():$;return Z?`/team ${Z}`:"/team"}return $?`/${w.slash} ${$}`:`/${w.slash}`}function v1(f,$){if(!f?.trim())return"";if(!$)return f;let w=new RegExp(`<${$}\\b[^>]*>([\\s\\S]*?)</${$}>`,"g");return f.replace(w,"$1")}var i="[media omitted: invalid or exceeds size limit]",Y0="[Image attached — this model cannot view images]",F0=["image/png","image/jpeg","image/gif","image/webp"],c6=5242880,z=5242880,u=6291456,o6=8388608;function u6(f){return f.length}function h1(f){let $=f.endsWith("==")?2:f.endsWith("=")?1:0;return Math.floor(f.length*3/4)-$}function d6(f=5242880){return Math.floor(f*3/4)}function y0(f){return Math.ceil(f/3)*4}function x1(f={}){return{maxImageEncodedBytes:f.maxImageEncodedBytes??5242880,maxImageDecodedBytes:f.maxImageDecodedBytes??6291456,maxTotalMediaBytes:f.maxTotalMediaBytes??8388608}}function L0(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function k0(f,$){f.omittedImages+=1,f.omittedReasons[$]=(f.omittedReasons[$]??0)+1}function q0(f,$,w,q){let Z=x1(w);if(f>Z.maxImageEncodedBytes){let H={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${Z.maxImageEncodedBytes} byte encoded limit`};return k0(q,H.reason),H}if($>Z.maxImageDecodedBytes){let H={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${Z.maxImageDecodedBytes} byte decoded limit`};return k0(q,H.reason),H}if(q.totalEncodedBytes+f>Z.maxTotalMediaBytes){let H={ok:!1,reason:"total_limit",message:`Image media exceeds the ${Z.maxTotalMediaBytes} byte total media limit`};return k0(q,H.reason),H}return q.totalEncodedBytes+=f,q.keptImages+=1,null}function z1(f){return f>=65&&f<=90||f>=97&&f<=122||f>=48&&f<=57||f===43||f===47}function l6(f){return f.length>0&&c1(f,0,f.length)}function c1(f,$,w){let q=w-$;if(q%4!==0)return!1;let Z=w;if(q>=2&&f.charCodeAt(w-2)===61&&f.charCodeAt(w-1)===61)Z-=2;else if(q>=1&&f.charCodeAt(w-1)===61)Z-=1;for(let H=$;H<Z;H++)if(!z1(f.charCodeAt(H)))return!1;for(let H=Z;H<w;H++)if(f.charCodeAt(H)!==61)return!1;return!0}function m6(f,$,w){return w-$>=5&&(f.charCodeAt($)|32)===100&&(f.charCodeAt($+1)|32)===97&&(f.charCodeAt($+2)|32)===116&&(f.charCodeAt($+3)|32)===97&&f.charCodeAt($+4)===58}function p6(f){let $=0,w=f.length;while($<w&&/\s/.test(f[$]??""))$+=1;while(w>$&&/\s/.test(f[w-1]??""))w-=1;return{start:$,end:w}}function r6(f,$,w){if(!m6(f,$,w))return;let q=$+5,Z=f.indexOf(",",q);if(Z===-1||Z>=w)return;if(Z-q>128)return;let H=f.slice(q,Z).toLowerCase(),R=";base64";if(!H.endsWith(R))return;let J=H.slice(0,-R.length);if(!J||J.includes(";"))return;return{mediaType:J,base64Start:Z+1,base64End:w}}function o1(f,$,w={}){let q=w.maxEncodedBytes??5242880,Z=w.maxDecodedBytes??6291456,H=new Set(w.supportedMediaTypes??F0),R=f?.toLowerCase(),J=p6($),k=J.start,V=J.end,A=r6($,J.start,J.end);if(A){if(R&&R!==A.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${f} does not match data URL type ${A.mediaType}`};R=A.mediaType,k=A.base64Start,V=A.base64End}if(!R||!H.has(R))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${f??"unknown"}`};let j=V-k;if(j===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(j>q)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${q} byte encoded limit`};if(!c1($,k,V))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let B=$.slice(k,V),O=h1(B);if(O>Z)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${Z} byte decoded limit`};return{ok:!0,mediaType:R,base64:B,encodedBytes:j,decodedBytes:O}}function Z0(f,$,w,q){let Z=o1(f,$,{maxEncodedBytes:w.maxImageEncodedBytes,maxDecodedBytes:w.maxImageDecodedBytes});if(!Z.ok)return k0(q,Z.reason),Z;let H=q0(Z.encodedBytes,Z.decodedBytes,w,q);if(H)return H;return Z}function N(f){return f.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var W0="ERROR: EMPTY CONTENT",s6="[image attached]";function u1(f,$){let w=f[f.length-1];if($.role==="tool"&&w?.role==="tool"&&Array.isArray(w.content)&&Array.isArray($.content)){w.content.push(...$.content);return}f.push($)}function i6(f){if(!Array.isArray(f)||f.length===0)return!1;return f.every(($)=>{if(!$||typeof $!=="object")return!1;let w=$;if(w.type==="text")return typeof w.text==="string";if(w.type==="image")return typeof w.data==="string"&&typeof w.mediaType==="string";return!1})}function d(){return{type:"text",text:i}}function d1(f){return q0(z,0,{maxImageEncodedBytes:z,maxImageDecodedBytes:u},f)===null}function a6(f){try{return new URL(f).protocol}catch{return}}function C0(f,$){let w=Z0(f.mediaType,f.data,{maxImageEncodedBytes:z,maxImageDecodedBytes:u},$);if(!w.ok)return d();return l1(w.base64,w.mediaType)}function l1(f,$){return{type:"file",data:{type:"data",data:f},mediaType:$}}function G0(f,$){return{type:"file",data:f,mediaType:$??"image"}}function t6(f,$){if(f.image instanceof URL){if(f.image.protocol==="data:"){let R=Z0(f.mediaType,f.image.href,{maxImageEncodedBytes:z,maxImageDecodedBytes:u},$);if(!R.ok)return d();return G0(`data:${R.mediaType};base64,${R.base64}`,R.mediaType)}if(f.image.protocol!=="http:"&&f.image.protocol!=="https:")return d();if(!d1($))return d();return G0(f.image,f.mediaType)}if(typeof f.image==="string"){let R=a6(f.image);if(R==="http:"||R==="https:"){if(!d1($))return d();return G0(f.image,f.mediaType)}let J=R==="data:",k=Z0(f.mediaType??(J?void 0:"image/png"),f.image,{maxImageEncodedBytes:z,maxImageDecodedBytes:u},$);if(!k.ok)return d();return G0(J?`data:${k.mediaType};base64,${k.base64}`:k.base64,k.mediaType)}let w=f.image.byteLength,q=y0(w),Z=f.mediaType?.toLowerCase()??"image/png";if(!F0.includes(Z)||q0(q,w,{maxImageEncodedBytes:z,maxImageDecodedBytes:u},$))return d();return G0(f.image,Z)}function S0(f,$,w,q){let{hoistImages:Z,inlineImagePlaceholder:H}=q;if(f==null||typeof f!=="object")return{value:f,changed:!1,mediaChanged:!1};if(Array.isArray(f)){let A=[],j=!1,B=!1;for(let O of f){if(O&&typeof O==="object"){let b=O;if(b.type==="image"&&typeof b.data==="string"&&typeof b.mediaType==="string"){if(!Z){A.push(H),j=!0,B=!0;continue}let I0={type:"image",data:b.data,mediaType:b.mediaType},m=C0(I0,w);if(m.type==="file")$.push({type:"image",data:m.data.data,mediaType:m.mediaType});else A.push(m.text);j=!0,B=!0;continue}if(b.type==="image"){A.push(i),j=!0,B=!0;continue}if(b.type==="text"&&typeof b.text==="string"){A.push(b.text),j=!0;continue}}let C=S0(O,$,w,q);A.push(C.value),j||=C.changed,B||=C.mediaChanged}return{value:j?A:f,changed:j,mediaChanged:B}}let R=f;if(R.type==="image"){if(typeof R.data==="string"&&typeof R.mediaType==="string"){if(!Z)return{value:H,changed:!0,mediaChanged:!0};let A={type:"image",data:R.data,mediaType:R.mediaType},j=C0(A,w);if(j.type==="file")return $.push({type:"image",data:j.data.data,mediaType:j.mediaType}),{value:s6,changed:!0,mediaChanged:!0};return{value:j.text,changed:!0,mediaChanged:!0}}return{value:i,changed:!0,mediaChanged:!0}}let J={},k=!1,V=!1;for(let[A,j]of Object.entries(R)){let B=S0(j,$,w,q);J[A]=B.value,k||=B.changed,V||=B.mediaChanged}return{value:k?J:f,changed:k,mediaChanged:V}}function X0(f){if(typeof f==="string")return N(f);if(Array.isArray(f))return f.map(($)=>X0($));if(f!==null&&typeof f==="object"){let $=f,w={};for(let[q,Z]of Object.entries($))w[q]=X0(Z);return w}return f}function m1(f,$=!1,w=L0(),q){let Z=q?.supportsImages??!0;if(typeof f==="string")return{type:$?"error-text":"text",value:N(f)};if(!$&&i6(f))return{type:"content",value:f.map((H)=>H.type==="image"?Z?C0(H,w):{type:"text",text:Y0}:{type:"text",text:N(H.text)})};if(f!==null&&typeof f==="object"){let H=[],R=S0(f,H,w,{hoistImages:!$&&Z,inlineImagePlaceholder:Z?i:Y0});if(!$&&H.length>0)return{type:"content",value:[{type:"text",text:typeof R.value==="string"?N(R.value):JSON.stringify(X0(R.value))},...H.map((k)=>l1(k.data,k.mediaType))]};if(R.mediaChanged)return{type:$?"error-json":"json",value:X0(R.value)}}if(f===null||typeof f==="boolean"||typeof f==="number"||typeof f==="object")return{type:$?"error-json":"json",value:X0(f)};return{type:$?"error-text":"text",value:N(String(f))}}function e6(f,$,w){let q=w?.assistantToolCallArgKey??"input",Z=w?.supportsImages??!0,H=[],R=L0();if(typeof f==="string"&&f.trim().length>0||Array.isArray(f)&&f.length>0)H.push({role:"system",content:typeof f==="string"?N(f):f});for(let J of $){let k=J.content;if(typeof k==="string"){if(k.trim().length===0){H.push({role:J.role,content:[{type:"text",text:W0}]});continue}H.push({role:J.role,content:N(k)});continue}let V=[],A=[];if(k.length===0){H.push({role:J.role,content:[{type:"text",text:W0}]});continue}for(let j of k)switch(j.type){case"text":V.push({type:"text",text:N(j.text),...j.providerOptions?{providerOptions:j.providerOptions}:{}});break;case"reasoning":V.push({type:"reasoning",text:N(j.text),...j.providerOptions?{providerOptions:j.providerOptions}:{}});break;case"image":V.push(Z?t6(j,R):{type:"text",text:Y0});break;case"file":V.push({type:"text",text:T0(j.path,N(j.content))});break;case"tool-call":if(J.role==="assistant")V.push({type:"tool-call",toolCallId:j.toolCallId,toolName:j.toolName,[q]:j.input,...j.providerOptions?{providerOptions:j.providerOptions}:{}});break;case"tool-result":{A.push({type:"tool-result",toolCallId:j.toolCallId,toolName:j.toolName,output:m1(j.output,j.isError??!1,R,{supportsImages:Z})});break}}if(V.length>0&&V.every((j)=>j.type==="text"&&typeof j.text==="string"&&j.text.trim().length===0))V.splice(0,V.length,{type:"text",text:W0});if(V.length>0)u1(H,{role:J.role,content:V});if(A.length>0)u1(H,{role:"tool",content:A})}return H}var u4=["show","hide","subscription"];function p1(f){return typeof f==="object"&&f!==null&&!Array.isArray(f)}function f$(f,$){if(!f&&!$)return;let w=f?.metadata,q=$?.metadata,Z={...f??{},...$??{}};if(p1(w)&&p1(q))Z.metadata={...w,...q};return Z}var H0={max:1,xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},$$=void 0;function w$(f,$){if(typeof f==="string"&&f.toLowerCase()in H0)return f.toLowerCase();return $?void 0:void 0}function r1(f,$){let w=typeof f==="string"?f.toLowerCase():void 0;if(w&&w in H0)return H0[w];if($?.fallbackEffort)return H0[$.fallbackEffort];return}function Y$(f){let $=r1(f.effort,{fallbackEffort:f.fallbackEffort});if($===void 0)return;if($<=0)return 0;let w=f.minimumBudget??1;if(f.maxBudget<w)return;let q=f.scaleTokens??f.maxBudget;return Math.min(Math.max(Math.floor(q*$),w),f.maxBudget)}function q$(f){return f instanceof Error?{name:f.name,message:f.message}:f}var Z$=3;function s1(f){return Math.max(1,Math.ceil(f/3))}function g0(f){let $=new WeakSet;try{return JSON.stringify(f,(w,q)=>{if(typeof q==="bigint")return q.toString();if(typeof q!=="object"||q===null)return q;if($.has(q))return"[Circular]";return $.add(q),q})??""}catch{return String(f??"")}}function G$(f){let $;try{$=JSON.stringify({systemPrompt:f.systemPrompt,messages:f.messages,tools:f.tools})}catch{$=[g0(f.systemPrompt),g0(f.messages),g0(f.tools)].join(`
4
- `)}return s1($.length)}var X$={debug:()=>{},log:()=>{},error:()=>{}};var i4=60,a4=1,t4=3600;function H$(f){return typeof f==="number"&&Number.isFinite(f)}function R$(f){return Math.min(Math.max(f,1),3600)}function e4(f){if(!H$(f))return 60;return R$(f)}function fw(f,$,w){let q=w?` (${w})`:"",Z=Math.round($/100)/10;return`MCP request to "${f}"${q} timed out after ${Z}s. Increase the "timeout" field (in seconds) for this server in cline_mcp_settings.json.`}function J$(f){if(f instanceof Error)return f.message;return String(f)}function K$(f){if(f&&typeof f==="object"&&"code"in f&&typeof f.code==="string")return f.code;return""}class c extends Error{constructor(f,$){super(`${f} at position ${$}`);this.position=$}}function i1(f){return/^[0-9A-Fa-f]$/.test(f)}function h(f){return f>="0"&&f<="9"}function a1(f){return f>=" "}function t(f){return`,:[]/{}()
3
+ </file_content>`}function C6(f,$="act"){return`<user_input mode="${$}">${f}</user_input>`}function S6(f,$){return`<user_command slash="${$}">${f}</user_command>`}function g6(f,$){return`<mode_notice>The user switched from ${f} mode to ${$} mode before sending this message.</mode_notice>`}function n6(){let f=null;return{record($,w){if($===w)return;if(f){f=f.from===w?null:{from:f.from,to:w};return}f={from:$,to:w}},consume(){let $=f;return f=null,$}}}function v6(f,$){let w=f.trim(),q=new RegExp(`^<${$}\\b([^>]*)>([\\s\\S]*?)<\\/${$}>$`,"i").exec(w);if(!q)return;return{attrs:q[1]??"",content:q[2]??""}}function h6(f,$){return new RegExp(`${$}="([^"]+)"`,"i").exec(f)?.[1]?.trim()||void 0}function S1(f){if(!f?.trim())return;let $=v6(f,"user_command");if(!$)return;let w=h6($.attrs,"slash");if(!w)return;return{slash:w,content:$.content.trim()}}function g1(f){if(!f?.trim())return"";let $=f.trim();for(let w of["user_input","user_command"]){let q=v1($,w);$=(q!==$?q:$.replace(new RegExp(`<${w}[^>]*>`,"g"),"")).trim()}return $}function n1(f){if(!f?.trim())return"";return x6(f,"mode_notice").trim()}function x6(f,$){let w=`<${$}>`,q=`</${$}>`,Z=f,H=Z.indexOf(w);while(H!==-1){let R=Z.indexOf(q,H+w.length);if(R===-1)break;Z=Z.slice(0,H)+Z.slice(R+q.length),H=Z.indexOf(w,H)}return Z}function z6(f){let $=n1(g1(f)),w=S1(f);if(!w)return $;if(w.slash.toLowerCase()==="team"){let Z=$.toLowerCase().startsWith("spawn a team of agents for the following task:")?$.slice(46).trim():$;return Z?`/team ${Z}`:"/team"}return $?`/${w.slash} ${$}`:`/${w.slash}`}function v1(f,$){if(!f?.trim())return"";if(!$)return f;let w=new RegExp(`<${$}\\b[^>]*>([\\s\\S]*?)</${$}>`,"g");return f.replace(w,"$1")}var i="[media omitted: invalid or exceeds size limit]",Y0="[Image attached — this model cannot view images]",F0=["image/png","image/jpeg","image/gif","image/webp"],c6=5242880,z=5242880,u=6291456,o6=8388608;function u6(f){return f.length}function h1(f){let $=f.endsWith("==")?2:f.endsWith("=")?1:0;return Math.floor(f.length*3/4)-$}function d6(f=5242880){return Math.floor(f*3/4)}function y0(f){return Math.ceil(f/3)*4}function x1(f={}){return{maxImageEncodedBytes:f.maxImageEncodedBytes??5242880,maxImageDecodedBytes:f.maxImageDecodedBytes??6291456,maxTotalMediaBytes:f.maxTotalMediaBytes??8388608}}function L0(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function k0(f,$){f.omittedImages+=1,f.omittedReasons[$]=(f.omittedReasons[$]??0)+1}function q0(f,$,w,q){let Z=x1(w);if(f>Z.maxImageEncodedBytes){let H={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${Z.maxImageEncodedBytes} byte encoded limit`};return k0(q,H.reason),H}if($>Z.maxImageDecodedBytes){let H={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${Z.maxImageDecodedBytes} byte decoded limit`};return k0(q,H.reason),H}if(q.totalEncodedBytes+f>Z.maxTotalMediaBytes){let H={ok:!1,reason:"total_limit",message:`Image media exceeds the ${Z.maxTotalMediaBytes} byte total media limit`};return k0(q,H.reason),H}return q.totalEncodedBytes+=f,q.keptImages+=1,null}function z1(f){return f>=65&&f<=90||f>=97&&f<=122||f>=48&&f<=57||f===43||f===47}function l6(f){return f.length>0&&c1(f,0,f.length)}function c1(f,$,w){let q=w-$;if(q%4!==0)return!1;let Z=w;if(q>=2&&f.charCodeAt(w-2)===61&&f.charCodeAt(w-1)===61)Z-=2;else if(q>=1&&f.charCodeAt(w-1)===61)Z-=1;for(let H=$;H<Z;H++)if(!z1(f.charCodeAt(H)))return!1;for(let H=Z;H<w;H++)if(f.charCodeAt(H)!==61)return!1;return!0}function m6(f,$,w){return w-$>=5&&(f.charCodeAt($)|32)===100&&(f.charCodeAt($+1)|32)===97&&(f.charCodeAt($+2)|32)===116&&(f.charCodeAt($+3)|32)===97&&f.charCodeAt($+4)===58}function p6(f){let $=0,w=f.length;while($<w&&/\s/.test(f[$]??""))$+=1;while(w>$&&/\s/.test(f[w-1]??""))w-=1;return{start:$,end:w}}function r6(f,$,w){if(!m6(f,$,w))return;let q=$+5,Z=f.indexOf(",",q);if(Z===-1||Z>=w)return;if(Z-q>128)return;let H=f.slice(q,Z).toLowerCase(),R=";base64";if(!H.endsWith(R))return;let J=H.slice(0,-R.length);if(!J||J.includes(";"))return;return{mediaType:J,base64Start:Z+1,base64End:w}}function o1(f,$,w={}){let q=w.maxEncodedBytes??5242880,Z=w.maxDecodedBytes??6291456,H=new Set(w.supportedMediaTypes??F0),R=f?.toLowerCase(),J=p6($),k=J.start,V=J.end,A=r6($,J.start,J.end);if(A){if(R&&R!==A.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${f} does not match data URL type ${A.mediaType}`};R=A.mediaType,k=A.base64Start,V=A.base64End}if(!R||!H.has(R))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${f??"unknown"}`};let j=V-k;if(j===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(j>q)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${q} byte encoded limit`};if(!c1($,k,V))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let B=$.slice(k,V),O=h1(B);if(O>Z)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${Z} byte decoded limit`};return{ok:!0,mediaType:R,base64:B,encodedBytes:j,decodedBytes:O}}function Z0(f,$,w,q){let Z=o1(f,$,{maxEncodedBytes:w.maxImageEncodedBytes,maxDecodedBytes:w.maxImageDecodedBytes});if(!Z.ok)return k0(q,Z.reason),Z;let H=q0(Z.encodedBytes,Z.decodedBytes,w,q);if(H)return H;return Z}function N(f){return f.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var W0="ERROR: EMPTY CONTENT",s6="[image attached]";function u1(f,$){let w=f[f.length-1];if($.role==="tool"&&w?.role==="tool"&&Array.isArray(w.content)&&Array.isArray($.content)){w.content.push(...$.content);return}f.push($)}function i6(f){if(!Array.isArray(f)||f.length===0)return!1;return f.every(($)=>{if(!$||typeof $!=="object")return!1;let w=$;if(w.type==="text")return typeof w.text==="string";if(w.type==="image")return typeof w.data==="string"&&typeof w.mediaType==="string";return!1})}function d(){return{type:"text",text:i}}function d1(f){return q0(z,0,{maxImageEncodedBytes:z,maxImageDecodedBytes:u},f)===null}function a6(f){try{return new URL(f).protocol}catch{return}}function C0(f,$){let w=Z0(f.mediaType,f.data,{maxImageEncodedBytes:z,maxImageDecodedBytes:u},$);if(!w.ok)return d();return l1(w.base64,w.mediaType)}function l1(f,$){return{type:"file",data:{type:"data",data:f},mediaType:$}}function G0(f,$){return{type:"file",data:f,mediaType:$??"image"}}function t6(f,$){if(f.image instanceof URL){if(f.image.protocol==="data:"){let R=Z0(f.mediaType,f.image.href,{maxImageEncodedBytes:z,maxImageDecodedBytes:u},$);if(!R.ok)return d();return G0(`data:${R.mediaType};base64,${R.base64}`,R.mediaType)}if(f.image.protocol!=="http:"&&f.image.protocol!=="https:")return d();if(!d1($))return d();return G0(f.image,f.mediaType)}if(typeof f.image==="string"){let R=a6(f.image);if(R==="http:"||R==="https:"){if(!d1($))return d();return G0(f.image,f.mediaType)}let J=R==="data:",k=Z0(f.mediaType??(J?void 0:"image/png"),f.image,{maxImageEncodedBytes:z,maxImageDecodedBytes:u},$);if(!k.ok)return d();return G0(J?`data:${k.mediaType};base64,${k.base64}`:k.base64,k.mediaType)}let w=f.image.byteLength,q=y0(w),Z=f.mediaType?.toLowerCase()??"image/png";if(!F0.includes(Z)||q0(q,w,{maxImageEncodedBytes:z,maxImageDecodedBytes:u},$))return d();return G0(f.image,Z)}function S0(f,$,w,q){let{hoistImages:Z,inlineImagePlaceholder:H}=q;if(f==null||typeof f!=="object")return{value:f,changed:!1,mediaChanged:!1};if(Array.isArray(f)){let A=[],j=!1,B=!1;for(let O of f){if(O&&typeof O==="object"){let b=O;if(b.type==="image"&&typeof b.data==="string"&&typeof b.mediaType==="string"){if(!Z){A.push(H),j=!0,B=!0;continue}let I0={type:"image",data:b.data,mediaType:b.mediaType},m=C0(I0,w);if(m.type==="file")$.push({type:"image",data:m.data.data,mediaType:m.mediaType});else A.push(m.text);j=!0,B=!0;continue}if(b.type==="image"){A.push(i),j=!0,B=!0;continue}if(b.type==="text"&&typeof b.text==="string"){A.push(b.text),j=!0;continue}}let C=S0(O,$,w,q);A.push(C.value),j||=C.changed,B||=C.mediaChanged}return{value:j?A:f,changed:j,mediaChanged:B}}let R=f;if(R.type==="image"){if(typeof R.data==="string"&&typeof R.mediaType==="string"){if(!Z)return{value:H,changed:!0,mediaChanged:!0};let A={type:"image",data:R.data,mediaType:R.mediaType},j=C0(A,w);if(j.type==="file")return $.push({type:"image",data:j.data.data,mediaType:j.mediaType}),{value:s6,changed:!0,mediaChanged:!0};return{value:j.text,changed:!0,mediaChanged:!0}}return{value:i,changed:!0,mediaChanged:!0}}let J={},k=!1,V=!1;for(let[A,j]of Object.entries(R)){let B=S0(j,$,w,q);J[A]=B.value,k||=B.changed,V||=B.mediaChanged}return{value:k?J:f,changed:k,mediaChanged:V}}function X0(f){if(typeof f==="string")return N(f);if(Array.isArray(f))return f.map(($)=>X0($));if(f!==null&&typeof f==="object"){let $=f,w={};for(let[q,Z]of Object.entries($))w[q]=X0(Z);return w}return f}function m1(f,$=!1,w=L0(),q){let Z=q?.supportsImages??!0;if(typeof f==="string")return{type:$?"error-text":"text",value:N(f)};if(!$&&i6(f))return{type:"content",value:f.map((H)=>H.type==="image"?Z?C0(H,w):{type:"text",text:Y0}:{type:"text",text:N(H.text)})};if(f!==null&&typeof f==="object"){let H=[],R=S0(f,H,w,{hoistImages:!$&&Z,inlineImagePlaceholder:Z?i:Y0});if(!$&&H.length>0)return{type:"content",value:[{type:"text",text:typeof R.value==="string"?N(R.value):JSON.stringify(X0(R.value))},...H.map((k)=>l1(k.data,k.mediaType))]};if(R.mediaChanged)return{type:$?"error-json":"json",value:X0(R.value)}}if(f===null||typeof f==="boolean"||typeof f==="number"||typeof f==="object")return{type:$?"error-json":"json",value:X0(f)};return{type:$?"error-text":"text",value:N(String(f))}}function e6(f,$,w){let q=w?.assistantToolCallArgKey??"input",Z=w?.supportsImages??!0,H=[],R=L0();if(typeof f==="string"&&f.trim().length>0||Array.isArray(f)&&f.length>0)H.push({role:"system",content:typeof f==="string"?N(f):f});for(let J of $){let k=J.content;if(typeof k==="string"){if(k.trim().length===0){H.push({role:J.role,content:[{type:"text",text:W0}]});continue}H.push({role:J.role,content:N(k)});continue}let V=[],A=[];if(k.length===0){H.push({role:J.role,content:[{type:"text",text:W0}]});continue}for(let j of k)switch(j.type){case"text":V.push({type:"text",text:N(j.text),...j.providerOptions?{providerOptions:j.providerOptions}:{}});break;case"reasoning":V.push({type:"reasoning",text:N(j.text),...j.providerOptions?{providerOptions:j.providerOptions}:{}});break;case"image":V.push(Z?t6(j,R):{type:"text",text:Y0});break;case"file":V.push({type:"text",text:T0(j.path,N(j.content))});break;case"tool-call":if(J.role==="assistant")V.push({type:"tool-call",toolCallId:j.toolCallId,toolName:j.toolName,[q]:j.input,...j.providerOptions?{providerOptions:j.providerOptions}:{}});break;case"tool-result":{A.push({type:"tool-result",toolCallId:j.toolCallId,toolName:j.toolName,output:m1(j.output,j.isError??!1,R,{supportsImages:Z})});break}}if(V.length>0&&V.every((j)=>j.type==="text"&&typeof j.text==="string"&&j.text.trim().length===0))V.splice(0,V.length,{type:"text",text:W0});if(V.length>0)u1(H,{role:J.role,content:V});if(A.length>0)u1(H,{role:"tool",content:A})}return H}var u4=["show","hide","subscription"];function p1(f){return typeof f==="object"&&f!==null&&!Array.isArray(f)}function f$(f,$){if(!f&&!$)return;let w=f?.metadata,q=$?.metadata,Z={...f??{},...$??{}};if(p1(w)&&p1(q))Z.metadata={...w,...q};return Z}var m4=["web_search"];var H0={max:1,xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},$$=void 0;function w$(f,$){if(typeof f==="string"&&f.toLowerCase()in H0)return f.toLowerCase();return $?void 0:void 0}function r1(f,$){let w=typeof f==="string"?f.toLowerCase():void 0;if(w&&w in H0)return H0[w];if($?.fallbackEffort)return H0[$.fallbackEffort];return}function Y$(f){let $=r1(f.effort,{fallbackEffort:f.fallbackEffort});if($===void 0)return;if($<=0)return 0;let w=f.minimumBudget??1;if(f.maxBudget<w)return;let q=f.scaleTokens??f.maxBudget;return Math.min(Math.max(Math.floor(q*$),w),f.maxBudget)}function q$(f){return f instanceof Error?{name:f.name,message:f.message}:f}var Z$=3;function s1(f){return Math.max(1,Math.ceil(f/3))}function g0(f){let $=new WeakSet;try{return JSON.stringify(f,(w,q)=>{if(typeof q==="bigint")return q.toString();if(typeof q!=="object"||q===null)return q;if($.has(q))return"[Circular]";return $.add(q),q})??""}catch{return String(f??"")}}function G$(f){let $;try{$=JSON.stringify({systemPrompt:f.systemPrompt,messages:f.messages,tools:f.tools})}catch{$=[g0(f.systemPrompt),g0(f.messages),g0(f.tools)].join(`
4
+ `)}return s1($.length)}var X$={debug:()=>{},log:()=>{},error:()=>{}};var t4=60,e4=1,fw=3600;function H$(f){return typeof f==="number"&&Number.isFinite(f)}function R$(f){return Math.min(Math.max(f,1),3600)}function $w(f){if(!H$(f))return 60;return R$(f)}function ww(f,$,w){let q=w?` (${w})`:"",Z=Math.round($/100)/10;return`MCP request to "${f}"${q} timed out after ${Z}s. Increase the "timeout" field (in seconds) for this server in cline_mcp_settings.json.`}function J$(f){if(f instanceof Error)return f.message;return String(f)}function K$(f){if(f&&typeof f==="object"&&"code"in f&&typeof f.code==="string")return f.code;return""}class c extends Error{constructor(f,$){super(`${f} at position ${$}`);this.position=$}}function i1(f){return/^[0-9A-Fa-f]$/.test(f)}function h(f){return f>="0"&&f<="9"}function a1(f){return f>=" "}function t(f){return`,:[]/{}()
5
5
  +`.includes(f)}function n0(f){return f>="a"&&f<="z"||f>="A"&&f<="Z"||f==="_"||f==="$"}function A0(f){return f>="a"&&f<="z"||f>="A"&&f<="Z"||f==="_"||f==="$"||f>="0"&&f<="9"}var v0=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,h0=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function x0(f){return`,[]/{}
6
6
  +`.includes(f)}function z0(f){return e(f)||_$.test(f)}var _$=/^[[{\w-]$/;function c0(f){return f===`
7
7
  `||f==="\r"||f==="\t"||f==="\b"||f==="\f"}function v(f,$){let w=f.charCodeAt($);return w===32||w===10||w===9||w===13}function t1(f,$){let w=f.charCodeAt($);return w===32||w===9||w===13}function e1(f,$){let w=f.charCodeAt($);return w===160||w===6158||w>=8192&&w<=8203||w===8239||w===8287||w===12288||w===65279}function e(f){return o0(f)||D0(f)}function o0(f){return f==='"'||f==="“"||f==="”"}function u0(f){return f==='"'}function D0(f){return f==="'"||f==="‘"||f==="’"||f==="`"||f==="´"}function d0(f){return f==="'"}function f0(f,$){let w=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,q=f.lastIndexOf($);return q!==-1?f.substring(0,q)+(w?"":f.substring(q+1)):f}function E(f,$){let w=f.length;if(!v(f,w-1))return f+$;while(v(f,w-1))w--;return f.substring(0,w)+$+f.substring(w)}function ff(f,$,w){return f.substring(0,$)+f.substring($+w)}function $f(f){return/[,\n][ \t\r]*$/.test(f)}var Q$={"&quot;":'"',"&amp;":"&","&lt;":"<","&gt;":">","&apos;":"'"},l0=12;function m0(f){if(f.charAt(0)!=="&")return null;let $=f.indexOf(";");if($===-1)return null;let w=f.substring(0,$+1),q=Q$[w];if(q!==void 0)return{char:q,length:w.length};if(f.charAt(1)==="#"){let Z=f.substring(2,$),H=Z.charAt(0)==="x"||Z.charAt(0)==="X",R=H?Z.substring(1):Z;if(R.length>0){let J=Number.parseInt(R,H?16:10);if(!Number.isNaN(J)&&J>=0&&J<=1114111)return{char:String.fromCodePoint(J),length:w.length}}}return null}function wf(f){return f!==null&&f.char==='"'}function Yf(f){return f!==null&&f.char==="'"}function a(f,$){let w=0;for(let q=0;q<f.length;q++)if(f.charAt(q)===$)w++;return w}function qf(f,$){switch($){case")":return a(f,"(")>a(f,")");case"]":return a(f,"[")>a(f,"]");case"}":return a(f,"{")>a(f,"}");default:return!1}}var Zf={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},j$={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
8
8
  `,r:"\r",t:"\t"};function p0(f){let $=0,w="";if(V(["```","[```","{```"]),!H())sf();V(["```","```]","```}"]);let Z=j(",");if(Z)R();if(z0(f[$])&&$f(w)){if(!Z)w=E(w,",");m()}else if(Z)w=f0(w,",");while(f[$]==="}"||f[$]==="]")$++,R();if($>=f.length)return w;B0();function H(){R();let _=b()||I0()||p()||P()||lf()||H1(!1)||mf();return R(),_}function R(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,Q=$,L=J(_);do if(L=k(),L)L=J(_);while(L);return $>Q}function J(_){let Q=_?v:t1,L="";while(!0)if(Q(f,$))L+=f[$],$++;else if(e1(f,$))L+=" ",$++;else break;if(L.length>0)return w+=L,!0;return!1}function k(){if(f[$]==="/"&&f[$+1]==="*"){while($<f.length&&!V$(f,$))$++;return $+=2,!0}if(f[$]==="/"&&f[$+1]==="/"){while($<f.length&&f[$]!==`
9
- `)$++;return!0}return!1}function V(_){if(A(_)){if(n0(f[$]))while($<f.length&&A0(f[$]))$++;return R(),!0}return!1}function A(_){J(!0);for(let Q of _){let L=$+Q.length;if(f.slice($,L)===Q)return $=L,!0}return!1}function j(_){if(f[$]===_)return w+=f[$],$++,!0;return!1}function B(_){if(f[$]===_)return $++,!0;return!1}function O(){return B("\\")}function C(){if(R(),f[$]==="."&&f[$+1]==="."&&f[$+2]===".")return $+=3,R(),B(","),!0;return!1}function b(){if(f[$]==="{"){if(w+="{",$++,R(),B(","))R();let _=!0;while($<f.length&&f[$]!=="}"){let Q;if(!_){if(Q=j(","),!Q)w=E(w,",");R()}else Q=!0;if(C(),!(p()||H1(!0))){if(f[$]==="}"||f[$]==="{"||f[$]==="]"||f[$]==="["||f[$]===void 0){if(!_)w=f0(w,",")}else af();break}R();let S=j(":"),s=$>=f.length;if(!S)if(z0(f[$])||s)w=E(w,":");else K1();if(!H())if(S||s)w+="null";else K1();_=!1}if(f[$]==="}")w+="}",$++;else w=E(w,"}");return!0}return!1}function I0(){if(f[$]==="["){if(w+="[",$++,R(),B(","))R();let _=!0;while($<f.length&&f[$]!=="]"){if(!_){if(!j(","))w=E(w,",")}if(C(),!H()){if(!_)w=f0(w,",");break}_=!1}if(f[$]==="]")w+="]",$++;else w=E(w,"]");return!0}return!1}function m(){let _=!0,Q=!0;while(Q){if(!_){if(!j(","))w=E(w,",")}else _=!1;Q=H()}if(!Q)w=f0(w,",");w=`[
9
+ `)$++;return!0}return!1}function V(_){if(A(_)){if(n0(f[$]))while($<f.length&&A0(f[$]))$++;return R(),!0}return!1}function A(_){J(!0);for(let Q of _){let L=$+Q.length;if(f.slice($,L)===Q)return $=L,!0}return!1}function j(_){if(f[$]===_)return w+=f[$],$++,!0;return!1}function B(_){if(f[$]===_)return $++,!0;return!1}function O(){return B("\\")}function C(){if(R(),f[$]==="."&&f[$+1]==="."&&f[$+2]===".")return $+=3,R(),B(","),!0;return!1}function b(){if(f[$]==="{"){if(w+="{",$++,R(),B(","))R();let _=!0;while($<f.length&&f[$]!=="}"){let Q;if(!_){if(Q=j(","),!Q)w=E(w,",");R()}else Q=!0;if(C(),!(p()||H1(!0))){if(f[$]==="}"||f[$]==="{"||f[$]==="]"||f[$]==="["||f[$]===void 0){if(!_)w=f0(w,",")}else af();break}R();let g=j(":"),s=$>=f.length;if(!g)if(z0(f[$])||s)w=E(w,":");else K1();if(!H())if(g||s)w+="null";else K1();_=!1}if(f[$]==="}")w+="}",$++;else w=E(w,"}");return!0}return!1}function I0(){if(f[$]==="["){if(w+="[",$++,R(),B(","))R();let _=!0;while($<f.length&&f[$]!=="]"){if(!_){if(!j(","))w=E(w,",")}if(C(),!H()){if(!_)w=f0(w,",");break}_=!1}if(f[$]==="]")w+="]",$++;else w=E(w,"]");return!0}return!1}function m(){let _=!0,Q=!0;while(Q){if(!_){if(!j(","))w=E(w,",")}else _=!1;Q=H()}if(!Q)w=f0(w,",");w=`[
10
10
  ${w}
11
- ]`}function p(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,L=f[$]==="\\";if(L){if($++,!e(f[$]))B0()}let S=f[$]==="&"?m0(f.slice($,$+l0)):null,s=wf(S)||Yf(S);if(e(f[$])||s){let _1=u0(f[$])?u0:d0(f[$])?d0:D0(f[$])?D0:o0,J0=$,K0=w.length,D='"';$+=s&&S?S.length:1;while(!0){if($>=f.length){let I=R1($-1);if(!_&&t(f.charAt(I)))return $=J0,w=w.substring(0,K0),p(!0);return D=E(D,'"'),w+=D,!0}if($===Q)return D=E(D,'"'),w+=D,!0;let g=s&&f[$]==="&"?m0(f.slice($,$+l0)):null;if(g&&S?g.char===S.char:_1(f[$])){let I=$,M0=D.length;if(D+='"',$+=g?g.length:1,w+=D,R(!1),_||$>=f.length||t(f[$])&&!qf(D,f[$])||e(f[$])&&!pf($)||h(f[$]))return X1(),!0;if(f[$]==="\\")B0();let x=R1(I-1),Q1=f.charAt(x);if(Q1===",")return $=J0,w=w.substring(0,K0),p(!1,x);if(t(Q1))return $=J0,w=w.substring(0,K0),p(!0);w=w.substring(0,K0),$=I+(g?g.length:1),D=`${D.substring(0,M0)}\\${D.substring(M0)}`}else if(_&&x0(f[$])){if(f[$-1]===":"&&v0.test(f.substring(J0+1,$+2)))while($<f.length&&h0.test(f[$]))D+=f[$],$++;return D=E(D,'"'),w+=D,X1(),!0}else if(g){let I=g.char;if(I==='"')D+="\\\"";else if(c0(I))D+=Zf[I];else D+=I;$+=g.length}else if(f[$]==="\\"){let I=f.charAt($+1);if(j$[I]!==void 0)D+=f.slice($,$+2),$+=2;else if(I==="u"){let x=2;while(x<6&&i1(f[$+x]))x++;if(x===6)D+=f.slice($,$+6),$+=6;else if($+x>=f.length)$=f.length;else tf()}else if(I===`
11
+ ]`}function p(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,L=f[$]==="\\";if(L){if($++,!e(f[$]))B0()}let g=f[$]==="&"?m0(f.slice($,$+l0)):null,s=wf(g)||Yf(g);if(e(f[$])||s){let _1=u0(f[$])?u0:d0(f[$])?d0:D0(f[$])?D0:o0,J0=$,K0=w.length,D='"';$+=s&&g?g.length:1;while(!0){if($>=f.length){let I=R1($-1);if(!_&&t(f.charAt(I)))return $=J0,w=w.substring(0,K0),p(!0);return D=E(D,'"'),w+=D,!0}if($===Q)return D=E(D,'"'),w+=D,!0;let n=s&&f[$]==="&"?m0(f.slice($,$+l0)):null;if(n&&g?n.char===g.char:_1(f[$])){let I=$,M0=D.length;if(D+='"',$+=n?n.length:1,w+=D,R(!1),_||$>=f.length||t(f[$])&&!qf(D,f[$])||e(f[$])&&!pf($)||h(f[$]))return X1(),!0;if(f[$]==="\\")B0();let x=R1(I-1),Q1=f.charAt(x);if(Q1===",")return $=J0,w=w.substring(0,K0),p(!1,x);if(t(Q1))return $=J0,w=w.substring(0,K0),p(!0);w=w.substring(0,K0),$=I+(n?n.length:1),D=`${D.substring(0,M0)}\\${D.substring(M0)}`}else if(_&&x0(f[$])){if(f[$-1]===":"&&v0.test(f.substring(J0+1,$+2)))while($<f.length&&h0.test(f[$]))D+=f[$],$++;return D=E(D,'"'),w+=D,X1(),!0}else if(n){let I=n.char;if(I==='"')D+="\\\"";else if(c0(I))D+=Zf[I];else D+=I;$+=n.length}else if(f[$]==="\\"){let I=f.charAt($+1);if(j$[I]!==void 0)D+=f.slice($,$+2),$+=2;else if(I==="u"){let x=2;while(x<6&&i1(f[$+x]))x++;if(x===6)D+=f.slice($,$+6),$+=6;else if($+x>=f.length)$=f.length;else tf()}else if(I===`
12
12
  `)D+="\\n",$+=2;else D+=I,$+=2}else{let I=f.charAt($);if(I==='"'&&f[$-1]!=="\\")D+=`\\${I}`,$++;else if(c0(I))D+=Zf[I],$++;else{if(!a1(I))rf(I);D+=I,$++}}if(L)O()}}return!1}function X1(){let _=!1;R();while(f[$]==="+"){_=!0,$++,R(),w=f0(w,'"',!0);let Q=w.length;if(p())w=ff(w,Q,1);else w=E(w,'"')}return _}function P(){let _=$,Q="",L=!1;if(f[$]==="-"){if(Q+=f[$],$++,!h(f[$])&&J1())Q+="0"}if(f[$]==="0"&&h(f[$+1]))L=!0;while(h(f[$]))Q+=f[$],$++;if(f[$]==="."){if(Q===""||Q==="-")Q+="0";if(Q+=f[$],$++,!h(f[$]))Q+="0";while(h(f[$]))Q+=f[$],$++}if($>_){if(f[$]==="e"||f[$]==="E"){if(Q==="-")L=!0;if(Q+=f[$],$++,f[$]==="-"||f[$]==="+")Q+=f[$],$++;if(!h(f[$]))Q+="0";while(h(f[$]))Q+=f[$],$++}if(!J1())return $=_,!1;return w+=L?`"${f.substring(_,$)}"`:Q,!0}return!1}function lf(){return r("true","true")||r("false","false")||r("null","null")||r("True","true")||r("False","false")||r("None","null")}function r(_,Q){if(f.slice($,$+_.length)===_&&!A0(f[$+_.length]))return w+=Q,$+=_.length,!0;return!1}function H1(_){let Q=$;if(n0(f[$])){while($<f.length&&A0(f[$]))$++;let L=$;while(v(f,L))L++;if(f[L]==="("){if($=L+1,H(),f[$]===")"){if($++,f[$]===";")$++}return!0}}while($<f.length&&!x0(f[$])&&!e(f[$])&&(!_||f[$]!==":"))$++;if(f[$-1]===":"&&v0.test(f.substring(Q,$+2)))while($<f.length&&h0.test(f[$]))$++;if($>Q){while(v(f,$-1)&&$>0)$--;let L=f.slice(Q,$);if(w+=L==="undefined"?"null":JSON.stringify(L),f[$]==='"')$++;return!0}}function mf(){if(f[$]==="/"){let _=$;$++;while($<f.length&&(f[$]!=="/"||f[$-1]==="\\"))$++;return $++,w+=JSON.stringify(f.substring(_,$)),!0}}function R1(_){let Q=_;while(Q>0&&v(f,Q))Q--;return Q}function pf(_){let Q=_+1;while(Q<f.length&&v(f,Q))Q++;return Q>=f.length||t(f[Q])}function J1(){return $>=f.length||t(f[$])||v(f,$)}function rf(_){throw new c(`Invalid character ${JSON.stringify(_)}`,$)}function B0(){throw new c(`Unexpected character ${JSON.stringify(f[$])}`,$)}function sf(){throw new c("Unexpected end of json string",f.length)}function af(){throw new c("Object key expected",$)}function K1(){throw new c("Colon expected",$)}function tf(){let _=f.slice($,$+6);throw new c(`Invalid unicode character "${_}"`,$)}}function V$(f,$){return f[$]==="*"&&f[$+1]==="/"}function k$(f){let $=!1,w=!1,q=!1;for(let Z=0;Z<f.length;Z+=1){let H=f[Z];if(q){q=!1;continue}if(H==="\\"){q=!0;continue}if(!w&&H==='"')$=!$;else if(!$&&H==="'")w=!w}return $||w}var F$=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function L$(f){let $=f.match(F$);if(!$)return;let[,w,q]=$,Z=q.trim();if(!Z)return;let H=Z[0];if(H==='"'||H==="{"||H==="["||Z==="true"||Z==="false"||Z==="null"||Number.isFinite(Number(Z)))return;return JSON.parse(`{"${w}":${JSON.stringify(Z)}}`)}function W$(f){if(typeof f!=="string")return f;let $=f.trimStart();if($[0]!=="{"&&$[0]!=="[")return f;try{return JSON.parse($)}catch{}if(!k$($))try{return JSON.parse(p0($))}catch{}return L$($)??f}function A$(f){let $=new WeakSet;try{return JSON.stringify(f,(q,Z)=>{if(typeof Z==="bigint")return Z.toString();if(Z&&typeof Z==="object"){if($.has(Z))return"[Circular]";$.add(Z)}return Z})??"null"}catch{return String(f)}}function D$(f){try{return JSON.parse(f)}catch{return}}function $0(f){return typeof f==="object"&&f!==null&&!Array.isArray(f)}function U$(f){let $=f.type;if(typeof $==="string")return[$];return Array.isArray($)?$.filter((w)=>typeof w==="string"):[]}function r0(f,$){if(U$(f).includes($))return!0;for(let q of["anyOf","oneOf","allOf"]){let Z=f[q];if(Array.isArray(Z)&&Z.some((H)=>$0(H)&&r0(H,$)))return!0}return!1}function P$(f,$){if(typeof f!=="string")return f;let w=f.trim(),q=r0($,"array"),Z=r0($,"object");if((!q||!w.startsWith("["))&&(!Z||!w.startsWith("{")))return f;try{let H=JSON.parse(w);if(Array.isArray(H))return q?H:f;if($0(H))return Z?H:f;return f}catch{return f}}function s0(f,$){let w=P$(f,$);if(Array.isArray(w)){let R=$.items;if(!$0(R))return w;let J=!1,k=w.map((V)=>{let A=s0(V,R);return J||=A!==V,A});return J?k:w}if(!$0(w))return w;let q=$.properties;if(!$0(q))return w;let Z=!1,H={...w};for(let[R,J]of Object.entries(q)){if(!(R in w)||!$0(J))continue;let k=s0(w[R],J);if(k!==w[R])H[R]=k,Z=!0}return Z?H:w}function I$(f){if(typeof globalThis.atob==="function")try{let $=globalThis.atob(f),w=Uint8Array.from($,(q)=>q.charCodeAt(0));return new TextDecoder().decode(w)}catch{return null}if(typeof Buffer<"u")try{return Buffer.from(f,"base64").toString("utf8")}catch{return null}return null}function B$(f){let $=f?.trim();if(!$)return null;try{let w=$.split(".");if(w.length!==3)return null;let q=w[1];if(!q)return null;let Z=q.replace(/-/g,"+").replace(/_/g,"/"),H=Z.padEnd(Z.length+(4-Z.length%4)%4,"="),R=I$(H);return R?JSON.parse(R):null}catch{return null}}function M$(f){return Object.fromEntries(Object.entries(f).filter(([,$])=>$!==void 0))}function E$(f){let $=f.replaceAll("\\","/"),w=$.lastIndexOf("/");return(w>=0?$.slice(w+1):$).toLowerCase()}function O$(f){return f==="win32"?"powershell":"/bin/bash"}function i0(f){let $=E$(f);if($==="powershell"||$==="powershell.exe"||$==="pwsh"||$==="pwsh.exe")return"powershell";if($==="cmd"||$==="cmd.exe")return"cmd";if($==="wsl"||$==="wsl.exe")return"wsl";return"posix"}function Gf(f,$){switch(i0(f)){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:$};case"cmd":return{args:["/d","/s","/c",$]};case"wsl":return{args:["bash","-c",$]};case"posix":return{args:["-c",$]}}}function b$(f,$){if(i0(f)==="powershell")return["-NoProfile","-NonInteractive","-Command",$];return Gf(f,$).args}function N$(f){return f.toLowerCase().replace(/[^\w.-]+/g,"_")}function T$(f){let $=f?.trim();return $?$:void 0}function Xf(f,$){if(f.length<=$)return f;return`${f.slice(0,$-1)}…`}function y$(f,$="/",w=100){if(!f||f.length<=w)return f||"";let q=f.split($)?.shift()?.trim()?.slice(0,w-1);return q?`${q}…`:Xf(f,w)}function C$(f){if(f.length<=8)return"****";return`${f.slice(0,4)}...${f.slice(-4)}`}function S$(f){return f.charCodeAt(0)===65279?f.slice(1):f}function g$(f){if(!f)return"(unknown-date)";let $=new Date(f);if(Number.isNaN($.getTime()))return f;return $.toLocaleString("en-US",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0})}function n$(f){let $=Math.max(0,Math.floor(f/1000)),w=Math.floor($/86400),q=Math.floor($%86400/3600),Z=Math.floor($%3600/60),H=$%60;if(w>0)return`${w}d ${q}h`;if(q>0)return`${q}h ${Z}m`;if(Z>0)return`${Z}m ${H}s`;return`${H}s`}import{z as Hf}from"zod";function v$(f,$){let w=f.safeParse($);if(!w.success)throw Error(Hf.prettifyError(w.error));return w.data}function a0(f){return Hf.toJSONSchema(f)}function t0(f){return f==="cline"||f==="cline-pass"}var Rf=`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.
@@ -97,4 +97,4 @@ ${q}`}function h$(f){let{ide:$="Terminal Shell",mode:w,platform:q="unknown",work
97
97
 
98
98
  ${Kf(A,Z,H)}`.trim();return C}let B=w==="yolo"?Jf:Rf,O=[R,_f,w==="plan"?V?jf:Vf:void 0].filter(Boolean).join(`
99
99
 
100
- `);return B.replace("{{PLATFORM_NAME}}",q).replace("{{CWD}}",A).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",$).replace("{{CLINE_METADATA}}",j?Kf(A,Z,H):"").replace("{{CLINE_RULES}}",O).trim()}var x$="anthropic/claude-sonnet-5";var z$="remote://";import{z as G}from"zod";var kf=G.object({id:G.string(),temperature:G.number().optional(),maxTokens:G.number().optional(),contextWindow:G.number().optional(),inputPrice:G.number().optional(),outputPrice:G.number().optional(),supportsImages:G.boolean().optional()}),Ff=G.object({models:G.array(kf).optional(),openAiBaseUrl:G.string().optional(),openAiHeaders:G.record(G.string(),G.string()).optional(),azureApiVersion:G.string().optional(),azureIdentity:G.boolean().optional()}),Lf=G.object({id:G.string(),thinkingBudgetTokens:G.number().optional()}),Wf=G.object({name:G.string(),baseModelId:G.string(),thinkingBudgetTokens:G.number().optional()}),Af=G.object({models:G.array(Lf).optional(),customModels:G.array(Wf).optional(),awsRegion:G.string().optional(),awsUseCrossRegionInference:G.boolean().optional(),awsUseGlobalInference:G.boolean().optional(),awsBedrockUsePromptCache:G.boolean().optional(),awsBedrockEndpoint:G.string().optional()}),Df=G.object({id:G.string()}),Uf=G.object({models:G.array(Df).optional()}),Pf=G.object({id:G.string(),thinkingBudgetTokens:G.number().optional()}),If=G.object({models:G.array(Pf).optional(),vertexProjectId:G.string().optional(),vertexRegion:G.string().optional()}),Bf=G.object({id:G.string(),thinkingBudgetTokens:G.number().optional(),promptCachingEnabled:G.boolean().optional()}),Mf=G.object({models:G.array(Bf).optional(),baseUrl:G.string().optional()}),Ef=G.object({id:G.string(),thinkingBudgetTokens:G.number().optional()}),Of=G.object({models:G.array(Ef).optional(),baseUrl:G.string().optional()}),c$=G.object({OpenAiCompatible:Ff.optional(),AwsBedrock:Af.optional(),Cline:Uf.optional(),Vertex:If.optional(),LiteLLM:Mf.optional(),Anthropic:Of.optional()}),bf=G.object({id:G.string()}),Nf=G.object({name:G.string(),url:G.string(),alwaysEnabled:G.boolean().optional(),headers:G.record(G.string(),G.string()).optional()}),f1=G.object({alwaysEnabled:G.boolean(),name:G.string(),contents:G.string()}),U0=G.object({bucket:G.string(),accessKeyId:G.string(),secretAccessKey:G.string(),region:G.string().optional(),endpoint:G.string().optional(),accountId:G.string().optional()}),Tf=G.object({enabled:G.boolean().optional(),type:G.union([G.literal("s3_access_keys"),G.literal("r2_access_keys"),G.literal("azure_access_keys")]).optional(),s3AccessSettings:U0.optional(),r2AccessSettings:U0.optional(),azureAccessSettings:U0.optional()}),yf=G.object({promptUploading:Tf.optional()}),o$=G.object({version:G.string(),providerSettings:c$.optional(),telemetryEnabled:G.boolean().optional(),kanbanEnabled:G.boolean().optional(),mcpMarketplaceEnabled:G.boolean().optional(),allowedMCPServers:G.array(bf).optional(),remoteMCPServers:G.array(Nf).optional(),blockPersonalRemoteMCPServers:G.boolean().optional(),yoloModeAllowed:G.boolean().optional(),openTelemetryEnabled:G.boolean().optional(),openTelemetryMetricsExporter:G.string().optional(),openTelemetryLogsExporter:G.string().optional(),openTelemetryOtlpProtocol:G.string().optional(),openTelemetryOtlpEndpoint:G.string().optional(),openTelemetryOtlpHeaders:G.record(G.string(),G.string()).optional(),openTelemetryOtlpMetricsProtocol:G.string().optional(),openTelemetryOtlpMetricsEndpoint:G.string().optional(),openTelemetryOtlpMetricsHeaders:G.record(G.string(),G.string()).optional(),openTelemetryOtlpLogsProtocol:G.string().optional(),openTelemetryOtlpLogsEndpoint:G.string().optional(),openTelemetryOtlpLogsHeaders:G.record(G.string(),G.string()).optional(),openTelemetryMetricExportInterval:G.number().optional(),openTelemetryOtlpInsecure:G.boolean().optional(),openTelemetryLogBatchSize:G.number().optional(),openTelemetryLogBatchTimeout:G.number().optional(),openTelemetryLogMaxQueueSize:G.number().optional(),enterpriseTelemetry:yf.optional(),globalRules:G.array(f1).optional(),globalWorkflows:G.array(f1).optional()}),u$=G.record(G.string(),G.string());var d$=4317;var l$="127.0.0.1:4317";import $1 from"zod";var m$=$1.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),p$=$1.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),r$=$1.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var s$="runtime.team.progress.v1",i$="runtime.team.lifecycle.v1";var a$="CLINE_ENVIRONMENT",t$="CLINE_ENVIRONMENT_OVERRIDE",w1={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"}},e$="production";function Cf(f){let $=f?.trim().toLowerCase();if($==="production"||$==="staging"||$==="local")return $;return}function Sf(){if(typeof process>"u"||!process?.env)return{};return process.env}function gf(){let f=Sf();return Cf(f.CLINE_ENVIRONMENT_OVERRIDE)??Cf(f.CLINE_ENVIRONMENT)??"production"}function f2(f){if(typeof f==="string")return w1[f];return w1[gf()]}function $2(f,$){if($.CLINE_API_BASE_URL)f={...f,apiBaseUrl:$.CLINE_API_BASE_URL,mcpBaseUrl:`${$.CLINE_API_BASE_URL}/v1/mcp`};return f}function w2(f){let $=f2(f);return $2($,Sf())}var Y2="agent.reasoning.unexpected_tokens",q2="task.provider_request_started",Z2="task.provider_stream_started",G2="task.first_chunk_received",X2="task.provider_stream_failed",H2="task.cancelled",R2="sdk.error";var l=new Map;function J2(){l.clear()}function K2(f,$){let w=typeof $.error_message==="string"?$.error_message:"";return[f,$.component,$.operation,$.error_type,$.error_code??"",$.error_status??"",w.replace(/\d+/g,"#").replace(/\s+/g," ").trim().toLowerCase().slice(0,256)].join("\x00")}function _2(f){let $=Date.now(),w=l.get(f);if(w&&$-w.startMs<3600000){if(w.emitted<5)return w.emitted+=1,{emit:!0,suppressed:0};return w.suppressed+=1,{emit:!1,suppressed:w.suppressed}}let q=w?.suppressed??0;if(l.delete(f),l.size>=512){let Z=l.keys().next();if(!Z.done)l.delete(Z.value)}return l.set(f,{startMs:$,emitted:1,suppressed:0}),{emit:!0,suppressed:q}}function Q2(f,$){f?.capture({event:"agent.reasoning.unexpected_tokens",properties:q1({sessionId:$.sessionId,agentId:$.agentId,runId:$.runId,iteration:$.iteration,providerId:$.providerId,modelId:$.modelId,requestedThinking:$.requestedThinking,reasoningTokenCount:$.reasoningTokenCount})})}function j2(f,$){if(!f)return;f.capture({event:$.event,properties:q1({sessionId:$.sessionId,ulid:$.ulid??$.sessionId,agentId:$.agentId,conversationId:$.conversationId,runId:$.runId,iteration:$.iteration,provider:$.providerId,providerId:$.providerId,model:$.modelId,modelId:$.modelId,phase:$.phase,durationMs:$.durationMs,eventType:$.eventType,...$.error===void 0?{}:Z1($.error,$.messageLimit),error_class:$.errorClass})})}function V2(f,$){if(!f)return!1;let w=$.event??"sdk.error",q=nf($),Z=0;try{let H=_2(K2(w,q));if(!H.emit)return!0;Z=H.suppressed}catch{}return f.capture({event:w,properties:Z>0?{...q,suppressed_count:Z}:q}),!0}function nf(f){return q1({...f.context??{},component:f.component,operation:f.operation,severity:f.severity??"error",handled:f.handled??!0,...Z1(f.error,f.messageLimit,f.errorMessage)})}function q1(f){let $={};for(let[w,q]of Object.entries(f))if(q!==void 0)$[w]=q;return $}function Z1(f,$=500,w){let q=L2(f)?f:void 0,Z=f instanceof Error?f:void 0,H=R0(w)??R0(Z?.message)??R0(q?.message)??W2(f)??"Unknown error",R=A2(q?.code),J=Y1(q?.status)??Y1(q?.statusCode)??Y1(q?.responseStatus);return{error_type:Z?.name?.trim()||R0(q?.name)||Z?.constructor?.name||"Error",error_message:F2(k2(H),$),...R!==void 0?{error_code:R}:{},...J!==void 0?{error_status:J}:{}}}function k2(f){return f.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 F2(f,$){let w=Math.max(1,Math.floor($));return f.length>w?f.substring(0,w):f}function L2(f){return typeof f==="object"&&f!==null}function R0(f){return typeof f==="string"&&f.trim().length>0?f:void 0}function W2(f){if(f instanceof Error)return;let $=typeof f==="string"?f:String(f);return $==="[object Object]"?void 0:R0($)}function A2(f){if(typeof f==="string"&&f.trim().length>0)return f;if(typeof f==="number"&&Number.isFinite(f))return f;return}function Y1(f){return typeof f==="number"&&Number.isFinite(f)?f:void 0}function vf(f){let $={};if(!f)return $;return f.split(",").forEach((w)=>{let q=w.indexOf("=");if(q<=0)return;try{let Z=decodeURIComponent(w.substring(0,q).trim()),H=decodeURIComponent(w.substring(q+1).trim());if(!Z||!H)return;$[Z]=H}catch{}}),$}function D2(){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?vf(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function hf(f={}){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",...f}}function U2(f={}){return{...D2(),...f,metadata:hf(f.metadata)}}function xf(f){let $=f?.trim();return $?$:void 0}function P2(f,$){if(!f)return;let w=typeof f==="function"?f($):f;if(!w)return;let q=xf(w.rootSessionId);if(!q)return;return{rootSessionId:q}}function I2(f){return xf(f?.rootSessionId)}var B2=(f)=>crypto.getRandomValues(new Uint8Array(f)),M2=(f,$,w)=>{let q=256-256%f.length;if(q===256){let H=f.length-1;return(R=$)=>{if(!R)return"";let J="";while(!0){let k=w(R),V=R;while(V--)if(J+=f[k[V]&H],J.length>=R)return J}}}let Z=Math.ceil(409.6*$/q);return(H=$)=>{if(!H)return"";let R="";while(!0){let J=w(Z),k=Z;while(k--)if(J[k]<q){if(R+=f[J[k]%f.length],R.length>=H)return R}}}},zf=(f,$=21)=>M2(f,$|0,B2);function E2(f="",$=""){let w=zf("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${f}${Date.now()}_${w(5)}${$}`}var O2=["idle","running","pending","completed","failed","cancelled"];var G1=["rules","skills","workflows","plugins"],cf=G1,b2=new Set(G1);function of(f){return typeof f==="string"&&b2.has(f)}function N2(f){if(!Array.isArray(f))return;let $=f.map((w)=>typeof w==="string"?w.trim():"").filter(of);return[...new Set($)]}function T2(f,$){return new Set(f??cf).has($)}import{z as T}from"zod";var y2=T.object({rootPath:T.string().min(1),hint:T.string().min(1).optional(),associatedRemoteUrls:T.array(T.string().min(1)).optional(),latestGitCommitHash:T.string().min(1).optional(),latestGitBranchName:T.string().min(1).optional()}),C2=T.object({currentWorkspacePath:T.string().min(1).optional(),workspaces:T.record(T.string().min(1),y2)});function mw(){return{workspaces:{}}}function pw(f,$){let w={...f,workspaces:{...f.workspaces,[$.rootPath]:$}};if(!w.currentWorkspacePath)w.currentWorkspacePath=$.rootPath;return C2.parse(w)}var S2="workspaces",g2="chat";function n2(f){let $=f.trim(),w=/^[A-Za-z]:[\\/]/.test($)||$.startsWith("\\\\"),q=$.startsWith("/");if(!w&&!q)return!1;let Z=$.split(w?/[\\/]+/:/\/+/).filter(Boolean),H=Z.at(-1)??"",R=Z.at(-2)??"",J=Z.at(-3)??"";return(Z.at(-4)??"")===".cline"&&J==="data"&&R==="workspaces"&&H==="chat"}import{z as Y}from"zod";var v2=["current_state","boundary_analysis","interface_proposal"],aw=3600000,tw=240,ew=400,y=Y.preprocess((f)=>f instanceof Date?f.toISOString():f,Y.string().datetime()),w0=Y.enum(["pending","in_progress","blocked","completed"]),uf=Y.enum(["queued","running","completed","failed","cancelled","interrupted"]),P0=Y.enum(["draft","in_review","finalized"]),h2=Y.object({agentId:Y.string(),role:Y.enum(["lead","teammate"]),description:Y.string().optional(),status:Y.enum(["idle","running","stopped"])}),f3=Y.object({agentId:Y.string(),rolePrompt:Y.string(),modelId:Y.string().optional(),maxIterations:Y.number().optional()});function U(f){return Y.preprocess(($)=>$===null?void 0:$,f.optional())}var $3=Y.object({agentId:Y.string().min(1).describe("Teammate identifier"),rolePrompt:Y.string().min(1).describe("System prompt describing teammate role")}).strict(),w3=Y.object({agentId:Y.string().min(1).describe("Teammate identifier"),reason:U(Y.string().min(1)).describe("Optional shutdown reason")}),Y3=Y.object({}),x2={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},q3={create:["status","taskId","summary","reason"]},Z3=Y.object({action:Y.enum(["create","list","claim","complete","block"]),title:U(Y.string().min(1)).describe("Task title"),description:U(Y.string().min(1)).describe("Task details"),dependsOn:U(Y.array(Y.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:U(Y.string().min(1)).describe("Optional assignee"),status:U(Y.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:U(Y.string()).describe("Task ID"),summary:U(Y.string().min(1)).describe("Completion summary"),reason:U(Y.string().min(1)).describe("Blocking reason")}).superRefine((f,$)=>{for(let w of x2[f.action]){if(f[w]!==void 0)continue;$.addIssue({code:"custom",path:[w],message:`Field "${w}" is required when action=${f.action}`})}}),G3=Y.object({agentId:Y.string().describe("Teammate agent ID"),task:Y.string().min(1).describe("Task instructions for the teammate"),taskId:U(Y.string()).describe("Optional shared task list ID"),runMode:U(Y.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:U(Y.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),X3=Y.object({status:U(Y.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:U(Y.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:U(Y.boolean()).describe("Include completed/failed runs (default true)")}),H3=Y.object({runId:Y.string().min(1).describe("Run ID"),reason:U(Y.string().min(1)).describe("Optional cancellation reason")}),R3=Y.object({runId:U(Y.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),J3=Y.object({toAgentId:Y.string().min(1).describe("Recipient agent ID"),subject:Y.string().min(1).describe("Message subject"),body:Y.string().min(1).describe("Message body"),taskId:U(Y.string().min(1)).describe("Optional task ID context")}),K3=Y.object({subject:Y.string().min(1).describe("Message subject"),body:Y.string().min(1).describe("Message body"),taskId:U(Y.string().min(1)).describe("Optional task ID context")}),_3=Y.object({unreadOnly:U(Y.boolean()).describe("Only unread messages for read action (default true)")}),Q3=Y.object({kind:Y.enum(["progress","handoff","blocked","decision","done","error"]),summary:Y.string().min(1).describe("Update summary"),taskId:U(Y.string().min(1)).describe("Optional task ID context"),evidence:U(Y.array(Y.string().min(1))).describe("Optional evidence links/snippets"),nextAction:U(Y.string().min(1)).describe("Planned next step")}),j3=Y.object({}),V3=Y.object({title:Y.string().describe("Outcome title"),requiredSections:Y.array(Y.string()).default(v2).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),k3=Y.object({outcomeId:Y.string().describe("Outcome ID"),section:Y.string().describe("Section name"),sourceRunId:U(Y.string()).describe("Optional source run ID"),content:Y.string().describe("Section fragment content")}),F3=Y.object({fragmentId:Y.string().describe("Fragment ID"),approved:Y.boolean().describe("Review decision")}),L3=Y.object({outcomeId:Y.string().describe("Outcome ID")}),W3=Y.object({}),A3=Y.object({teamId:Y.string(),teamName:Y.string(),members:Y.array(h2),taskCounts:Y.record(w0,Y.number()),unreadMessages:Y.number(),missionLogEntries:Y.number(),activeRuns:Y.number(),queuedRuns:Y.number(),outcomeCounts:Y.record(P0,Y.number())}),z2=Y.object({id:Y.string(),title:Y.string(),description:Y.string(),status:w0,createdAt:y,updatedAt:y,createdBy:Y.string(),assignee:Y.string().optional(),dependsOn:Y.array(Y.string()),summary:Y.string().optional(),isReady:Y.boolean(),blockedBy:Y.array(Y.string())}),D3=Y.discriminatedUnion("action",[Y.object({action:Y.literal("create"),taskId:Y.string(),status:w0,ignoredFields:Y.array(Y.string()).optional(),note:Y.string().optional()}),Y.object({action:Y.literal("list"),tasks:Y.array(z2)}),Y.object({action:Y.literal("claim"),taskId:Y.string(),status:w0,nextStep:Y.string()}),Y.object({action:Y.literal("complete"),taskId:Y.string(),status:w0}),Y.object({action:Y.literal("block"),taskId:Y.string(),status:w0})]),U3=Y.object({agentId:Y.string(),mode:Y.enum(["sync","async"]),status:Y.enum(["dispatched","running","queued","joined"]),dispatched:Y.boolean(),message:Y.string(),deduped:Y.boolean().optional(),runId:Y.string().optional(),text:Y.string().optional(),iterations:Y.number().optional()}),c2=Y.object({textPreview:Y.string(),iterations:Y.number(),finishReason:Y.string(),durationMs:Y.number(),usage:Y.object({inputTokens:Y.number(),outputTokens:Y.number(),cacheReadTokens:Y.number().optional(),cacheWriteTokens:Y.number().optional(),totalCost:Y.number().optional()})}),P3=Y.object({id:Y.string(),agentId:Y.string(),taskId:Y.string().optional(),status:uf,messagePreview:Y.string(),priority:Y.number(),retryCount:Y.number(),maxRetries:Y.number(),nextAttemptAt:y.optional(),continueConversation:Y.boolean().optional(),startedAt:y,endedAt:y.optional(),leaseOwner:Y.string().optional(),heartbeatAt:y.optional(),lastProgressAt:y.optional(),lastProgressMessage:Y.string().optional(),currentActivity:Y.string().optional(),error:Y.string().optional(),resultSummary:c2.optional()}),I3=Y.object({id:Y.string(),teamId:Y.string(),fromAgentId:Y.string(),toAgentId:Y.string(),subject:Y.string(),body:Y.string(),taskId:Y.string().optional(),sentAt:y,readAt:y.optional()}),B3=Y.object({id:Y.string(),teamId:Y.string(),title:Y.string(),status:P0,requiredSections:Y.array(Y.string()),createdBy:Y.string(),createdAt:y,finalizedAt:y.optional()}),M3=Y.object({outcomeId:Y.string(),status:P0,requiredSections:Y.array(Y.string())}),E3=Y.object({agentId:Y.string(),status:Y.string()}),O3=Y.object({runId:Y.string(),status:uf}),b3=Y.object({id:Y.string(),toAgentId:Y.string()}),N3=Y.object({delivered:Y.number()}),T3=Y.object({id:Y.string()}),y3=Y.object({status:Y.string()}),C3=Y.object({fragmentId:Y.string(),status:Y.string()}),S3=Y.object({outcomeId:Y.string(),status:P0});var o2;((P)=>{P.TaskStart="task_start";P.TaskEnd="task_end";P.AgentEvent="agent_event";P.TeammateSpawned="teammate_spawned";P.TeammateShutdown="teammate_shutdown";P.TeamTaskUpdated="team_task_updated";P.TeamMessage="team_message";P.TeamMissionLog="team_mission_log";P.TeamTaskCompleted="team_task_completed";P.RunStarted="run_started";P.RunQueued="run_queued";P.RunProgress="run_progress";P.RunCompleted="run_completed";P.RunFailed="run_failed";P.RunCancelled="run_cancelled";P.RunInterrupted="run_interrupted";P.OutcomeCreated="outcome_created";P.OutcomeFragmentAttached="outcome_fragment_attached";P.OutcomeFragmentReviewed="outcome_fragment_reviewed";P.OutcomeFinalized="outcome_finalized"})(o2||={});import{z as u2}from"zod";function d2(f){let{$schema:$,...w}=f;if(typeof w.type==="string")return w;if("properties"in w||"required"in w||"additionalProperties"in w)return{type:"object",...w};for(let q of["oneOf","anyOf","allOf"]){let Z=w[q];if(!Array.isArray(Z)||Z.length===0)continue;if(q==="allOf"){if(Z.some((J)=>J&&typeof J==="object"&&J.type==="object"))return{type:"object",...w};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(Z.every((R)=>R&&typeof R==="object"&&R.type==="object"))return{type:"object",...w};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${q}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return w}function l2(f){let $=d2(f.inputSchema instanceof u2.ZodType?a0(f.inputSchema):f.inputSchema);return{name:f.name,description:f.description,inputSchema:$,lifecycle:f.lifecycle,timeoutMs:f.timeoutMs??30000,retryable:f.retryable??!0,maxRetries:f.maxRetries??3,execute:f.execute}}var df=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function m2(f){let $=(f instanceof Error?f.message:String(f)).toLowerCase();return df.some((w)=>$.includes(w))}export{a0 as zodToJsonSchema,v1 as xmlTagsRemoval,v$ as validateWithZod,o1 as validateImageMedia,Z0 as validateAndReserveImageMedia,pw as upsertWorkspaceInfo,Xf as truncateStr,y$ as truncateSplit,T$ as trimNonEmpty,m1 as toAiSdkToolResultOutput,S$ as stripUtf8Bom,n1 as stripModeNotices,G6 as shouldIncludeConnectorField,q$ as serializeAbortReason,N as sanitizeSurrogates,N$ as sanitizeFileName,A$ as safeJsonStringify,D$ as safeJsonParse,I2 as resolveRootSessionId,r1 as resolveReasoningEffortRatio,Y$ as resolveReasoningBudgetFromRatio,x1 as resolveMediaBudget,e4 as resolveMcpTimeoutSeconds,O4 as resolveHubCommandTimeoutMs,P2 as resolveHookSessionContext,w$ as resolveEffectiveReasoningEffort,gf as resolveClineEnvironment,J2 as resetSdkErrorRateLimiterForTests,q0 as reserveImageMediaBytes,M4 as readHubScheduleMode,S1 as parseUserCommandEnvelope,N2 as parseRuntimeConfigExtensions,W$ as parseJsonStream,E6 as parseHookEventPayload,M$ as omitUndefinedValues,g1 as normalizeUserInput,Z1 as normalizeSdkError,b1 as normalizePluginManifest,s0 as normalizeJsonLikeStringsForSchema,X$ as noopBasicLogger,f$ as mergeModelOptions,C$ as maskSecret,I1 as listConnectorCatalog,of as isRuntimeConfigExtensionKind,H$ as isMcpTimeoutConfigured,m2 as isLikelyAuthError,b4 as isHubToolExecutorName,O6 as isHubScheduleMode,P4 as isHubProtocolCompatible,t0 as isClineProvider,n2 as isChatWorkspacePath,l6 as isCanonicalBase64,z1 as isBase64Char,d6 as imageFileMaxDecodedBytesForBase64Limit,y0 as imageBase64LengthForDecodedBytes,u6 as imageBase64EncodedByteLength,h1 as imageBase64DecodedByteLength,T2 as hasRuntimeConfigExtension,i0 as getShellKind,Gf as getShellInvocation,b$ as getShellArgs,J$ as getErrorMessage,K$ as getErrorCode,O$ as getDefaultShell,N6 as getDefaultHubCommandTimeoutMs,w2 as getClineEnvironmentConfig,C6 as formatUserInputBlock,S6 as formatUserCommandBlock,n$ as formatUptime,g6 as formatModeSwitchNotice,e6 as formatMessagesForAiSdk,fw as formatMcpTimeoutErrorMessage,g$ as formatHumanReadableDate,T0 as formatFileContentBlock,z6 as formatDisplayUserInput,s1 as estimateTokens,G$ as estimateRequestInputTokens,mw as emptyWorkspaceManifest,B$ as decodeJwtPayload,l2 as createTool,E2 as createSessionId,n6 as createModeSwitchNoticeTracker,L0 as createMediaBudgetState,V6 as createContributionRegistry,hf as createClineTelemetryServiceMetadata,U2 as createClineTelemetryServiceConfig,X6 as connectorChannelsFromPlatforms,R$ as clampMcpTimeoutSeconds,j2 as captureTaskLifecycleEvent,V2 as captureSdkError,Q2 as captureAgentUnexpectedReasoningTokens,nf as buildSdkErrorProperties,h$ as buildClineSystemPrompt,C2 as WorkspaceManifestSchema,y2 as WorkspaceInfoSchema,If as VertexSettingsSchema,Pf as VertexModelSchema,u4 as USAGE_COST_DISPLAYS,b0 as ToolCallRecordSchema,L1 as ThinkingConfigSchema,f3 as TeamTeammateSpecSchema,D3 as TeamTaskToolResultSchema,z2 as TeamTaskListItemToolResultSchema,Z3 as TeamTaskInputSchema,A3 as TeamStatusToolResultSchema,Y3 as TeamStatusInputSchema,$3 as TeamSpawnTeammateInputSchema,E3 as TeamSimpleAgentStatusToolResultSchema,w3 as TeamShutdownTeammateInputSchema,b3 as TeamSendMessageToolResultSchema,J3 as TeamSendMessageInputSchema,P3 as TeamRunToolSummarySchema,U3 as TeamRunTaskToolResultSchema,G3 as TeamRunTaskInputSchema,c2 as TeamRunResultSummarySchema,F3 as TeamReviewOutcomeFragmentInputSchema,_3 as TeamReadMailboxInputSchema,B3 as TeamOutcomeToolResultSchema,C3 as TeamOutcomeFragmentToolResultSchema,T3 as TeamMissionLogToolResultSchema,Q3 as TeamMissionLogInputSchema,o2 as TeamMessageType,I3 as TeamMailboxMessageToolResultSchema,X3 as TeamListRunsInputSchema,W3 as TeamListOutcomesInputSchema,S3 as TeamFinalizeOutcomeToolResultSchema,L3 as TeamFinalizeOutcomeInputSchema,M3 as TeamCreateOutcomeToolResultSchema,V3 as TeamCreateOutcomeInputSchema,y3 as TeamCleanupToolResultSchema,j3 as TeamCleanupInputSchema,O3 as TeamCancelRunToolResultSchema,H3 as TeamCancelRunInputSchema,N3 as TeamBroadcastToolResultSchema,K3 as TeamBroadcastInputSchema,R3 as TeamAwaitRunsInputSchema,k3 as TeamAttachOutcomeFragmentInputSchema,q3 as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,ew as TEAM_RUN_TEXT_PREVIEW_LIMIT,tw as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,s$ as TEAM_PROGRESS_EVENT_TYPE,i$ as TEAM_LIFECYCLE_EVENT_TYPE,aw as TEAM_AWAIT_TIMEOUT_MS,Z2 as TASK_PROVIDER_STREAM_STARTED_EVENT,X2 as TASK_PROVIDER_STREAM_FAILED_EVENT,q2 as TASK_PROVIDER_REQUEST_STARTED_EVENT,G2 as TASK_FIRST_CHUNK_RECEIVED_EVENT,H2 as TASK_CANCELLED_EVENT,F0 as SUPPORTED_IMAGE_MEDIA_TYPES,O2 as SESSION_STATUS_VALUES,R2 as SDK_ERROR_TELEMETRY_EVENT,U0 as S3AccessKeySettingsSchema,Nf as RemoteMCPServerSchema,o$ as RemoteConfigSchema,E0 as ReasoningLevelSchema,Q0 as ReasoningEffortSchema,G1 as RUNTIME_CONFIG_EXTENSION_KINDS,z$ as REMOTE_URI_SCHEME,_0 as REASONING_LEVELS,H0 as REASONING_EFFORT_RATIOS,p$ as ProviderProtocolSchema,r$ as ProviderClientSchema,m$ as ProviderCapabilitySchema,Tf as PromptUploadingSchema,k6 as PLUGIN_FILE_EXTENSIONS,Vf as PLAN_MODE_INSTRUCTIONS_MANUAL_SWITCH,jf as PLAN_MODE_INSTRUCTIONS,Ff as OpenAiCompatibleSchema,kf as OpenAiCompatibleModelSchema,B4 as ONE_TIME_SCHEDULE_RUN_AT_METADATA_KEY,I4 as ONE_TIME_SCHEDULE_CRON_PATTERN,k1 as ModelStatusSchema,O0 as ModelReasoningOptionSchema,F1 as ModelPricingSchema,W1 as ModelMetadataSchema,j0 as ModelInfoSchema,V1 as ModelCapabilitySchema,_f as MODE_TAG_INSTRUCTIONS,a4 as MIN_MCP_TIMEOUT_SECONDS,A4 as MIN_CLIENT_HUB_PROTOCOL_VERSION,t4 as MAX_MCP_TIMEOUT_SECONDS,D4 as MAX_CLIENT_HUB_PROTOCOL_VERSION,Mf as LiteLLMSchema,Bf as LiteLLMModelSchema,Y0 as IMAGE_UNSUPPORTED_PLACEHOLDER,i as IMAGE_OMITTED_PLACEHOLDER,y1 as HookEventPayloadSchema,T1 as HookEventNameSchema,n4 as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,T6 as HUB_TOOL_EXECUTOR_NAMES,N4 as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,C1 as HUB_SCHEDULE_MODES,g4 as HUB_MISTAKE_LIMIT_CAPABILITY,y4 as HUB_HOOK_CAPABILITY_PREFIX,b6 as HUB_DEFAULT_COMMAND_TIMEOUT_MS,T4 as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,C4 as HUB_COMPACTION_CAPABILITY,E4 as HUB_COMMAND_SLOW_LOG_MS,S4 as HUB_CHECKPOINT_CAPABILITY,U4 as HUB_CAPABILITIES,f1 as GlobalInstructionsFileSchema,F6 as FeatureFlagDefaultValue,L6 as FEATURE_FLAGS,yf as EnterpriseTelemetrySchema,W0 as EMPTY_CONTENT_TEXT,cf as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,$$ as DEFAULT_REASONING_EFFORT,v2 as DEFAULT_OUTCOME_REQUIRED_SECTIONS,i4 as DEFAULT_MCP_TIMEOUT_SECONDS,o6 as DEFAULT_MAX_TOTAL_MEDIA_BYTES,z as DEFAULT_MAX_IMAGE_ENCODED_BYTES,u as DEFAULT_MAX_IMAGE_DECODED_BYTES,c6 as DEFAULT_MAX_IMAGE_BASE64_BYTES,e$ as DEFAULT_CLINE_ENVIRONMENT,N0 as ContributionRegistry,Z6 as ConnectorHookEventSchema,A1 as ConnectorHookEventNameSchema,U1 as ConnectorEventContextSchema,D1 as ConnectorEventActorSchema,Y6 as ConnectorAuthorizationRequestSchema,q6 as ConnectorAuthorizationDecisionSchema,Uf as ClineSettingsSchema,Df as ClineModelSchema,W4 as CURRENT_HUB_PROTOCOL_VERSION,B1 as CONNECTOR_PLATFORMS,P1 as CONNECTOR_CATALOG,S2 as CLINE_WORKSPACES_DIRECTORY_NAME,t$ as CLINE_ENVIRONMENT_OVERRIDE_ENV,a$ as CLINE_ENVIRONMENT_ENV,w1 as CLINE_ENVIRONMENTS,d$ as CLINE_DEFAULT_RPC_PORT,l$ as CLINE_DEFAULT_RPC_ADDRESS,x$ as CLINE_DEFAULT_MODEL_ID,g2 as CLINE_CHAT_WORKSPACE_DIRECTORY_NAME,Z$ as CHARS_PER_TOKEN,Af as AwsBedrockSettingsSchema,Lf as AwsBedrockModelSchema,Wf as AwsBedrockCustomModelSchema,j1 as ApiFormatSchema,f6 as ApiFormat,Of as AnthropicSchema,Ef as AnthropicModelSchema,bf as AllowedMCPServerSchema,w6 as AgentUsageSchema,Z4 as AgentResultSchema,$6 as AgentFinishReasonSchema,G4 as AgentConfigSchema,df as AUTH_ERROR_PATTERNS,u$ as APIKeySchema,Y2 as AGENT_UNEXPECTED_REASONING_TOKENS_EVENT};
100
+ `);return B.replace("{{PLATFORM_NAME}}",q).replace("{{CWD}}",A).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",$).replace("{{CLINE_METADATA}}",j?Kf(A,Z,H):"").replace("{{CLINE_RULES}}",O).trim()}var x$="anthropic/claude-sonnet-5";var z$="remote://";import{z as G}from"zod";var kf=G.object({id:G.string(),temperature:G.number().optional(),maxTokens:G.number().optional(),contextWindow:G.number().optional(),inputPrice:G.number().optional(),outputPrice:G.number().optional(),supportsImages:G.boolean().optional()}),Ff=G.object({models:G.array(kf).optional(),openAiBaseUrl:G.string().optional(),openAiHeaders:G.record(G.string(),G.string()).optional(),azureApiVersion:G.string().optional(),azureIdentity:G.boolean().optional()}),Lf=G.object({id:G.string(),thinkingBudgetTokens:G.number().optional()}),Wf=G.object({name:G.string(),baseModelId:G.string(),thinkingBudgetTokens:G.number().optional()}),Af=G.object({models:G.array(Lf).optional(),customModels:G.array(Wf).optional(),awsRegion:G.string().optional(),awsUseCrossRegionInference:G.boolean().optional(),awsUseGlobalInference:G.boolean().optional(),awsBedrockUsePromptCache:G.boolean().optional(),awsBedrockEndpoint:G.string().optional()}),Df=G.object({id:G.string()}),Uf=G.object({models:G.array(Df).optional()}),Pf=G.object({id:G.string(),thinkingBudgetTokens:G.number().optional()}),If=G.object({models:G.array(Pf).optional(),vertexProjectId:G.string().optional(),vertexRegion:G.string().optional()}),Bf=G.object({id:G.string(),thinkingBudgetTokens:G.number().optional(),promptCachingEnabled:G.boolean().optional()}),Mf=G.object({models:G.array(Bf).optional(),baseUrl:G.string().optional()}),Ef=G.object({id:G.string(),thinkingBudgetTokens:G.number().optional()}),Of=G.object({models:G.array(Ef).optional(),baseUrl:G.string().optional()}),c$=G.object({OpenAiCompatible:Ff.optional(),AwsBedrock:Af.optional(),Cline:Uf.optional(),Vertex:If.optional(),LiteLLM:Mf.optional(),Anthropic:Of.optional()}),bf=G.object({id:G.string()}),Nf=G.object({name:G.string(),url:G.string(),alwaysEnabled:G.boolean().optional(),headers:G.record(G.string(),G.string()).optional()}),f1=G.object({alwaysEnabled:G.boolean(),name:G.string(),contents:G.string()}),U0=G.object({bucket:G.string(),accessKeyId:G.string(),secretAccessKey:G.string(),region:G.string().optional(),endpoint:G.string().optional(),accountId:G.string().optional()}),Tf=G.object({enabled:G.boolean().optional(),type:G.union([G.literal("s3_access_keys"),G.literal("r2_access_keys"),G.literal("azure_access_keys")]).optional(),s3AccessSettings:U0.optional(),r2AccessSettings:U0.optional(),azureAccessSettings:U0.optional()}),yf=G.object({promptUploading:Tf.optional()}),o$=G.object({version:G.string(),providerSettings:c$.optional(),telemetryEnabled:G.boolean().optional(),kanbanEnabled:G.boolean().optional(),mcpMarketplaceEnabled:G.boolean().optional(),allowedMCPServers:G.array(bf).optional(),remoteMCPServers:G.array(Nf).optional(),blockPersonalRemoteMCPServers:G.boolean().optional(),yoloModeAllowed:G.boolean().optional(),openTelemetryEnabled:G.boolean().optional(),openTelemetryMetricsExporter:G.string().optional(),openTelemetryLogsExporter:G.string().optional(),openTelemetryOtlpProtocol:G.string().optional(),openTelemetryOtlpEndpoint:G.string().optional(),openTelemetryOtlpHeaders:G.record(G.string(),G.string()).optional(),openTelemetryOtlpMetricsProtocol:G.string().optional(),openTelemetryOtlpMetricsEndpoint:G.string().optional(),openTelemetryOtlpMetricsHeaders:G.record(G.string(),G.string()).optional(),openTelemetryOtlpLogsProtocol:G.string().optional(),openTelemetryOtlpLogsEndpoint:G.string().optional(),openTelemetryOtlpLogsHeaders:G.record(G.string(),G.string()).optional(),openTelemetryMetricExportInterval:G.number().optional(),openTelemetryOtlpInsecure:G.boolean().optional(),openTelemetryLogBatchSize:G.number().optional(),openTelemetryLogBatchTimeout:G.number().optional(),openTelemetryLogMaxQueueSize:G.number().optional(),enterpriseTelemetry:yf.optional(),globalRules:G.array(f1).optional(),globalWorkflows:G.array(f1).optional()}),u$=G.record(G.string(),G.string());var d$=4317;var l$="127.0.0.1:4317";import $1 from"zod";var m$=$1.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),p$=$1.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),r$=$1.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var s$="runtime.team.progress.v1",i$="runtime.team.lifecycle.v1";var a$="CLINE_ENVIRONMENT",t$="CLINE_ENVIRONMENT_OVERRIDE",w1={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"}},e$="production";function Cf(f){let $=f?.trim().toLowerCase();if($==="production"||$==="staging"||$==="local")return $;return}function Sf(){if(typeof process>"u"||!process?.env)return{};return process.env}function gf(){let f=Sf();return Cf(f.CLINE_ENVIRONMENT_OVERRIDE)??Cf(f.CLINE_ENVIRONMENT)??"production"}function f2(f){if(typeof f==="string")return w1[f];return w1[gf()]}function $2(f,$){if($.CLINE_API_BASE_URL)f={...f,apiBaseUrl:$.CLINE_API_BASE_URL,mcpBaseUrl:`${$.CLINE_API_BASE_URL}/v1/mcp`};return f}function w2(f){let $=f2(f);return $2($,Sf())}var Y2="agent.reasoning.unexpected_tokens",q2="task.provider_request_started",Z2="task.provider_stream_started",G2="task.first_chunk_received",X2="task.provider_stream_failed",H2="task.cancelled",R2="sdk.error";var l=new Map;function J2(){l.clear()}function K2(f,$){let w=typeof $.error_message==="string"?$.error_message:"";return[f,$.component,$.operation,$.error_type,$.error_code??"",$.error_status??"",w.replace(/\d+/g,"#").replace(/\s+/g," ").trim().toLowerCase().slice(0,256)].join("\x00")}function _2(f){let $=Date.now(),w=l.get(f);if(w&&$-w.startMs<3600000){if(w.emitted<5)return w.emitted+=1,{emit:!0,suppressed:0};return w.suppressed+=1,{emit:!1,suppressed:w.suppressed}}let q=w?.suppressed??0;if(l.delete(f),l.size>=512){let Z=l.keys().next();if(!Z.done)l.delete(Z.value)}return l.set(f,{startMs:$,emitted:1,suppressed:0}),{emit:!0,suppressed:q}}function Q2(f,$){f?.capture({event:"agent.reasoning.unexpected_tokens",properties:q1({sessionId:$.sessionId,agentId:$.agentId,runId:$.runId,iteration:$.iteration,providerId:$.providerId,modelId:$.modelId,requestedThinking:$.requestedThinking,reasoningTokenCount:$.reasoningTokenCount})})}function j2(f,$){if(!f)return;f.capture({event:$.event,properties:q1({sessionId:$.sessionId,ulid:$.ulid??$.sessionId,agentId:$.agentId,conversationId:$.conversationId,runId:$.runId,iteration:$.iteration,provider:$.providerId,providerId:$.providerId,model:$.modelId,modelId:$.modelId,phase:$.phase,durationMs:$.durationMs,eventType:$.eventType,...$.error===void 0?{}:Z1($.error,$.messageLimit),error_class:$.errorClass})})}function V2(f,$){if(!f)return!1;let w=$.event??"sdk.error",q=nf($),Z=0;try{let H=_2(K2(w,q));if(!H.emit)return!0;Z=H.suppressed}catch{}return f.capture({event:w,properties:Z>0?{...q,suppressed_count:Z}:q}),!0}function nf(f){return q1({...f.context??{},component:f.component,operation:f.operation,severity:f.severity??"error",handled:f.handled??!0,...Z1(f.error,f.messageLimit,f.errorMessage)})}function q1(f){let $={};for(let[w,q]of Object.entries(f))if(q!==void 0)$[w]=q;return $}function Z1(f,$=500,w){let q=L2(f)?f:void 0,Z=f instanceof Error?f:void 0,H=R0(w)??R0(Z?.message)??R0(q?.message)??W2(f)??"Unknown error",R=A2(q?.code),J=Y1(q?.status)??Y1(q?.statusCode)??Y1(q?.responseStatus);return{error_type:Z?.name?.trim()||R0(q?.name)||Z?.constructor?.name||"Error",error_message:F2(k2(H),$),...R!==void 0?{error_code:R}:{},...J!==void 0?{error_status:J}:{}}}function k2(f){return f.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 F2(f,$){let w=Math.max(1,Math.floor($));return f.length>w?f.substring(0,w):f}function L2(f){return typeof f==="object"&&f!==null}function R0(f){return typeof f==="string"&&f.trim().length>0?f:void 0}function W2(f){if(f instanceof Error)return;let $=typeof f==="string"?f:String(f);return $==="[object Object]"?void 0:R0($)}function A2(f){if(typeof f==="string"&&f.trim().length>0)return f;if(typeof f==="number"&&Number.isFinite(f))return f;return}function Y1(f){return typeof f==="number"&&Number.isFinite(f)?f:void 0}function vf(f){let $={};if(!f)return $;return f.split(",").forEach((w)=>{let q=w.indexOf("=");if(q<=0)return;try{let Z=decodeURIComponent(w.substring(0,q).trim()),H=decodeURIComponent(w.substring(q+1).trim());if(!Z||!H)return;$[Z]=H}catch{}}),$}function D2(){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?vf(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function hf(f={}){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",...f}}function U2(f={}){return{...D2(),...f,metadata:hf(f.metadata)}}function xf(f){let $=f?.trim();return $?$:void 0}function P2(f,$){if(!f)return;let w=typeof f==="function"?f($):f;if(!w)return;let q=xf(w.rootSessionId);if(!q)return;return{rootSessionId:q}}function I2(f){return xf(f?.rootSessionId)}var B2=(f)=>crypto.getRandomValues(new Uint8Array(f)),M2=(f,$,w)=>{let q=256-256%f.length;if(q===256){let H=f.length-1;return(R=$)=>{if(!R)return"";let J="";while(!0){let k=w(R),V=R;while(V--)if(J+=f[k[V]&H],J.length>=R)return J}}}let Z=Math.ceil(409.6*$/q);return(H=$)=>{if(!H)return"";let R="";while(!0){let J=w(Z),k=Z;while(k--)if(J[k]<q){if(R+=f[J[k]%f.length],R.length>=H)return R}}}},zf=(f,$=21)=>M2(f,$|0,B2);function E2(f="",$=""){let w=zf("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${f}${Date.now()}_${w(5)}${$}`}var O2=["idle","running","pending","completed","failed","cancelled"];var G1=["rules","skills","workflows","plugins"],cf=G1,b2=new Set(G1);function of(f){return typeof f==="string"&&b2.has(f)}function N2(f){if(!Array.isArray(f))return;let $=f.map((w)=>typeof w==="string"?w.trim():"").filter(of);return[...new Set($)]}function T2(f,$){return new Set(f??cf).has($)}import{z as T}from"zod";var y2=T.object({rootPath:T.string().min(1),hint:T.string().min(1).optional(),associatedRemoteUrls:T.array(T.string().min(1)).optional(),latestGitCommitHash:T.string().min(1).optional(),latestGitBranchName:T.string().min(1).optional()}),C2=T.object({currentWorkspacePath:T.string().min(1).optional(),workspaces:T.record(T.string().min(1),y2)});function rw(){return{workspaces:{}}}function sw(f,$){let w={...f,workspaces:{...f.workspaces,[$.rootPath]:$}};if(!w.currentWorkspacePath)w.currentWorkspacePath=$.rootPath;return C2.parse(w)}var S2="workspaces",g2="chat";function n2(f){let $=f.trim(),w=/^[A-Za-z]:[\\/]/.test($)||$.startsWith("\\\\"),q=$.startsWith("/");if(!w&&!q)return!1;let Z=$.split(w?/[\\/]+/:/\/+/).filter(Boolean),H=Z.at(-1)??"",R=Z.at(-2)??"",J=Z.at(-3)??"";return(Z.at(-4)??"")===".cline"&&J==="data"&&R==="workspaces"&&H==="chat"}import{z as Y}from"zod";var v2=["current_state","boundary_analysis","interface_proposal"],ew=3600000,f3=240,$3=400,y=Y.preprocess((f)=>f instanceof Date?f.toISOString():f,Y.string().datetime()),w0=Y.enum(["pending","in_progress","blocked","completed"]),uf=Y.enum(["queued","running","completed","failed","cancelled","interrupted"]),P0=Y.enum(["draft","in_review","finalized"]),h2=Y.object({agentId:Y.string(),role:Y.enum(["lead","teammate"]),description:Y.string().optional(),status:Y.enum(["idle","running","stopped"])}),w3=Y.object({agentId:Y.string(),rolePrompt:Y.string(),modelId:Y.string().optional(),maxIterations:Y.number().optional()});function U(f){return Y.preprocess(($)=>$===null?void 0:$,f.optional())}var Y3=Y.object({agentId:Y.string().min(1).describe("Teammate identifier"),rolePrompt:Y.string().min(1).describe("System prompt describing teammate role")}).strict(),q3=Y.object({agentId:Y.string().min(1).describe("Teammate identifier"),reason:U(Y.string().min(1)).describe("Optional shutdown reason")}),Z3=Y.object({}),x2={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},G3={create:["status","taskId","summary","reason"]},X3=Y.object({action:Y.enum(["create","list","claim","complete","block"]),title:U(Y.string().min(1)).describe("Task title"),description:U(Y.string().min(1)).describe("Task details"),dependsOn:U(Y.array(Y.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:U(Y.string().min(1)).describe("Optional assignee"),status:U(Y.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:U(Y.string()).describe("Task ID"),summary:U(Y.string().min(1)).describe("Completion summary"),reason:U(Y.string().min(1)).describe("Blocking reason")}).superRefine((f,$)=>{for(let w of x2[f.action]){if(f[w]!==void 0)continue;$.addIssue({code:"custom",path:[w],message:`Field "${w}" is required when action=${f.action}`})}}),H3=Y.object({agentId:Y.string().describe("Teammate agent ID"),task:Y.string().min(1).describe("Task instructions for the teammate"),taskId:U(Y.string()).describe("Optional shared task list ID"),runMode:U(Y.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:U(Y.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),R3=Y.object({status:U(Y.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:U(Y.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:U(Y.boolean()).describe("Include completed/failed runs (default true)")}),J3=Y.object({runId:Y.string().min(1).describe("Run ID"),reason:U(Y.string().min(1)).describe("Optional cancellation reason")}),K3=Y.object({runId:U(Y.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),_3=Y.object({toAgentId:Y.string().min(1).describe("Recipient agent ID"),subject:Y.string().min(1).describe("Message subject"),body:Y.string().min(1).describe("Message body"),taskId:U(Y.string().min(1)).describe("Optional task ID context")}),Q3=Y.object({subject:Y.string().min(1).describe("Message subject"),body:Y.string().min(1).describe("Message body"),taskId:U(Y.string().min(1)).describe("Optional task ID context")}),j3=Y.object({unreadOnly:U(Y.boolean()).describe("Only unread messages for read action (default true)")}),V3=Y.object({kind:Y.enum(["progress","handoff","blocked","decision","done","error"]),summary:Y.string().min(1).describe("Update summary"),taskId:U(Y.string().min(1)).describe("Optional task ID context"),evidence:U(Y.array(Y.string().min(1))).describe("Optional evidence links/snippets"),nextAction:U(Y.string().min(1)).describe("Planned next step")}),k3=Y.object({}),F3=Y.object({title:Y.string().describe("Outcome title"),requiredSections:Y.array(Y.string()).default(v2).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),L3=Y.object({outcomeId:Y.string().describe("Outcome ID"),section:Y.string().describe("Section name"),sourceRunId:U(Y.string()).describe("Optional source run ID"),content:Y.string().describe("Section fragment content")}),W3=Y.object({fragmentId:Y.string().describe("Fragment ID"),approved:Y.boolean().describe("Review decision")}),A3=Y.object({outcomeId:Y.string().describe("Outcome ID")}),D3=Y.object({}),U3=Y.object({teamId:Y.string(),teamName:Y.string(),members:Y.array(h2),taskCounts:Y.record(w0,Y.number()),unreadMessages:Y.number(),missionLogEntries:Y.number(),activeRuns:Y.number(),queuedRuns:Y.number(),outcomeCounts:Y.record(P0,Y.number())}),z2=Y.object({id:Y.string(),title:Y.string(),description:Y.string(),status:w0,createdAt:y,updatedAt:y,createdBy:Y.string(),assignee:Y.string().optional(),dependsOn:Y.array(Y.string()),summary:Y.string().optional(),isReady:Y.boolean(),blockedBy:Y.array(Y.string())}),P3=Y.discriminatedUnion("action",[Y.object({action:Y.literal("create"),taskId:Y.string(),status:w0,ignoredFields:Y.array(Y.string()).optional(),note:Y.string().optional()}),Y.object({action:Y.literal("list"),tasks:Y.array(z2)}),Y.object({action:Y.literal("claim"),taskId:Y.string(),status:w0,nextStep:Y.string()}),Y.object({action:Y.literal("complete"),taskId:Y.string(),status:w0}),Y.object({action:Y.literal("block"),taskId:Y.string(),status:w0})]),I3=Y.object({agentId:Y.string(),mode:Y.enum(["sync","async"]),status:Y.enum(["dispatched","running","queued","joined"]),dispatched:Y.boolean(),message:Y.string(),deduped:Y.boolean().optional(),runId:Y.string().optional(),text:Y.string().optional(),iterations:Y.number().optional()}),c2=Y.object({textPreview:Y.string(),iterations:Y.number(),finishReason:Y.string(),durationMs:Y.number(),usage:Y.object({inputTokens:Y.number(),outputTokens:Y.number(),cacheReadTokens:Y.number().optional(),cacheWriteTokens:Y.number().optional(),totalCost:Y.number().optional()})}),B3=Y.object({id:Y.string(),agentId:Y.string(),taskId:Y.string().optional(),status:uf,messagePreview:Y.string(),priority:Y.number(),retryCount:Y.number(),maxRetries:Y.number(),nextAttemptAt:y.optional(),continueConversation:Y.boolean().optional(),startedAt:y,endedAt:y.optional(),leaseOwner:Y.string().optional(),heartbeatAt:y.optional(),lastProgressAt:y.optional(),lastProgressMessage:Y.string().optional(),currentActivity:Y.string().optional(),error:Y.string().optional(),resultSummary:c2.optional()}),M3=Y.object({id:Y.string(),teamId:Y.string(),fromAgentId:Y.string(),toAgentId:Y.string(),subject:Y.string(),body:Y.string(),taskId:Y.string().optional(),sentAt:y,readAt:y.optional()}),E3=Y.object({id:Y.string(),teamId:Y.string(),title:Y.string(),status:P0,requiredSections:Y.array(Y.string()),createdBy:Y.string(),createdAt:y,finalizedAt:y.optional()}),O3=Y.object({outcomeId:Y.string(),status:P0,requiredSections:Y.array(Y.string())}),b3=Y.object({agentId:Y.string(),status:Y.string()}),N3=Y.object({runId:Y.string(),status:uf}),T3=Y.object({id:Y.string(),toAgentId:Y.string()}),y3=Y.object({delivered:Y.number()}),C3=Y.object({id:Y.string()}),S3=Y.object({status:Y.string()}),g3=Y.object({fragmentId:Y.string(),status:Y.string()}),n3=Y.object({outcomeId:Y.string(),status:P0});var o2;((P)=>{P.TaskStart="task_start";P.TaskEnd="task_end";P.AgentEvent="agent_event";P.TeammateSpawned="teammate_spawned";P.TeammateShutdown="teammate_shutdown";P.TeamTaskUpdated="team_task_updated";P.TeamMessage="team_message";P.TeamMissionLog="team_mission_log";P.TeamTaskCompleted="team_task_completed";P.RunStarted="run_started";P.RunQueued="run_queued";P.RunProgress="run_progress";P.RunCompleted="run_completed";P.RunFailed="run_failed";P.RunCancelled="run_cancelled";P.RunInterrupted="run_interrupted";P.OutcomeCreated="outcome_created";P.OutcomeFragmentAttached="outcome_fragment_attached";P.OutcomeFragmentReviewed="outcome_fragment_reviewed";P.OutcomeFinalized="outcome_finalized"})(o2||={});import{z as u2}from"zod";function d2(f){let{$schema:$,...w}=f;if(typeof w.type==="string")return w;if("properties"in w||"required"in w||"additionalProperties"in w)return{type:"object",...w};for(let q of["oneOf","anyOf","allOf"]){let Z=w[q];if(!Array.isArray(Z)||Z.length===0)continue;if(q==="allOf"){if(Z.some((J)=>J&&typeof J==="object"&&J.type==="object"))return{type:"object",...w};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(Z.every((R)=>R&&typeof R==="object"&&R.type==="object"))return{type:"object",...w};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${q}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return w}function l2(f){let $=d2(f.inputSchema instanceof u2.ZodType?a0(f.inputSchema):f.inputSchema);return{name:f.name,description:f.description,inputSchema:$,lifecycle:f.lifecycle,timeoutMs:f.timeoutMs??30000,retryable:f.retryable??!0,maxRetries:f.maxRetries??3,execute:f.execute}}var df=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function m2(f){let $=(f instanceof Error?f.message:String(f)).toLowerCase();return df.some((w)=>$.includes(w))}export{a0 as zodToJsonSchema,v1 as xmlTagsRemoval,v$ as validateWithZod,o1 as validateImageMedia,Z0 as validateAndReserveImageMedia,sw as upsertWorkspaceInfo,Xf as truncateStr,y$ as truncateSplit,T$ as trimNonEmpty,m1 as toAiSdkToolResultOutput,S$ as stripUtf8Bom,n1 as stripModeNotices,G6 as shouldIncludeConnectorField,q$ as serializeAbortReason,N as sanitizeSurrogates,N$ as sanitizeFileName,A$ as safeJsonStringify,D$ as safeJsonParse,I2 as resolveRootSessionId,r1 as resolveReasoningEffortRatio,Y$ as resolveReasoningBudgetFromRatio,x1 as resolveMediaBudget,$w as resolveMcpTimeoutSeconds,O4 as resolveHubCommandTimeoutMs,P2 as resolveHookSessionContext,w$ as resolveEffectiveReasoningEffort,gf as resolveClineEnvironment,J2 as resetSdkErrorRateLimiterForTests,q0 as reserveImageMediaBytes,M4 as readHubScheduleMode,S1 as parseUserCommandEnvelope,N2 as parseRuntimeConfigExtensions,W$ as parseJsonStream,E6 as parseHookEventPayload,M$ as omitUndefinedValues,g1 as normalizeUserInput,Z1 as normalizeSdkError,b1 as normalizePluginManifest,s0 as normalizeJsonLikeStringsForSchema,X$ as noopBasicLogger,f$ as mergeModelOptions,C$ as maskSecret,I1 as listConnectorCatalog,of as isRuntimeConfigExtensionKind,H$ as isMcpTimeoutConfigured,m2 as isLikelyAuthError,b4 as isHubToolExecutorName,O6 as isHubScheduleMode,P4 as isHubProtocolCompatible,t0 as isClineProvider,n2 as isChatWorkspacePath,l6 as isCanonicalBase64,z1 as isBase64Char,d6 as imageFileMaxDecodedBytesForBase64Limit,y0 as imageBase64LengthForDecodedBytes,u6 as imageBase64EncodedByteLength,h1 as imageBase64DecodedByteLength,T2 as hasRuntimeConfigExtension,i0 as getShellKind,Gf as getShellInvocation,b$ as getShellArgs,J$ as getErrorMessage,K$ as getErrorCode,O$ as getDefaultShell,N6 as getDefaultHubCommandTimeoutMs,w2 as getClineEnvironmentConfig,C6 as formatUserInputBlock,S6 as formatUserCommandBlock,n$ as formatUptime,g6 as formatModeSwitchNotice,e6 as formatMessagesForAiSdk,ww as formatMcpTimeoutErrorMessage,g$ as formatHumanReadableDate,T0 as formatFileContentBlock,z6 as formatDisplayUserInput,s1 as estimateTokens,G$ as estimateRequestInputTokens,rw as emptyWorkspaceManifest,B$ as decodeJwtPayload,l2 as createTool,E2 as createSessionId,n6 as createModeSwitchNoticeTracker,L0 as createMediaBudgetState,V6 as createContributionRegistry,hf as createClineTelemetryServiceMetadata,U2 as createClineTelemetryServiceConfig,X6 as connectorChannelsFromPlatforms,R$ as clampMcpTimeoutSeconds,j2 as captureTaskLifecycleEvent,V2 as captureSdkError,Q2 as captureAgentUnexpectedReasoningTokens,nf as buildSdkErrorProperties,h$ as buildClineSystemPrompt,C2 as WorkspaceManifestSchema,y2 as WorkspaceInfoSchema,If as VertexSettingsSchema,Pf as VertexModelSchema,u4 as USAGE_COST_DISPLAYS,b0 as ToolCallRecordSchema,L1 as ThinkingConfigSchema,w3 as TeamTeammateSpecSchema,P3 as TeamTaskToolResultSchema,z2 as TeamTaskListItemToolResultSchema,X3 as TeamTaskInputSchema,U3 as TeamStatusToolResultSchema,Z3 as TeamStatusInputSchema,Y3 as TeamSpawnTeammateInputSchema,b3 as TeamSimpleAgentStatusToolResultSchema,q3 as TeamShutdownTeammateInputSchema,T3 as TeamSendMessageToolResultSchema,_3 as TeamSendMessageInputSchema,B3 as TeamRunToolSummarySchema,I3 as TeamRunTaskToolResultSchema,H3 as TeamRunTaskInputSchema,c2 as TeamRunResultSummarySchema,W3 as TeamReviewOutcomeFragmentInputSchema,j3 as TeamReadMailboxInputSchema,E3 as TeamOutcomeToolResultSchema,g3 as TeamOutcomeFragmentToolResultSchema,C3 as TeamMissionLogToolResultSchema,V3 as TeamMissionLogInputSchema,o2 as TeamMessageType,M3 as TeamMailboxMessageToolResultSchema,R3 as TeamListRunsInputSchema,D3 as TeamListOutcomesInputSchema,n3 as TeamFinalizeOutcomeToolResultSchema,A3 as TeamFinalizeOutcomeInputSchema,O3 as TeamCreateOutcomeToolResultSchema,F3 as TeamCreateOutcomeInputSchema,S3 as TeamCleanupToolResultSchema,k3 as TeamCleanupInputSchema,N3 as TeamCancelRunToolResultSchema,J3 as TeamCancelRunInputSchema,y3 as TeamBroadcastToolResultSchema,Q3 as TeamBroadcastInputSchema,K3 as TeamAwaitRunsInputSchema,L3 as TeamAttachOutcomeFragmentInputSchema,G3 as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,$3 as TEAM_RUN_TEXT_PREVIEW_LIMIT,f3 as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,s$ as TEAM_PROGRESS_EVENT_TYPE,i$ as TEAM_LIFECYCLE_EVENT_TYPE,ew as TEAM_AWAIT_TIMEOUT_MS,Z2 as TASK_PROVIDER_STREAM_STARTED_EVENT,X2 as TASK_PROVIDER_STREAM_FAILED_EVENT,q2 as TASK_PROVIDER_REQUEST_STARTED_EVENT,G2 as TASK_FIRST_CHUNK_RECEIVED_EVENT,H2 as TASK_CANCELLED_EVENT,F0 as SUPPORTED_IMAGE_MEDIA_TYPES,O2 as SESSION_STATUS_VALUES,R2 as SDK_ERROR_TELEMETRY_EVENT,U0 as S3AccessKeySettingsSchema,Nf as RemoteMCPServerSchema,o$ as RemoteConfigSchema,E0 as ReasoningLevelSchema,Q0 as ReasoningEffortSchema,G1 as RUNTIME_CONFIG_EXTENSION_KINDS,z$ as REMOTE_URI_SCHEME,_0 as REASONING_LEVELS,H0 as REASONING_EFFORT_RATIOS,p$ as ProviderProtocolSchema,r$ as ProviderClientSchema,m$ as ProviderCapabilitySchema,Tf as PromptUploadingSchema,k6 as PLUGIN_FILE_EXTENSIONS,Vf as PLAN_MODE_INSTRUCTIONS_MANUAL_SWITCH,jf as PLAN_MODE_INSTRUCTIONS,Ff as OpenAiCompatibleSchema,kf as OpenAiCompatibleModelSchema,B4 as ONE_TIME_SCHEDULE_RUN_AT_METADATA_KEY,I4 as ONE_TIME_SCHEDULE_CRON_PATTERN,k1 as ModelStatusSchema,O0 as ModelReasoningOptionSchema,F1 as ModelPricingSchema,W1 as ModelMetadataSchema,j0 as ModelInfoSchema,V1 as ModelCapabilitySchema,_f as MODE_TAG_INSTRUCTIONS,m4 as MODEL_TOOL_NAMES,e4 as MIN_MCP_TIMEOUT_SECONDS,A4 as MIN_CLIENT_HUB_PROTOCOL_VERSION,fw as MAX_MCP_TIMEOUT_SECONDS,D4 as MAX_CLIENT_HUB_PROTOCOL_VERSION,Mf as LiteLLMSchema,Bf as LiteLLMModelSchema,Y0 as IMAGE_UNSUPPORTED_PLACEHOLDER,i as IMAGE_OMITTED_PLACEHOLDER,y1 as HookEventPayloadSchema,T1 as HookEventNameSchema,n4 as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,T6 as HUB_TOOL_EXECUTOR_NAMES,N4 as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,C1 as HUB_SCHEDULE_MODES,g4 as HUB_MISTAKE_LIMIT_CAPABILITY,y4 as HUB_HOOK_CAPABILITY_PREFIX,b6 as HUB_DEFAULT_COMMAND_TIMEOUT_MS,T4 as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,C4 as HUB_COMPACTION_CAPABILITY,E4 as HUB_COMMAND_SLOW_LOG_MS,S4 as HUB_CHECKPOINT_CAPABILITY,U4 as HUB_CAPABILITIES,f1 as GlobalInstructionsFileSchema,F6 as FeatureFlagDefaultValue,L6 as FEATURE_FLAGS,yf as EnterpriseTelemetrySchema,W0 as EMPTY_CONTENT_TEXT,cf as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,$$ as DEFAULT_REASONING_EFFORT,v2 as DEFAULT_OUTCOME_REQUIRED_SECTIONS,t4 as DEFAULT_MCP_TIMEOUT_SECONDS,o6 as DEFAULT_MAX_TOTAL_MEDIA_BYTES,z as DEFAULT_MAX_IMAGE_ENCODED_BYTES,u as DEFAULT_MAX_IMAGE_DECODED_BYTES,c6 as DEFAULT_MAX_IMAGE_BASE64_BYTES,e$ as DEFAULT_CLINE_ENVIRONMENT,N0 as ContributionRegistry,Z6 as ConnectorHookEventSchema,A1 as ConnectorHookEventNameSchema,U1 as ConnectorEventContextSchema,D1 as ConnectorEventActorSchema,Y6 as ConnectorAuthorizationRequestSchema,q6 as ConnectorAuthorizationDecisionSchema,Uf as ClineSettingsSchema,Df as ClineModelSchema,W4 as CURRENT_HUB_PROTOCOL_VERSION,B1 as CONNECTOR_PLATFORMS,P1 as CONNECTOR_CATALOG,S2 as CLINE_WORKSPACES_DIRECTORY_NAME,t$ as CLINE_ENVIRONMENT_OVERRIDE_ENV,a$ as CLINE_ENVIRONMENT_ENV,w1 as CLINE_ENVIRONMENTS,d$ as CLINE_DEFAULT_RPC_PORT,l$ as CLINE_DEFAULT_RPC_ADDRESS,x$ as CLINE_DEFAULT_MODEL_ID,g2 as CLINE_CHAT_WORKSPACE_DIRECTORY_NAME,Z$ as CHARS_PER_TOKEN,Af as AwsBedrockSettingsSchema,Lf as AwsBedrockModelSchema,Wf as AwsBedrockCustomModelSchema,j1 as ApiFormatSchema,f6 as ApiFormat,Of as AnthropicSchema,Ef as AnthropicModelSchema,bf as AllowedMCPServerSchema,w6 as AgentUsageSchema,Z4 as AgentResultSchema,$6 as AgentFinishReasonSchema,G4 as AgentConfigSchema,df as AUTH_ERROR_PATTERNS,u$ as APIKeySchema,Y2 as AGENT_UNEXPECTED_REASONING_TOKENS_EVENT};
package/dist/index.d.ts CHANGED
@@ -25,6 +25,7 @@ export { createMediaBudgetState, DEFAULT_MAX_IMAGE_BASE64_BYTES, DEFAULT_MAX_IMA
25
25
  export type { ContentBlock, FileContent, ImageContent, Message, MessageRole, MessageWithMetadata, RedactedThinkingContent, TextContent, ThinkingContent, ToolDefinition, ToolResultContent, ToolUseContent, } from "./llms/messages";
26
26
  export { ApiFormat, ApiFormatSchema, type ModelCapability, ModelCapabilitySchema, type ModelInfo, ModelInfoSchema, type ModelMetadata, ModelMetadataSchema, type ModelPricing, ModelPricingSchema, type ModelStatus, ModelStatusSchema, type ThinkingConfig, ThinkingConfigSchema, } from "./llms/model-info";
27
27
  export { mergeModelOptions } from "./llms/model-options";
28
+ export * from "./llms/model-tools";
28
29
  export { DEFAULT_REASONING_EFFORT, REASONING_EFFORT_RATIOS, resolveEffectiveReasoningEffort, resolveReasoningBudgetFromRatio, resolveReasoningEffortRatio, } from "./llms/reasoning-effort";
29
30
  export { type ModelReasoningOption, ModelReasoningOptionSchema, REASONING_LEVELS, type ReasoningEffort, ReasoningEffortSchema, type ReasoningLevel, ReasoningLevelSchema, } from "./llms/reasoning-options";
30
31
  export { serializeAbortReason } from "./llms/requests";