@cline/shared 0.0.60 → 0.0.61

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/hub.d.ts CHANGED
@@ -281,7 +281,7 @@ export interface HubReplyEnvelope {
281
281
  details?: Record<string, unknown>;
282
282
  };
283
283
  }
284
- export type HubEventName = "hub.client.registered" | "hub.client.disconnected" | "session.created" | "session.updated" | "session.attached" | "session.detached" | "session.forked" | "session.pending_prompts" | "session.pending_prompt_submitted" | "run.started" | "run.heartbeat" | "run.aborted" | "run.completed" | "run.failed" | "iteration.started" | "iteration.finished" | "assistant.delta" | "assistant.finished" | "reasoning.delta" | "reasoning.finished" | "agent.done" | "usage.updated" | "tool.started" | "tool.updated" | "tool.finished" | "approval.requested" | "approval.resolved" | "capability.requested" | "capability.resolved" | "team.progress" | "artifact.created" | "diff.created" | "spoke.started" | "spoke.failed" | "spoke.stopped" | "peer.registered" | "peer.session_attached" | "peer.session_detached" | "schedule.created" | "schedule.updated" | "schedule.deleted" | "schedule.triggered" | "schedule.execution_completed" | "schedule.execution_failed" | "settings.changed" | "ui.notify" | "ui.show_window" | "hub.client.updated";
284
+ export type HubEventName = "hub.client.registered" | "hub.client.disconnected" | "session.created" | "session.updated" | "session.attached" | "session.detached" | "session.forked" | "session.pending_prompts" | "session.pending_prompt_submitted" | "run.started" | "run.heartbeat" | "run.aborted" | "run.completed" | "run.failed" | "iteration.started" | "iteration.finished" | "assistant.delta" | "assistant.finished" | "session.notice" | "reasoning.delta" | "reasoning.finished" | "agent.done" | "usage.updated" | "tool.started" | "tool.updated" | "tool.finished" | "approval.requested" | "approval.resolved" | "capability.requested" | "capability.resolved" | "team.progress" | "artifact.created" | "diff.created" | "spoke.started" | "spoke.failed" | "spoke.stopped" | "peer.registered" | "peer.session_attached" | "peer.session_detached" | "schedule.created" | "schedule.updated" | "schedule.deleted" | "schedule.triggered" | "schedule.execution_completed" | "schedule.execution_failed" | "settings.changed" | "ui.notify" | "ui.show_window" | "hub.client.updated";
285
285
  export interface HubEventEnvelope {
286
286
  version: HubProtocolVersion;
287
287
  event: HubEventName;
@@ -23,20 +23,22 @@ export type { ContentBlock, FileContent, ImageContent, Message, MessageRole, Mes
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
25
  export { DEFAULT_REASONING_EFFORT, REASONING_EFFORT_RATIOS, resolveEffectiveReasoningEffort, resolveReasoningBudgetFromRatio, resolveReasoningEffortRatio, } from "./llms/reasoning-effort";
26
- export { buildClineClientRequestHeaders, type ClineClientRequestHeadersInput, DEFAULT_REQUEST_HEADERS, type MergeClineClientRequestHeadersInput, mergeClineClientRequestHeaders, serializeAbortReason, } from "./llms/requests";
27
- export { CHARS_PER_TOKEN, estimateTokens } from "./llms/tokens";
26
+ export { serializeAbortReason } from "./llms/requests";
27
+ export { CHARS_PER_TOKEN, estimateRequestInputTokens, estimateTokens, type TokenEstimatedRequest, } from "./llms/tokens";
28
28
  export type { ToolApprovalRequest, ToolApprovalResult, ToolCallRecord, ToolPolicy, } from "./llms/tools";
29
29
  export { ToolCallRecordSchema } from "./llms/tools";
30
30
  export { type BasicLogger, type BasicLogMetadata, noopBasicLogger, } from "./logging/logger";
31
31
  export { normalizeJsonLikeStringsForSchema, parseJsonStream, safeJsonParse, safeJsonStringify, } from "./parse/json";
32
+ export { decodeJwtPayload } from "./parse/jwt";
32
33
  export { type OmitUndefinedValues, omitUndefinedValues } from "./parse/object";
33
34
  export { getDefaultShell, getShellArgs } from "./parse/shell";
34
35
  export { maskSecret, sanitizeFileName, trimNonEmpty, truncateSplit, truncateStr, } from "./parse/string";
35
36
  export { formatHumanReadableDate, formatUptime } from "./parse/time";
36
37
  export { validateWithZod, zodToJsonSchema } from "./parse/zod";
37
38
  export type { ClineSystemPromptOptions } from "./prompt/cline";
38
- export { buildClineSystemPrompt } from "./prompt/cline";
39
- export { formatDisplayUserInput, formatFileContentBlock, formatModeSwitchNotice, formatUserCommandBlock, formatUserInputBlock, normalizeUserInput, parseUserCommandEnvelope, stripModeNotices, xmlTagsRemoval, } from "./prompt/format";
39
+ export { buildClineSystemPrompt, MODE_TAG_INSTRUCTIONS, PLAN_MODE_INSTRUCTIONS, } from "./prompt/cline";
40
+ export type { ModeSwitchNotice, ModeSwitchNoticeTracker, } from "./prompt/format";
41
+ export { createModeSwitchNoticeTracker, formatDisplayUserInput, formatFileContentBlock, formatModeSwitchNotice, formatUserCommandBlock, formatUserInputBlock, normalizeUserInput, parseUserCommandEnvelope, stripModeNotices, xmlTagsRemoval, } from "./prompt/format";
40
42
  export { isClineProvider } from "./providers/utils";
41
43
  export { REMOTE_URI_SCHEME } from "./remote-config/constants";
42
44
  export type { AnthropicModel, AnthropicSettings, APIKeySettings, AwsBedrockCustomModel, AwsBedrockModel, AwsBedrockSettings, EnterpriseTelemetry, GlobalInstructionsFile, LiteLLMModel, LiteLLMSettings, MCPServer, OpenAiCompatible, OpenAiCompatibleModel, PromptUploading, ProviderSettings, RemoteConfig, RemoteMCPServer, S3AccessKeySettings, VertexModel, VertexSettings, } from "./remote-config/schema";
@@ -1,14 +1,15 @@
1
- import{z as f}from"zod";import{z as _}from"zod";var eo=_.enum(["default","openai-responses","r1"]),he={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},ro=_.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),lo=_.enum(["active","preview","deprecated","legacy"]),so=_.object({input:_.number().optional(),output:_.number().optional(),cacheWrite:_.number().optional(),cacheRead:_.number().optional()}),fo=_.object({maxBudget:_.number().optional(),outputPrice:_.number().optional(),thinkingLevel:_.enum(["low","high"]).optional()}),go=_.object({reasoningDefaultOn:_.boolean().optional()}).catchall(_.unknown()),sn=_.object({id:_.string(),name:_.string().optional(),description:_.string().optional(),maxTokens:_.number().optional(),contextWindow:_.number().optional(),maxInputTokens:_.number().optional(),capabilities:_.array(ro).optional(),apiFormat:eo.optional(),systemRole:_.enum(["system","developer"]).optional(),temperature:_.number().optional(),pricing:so.optional(),thinkingConfig:fo.optional(),status:lo.optional(),deprecationNotice:_.string().optional(),replacedBy:_.string().optional(),releaseDate:_.string().optional(),deprecationDate:_.string().optional(),family:_.string().optional(),metadata:go.optional()});import{z as Y}from"zod";var _n=Y.object({id:Y.string(),name:Y.string(),input:Y.unknown(),output:Y.unknown(),error:Y.string().optional(),durationMs:Y.number(),startedAt:Y.date(),endedAt:Y.date()});var We=f.enum(["completed","max_iterations","aborted","mistake_limit","error"]),Je=f.object({inputTokens:f.number(),outputTokens:f.number(),cacheReadTokens:f.number().optional(),cacheWriteTokens:f.number().optional(),totalCost:f.number().optional()}),Bl=f.object({text:f.string(),usage:Je,messages:f.array(f.custom()),toolCalls:f.array(_n),iterations:f.number(),finishReason:We,model:f.object({id:f.string(),provider:f.string(),info:sn.optional()}),startedAt:f.date(),endedAt:f.date(),durationMs:f.number()}),Ke=f.enum(["low","medium","high","xhigh"]),Ml=f.object({sessionId:f.string().optional(),providerId:f.string(),modelId:f.string(),apiKey:f.string().optional(),baseUrl:f.string().url().optional(),headers:f.record(f.string(),f.string()).optional(),knownModels:f.record(f.string(),sn).optional(),providerConfig:f.unknown().optional(),initialMessages:f.array(f.custom()).optional(),systemPrompt:f.string(),tools:f.array(f.custom()),maxIterations:f.number().positive().optional(),maxParallelToolCalls:f.number().int().positive().default(8),maxTokensPerTurn:f.number().positive().optional(),apiTimeoutMs:f.number().positive().default(180000),userFileContentLoader:f.function().input([f.string()]).output(f.promise(f.string())).optional(),toolContextMetadata:f.record(f.string(),f.unknown()).optional(),execution:f.object({maxConsecutiveMistakes:f.number().int().positive().optional(),reminderAfterIterations:f.number().nonnegative().optional(),reminderText:f.string().optional(),loopDetection:f.union([f.literal(!1),f.object({softThreshold:f.number().int().positive().optional(),hardThreshold:f.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:Ke.optional(),thinkingBudgetTokens:f.number().positive().optional(),thinking:f.boolean().optional(),onEvent:f.function().input([f.custom()]).output(f.void()).optional(),hooks:f.custom().optional(),parentAgentId:f.string().optional(),extensions:f.array(f.custom()).optional(),hookErrorMode:f.enum(["ignore","throw"]).default("ignore"),toolPolicies:f.record(f.string(),f.object({enabled:f.boolean().optional(),autoApprove:f.boolean().optional()})).optional(),requestToolApproval:f.function().input([f.object({sessionId:f.string(),agentId:f.string(),conversationId:f.string(),iteration:f.number(),toolCallId:f.string(),toolName:f.string(),input:f.unknown(),policy:f.object({enabled:f.boolean().optional(),autoApprove:f.boolean().optional()}).default({})})]).output(f.union([f.object({approved:f.boolean(),reason:f.string().optional()}),f.promise(f.object({approved:f.boolean(),reason:f.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:f.function().input([f.object({iteration:f.number().int().positive(),consecutiveMistakes:f.number().int().positive(),maxConsecutiveMistakes:f.number().int().positive(),reason:f.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:f.string().optional()})]).output(f.union([f.object({action:f.literal("continue"),guidance:f.string().optional()}),f.object({action:f.literal("stop"),reason:f.string().optional()}),f.promise(f.union([f.object({action:f.literal("continue"),guidance:f.string().optional()}),f.object({action:f.literal("stop"),reason:f.string().optional()})]))])).optional(),logger:f.custom().optional(),extensionContext:f.custom().optional(),abortSignal:f.custom().optional()});import{z as A}from"zod";var co=A.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"]),io=A.object({id:A.string().optional(),label:A.string().optional(),role:A.string().optional(),participantKey:A.string().optional(),participantLabel:A.string().optional(),platformUserId:A.string().optional(),metadata:A.record(A.string(),A.unknown()).optional()}),bo=A.object({source:A.string(),sourceEvent:A.string(),threadId:A.string(),channelId:A.string(),isDM:A.boolean(),sessionId:A.string().optional(),workspaceRoot:A.string().optional(),metadata:A.record(A.string(),A.unknown()).optional()}),Oe=A.object({actor:io,context:bo,payload:A.record(A.string(),A.unknown()).optional()}),me=A.object({action:A.enum(["allow","deny"]).default("allow"),message:A.string().optional(),reason:A.string().optional(),metadata:A.record(A.string(),A.unknown()).optional()}),je=A.object({adapter:A.string(),botUserName:A.string().optional(),event:co,payload:A.record(A.string(),A.unknown()),ts:A.string()});var yo=[{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 uo(){return yo.map((n)=>({...n}))}function Qe(n,o){let e=n.includeWhen;if(!e)return!0;let d=o[e.flag]??"";if(e.equals!==void 0&&d!==e.equals)return!1;if(e.notEquals!==void 0&&d===e.notEquals)return!1;return!0}function Ne(n=wo){let o=new Set(uo().map((e)=>e.name));return n.filter((e)=>o.has(e.id)).map((e)=>({id:e.id,name:e.name,type:e.type,hint:e.hint,fields:e.fields.map((d)=>({flag:d.flag,label:d.label,placeholder:d.placeholder,required:d.required,help:d.help,initialValue:d.initialValue,options:d.options,includeWhen:d.includeWhen})),security:e.security?{prompt:e.security.prompt,fields:e.security.fields.map((d)=>({key:d.key,label:d.label,placeholder:d.placeholder,help:d.help,requiredMessage:d.requiredMessage}))}:void 0}))}function Se(n){return/^\d+$/.test(n)?void 0:"Telegram user ID must contain digits only"}function pe(n){return/^T[A-Z0-9]+$/.test(n)?void 0:"Slack workspace ID must start with T and contain uppercase letters or digits only"}function ve(n){return/^[UW][A-Z0-9]+$/.test(n)?void 0:"Slack member ID must start with U or W and contain uppercase letters or digits only"}var wo=[{id:"telegram",name:"Telegram",type:"polling",hint:"Easiest to set up. No public URL needed.",fields:[{flag:"-k",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:Se}],buildArgs:({userId:n})=>["--allowed-user-id",n??""]}},{id:"slack",name:"Slack",type:"hybrid",hint:"Public URL for webhook mode; leave blank for socket mode.",fields:[{flag:"--bot-token",label:"Bot token",placeholder:"xoxb-...",required:!0,help:["Go to api.slack.com/apps and create a new app","Add Bot Token Scopes: chat:write, app_mentions:read, channels:history, channels:read, im:history, im:read, im:write, users:read","Install to workspace and copy the Bot Token"]},{flag:"--base-url",label:"Public base URL",placeholder:"leave blank for socket mode",help:["Enter a publicly accessible URL for webhook mode","Leave blank to use Slack socket mode instead"]},{flag:"--signing-secret",label:"Signing secret",required:!0,help:["Found in your app's Basic Information page"],includeWhen:{flag:"--base-url",notEquals:""}},{flag:"--app-token",label:"App-level token",placeholder:"xapp-...",required:!0,help:["Enable Socket Mode in the Slack app","Generate an app-level token with the connections:write scope"],includeWhen:{flag:"--base-url",equals:""}}],security:{prompt:"Restrict which Slack users can interact with the bot?",fields:[{key:"teamId",label:"Allowed Slack workspace ID",placeholder:"T01ABC123",help:["Open your Slack workspace URL in a browser","The workspace ID is the segment after /client/, for example T01ABC123"],requiredMessage:"Workspace ID is required to restrict access",validate:pe},{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:ve}],buildArgs:({teamId:n,userId:o})=>["--hook-command",`jq -r ".payload.actor.participantKey" | grep -qx "slack:team:${n}:user:${o}" && echo '{"action":"allow"}' || echo '{"action":"deny"}'`]}},{id:"discord",name:"Discord",type:"webhook",hint:"Requires a Discord app and public URL.",fields:[{flag:"--application-id",label:"Application ID",required:!0,help:["Go to discord.com/developers/applications","Create a new app, copy the Application ID"]},{flag:"--bot-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 te=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],xe=new Set(te);function Ao(n,o){return n.name||`extension_${String(o).padStart(4,"0")}`}function ko(n){return Array.isArray(n)&&n.every((o)=>typeof o==="string")}function Io(n){if(!Array.isArray(n))return;let o=n.filter((e)=>typeof e==="string").map((e)=>e.trim()).filter((e)=>e.length>0);return o.length>0?o:void 0}function Ro(n){let o=Io(n.providerIds),e=Io(n.modelIds);return{...n,...o?{providerIds:o}:{},...e?{modelIds:e}:{}}}function ze(n,o){let e=Ao(n,o),d=n.manifest;if(!d||typeof d!=="object")throw Error(`Invalid manifest for extension "${e}": manifest is required`);if(!Array.isArray(d.capabilities)||d.capabilities.length===0)throw Error(`Invalid manifest for extension "${e}": capabilities must be a non-empty array`);let l=new Set;for(let b of d.capabilities){if(!xe.has(b))throw Error(`Invalid manifest for extension "${e}": unsupported capability "${String(b)}"`);l.add(b)}if(Object.hasOwn(d,"providerIds")&&!ko(d.providerIds))throw Error(`Invalid manifest for extension "${e}": providerIds must be a string array when provided`);if(Object.hasOwn(d,"modelIds")&&!ko(d.modelIds))throw Error(`Invalid manifest for extension "${e}": modelIds must be a string array when provided`);let g=l.has("hooks");if(n.hooks!==void 0&&!g)throw Error(`Invalid manifest for extension "${e}": runtime hooks require the "hooks" capability`);return{capabilities:l,raw:Ro(d)}}function nr(n,o){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${o}": expected object`);let e=typeof n.eventType==="string"?n.eventType.trim():"",d=typeof n.source==="string"?n.source.trim():"";if(!e)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!d)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:e,source:d,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class En{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,o)=>({extension:n,order:o,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:ze(n.extension,n.order)})),this.phase="setup"}async setup(n={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let o,e=[];for(let d of this.normalized){let{extension:l}=d;if(l.disabled)continue;let g=Ao(l,d.order),c={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},b={registerTool:(y)=>c.tools.push(y),registerCommand:(y)=>c.commands.push(y),registerRule:(y)=>{if(!d.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${g}": registerRule requires the "rules" capability`);c.rules.push(y)},registerMessageBuilder:(y)=>c.messageBuilder.push(y),registerProvider:(y)=>c.providers.push(y),registerAutomationEventType:(y)=>{if(!d.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${g}": registerAutomationEventType requires the "automationEvents" capability`);c.automationEventTypes.push(nr(y,g))},registerMcpServer:(y)=>{if(!d.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${g}": registerMcpServer requires the "mcp" capability`);c.mcpServers.push({...y,metadata:{...y.metadata??{},source:"plugin",plugin:g}})}},k=d.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await l.setup?.(b,k),e.push(c)}catch(y){if(n.tolerateSetupErrors!==!0)throw y;o??=y}}if(o&&n.tolerateSetupErrors!==!0)throw o;for(let d of e)this.registry.tools.push(...d.tools),this.registry.commands.push(...d.commands),this.registry.rules.push(...d.rules),this.registry.messageBuilder.push(...d.messageBuilder),this.registry.providers.push(...d.providers),this.registry.automationEventTypes.push(...d.automationEventTypes),this.registry.mcpServers.push(...d.mcpServers);if(this.phase="activate",o)throw o}activate(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase==="setup")throw Error("Contribution registry setup must complete before activation");if(this.phase!=="activate")return;this.phase="run"}async initialize(n={}){this.resolve(),this.validate();try{await this.setup(n)}finally{if(this.phase==="activate")this.activate()}}isActivated(){return this.phase==="run"}getRegistrySnapshot(){return{tools:[...this.registry.tools],commands:[...this.registry.commands],rules:[...this.registry.rules],messageBuilder:[...this.registry.messageBuilder],providers:[...this.registry.providers],automationEventTypes:[...this.registry.automationEventTypes],mcpServers:[...this.registry.mcpServers]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getRegisteredMcpServers(){return[...this.registry.mcpServers]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,o)=>n.order-o.order).map(({extension:n})=>n)}}function or(n={}){return new En(n)}var er=[".js",".ts"];var _o={CLINE_PASS:"ext-cline-pass"},rr={[_o.CLINE_PASS]:!1},dr=Object.values(_o);import{z as i}from"zod";var Eo=i.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),h=i.record(i.string(),i.string()),lr=i.object({toolName:i.string(),parameters:h}),sr=i.object({toolName:i.string(),parameters:h,result:i.string(),success:i.boolean(),executionTimeMs:i.number()}),fr=i.object({prompt:i.string(),attachments:i.array(i.string())}),gr=i.object({taskMetadata:h}),cr=i.object({taskMetadata:h,previousState:h}),ir=i.object({taskMetadata:h}),br=i.object({taskMetadata:h}),yr=i.object({taskId:i.string(),ulid:i.string(),contextSize:i.number(),compactionStrategy:i.string(),previousApiReqIndex:i.number(),tokensIn:i.number(),tokensOut:i.number(),tokensInCache:i.number(),tokensOutCache:i.number(),deletedRangeStart:i.number(),deletedRangeEnd:i.number(),contextJsonPath:i.string(),contextRawPath:i.string()}),qo=i.object({clineVersion:i.string(),hookName:Eo,timestamp:i.string(),taskId:i.string(),sessionContext:i.object({rootSessionId:i.string().optional(),hookLogPath:i.string().optional()}).optional(),workspaceRoots:i.array(i.string()),workspaceInfo:i.custom().optional(),userId:i.string(),agent_id:i.string(),parent_agent_id:i.string().nullable(),iteration:i.number().optional(),reason:i.string().optional(),tool_call:i.object({id:i.string(),name:i.string(),input:i.unknown()}).optional(),tool_result:i.custom().optional(),turn:i.unknown().optional(),error:i.object({name:i.string(),message:i.string(),stack:i.string().optional()}).optional(),preToolUse:lr.optional(),postToolUse:sr.optional(),userPromptSubmit:fr.optional(),taskStart:gr.optional(),taskResume:cr.optional(),taskCancel:ir.optional(),taskComplete:br.optional(),preCompact:yr.optional()}).passthrough();function ur(n){let o=qo.safeParse(n);if(!o.success)return;return o.data}var Xl="v1",Cl="v1",Zl="v1",hl=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function fn(n){let o=/^v(\d+)$/.exec(n?.trim()??"");if(!o)return;return Number.parseInt(o[1]??"",10)}function Wl(n,o="v1"){let e=fn(n.protocolVersion),d=fn(o);if(e===void 0||d===void 0)return{compatible:!1,reason:"missing_protocol"};let l=fn(n.minClientProtocolVersion)??e,g=fn(n.maxClientProtocolVersion)??e;return d>=l&&d<=g?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var wr=30000,Jl=5000;function kr(n){switch(n){case"run.start":case"session.send_input":return null;default:return wr}}function Kl(n,o){return o===void 0?kr(n):o}var Ir=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],Ar=new Set(Ir);function Ol(n){return typeof n==="string"&&Ar.has(n)}var ml="tool_executor.",jl="custom_tool.",Ql="hook.",Nl="compaction.compact",Sl="checkpoint.create",pl="mistake_limit.decide",vl="user_instructions.snapshot";function qn(n,o){return`<file_content path="${n}">
1
+ import{z as s}from"zod";import{z as D}from"zod";var oo=D.enum(["default","openai-responses","r1"]),Kd={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},ro=D.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),fo=D.enum(["active","preview","deprecated","legacy"]),lo=D.object({input:D.number().optional(),output:D.number().optional(),cacheWrite:D.number().optional(),cacheRead:D.number().optional()}),eo=D.object({maxBudget:D.number().optional(),outputPrice:D.number().optional(),thinkingLevel:D.enum(["low","high"]).optional()}),so=D.object({reasoningDefaultOn:D.boolean().optional()}).catchall(D.unknown()),en=D.object({id:D.string(),name:D.string().optional(),description:D.string().optional(),maxTokens:D.number().optional(),contextWindow:D.number().optional(),maxInputTokens:D.number().optional(),capabilities:D.array(ro).optional(),apiFormat:oo.optional(),systemRole:D.enum(["system","developer"]).optional(),temperature:D.number().optional(),pricing:lo.optional(),thinkingConfig:eo.optional(),status:fo.optional(),deprecationNotice:D.string().optional(),replacedBy:D.string().optional(),releaseDate:D.string().optional(),deprecationDate:D.string().optional(),family:D.string().optional(),metadata:so.optional()});import{z as X}from"zod";var Bn=X.object({id:X.string(),name:X.string(),input:X.unknown(),output:X.unknown(),error:X.string().optional(),durationMs:X.number(),startedAt:X.date(),endedAt:X.date()});var Cd=s.enum(["completed","max_iterations","aborted","mistake_limit","error"]),Qd=s.object({inputTokens:s.number(),outputTokens:s.number(),cacheReadTokens:s.number().optional(),cacheWriteTokens:s.number().optional(),totalCost:s.number().optional()}),Ml=s.object({text:s.string(),usage:Qd,messages:s.array(s.custom()),toolCalls:s.array(Bn),iterations:s.number(),finishReason:Cd,model:s.object({id:s.string(),provider:s.string(),info:en.optional()}),startedAt:s.date(),endedAt:s.date(),durationMs:s.number()}),jd=s.enum(["low","medium","high","xhigh"]),Fl=s.object({sessionId:s.string().optional(),providerId:s.string(),modelId:s.string(),apiKey:s.string().optional(),baseUrl:s.string().url().optional(),headers:s.record(s.string(),s.string()).optional(),knownModels:s.record(s.string(),en).optional(),providerConfig:s.unknown().optional(),initialMessages:s.array(s.custom()).optional(),systemPrompt:s.string(),tools:s.array(s.custom()),maxIterations:s.number().positive().optional(),maxParallelToolCalls:s.number().int().positive().default(8),maxTokensPerTurn:s.number().positive().optional(),apiTimeoutMs:s.number().positive().default(180000),userFileContentLoader:s.function().input([s.string()]).output(s.promise(s.string())).optional(),toolContextMetadata:s.record(s.string(),s.unknown()).optional(),execution:s.object({maxConsecutiveMistakes:s.number().int().positive().optional(),reminderAfterIterations:s.number().nonnegative().optional(),reminderText:s.string().optional(),loopDetection:s.union([s.literal(!1),s.object({softThreshold:s.number().int().positive().optional(),hardThreshold:s.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:jd.optional(),thinkingBudgetTokens:s.number().positive().optional(),thinking:s.boolean().optional(),onEvent:s.function().input([s.custom()]).output(s.void()).optional(),hooks:s.custom().optional(),parentAgentId:s.string().optional(),extensions:s.array(s.custom()).optional(),hookErrorMode:s.enum(["ignore","throw"]).default("ignore"),toolPolicies:s.record(s.string(),s.object({enabled:s.boolean().optional(),autoApprove:s.boolean().optional()})).optional(),requestToolApproval:s.function().input([s.object({sessionId:s.string(),agentId:s.string(),conversationId:s.string(),iteration:s.number(),toolCallId:s.string(),toolName:s.string(),input:s.unknown(),policy:s.object({enabled:s.boolean().optional(),autoApprove:s.boolean().optional()}).default({})})]).output(s.union([s.object({approved:s.boolean(),reason:s.string().optional()}),s.promise(s.object({approved:s.boolean(),reason:s.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:s.function().input([s.object({iteration:s.number().int().positive(),consecutiveMistakes:s.number().int().positive(),maxConsecutiveMistakes:s.number().int().positive(),reason:s.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:s.string().optional()})]).output(s.union([s.object({action:s.literal("continue"),guidance:s.string().optional()}),s.object({action:s.literal("stop"),reason:s.string().optional()}),s.promise(s.union([s.object({action:s.literal("continue"),guidance:s.string().optional()}),s.object({action:s.literal("stop"),reason:s.string().optional()})]))])).optional(),logger:s.custom().optional(),extensionContext:s.custom().optional(),abortSignal:s.custom().optional()});import{z as B}from"zod";var go=B.enum(["connector.started","connector.stopping","session.authorize","message.received","message.denied","message.completed","message.failed","session.started","session.reused","session.reset","schedule.delivery.started","schedule.delivery.sent","schedule.delivery.failed"]),co=B.object({id:B.string().optional(),label:B.string().optional(),role:B.string().optional(),participantKey:B.string().optional(),participantLabel:B.string().optional(),platformUserId:B.string().optional(),metadata:B.record(B.string(),B.unknown()).optional()}),bo=B.object({source:B.string(),sourceEvent:B.string(),threadId:B.string(),channelId:B.string(),isDM:B.boolean(),sessionId:B.string().optional(),workspaceRoot:B.string().optional(),metadata:B.record(B.string(),B.unknown()).optional()}),Od=B.object({actor:co,context:bo,payload:B.record(B.string(),B.unknown()).optional()}),hd=B.object({action:B.enum(["allow","deny"]).default("allow"),message:B.string().optional(),reason:B.string().optional(),metadata:B.record(B.string(),B.unknown()).optional()}),Nd=B.object({adapter:B.string(),botUserName:B.string().optional(),event:go,payload:B.record(B.string(),B.unknown()),ts:B.string()});var yo=[{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 wo(){return yo.map((n)=>({...n}))}function Sd(n,o){let d=n.includeWhen;if(!d)return!0;let f=o[d.flag]??"";if(d.equals!==void 0&&f!==d.equals)return!1;if(d.notEquals!==void 0&&f===d.notEquals)return!1;return!0}function md(n=ko){let o=new Set(wo().map((d)=>d.name));return n.filter((d)=>o.has(d.id)).map((d)=>({id:d.id,name:d.name,type:d.type,hint:d.hint,fields:d.fields.map((f)=>({flag:f.flag,label:f.label,placeholder:f.placeholder,required:f.required,help:f.help,initialValue:f.initialValue,options:f.options,includeWhen:f.includeWhen})),security:d.security?{prompt:d.security.prompt,fields:d.security.fields.map((f)=>({key:f.key,label:f.label,placeholder:f.placeholder,help:f.help,requiredMessage:f.requiredMessage}))}:void 0}))}function ad(n){return/^\d+$/.test(n)?void 0:"Telegram user ID must contain digits only"}function pd(n){return/^T[A-Z0-9]+$/.test(n)?void 0:"Slack workspace ID must start with T and contain uppercase letters or digits only"}function vd(n){return/^[UW][A-Z0-9]+$/.test(n)?void 0:"Slack member ID must start with U or W and contain uppercase letters or digits only"}var ko=[{id:"telegram",name:"Telegram",type:"polling",hint:"Easiest to set up. No public URL needed.",fields:[{flag:"-k",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:ad}],buildArgs:({userId:n})=>["--allowed-user-id",n??""]}},{id:"slack",name:"Slack",type:"hybrid",hint:"Public URL for webhook mode; leave blank for socket mode.",fields:[{flag:"--bot-token",label:"Bot token",placeholder:"xoxb-...",required:!0,help:["Go to api.slack.com/apps and create a new app","Add Bot Token Scopes: chat:write, app_mentions:read, channels:history, channels:read, im:history, im:read, im:write, users:read","Install to workspace and copy the Bot Token"]},{flag:"--base-url",label:"Public base URL",placeholder:"leave blank for socket mode",help:["Enter a publicly accessible URL for webhook mode","Leave blank to use Slack socket mode instead"]},{flag:"--signing-secret",label:"Signing secret",required:!0,help:["Found in your app's Basic Information page"],includeWhen:{flag:"--base-url",notEquals:""}},{flag:"--app-token",label:"App-level token",placeholder:"xapp-...",required:!0,help:["Enable Socket Mode in the Slack app","Generate an app-level token with the connections:write scope"],includeWhen:{flag:"--base-url",equals:""}}],security:{prompt:"Restrict which Slack users can interact with the bot?",fields:[{key:"teamId",label:"Allowed Slack workspace ID",placeholder:"T01ABC123",help:["Open your Slack workspace URL in a browser","The workspace ID is the segment after /client/, for example T01ABC123"],requiredMessage:"Workspace ID is required to restrict access",validate:pd},{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:vd}],buildArgs:({teamId:n,userId:o})=>["--hook-command",`jq -r ".payload.actor.participantKey" | grep -qx "slack:team:${n}:user:${o}" && echo '{"action":"allow"}' || echo '{"action":"deny"}'`]}},{id:"discord",name:"Discord",type:"webhook",hint:"Requires a Discord app and public URL.",fields:[{flag:"--application-id",label:"Application ID",required:!0,help:["Go to discord.com/developers/applications","Create a new app, copy the Application ID"]},{flag:"--bot-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 xd=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],td=new Set(xd);function Io(n,o){return n.name||`extension_${String(o).padStart(4,"0")}`}function Ao(n){return Array.isArray(n)&&n.every((o)=>typeof o==="string")}function _o(n){if(!Array.isArray(n))return;let o=n.filter((d)=>typeof d==="string").map((d)=>d.trim()).filter((d)=>d.length>0);return o.length>0?o:void 0}function Bo(n){let o=_o(n.providerIds),d=_o(n.modelIds);return{...n,...o?{providerIds:o}:{},...d?{modelIds:d}:{}}}function zd(n,o){let d=Io(n,o),f=n.manifest;if(!f||typeof f!=="object")throw Error(`Invalid manifest for extension "${d}": manifest is required`);if(!Array.isArray(f.capabilities)||f.capabilities.length===0)throw Error(`Invalid manifest for extension "${d}": capabilities must be a non-empty array`);let l=new Set;for(let y of f.capabilities){if(!td.has(y))throw Error(`Invalid manifest for extension "${d}": unsupported capability "${String(y)}"`);l.add(y)}if(Object.hasOwn(f,"providerIds")&&!Ao(f.providerIds))throw Error(`Invalid manifest for extension "${d}": providerIds must be a string array when provided`);if(Object.hasOwn(f,"modelIds")&&!Ao(f.modelIds))throw Error(`Invalid manifest for extension "${d}": modelIds must be a string array when provided`);let c=l.has("hooks");if(n.hooks!==void 0&&!c)throw Error(`Invalid manifest for extension "${d}": runtime hooks require the "hooks" capability`);return{capabilities:l,raw:Bo(f)}}function nr(n,o){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${o}": expected object`);let d=typeof n.eventType==="string"?n.eventType.trim():"",f=typeof n.source==="string"?n.source.trim():"";if(!d)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!f)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:d,source:f,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class Rn{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,o)=>({extension:n,order:o,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:zd(n.extension,n.order)})),this.phase="setup"}async setup(n={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let o,d=[];for(let f of this.normalized){let{extension:l}=f;if(l.disabled)continue;let c=Io(l,f.order),g={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},y={registerTool:(w)=>g.tools.push(w),registerCommand:(w)=>g.commands.push(w),registerRule:(w)=>{if(!f.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${c}": registerRule requires the "rules" capability`);g.rules.push(w)},registerMessageBuilder:(w)=>g.messageBuilder.push(w),registerProvider:(w)=>g.providers.push(w),registerAutomationEventType:(w)=>{if(!f.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${c}": registerAutomationEventType requires the "automationEvents" capability`);g.automationEventTypes.push(nr(w,c))},registerMcpServer:(w)=>{if(!f.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${c}": registerMcpServer requires the "mcp" capability`);g.mcpServers.push({...w,metadata:{...w.metadata??{},source:"plugin",plugin:c}})}},_=f.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await l.setup?.(y,_),d.push(g)}catch(w){if(n.tolerateSetupErrors!==!0)throw w;o??=w}}if(o&&n.tolerateSetupErrors!==!0)throw o;for(let f of d)this.registry.tools.push(...f.tools),this.registry.commands.push(...f.commands),this.registry.rules.push(...f.rules),this.registry.messageBuilder.push(...f.messageBuilder),this.registry.providers.push(...f.providers),this.registry.automationEventTypes.push(...f.automationEventTypes),this.registry.mcpServers.push(...f.mcpServers);if(this.phase="activate",o)throw o}activate(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase==="setup")throw Error("Contribution registry setup must complete before activation");if(this.phase!=="activate")return;this.phase="run"}async initialize(n={}){this.resolve(),this.validate();try{await this.setup(n)}finally{if(this.phase==="activate")this.activate()}}isActivated(){return this.phase==="run"}getRegistrySnapshot(){return{tools:[...this.registry.tools],commands:[...this.registry.commands],rules:[...this.registry.rules],messageBuilder:[...this.registry.messageBuilder],providers:[...this.registry.providers],automationEventTypes:[...this.registry.automationEventTypes],mcpServers:[...this.registry.mcpServers]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getRegisteredMcpServers(){return[...this.registry.mcpServers]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,o)=>n.order-o.order).map(({extension:n})=>n)}}function or(n={}){return new Rn(n)}var dr=[".js",".ts"];var Ro={CLINE_PASS:"ext-cline-pass"},rr={[Ro.CLINE_PASS]:!1},fr=Object.values(Ro);import{z as b}from"zod";var Do=b.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),K=b.record(b.string(),b.string()),lr=b.object({toolName:b.string(),parameters:K}),er=b.object({toolName:b.string(),parameters:K,result:b.string(),success:b.boolean(),executionTimeMs:b.number()}),sr=b.object({prompt:b.string(),attachments:b.array(b.string())}),gr=b.object({taskMetadata:K}),cr=b.object({taskMetadata:K,previousState:K}),br=b.object({taskMetadata:K}),yr=b.object({taskMetadata:K}),wr=b.object({taskId:b.string(),ulid:b.string(),contextSize:b.number(),compactionStrategy:b.string(),previousApiReqIndex:b.number(),tokensIn:b.number(),tokensOut:b.number(),tokensInCache:b.number(),tokensOutCache:b.number(),deletedRangeStart:b.number(),deletedRangeEnd:b.number(),contextJsonPath:b.string(),contextRawPath:b.string()}),uo=b.object({clineVersion:b.string(),hookName:Do,timestamp:b.string(),taskId:b.string(),sessionContext:b.object({rootSessionId:b.string().optional(),hookLogPath:b.string().optional()}).optional(),workspaceRoots:b.array(b.string()),workspaceInfo:b.custom().optional(),userId:b.string(),agent_id:b.string(),parent_agent_id:b.string().nullable(),iteration:b.number().optional(),reason:b.string().optional(),tool_call:b.object({id:b.string(),name:b.string(),input:b.unknown()}).optional(),tool_result:b.custom().optional(),turn:b.unknown().optional(),error:b.object({name:b.string(),message:b.string(),stack:b.string().optional()}).optional(),preToolUse:lr.optional(),postToolUse:er.optional(),userPromptSubmit:sr.optional(),taskStart:gr.optional(),taskResume:cr.optional(),taskCancel:br.optional(),taskComplete:yr.optional(),preCompact:wr.optional()}).passthrough();function kr(n){let o=uo.safeParse(n);if(!o.success)return;return o.data}var Vl="v1",Jl="v1",Wl="v1",Kl=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function sn(n){let o=/^v(\d+)$/.exec(n?.trim()??"");if(!o)return;return Number.parseInt(o[1]??"",10)}function Cl(n,o="v1"){let d=sn(n.protocolVersion),f=sn(o);if(d===void 0||f===void 0)return{compatible:!1,reason:"missing_protocol"};let l=sn(n.minClientProtocolVersion)??d,c=sn(n.maxClientProtocolVersion)??d;return f>=l&&f<=c?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var Ar=30000,Ql=5000;function _r(n){switch(n){case"run.start":case"session.send_input":return null;default:return Ar}}function jl(n,o){return o===void 0?_r(n):o}var Ir=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],Br=new Set(Ir);function Ol(n){return typeof n==="string"&&Br.has(n)}var hl="tool_executor.",Nl="custom_tool.",Sl="hook.",ml="compaction.compact",al="checkpoint.create",pl="mistake_limit.decide",vl="user_instructions.snapshot";function Dn(n,o){return`<file_content path="${n}">
2
2
  ${o}
3
- </file_content>`}function Rr(n,o="act"){return`<user_input mode="${o}">${n}</user_input>`}function _r(n,o){return`<user_command slash="${o}">${n}</user_command>`}function Er(n,o){return`<mode_notice>The user switched from ${n} mode to ${o} mode before sending this message.</mode_notice>`}function qr(n,o){let e=n.trim(),d=new RegExp(`^<${o}\\b([^>]*)>([\\s\\S]*?)<\\/${o}>$`,"i").exec(e);if(!d)return;return{attrs:d[1]??"",content:d[2]??""}}function Dr(n,o){return new RegExp(`${o}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function Do(n){if(!n?.trim())return;let o=qr(n,"user_command");if(!o)return;let e=Dr(o.attrs,"slash");if(!e)return;return{slash:e,content:o.content.trim()}}function Bo(n){if(!n?.trim())return"";let o=n.trim();for(let e of["user_input","user_command"]){let d=To(o,e);o=(d!==o?d:o.replace(new RegExp(`<${e}[^>]*>`,"g"),"")).trim()}return o}function Mo(n){if(!n?.trim())return"";return Br(n,"mode_notice").trim()}function Br(n,o){let e=`<${o}>`,d=`</${o}>`,l=n,g=l.indexOf(e);while(g!==-1){let c=l.indexOf(d,g+e.length);if(c===-1)break;l=l.slice(0,g)+l.slice(c+d.length),g=l.indexOf(e,g)}return l}function Mr(n){let o=Mo(Bo(n)),e=Do(n);if(!e)return o;if(e.slash.toLowerCase()==="team"){let l=o.toLowerCase().startsWith("spawn a team of agents for the following task:")?o.slice(46).trim():o;return l?`/team ${l}`:"/team"}return o?`/${e.slash} ${o}`:`/${e.slash}`}function To(n,o){if(!n?.trim())return"";if(!o)return n;let e=new RegExp(`<${o}\\b[^>]*>([\\s\\S]*?)</${o}>`,"g");return n.replace(e,"$1")}var W="[media omitted: invalid or exceeds size limit]",cn=["image/png","image/jpeg","image/gif","image/webp"],Tr=5242880,C=5242880,J=6291456,ar=8388608;function Fr(n){return n.length}function ao(n){let o=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-o}function $r(n=5242880){return Math.floor(n*3/4)}function Dn(n){return Math.ceil(n/3)*4}function Fo(n={}){return{maxImageEncodedBytes:n.maxImageEncodedBytes??5242880,maxImageDecodedBytes:n.maxImageDecodedBytes??6291456,maxTotalMediaBytes:n.maxTotalMediaBytes??8388608}}function bn(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function gn(n,o){n.omittedImages+=1,n.omittedReasons[o]=(n.omittedReasons[o]??0)+1}function z(n,o,e,d){let l=Fo(e);if(n>l.maxImageEncodedBytes){let g={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${l.maxImageEncodedBytes} byte encoded limit`};return gn(d,g.reason),g}if(o>l.maxImageDecodedBytes){let g={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l.maxImageDecodedBytes} byte decoded limit`};return gn(d,g.reason),g}if(d.totalEncodedBytes+n>l.maxTotalMediaBytes){let g={ok:!1,reason:"total_limit",message:`Image media exceeds the ${l.maxTotalMediaBytes} byte total media limit`};return gn(d,g.reason),g}return d.totalEncodedBytes+=n,d.keptImages+=1,null}function $o(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function Lr(n){return n.length>0&&Lo(n,0,n.length)}function Lo(n,o,e){let d=e-o;if(d%4!==0)return!1;let l=e;if(d>=2&&n.charCodeAt(e-2)===61&&n.charCodeAt(e-1)===61)l-=2;else if(d>=1&&n.charCodeAt(e-1)===61)l-=1;for(let g=o;g<l;g++)if(!$o(n.charCodeAt(g)))return!1;for(let g=l;g<e;g++)if(n.charCodeAt(g)!==61)return!1;return!0}function Ur(n,o,e){return e-o>=5&&(n.charCodeAt(o)|32)===100&&(n.charCodeAt(o+1)|32)===97&&(n.charCodeAt(o+2)|32)===116&&(n.charCodeAt(o+3)|32)===97&&n.charCodeAt(o+4)===58}function Vr(n){let o=0,e=n.length;while(o<e&&/\s/.test(n[o]??""))o+=1;while(e>o&&/\s/.test(n[e-1]??""))e-=1;return{start:o,end:e}}function Gr(n,o,e){if(!Ur(n,o,e))return;let d=o+5,l=n.indexOf(",",d);if(l===-1||l>=e)return;if(l-d>128)return;let g=n.slice(d,l).toLowerCase(),c=";base64";if(!g.endsWith(c))return;let b=g.slice(0,-c.length);if(!b||b.includes(";"))return;return{mediaType:b,base64Start:l+1,base64End:e}}function Uo(n,o,e={}){let d=e.maxEncodedBytes??5242880,l=e.maxDecodedBytes??6291456,g=new Set(e.supportedMediaTypes??cn),c=n?.toLowerCase(),b=Vr(o),k=b.start,y=b.end,I=Gr(o,b.start,b.end);if(I){if(c&&c!==I.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${I.mediaType}`};c=I.mediaType,k=I.base64Start,y=I.base64End}if(!c||!g.has(c))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let M=y-k;if(M===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(M>d)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${d} byte encoded limit`};if(!Lo(o,k,y))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let T=o.slice(k,y),a=ao(T);if(a>l)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l} byte decoded limit`};return{ok:!0,mediaType:c,base64:T,encodedBytes:M,decodedBytes:a}}function nn(n,o,e,d){let l=Uo(n,o,{maxEncodedBytes:e.maxImageEncodedBytes,maxDecodedBytes:e.maxImageDecodedBytes});if(!l.ok)return gn(d,l.reason),l;let g=z(l.encodedBytes,l.decodedBytes,e,d);if(g)return g;return l}function $(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var Bn="ERROR: EMPTY CONTENT",Yr="[image attached]";function Vo(n,o){let e=n[n.length-1];if(o.role==="tool"&&e?.role==="tool"&&Array.isArray(e.content)&&Array.isArray(o.content)){e.content.push(...o.content);return}n.push(o)}function Hr(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((o)=>{if(!o||typeof o!=="object")return!1;let e=o;if(e.type==="text")return typeof e.text==="string";if(e.type==="image")return typeof e.data==="string"&&typeof e.mediaType==="string";return!1})}function K(){return{type:"text",text:W}}function Go(n){return z(C,0,{maxImageEncodedBytes:C,maxImageDecodedBytes:J},n)===null}function Pr(n){try{return new URL(n).protocol}catch{return}}function Mn(n,o){let e=nn(n.mediaType,n.data,{maxImageEncodedBytes:C,maxImageDecodedBytes:J},o);if(!e.ok)return K();return{type:"image-data",data:e.base64,mediaType:e.mediaType}}function Xr(n,o){if(n.image instanceof URL){if(n.image.protocol==="data:"){let c=nn(n.mediaType,n.image.href,{maxImageEncodedBytes:C,maxImageDecodedBytes:J},o);if(!c.ok)return K();return{type:"image",image:`data:${c.mediaType};base64,${c.base64}`,mediaType:c.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return K();if(!Go(o))return K();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let c=Pr(n.image);if(c==="http:"||c==="https:"){if(!Go(o))return K();return{type:"image",image:n.image,mediaType:n.mediaType}}let b=c==="data:",k=nn(n.mediaType??(b?void 0:"image/png"),n.image,{maxImageEncodedBytes:C,maxImageDecodedBytes:J},o);if(!k.ok)return K();return{type:"image",image:b?`data:${k.mediaType};base64,${k.base64}`:k.base64,mediaType:k.mediaType}}let e=n.image.byteLength,d=Dn(e),l=n.mediaType?.toLowerCase()??"image/png";if(!cn.includes(l)||z(d,e,{maxImageEncodedBytes:C,maxImageDecodedBytes:J},o))return K();return{type:"image",image:n.image,mediaType:l}}function Tn(n,o,e,d=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let k=[],y=!1,I=!1;for(let M of n){if(M&&typeof M==="object"){let a=M;if(a.type==="image"&&typeof a.data==="string"&&typeof a.mediaType==="string"){if(!d){k.push(W),y=!0,I=!0;continue}let rn={type:"image",data:a.data,mediaType:a.mediaType},O=Mn(rn,e);if(O.type==="image-data")o.push({type:"image",data:O.data,mediaType:O.mediaType});else k.push(O.text);y=!0,I=!0;continue}if(a.type==="image"){k.push(W),y=!0,I=!0;continue}if(a.type==="text"&&typeof a.text==="string"){k.push(a.text),y=!0;continue}}let T=Tn(M,o,e,d);k.push(T.value),y||=T.changed,I||=T.mediaChanged}return{value:y?k:n,changed:y,mediaChanged:I}}let l=n;if(l.type==="image"){if(typeof l.data==="string"&&typeof l.mediaType==="string"){if(!d)return{value:W,changed:!0,mediaChanged:!0};let k={type:"image",data:l.data,mediaType:l.mediaType},y=Mn(k,e);if(y.type==="image-data")return o.push({type:"image",data:y.data,mediaType:y.mediaType}),{value:Yr,changed:!0,mediaChanged:!0};return{value:y.text,changed:!0,mediaChanged:!0}}return{value:W,changed:!0,mediaChanged:!0}}let g={},c=!1,b=!1;for(let[k,y]of Object.entries(l)){let I=Tn(y,o,e,d);g[k]=I.value,c||=I.changed,b||=I.mediaChanged}return{value:c?g:n,changed:c,mediaChanged:b}}function on(n){if(typeof n==="string")return $(n);if(Array.isArray(n))return n.map((o)=>on(o));if(n!==null&&typeof n==="object"){let o=n,e={};for(let[d,l]of Object.entries(o))e[d]=on(l);return e}return n}function Yo(n,o=!1,e=bn()){if(typeof n==="string")return{type:o?"error-text":"text",value:$(n)};if(!o&&Hr(n))return{type:"content",value:n.map((d)=>d.type==="image"?Mn(d,e):{type:"text",text:$(d.text)})};if(n!==null&&typeof n==="object"){let d=[],l=Tn(n,d,e,!o);if(!o&&d.length>0)return{type:"content",value:[{type:"text",text:typeof l.value==="string"?$(l.value):JSON.stringify(on(l.value))},...d.map((c)=>({type:"image-data",data:c.data,mediaType:c.mediaType}))]};if(l.mediaChanged)return{type:o?"error-json":"json",value:on(l.value)}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:o?"error-json":"json",value:on(n)};return{type:o?"error-text":"text",value:$(String(n))}}function Cr(n,o,e){let d=e?.assistantToolCallArgKey??"input",l=[],g=bn();if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)l.push({role:"system",content:typeof n==="string"?$(n):n});for(let c of o){let b=c.content;if(typeof b==="string"){if(b.trim().length===0){l.push({role:c.role,content:[{type:"text",text:Bn}]});continue}l.push({role:c.role,content:$(b)});continue}let k=[],y=[];if(b.length===0){l.push({role:c.role,content:[{type:"text",text:Bn}]});continue}for(let I of b)switch(I.type){case"text":k.push({type:"text",text:$(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"reasoning":k.push({type:"reasoning",text:$(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"image":k.push(Xr(I,g));break;case"file":k.push({type:"text",text:qn(I.path,$(I.content))});break;case"tool-call":if(c.role==="assistant")k.push({type:"tool-call",toolCallId:I.toolCallId,toolName:I.toolName,[d]:I.input,...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"tool-result":{y.push({type:"tool-result",toolCallId:I.toolCallId,toolName:I.toolName,output:Yo(I.output,I.isError??!1,g)});break}}if(k.length>0)Vo(l,{role:c.role,content:k});if(y.length>0)Vo(l,{role:"tool",content:y})}return l}var rs=["show","hide","subscription"];function Ho(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function Zr(n,o){if(!n&&!o)return;let e=n?.metadata,d=o?.metadata,l={...n??{},...o??{}};if(Ho(e)&&Ho(d))l.metadata={...e,...d};return l}var en={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},hr=void 0;function Wr(n,o){if(typeof n==="string"&&n.toLowerCase()in en)return n.toLowerCase();return o?void 0:void 0}function Po(n,o){let e=typeof n==="string"?n.toLowerCase():void 0;if(e&&e in en)return en[e];if(o?.fallbackEffort)return en[o.fallbackEffort];return}function Jr(n){let o=Po(n.effort,{fallbackEffort:n.fallbackEffort});if(o===void 0)return;if(o<=0)return 0;let e=n.minimumBudget??1;if(n.maxBudget<e)return;let d=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(d*o),e),n.maxBudget)}var Xo={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"};function Kr(n){return n==="cline"||n==="cline-pass"}function yn(n){let o=n?.trim();return o&&o.length>0?o:void 0}function Or(n,o){return yn(n)??o}function mr(n){return yn(n.clientVersion)??yn(n.clientVersionHeaderFallback)??"unknown"}function an(n){return yn(n)}function Co(n){if(!Kr(n.providerId))return;let o=Or(n.source,n.defaultSource),e=an(n.clientName)??`cline-${o}`,d=mr(n),l=an(n.platform)??o,g=an(n.platformVersion)??d;return{...Xo,"User-Agent":`Cline/${d}`,"X-IS-MULTIROOT":n.isMultiRoot===!0?"true":"false","X-CLIENT-TYPE":e,"X-CLIENT-VERSION":d,"X-PLATFORM":l,"X-PLATFORM-VERSION":g,"X-CORE-VERSION":n.coreVersion,"X-Task-ID":n.sessionId}}function jr(n){let o=Co(n);if(!o)return;return Object.assign({},...n.headers,o)}function Qr(n){return n instanceof Error?{name:n.name,message:n.message}:n}var Nr=3;function Sr(n){return Math.max(1,Math.ceil(n/3))}var pr={debug:()=>{},log:()=>{},error:()=>{}};class Z extends Error{constructor(n,o){super(`${n} at position ${o}`);this.position=o}}function Zo(n){return/^[0-9A-Fa-f]$/.test(n)}function P(n){return n>="0"&&n<="9"}function ho(n){return n>=" "}function S(n){return`,:[]/{}()
4
- +`.includes(n)}function Fn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"}function un(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"||n>="0"&&n<="9"}var $n=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,Ln=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function Un(n){return`,[]/{}
5
- +`.includes(n)}function Vn(n){return p(n)||vr.test(n)}var vr=/^[[{\w-]$/;function Gn(n){return n===`
6
- `||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function H(n,o){let e=n.charCodeAt(o);return e===32||e===10||e===9||e===13}function Wo(n,o){let e=n.charCodeAt(o);return e===32||e===9||e===13}function Jo(n,o){let e=n.charCodeAt(o);return e===160||e===6158||e>=8192&&e<=8203||e===8239||e===8287||e===12288||e===65279}function p(n){return Yn(n)||wn(n)}function Yn(n){return n==='"'||n==="“"||n==="”"}function Hn(n){return n==='"'}function wn(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function Pn(n){return n==="'"}function v(n,o){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,d=n.lastIndexOf(o);return d!==-1?n.substring(0,d)+(e?"":n.substring(d+1)):n}function F(n,o){let e=n.length;if(!H(n,e-1))return n+o;while(H(n,e-1))e--;return n.substring(0,e)+o+n.substring(e)}function Ko(n,o,e){return n.substring(0,o)+n.substring(o+e)}function Oo(n){return/[,\n][ \t\r]*$/.test(n)}var tr={"&quot;":'"',"&amp;":"&","&lt;":"<","&gt;":">","&apos;":"'"},Xn=12;function Cn(n){if(n.charAt(0)!=="&")return null;let o=n.indexOf(";");if(o===-1)return null;let e=n.substring(0,o+1),d=tr[e];if(d!==void 0)return{char:d,length:e.length};if(n.charAt(1)==="#"){let l=n.substring(2,o),g=l.charAt(0)==="x"||l.charAt(0)==="X",c=g?l.substring(1):l;if(c.length>0){let b=Number.parseInt(c,g?16:10);if(!Number.isNaN(b)&&b>=0&&b<=1114111)return{char:String.fromCodePoint(b),length:e.length}}}return null}function mo(n){return n!==null&&n.char==='"'}function jo(n){return n!==null&&n.char==="'"}function N(n,o){let e=0;for(let d=0;d<n.length;d++)if(n.charAt(d)===o)e++;return e}function Qo(n,o){switch(o){case")":return N(n,"(")>N(n,")");case"]":return N(n,"[")>N(n,"]");case"}":return N(n,"{")>N(n,"}");default:return!1}}var No={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},xr={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
7
- `,r:"\r",t:"\t"};function Zn(n){let o=0,e="";if(y(["```","[```","{```"]),!g())Xe();y(["```","```]","```}"]);let l=M(",");if(l)c();if(Vn(n[o])&&Oo(e)){if(!l)e=F(e,",");Ve()}else if(l)e=v(e,",");while(n[o]==="}"||n[o]==="]")o++,c();if(o>=n.length)return e;An();function g(){c();let u=O()||Ue()||m()||D()||Ge()||vn(!1)||Ye();return c(),u}function c(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,w=o,R=b(u);do if(R=k(),R)R=b(u);while(R);return o>w}function b(u){let w=u?H:Wo,R="";while(!0)if(w(n,o))R+=n[o],o++;else if(Jo(n,o))R+=" ",o++;else break;if(R.length>0)return e+=R,!0;return!1}function k(){if(n[o]==="/"&&n[o+1]==="*"){while(o<n.length&&!zr(n,o))o++;return o+=2,!0}if(n[o]==="/"&&n[o+1]==="/"){while(o<n.length&&n[o]!==`
8
- `)o++;return!0}return!1}function y(u){if(I(u)){if(Fn(n[o]))while(o<n.length&&un(n[o]))o++;return c(),!0}return!1}function I(u){b(!0);for(let w of u){let R=o+w.length;if(n.slice(o,R)===w)return o=R,!0}return!1}function M(u){if(n[o]===u)return e+=n[o],o++,!0;return!1}function T(u){if(n[o]===u)return o++,!0;return!1}function a(){return T("\\")}function rn(){if(c(),n[o]==="."&&n[o+1]==="."&&n[o+2]===".")return o+=3,c(),T(","),!0;return!1}function O(){if(n[o]==="{"){if(e+="{",o++,c(),T(","))c();let u=!0;while(o<n.length&&n[o]!=="}"){let w;if(!u){if(w=M(","),!w)e=F(e,",");c()}else w=!0;if(rn(),!(m()||vn(!0))){if(n[o]==="}"||n[o]==="{"||n[o]==="]"||n[o]==="["||n[o]===void 0){if(!u)e=v(e,",")}else Ce();break}c();let V=M(":"),Q=o>=n.length;if(!V)if(Vn(n[o])||Q)e=F(e,":");else zn();if(!g())if(V||Q)e+="null";else zn();u=!1}if(n[o]==="}")e+="}",o++;else e=F(e,"}");return!0}return!1}function Ue(){if(n[o]==="["){if(e+="[",o++,c(),T(","))c();let u=!0;while(o<n.length&&n[o]!=="]"){if(!u){if(!M(","))e=F(e,",")}if(rn(),!g()){if(!u)e=v(e,",");break}u=!1}if(n[o]==="]")e+="]",o++;else e=F(e,"]");return!0}return!1}function Ve(){let u=!0,w=!0;while(w){if(!u){if(!M(","))e=F(e,",")}else u=!1;w=g()}if(!w)e=v(e,",");e=`[
9
- ${e}
10
- ]`}function m(){let u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,w=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,R=n[o]==="\\";if(R){if(o++,!p(n[o]))An()}let V=n[o]==="&"?Cn(n.slice(o,o+Xn)):null,Q=mo(V)||jo(V);if(p(n[o])||Q){let no=Hn(n[o])?Hn:Pn(n[o])?Pn:wn(n[o])?wn:Yn,dn=o,ln=e.length,E='"';o+=Q&&V?V.length:1;while(!0){if(o>=n.length){let B=tn(o-1);if(!u&&S(n.charAt(B)))return o=dn,e=e.substring(0,ln),m(!0);return E=F(E,'"'),e+=E,!0}if(o===w)return E=F(E,'"'),e+=E,!0;let G=Q&&n[o]==="&"?Cn(n.slice(o,o+Xn)):null;if(G&&V?G.char===V.char:no(n[o])){let B=o,Rn=E.length;if(E+='"',o+=G?G.length:1,e+=E,c(!1),u||o>=n.length||S(n[o])&&!Qo(E,n[o])||p(n[o])&&!He(o)||P(n[o]))return pn(),!0;if(n[o]==="\\")An();let X=tn(B-1),oo=n.charAt(X);if(oo===",")return o=dn,e=e.substring(0,ln),m(!1,X);if(S(oo))return o=dn,e=e.substring(0,ln),m(!0);e=e.substring(0,ln),o=B+(G?G.length:1),E=`${E.substring(0,Rn)}\\${E.substring(Rn)}`}else if(u&&Un(n[o])){if(n[o-1]===":"&&$n.test(n.substring(dn+1,o+2)))while(o<n.length&&Ln.test(n[o]))E+=n[o],o++;return E=F(E,'"'),e+=E,pn(),!0}else if(G){let B=G.char;if(B==='"')E+="\\\"";else if(Gn(B))E+=No[B];else E+=B;o+=G.length}else if(n[o]==="\\"){let B=n.charAt(o+1);if(xr[B]!==void 0)E+=n.slice(o,o+2),o+=2;else if(B==="u"){let X=2;while(X<6&&Zo(n[o+X]))X++;if(X===6)E+=n.slice(o,o+6),o+=6;else if(o+X>=n.length)o=n.length;else Ze()}else if(B===`
11
- `)E+="\\n",o+=2;else E+=B,o+=2}else{let B=n.charAt(o);if(B==='"'&&n[o-1]!=="\\")E+=`\\${B}`,o++;else if(Gn(B))E+=No[B],o++;else{if(!ho(B))Pe(B);E+=B,o++}}if(R)a()}}return!1}function pn(){let u=!1;c();while(n[o]==="+"){u=!0,o++,c(),e=v(e,'"',!0);let w=e.length;if(m())e=Ko(e,w,1);else e=F(e,'"')}return u}function D(){let u=o,w="",R=!1;if(n[o]==="-"){if(w+=n[o],o++,!P(n[o])&&xn())w+="0"}if(n[o]==="0"&&P(n[o+1]))R=!0;while(P(n[o]))w+=n[o],o++;if(n[o]==="."){if(w===""||w==="-")w+="0";if(w+=n[o],o++,!P(n[o]))w+="0";while(P(n[o]))w+=n[o],o++}if(o>u){if(n[o]==="e"||n[o]==="E"){if(w==="-")R=!0;if(w+=n[o],o++,n[o]==="-"||n[o]==="+")w+=n[o],o++;if(!P(n[o]))w+="0";while(P(n[o]))w+=n[o],o++}if(!xn())return o=u,!1;return e+=R?`"${n.substring(u,o)}"`:w,!0}return!1}function Ge(){return j("true","true")||j("false","false")||j("null","null")||j("True","true")||j("False","false")||j("None","null")}function j(u,w){if(n.slice(o,o+u.length)===u&&!un(n[o+u.length]))return e+=w,o+=u.length,!0;return!1}function vn(u){let w=o;if(Fn(n[o])){while(o<n.length&&un(n[o]))o++;let R=o;while(H(n,R))R++;if(n[R]==="("){if(o=R+1,g(),n[o]===")"){if(o++,n[o]===";")o++}return!0}}while(o<n.length&&!Un(n[o])&&!p(n[o])&&(!u||n[o]!==":"))o++;if(n[o-1]===":"&&$n.test(n.substring(w,o+2)))while(o<n.length&&Ln.test(n[o]))o++;if(o>w){while(H(n,o-1)&&o>0)o--;let R=n.slice(w,o);if(e+=R==="undefined"?"null":JSON.stringify(R),n[o]==='"')o++;return!0}}function Ye(){if(n[o]==="/"){let u=o;o++;while(o<n.length&&(n[o]!=="/"||n[o-1]==="\\"))o++;return o++,e+=JSON.stringify(n.substring(u,o)),!0}}function tn(u){let w=u;while(w>0&&H(n,w))w--;return w}function He(u){let w=u+1;while(w<n.length&&H(n,w))w++;return w>=n.length||S(n[w])}function xn(){return o>=n.length||S(n[o])||H(n,o)}function Pe(u){throw new Z(`Invalid character ${JSON.stringify(u)}`,o)}function An(){throw new Z(`Unexpected character ${JSON.stringify(n[o])}`,o)}function Xe(){throw new Z("Unexpected end of json string",n.length)}function Ce(){throw new Z("Object key expected",o)}function zn(){throw new Z("Colon expected",o)}function Ze(){let u=n.slice(o,o+6);throw new Z(`Invalid unicode character "${u}"`,o)}}function zr(n,o){return n[o]==="*"&&n[o+1]==="/"}var nd=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function od(n){let o=n.match(nd);if(!o)return;let[,e,d]=o,l=d.trim();if(!l)return;let g=l[0];if(g==='"'||g==="{"||g==="["||l==="true"||l==="false"||l==="null"||Number.isFinite(Number(l)))return;return JSON.parse(`{"${e}":${JSON.stringify(l)}}`)}var ed=[(n)=>JSON.parse(n),(n)=>JSON.parse(Zn(n)),od];function rd(n){if(typeof n!=="string")return n;let o=n.trimStart();if(o[0]!=="{"&&o[0]!=="[")return n;for(let e of ed)try{let d=e(o);if(d!==void 0)return d}catch{}return n}function dd(n){let o=new WeakSet;try{return JSON.stringify(n,(d,l)=>{if(typeof l==="bigint")return l.toString();if(l&&typeof l==="object"){if(o.has(l))return"[Circular]";o.add(l)}return l})??"null"}catch{return String(n)}}function ld(n){try{return JSON.parse(n)}catch{return}}function t(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function sd(n){let o=n.type;if(typeof o==="string")return[o];return Array.isArray(o)?o.filter((e)=>typeof e==="string"):[]}function hn(n,o){if(sd(n).includes(o))return!0;for(let d of["anyOf","oneOf","allOf"]){let l=n[d];if(Array.isArray(l)&&l.some((g)=>t(g)&&hn(g,o)))return!0}return!1}function fd(n,o){if(typeof n!=="string")return n;let e=n.trim(),d=hn(o,"array"),l=hn(o,"object");if((!d||!e.startsWith("["))&&(!l||!e.startsWith("{")))return n;try{let g=JSON.parse(e);if(Array.isArray(g))return d?g:n;if(t(g))return l?g:n;return n}catch{return n}}function Wn(n,o){let e=fd(n,o);if(Array.isArray(e)){let c=o.items;if(!t(c))return e;let b=!1,k=e.map((y)=>{let I=Wn(y,c);return b||=I!==y,I});return b?k:e}if(!t(e))return e;let d=o.properties;if(!t(d))return e;let l=!1,g={...e};for(let[c,b]of Object.entries(d)){if(!(c in e)||!t(b))continue;let k=Wn(e[c],b);if(k!==e[c])g[c]=k,l=!0}return l?g:e}function gd(n){return Object.fromEntries(Object.entries(n).filter(([,o])=>o!==void 0))}function cd(n){let o=n.replaceAll("\\","/"),e=o.lastIndexOf("/");return(e>=0?o.slice(e+1):o).toLowerCase()}function id(n){return n==="win32"?"powershell":"/bin/bash"}function bd(n,o){let e=cd(n);if(e==="powershell"||e==="powershell.exe"||e==="pwsh"||e==="pwsh.exe")return["-NoProfile","-NonInteractive","-Command",o];if(e==="cmd"||e==="cmd.exe")return["/d","/s","/c",o];return["-c",o]}function yd(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function ud(n){let o=n?.trim();return o?o:void 0}function So(n,o){if(n.length<=o)return n;return`${n.slice(0,o-1)}…`}function wd(n,o="/",e=100){if(!n||n.length<=e)return n||"";let d=n.split(o)?.shift()?.trim()?.slice(0,e-1);return d?`${d}…`:So(n,e)}function kd(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function Id(n){if(!n)return"(unknown-date)";let o=new Date(n);if(Number.isNaN(o.getTime()))return n;return o.toLocaleString("en-US",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0})}function Ad(n){let o=Math.max(0,Math.floor(n/1000)),e=Math.floor(o/86400),d=Math.floor(o%86400/3600),l=Math.floor(o%3600/60),g=o%60;if(e>0)return`${e}d ${d}h`;if(d>0)return`${d}h ${l}m`;if(l>0)return`${l}m ${g}s`;return`${g}s`}import{z as po}from"zod";function Rd(n,o){let e=n.safeParse(o);if(!e.success)throw Error(po.prettifyError(e.error));return e.data}function Jn(n){return po.toJSONSchema(n)}function Kn(n){return n==="cline"||n==="cline-pass"}var vo=`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.
3
+ </file_content>`}function Rr(n,o="act"){return`<user_input mode="${o}">${n}</user_input>`}function Dr(n,o){return`<user_command slash="${o}">${n}</user_command>`}function ur(n,o){return`<mode_notice>The user switched from ${n} mode to ${o} mode before sending this message.</mode_notice>`}function Er(){let n=null;return{record(o,d){if(o===d)return;if(n){n=n.from===d?null:{from:n.from,to:d};return}n={from:o,to:d}},consume(){let o=n;return n=null,o}}}function qr(n,o){let d=n.trim(),f=new RegExp(`^<${o}\\b([^>]*)>([\\s\\S]*?)<\\/${o}>$`,"i").exec(d);if(!f)return;return{attrs:f[1]??"",content:f[2]??""}}function Mr(n,o){return new RegExp(`${o}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function Eo(n){if(!n?.trim())return;let o=qr(n,"user_command");if(!o)return;let d=Mr(o.attrs,"slash");if(!d)return;return{slash:d,content:o.content.trim()}}function qo(n){if(!n?.trim())return"";let o=n.trim();for(let d of["user_input","user_command"]){let f=Fo(o,d);o=(f!==o?f:o.replace(new RegExp(`<${d}[^>]*>`,"g"),"")).trim()}return o}function Mo(n){if(!n?.trim())return"";return Fr(n,"mode_notice").trim()}function Fr(n,o){let d=`<${o}>`,f=`</${o}>`,l=n,c=l.indexOf(d);while(c!==-1){let g=l.indexOf(f,c+d.length);if(g===-1)break;l=l.slice(0,c)+l.slice(g+f.length),c=l.indexOf(d,c)}return l}function $r(n){let o=Mo(qo(n)),d=Eo(n);if(!d)return o;if(d.slash.toLowerCase()==="team"){let l=o.toLowerCase().startsWith("spawn a team of agents for the following task:")?o.slice(46).trim():o;return l?`/team ${l}`:"/team"}return o?`/${d.slash} ${o}`:`/${d.slash}`}function Fo(n,o){if(!n?.trim())return"";if(!o)return n;let d=new RegExp(`<${o}\\b[^>]*>([\\s\\S]*?)</${o}>`,"g");return n.replace(d,"$1")}var C="[media omitted: invalid or exceeds size limit]",cn=["image/png","image/jpeg","image/gif","image/webp"],ir=5242880,J=5242880,Q=6291456,Tr=8388608;function Gr(n){return n.length}function $o(n){let o=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-o}function Ur(n=5242880){return Math.floor(n*3/4)}function un(n){return Math.ceil(n/3)*4}function io(n={}){return{maxImageEncodedBytes:n.maxImageEncodedBytes??5242880,maxImageDecodedBytes:n.maxImageDecodedBytes??6291456,maxTotalMediaBytes:n.maxTotalMediaBytes??8388608}}function bn(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function gn(n,o){n.omittedImages+=1,n.omittedReasons[o]=(n.omittedReasons[o]??0)+1}function z(n,o,d,f){let l=io(d);if(n>l.maxImageEncodedBytes){let c={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${l.maxImageEncodedBytes} byte encoded limit`};return gn(f,c.reason),c}if(o>l.maxImageDecodedBytes){let c={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l.maxImageDecodedBytes} byte decoded limit`};return gn(f,c.reason),c}if(f.totalEncodedBytes+n>l.maxTotalMediaBytes){let c={ok:!1,reason:"total_limit",message:`Image media exceeds the ${l.maxTotalMediaBytes} byte total media limit`};return gn(f,c.reason),c}return f.totalEncodedBytes+=n,f.keptImages+=1,null}function To(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function Yr(n){return n.length>0&&Go(n,0,n.length)}function Go(n,o,d){let f=d-o;if(f%4!==0)return!1;let l=d;if(f>=2&&n.charCodeAt(d-2)===61&&n.charCodeAt(d-1)===61)l-=2;else if(f>=1&&n.charCodeAt(d-1)===61)l-=1;for(let c=o;c<l;c++)if(!To(n.charCodeAt(c)))return!1;for(let c=l;c<d;c++)if(n.charCodeAt(c)!==61)return!1;return!0}function Lr(n,o,d){return d-o>=5&&(n.charCodeAt(o)|32)===100&&(n.charCodeAt(o+1)|32)===97&&(n.charCodeAt(o+2)|32)===116&&(n.charCodeAt(o+3)|32)===97&&n.charCodeAt(o+4)===58}function Pr(n){let o=0,d=n.length;while(o<d&&/\s/.test(n[o]??""))o+=1;while(d>o&&/\s/.test(n[d-1]??""))d-=1;return{start:o,end:d}}function Xr(n,o,d){if(!Lr(n,o,d))return;let f=o+5,l=n.indexOf(",",f);if(l===-1||l>=d)return;if(l-f>128)return;let c=n.slice(f,l).toLowerCase(),g=";base64";if(!c.endsWith(g))return;let y=c.slice(0,-g.length);if(!y||y.includes(";"))return;return{mediaType:y,base64Start:l+1,base64End:d}}function Uo(n,o,d={}){let f=d.maxEncodedBytes??5242880,l=d.maxDecodedBytes??6291456,c=new Set(d.supportedMediaTypes??cn),g=n?.toLowerCase(),y=Pr(o),_=y.start,w=y.end,I=Xr(o,y.start,y.end);if(I){if(g&&g!==I.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${I.mediaType}`};g=I.mediaType,_=I.base64Start,w=I.base64End}if(!g||!c.has(g))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let $=w-_;if($===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if($>f)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${f} byte encoded limit`};if(!Go(o,_,w))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let i=o.slice(_,w),F=$o(i);if(F>l)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l} byte decoded limit`};return{ok:!0,mediaType:g,base64:i,encodedBytes:$,decodedBytes:F}}function nn(n,o,d,f){let l=Uo(n,o,{maxEncodedBytes:d.maxImageEncodedBytes,maxDecodedBytes:d.maxImageDecodedBytes});if(!l.ok)return gn(f,l.reason),l;let c=z(l.encodedBytes,l.decodedBytes,d,f);if(c)return c;return l}function G(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var En="ERROR: EMPTY CONTENT",Hr="[image attached]";function Yo(n,o){let d=n[n.length-1];if(o.role==="tool"&&d?.role==="tool"&&Array.isArray(d.content)&&Array.isArray(o.content)){d.content.push(...o.content);return}n.push(o)}function Zr(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((o)=>{if(!o||typeof o!=="object")return!1;let d=o;if(d.type==="text")return typeof d.text==="string";if(d.type==="image")return typeof d.data==="string"&&typeof d.mediaType==="string";return!1})}function j(){return{type:"text",text:C}}function Lo(n){return z(J,0,{maxImageEncodedBytes:J,maxImageDecodedBytes:Q},n)===null}function Vr(n){try{return new URL(n).protocol}catch{return}}function qn(n,o){let d=nn(n.mediaType,n.data,{maxImageEncodedBytes:J,maxImageDecodedBytes:Q},o);if(!d.ok)return j();return{type:"image-data",data:d.base64,mediaType:d.mediaType}}function Jr(n,o){if(n.image instanceof URL){if(n.image.protocol==="data:"){let g=nn(n.mediaType,n.image.href,{maxImageEncodedBytes:J,maxImageDecodedBytes:Q},o);if(!g.ok)return j();return{type:"image",image:`data:${g.mediaType};base64,${g.base64}`,mediaType:g.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return j();if(!Lo(o))return j();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let g=Vr(n.image);if(g==="http:"||g==="https:"){if(!Lo(o))return j();return{type:"image",image:n.image,mediaType:n.mediaType}}let y=g==="data:",_=nn(n.mediaType??(y?void 0:"image/png"),n.image,{maxImageEncodedBytes:J,maxImageDecodedBytes:Q},o);if(!_.ok)return j();return{type:"image",image:y?`data:${_.mediaType};base64,${_.base64}`:_.base64,mediaType:_.mediaType}}let d=n.image.byteLength,f=un(d),l=n.mediaType?.toLowerCase()??"image/png";if(!cn.includes(l)||z(f,d,{maxImageEncodedBytes:J,maxImageDecodedBytes:Q},o))return j();return{type:"image",image:n.image,mediaType:l}}function Mn(n,o,d,f=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let _=[],w=!1,I=!1;for(let $ of n){if($&&typeof $==="object"){let F=$;if(F.type==="image"&&typeof F.data==="string"&&typeof F.mediaType==="string"){if(!f){_.push(C),w=!0,I=!0;continue}let rn={type:"image",data:F.data,mediaType:F.mediaType},O=qn(rn,d);if(O.type==="image-data")o.push({type:"image",data:O.data,mediaType:O.mediaType});else _.push(O.text);w=!0,I=!0;continue}if(F.type==="image"){_.push(C),w=!0,I=!0;continue}if(F.type==="text"&&typeof F.text==="string"){_.push(F.text),w=!0;continue}}let i=Mn($,o,d,f);_.push(i.value),w||=i.changed,I||=i.mediaChanged}return{value:w?_:n,changed:w,mediaChanged:I}}let l=n;if(l.type==="image"){if(typeof l.data==="string"&&typeof l.mediaType==="string"){if(!f)return{value:C,changed:!0,mediaChanged:!0};let _={type:"image",data:l.data,mediaType:l.mediaType},w=qn(_,d);if(w.type==="image-data")return o.push({type:"image",data:w.data,mediaType:w.mediaType}),{value:Hr,changed:!0,mediaChanged:!0};return{value:w.text,changed:!0,mediaChanged:!0}}return{value:C,changed:!0,mediaChanged:!0}}let c={},g=!1,y=!1;for(let[_,w]of Object.entries(l)){let I=Mn(w,o,d,f);c[_]=I.value,g||=I.changed,y||=I.mediaChanged}return{value:g?c:n,changed:g,mediaChanged:y}}function on(n){if(typeof n==="string")return G(n);if(Array.isArray(n))return n.map((o)=>on(o));if(n!==null&&typeof n==="object"){let o=n,d={};for(let[f,l]of Object.entries(o))d[f]=on(l);return d}return n}function Po(n,o=!1,d=bn()){if(typeof n==="string")return{type:o?"error-text":"text",value:G(n)};if(!o&&Zr(n))return{type:"content",value:n.map((f)=>f.type==="image"?qn(f,d):{type:"text",text:G(f.text)})};if(n!==null&&typeof n==="object"){let f=[],l=Mn(n,f,d,!o);if(!o&&f.length>0)return{type:"content",value:[{type:"text",text:typeof l.value==="string"?G(l.value):JSON.stringify(on(l.value))},...f.map((g)=>({type:"image-data",data:g.data,mediaType:g.mediaType}))]};if(l.mediaChanged)return{type:o?"error-json":"json",value:on(l.value)}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:o?"error-json":"json",value:on(n)};return{type:o?"error-text":"text",value:G(String(n))}}function Wr(n,o,d){let f=d?.assistantToolCallArgKey??"input",l=[],c=bn();if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)l.push({role:"system",content:typeof n==="string"?G(n):n});for(let g of o){let y=g.content;if(typeof y==="string"){if(y.trim().length===0){l.push({role:g.role,content:[{type:"text",text:En}]});continue}l.push({role:g.role,content:G(y)});continue}let _=[],w=[];if(y.length===0){l.push({role:g.role,content:[{type:"text",text:En}]});continue}for(let I of y)switch(I.type){case"text":_.push({type:"text",text:G(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"reasoning":_.push({type:"reasoning",text:G(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"image":_.push(Jr(I,c));break;case"file":_.push({type:"text",text:Dn(I.path,G(I.content))});break;case"tool-call":if(g.role==="assistant")_.push({type:"tool-call",toolCallId:I.toolCallId,toolName:I.toolName,[f]:I.input,...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"tool-result":{w.push({type:"tool-result",toolCallId:I.toolCallId,toolName:I.toolName,output:Po(I.output,I.isError??!1,c)});break}}if(_.length>0)Yo(l,{role:g.role,content:_});if(w.length>0)Yo(l,{role:"tool",content:w})}return l}var re=["show","hide","subscription"];function Xo(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function Kr(n,o){if(!n&&!o)return;let d=n?.metadata,f=o?.metadata,l={...n??{},...o??{}};if(Xo(d)&&Xo(f))l.metadata={...d,...f};return l}var dn={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},Cr=void 0;function Qr(n,o){if(typeof n==="string"&&n.toLowerCase()in dn)return n.toLowerCase();return o?void 0:void 0}function Ho(n,o){let d=typeof n==="string"?n.toLowerCase():void 0;if(d&&d in dn)return dn[d];if(o?.fallbackEffort)return dn[o.fallbackEffort];return}function jr(n){let o=Ho(n.effort,{fallbackEffort:n.fallbackEffort});if(o===void 0)return;if(o<=0)return 0;let d=n.minimumBudget??1;if(n.maxBudget<d)return;let f=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(f*o),d),n.maxBudget)}function Or(n){return n instanceof Error?{name:n.name,message:n.message}:n}var hr=3;function Zo(n){return Math.max(1,Math.ceil(n/3))}function Fn(n){let o=new WeakSet;try{return JSON.stringify(n,(d,f)=>{if(typeof f==="bigint")return f.toString();if(typeof f!=="object"||f===null)return f;if(o.has(f))return"[Circular]";return o.add(f),f})??""}catch{return String(n??"")}}function Nr(n){let o;try{o=JSON.stringify({systemPrompt:n.systemPrompt,messages:n.messages,tools:n.tools})}catch{o=[Fn(n.systemPrompt),Fn(n.messages),Fn(n.tools)].join(`
4
+ `)}return Zo(o.length)}var Sr={debug:()=>{},log:()=>{},error:()=>{}};class W extends Error{constructor(n,o){super(`${n} at position ${o}`);this.position=o}}function Vo(n){return/^[0-9A-Fa-f]$/.test(n)}function Z(n){return n>="0"&&n<="9"}function Jo(n){return n>=" "}function a(n){return`,:[]/{}()
5
+ +`.includes(n)}function $n(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"}function yn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"||n>="0"&&n<="9"}var Tn=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,Gn=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function Un(n){return`,[]/{}
6
+ +`.includes(n)}function Yn(n){return p(n)||mr.test(n)}var mr=/^[[{\w-]$/;function Ln(n){return n===`
7
+ `||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function H(n,o){let d=n.charCodeAt(o);return d===32||d===10||d===9||d===13}function Wo(n,o){let d=n.charCodeAt(o);return d===32||d===9||d===13}function Ko(n,o){let d=n.charCodeAt(o);return d===160||d===6158||d>=8192&&d<=8203||d===8239||d===8287||d===12288||d===65279}function p(n){return Pn(n)||wn(n)}function Pn(n){return n==='"'||n===""||n===""}function Xn(n){return n==='"'}function wn(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function Hn(n){return n==="'"}function v(n,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,f=n.lastIndexOf(o);return f!==-1?n.substring(0,f)+(d?"":n.substring(f+1)):n}function T(n,o){let d=n.length;if(!H(n,d-1))return n+o;while(H(n,d-1))d--;return n.substring(0,d)+o+n.substring(d)}function Co(n,o,d){return n.substring(0,o)+n.substring(o+d)}function Qo(n){return/[,\n][ \t\r]*$/.test(n)}var ar={"&quot;":'"',"&amp;":"&","&lt;":"<","&gt;":">","&apos;":"'"},Zn=12;function Vn(n){if(n.charAt(0)!=="&")return null;let o=n.indexOf(";");if(o===-1)return null;let d=n.substring(0,o+1),f=ar[d];if(f!==void 0)return{char:f,length:d.length};if(n.charAt(1)==="#"){let l=n.substring(2,o),c=l.charAt(0)==="x"||l.charAt(0)==="X",g=c?l.substring(1):l;if(g.length>0){let y=Number.parseInt(g,c?16:10);if(!Number.isNaN(y)&&y>=0&&y<=1114111)return{char:String.fromCodePoint(y),length:d.length}}}return null}function jo(n){return n!==null&&n.char==='"'}function Oo(n){return n!==null&&n.char==="'"}function m(n,o){let d=0;for(let f=0;f<n.length;f++)if(n.charAt(f)===o)d++;return d}function ho(n,o){switch(o){case")":return m(n,"(")>m(n,")");case"]":return m(n,"[")>m(n,"]");case"}":return m(n,"{")>m(n,"}");default:return!1}}var No={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},pr={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
8
+ `,r:"\r",t:"\t"};function Jn(n){let o=0,d="";if(w(["```","[```","{```"]),!c())Vd();w(["```","```]","```}"]);let l=$(",");if(l)g();if(Yn(n[o])&&Qo(d)){if(!l)d=T(d,",");Ld()}else if(l)d=v(d,",");while(n[o]==="}"||n[o]==="]")o++,g();if(o>=n.length)return d;_n();function c(){g();let k=O()||Yd()||h()||q()||Pd()||pn(!1)||Xd();return g(),k}function g(){let k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,A=o,R=y(k);do if(R=_(),R)R=y(k);while(R);return o>A}function y(k){let A=k?H:Wo,R="";while(!0)if(A(n,o))R+=n[o],o++;else if(Ko(n,o))R+=" ",o++;else break;if(R.length>0)return d+=R,!0;return!1}function _(){if(n[o]==="/"&&n[o+1]==="*"){while(o<n.length&&!vr(n,o))o++;return o+=2,!0}if(n[o]==="/"&&n[o+1]==="/"){while(o<n.length&&n[o]!==`
9
+ `)o++;return!0}return!1}function w(k){if(I(k)){if($n(n[o]))while(o<n.length&&yn(n[o]))o++;return g(),!0}return!1}function I(k){y(!0);for(let A of k){let R=o+A.length;if(n.slice(o,R)===A)return o=R,!0}return!1}function $(k){if(n[o]===k)return d+=n[o],o++,!0;return!1}function i(k){if(n[o]===k)return o++,!0;return!1}function F(){return i("\\")}function rn(){if(g(),n[o]==="."&&n[o+1]==="."&&n[o+2]===".")return o+=3,g(),i(","),!0;return!1}function O(){if(n[o]==="{"){if(d+="{",o++,g(),i(","))g();let k=!0;while(o<n.length&&n[o]!=="}"){let A;if(!k){if(A=$(","),!A)d=T(d,",");g()}else A=!0;if(rn(),!(h()||pn(!0))){if(n[o]==="}"||n[o]==="{"||n[o]==="]"||n[o]==="["||n[o]===void 0){if(!k)d=v(d,",")}else Jd();break}g();let L=$(":"),S=o>=n.length;if(!L)if(Yn(n[o])||S)d=T(d,":");else tn();if(!c())if(L||S)d+="null";else tn();k=!1}if(n[o]==="}")d+="}",o++;else d=T(d,"}");return!0}return!1}function Yd(){if(n[o]==="["){if(d+="[",o++,g(),i(","))g();let k=!0;while(o<n.length&&n[o]!=="]"){if(!k){if(!$(","))d=T(d,",")}if(rn(),!c()){if(!k)d=v(d,",");break}k=!1}if(n[o]==="]")d+="]",o++;else d=T(d,"]");return!0}return!1}function Ld(){let k=!0,A=!0;while(A){if(!k){if(!$(","))d=T(d,",")}else k=!1;A=c()}if(!A)d=v(d,",");d=`[
10
+ ${d}
11
+ ]`}function h(){let k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,R=n[o]==="\\";if(R){if(o++,!p(n[o]))_n()}let L=n[o]==="&"?Vn(n.slice(o,o+Zn)):null,S=jo(L)||Oo(L);if(p(n[o])||S){let zn=Xn(n[o])?Xn:Hn(n[o])?Hn:wn(n[o])?wn:Pn,fn=o,ln=d.length,u='"';o+=S&&L?L.length:1;while(!0){if(o>=n.length){let M=vn(o-1);if(!k&&a(n.charAt(M)))return o=fn,d=d.substring(0,ln),h(!0);return u=T(u,'"'),d+=u,!0}if(o===A)return u=T(u,'"'),d+=u,!0;let P=S&&n[o]==="&"?Vn(n.slice(o,o+Zn)):null;if(P&&L?P.char===L.char:zn(n[o])){let M=o,In=u.length;if(u+='"',o+=P?P.length:1,d+=u,g(!1),k||o>=n.length||a(n[o])&&!ho(u,n[o])||p(n[o])&&!Hd(o)||Z(n[o]))return an(),!0;if(n[o]==="\\")_n();let V=vn(M-1),no=n.charAt(V);if(no===",")return o=fn,d=d.substring(0,ln),h(!1,V);if(a(no))return o=fn,d=d.substring(0,ln),h(!0);d=d.substring(0,ln),o=M+(P?P.length:1),u=`${u.substring(0,In)}\\${u.substring(In)}`}else if(k&&Un(n[o])){if(n[o-1]===":"&&Tn.test(n.substring(fn+1,o+2)))while(o<n.length&&Gn.test(n[o]))u+=n[o],o++;return u=T(u,'"'),d+=u,an(),!0}else if(P){let M=P.char;if(M==='"')u+="\\\"";else if(Ln(M))u+=No[M];else u+=M;o+=P.length}else if(n[o]==="\\"){let M=n.charAt(o+1);if(pr[M]!==void 0)u+=n.slice(o,o+2),o+=2;else if(M==="u"){let V=2;while(V<6&&Vo(n[o+V]))V++;if(V===6)u+=n.slice(o,o+6),o+=6;else if(o+V>=n.length)o=n.length;else Wd()}else if(M===`
12
+ `)u+="\\n",o+=2;else u+=M,o+=2}else{let M=n.charAt(o);if(M==='"'&&n[o-1]!=="\\")u+=`\\${M}`,o++;else if(Ln(M))u+=No[M],o++;else{if(!Jo(M))Zd(M);u+=M,o++}}if(R)F()}}return!1}function an(){let k=!1;g();while(n[o]==="+"){k=!0,o++,g(),d=v(d,'"',!0);let A=d.length;if(h())d=Co(d,A,1);else d=T(d,'"')}return k}function q(){let k=o,A="",R=!1;if(n[o]==="-"){if(A+=n[o],o++,!Z(n[o])&&xn())A+="0"}if(n[o]==="0"&&Z(n[o+1]))R=!0;while(Z(n[o]))A+=n[o],o++;if(n[o]==="."){if(A===""||A==="-")A+="0";if(A+=n[o],o++,!Z(n[o]))A+="0";while(Z(n[o]))A+=n[o],o++}if(o>k){if(n[o]==="e"||n[o]==="E"){if(A==="-")R=!0;if(A+=n[o],o++,n[o]==="-"||n[o]==="+")A+=n[o],o++;if(!Z(n[o]))A+="0";while(Z(n[o]))A+=n[o],o++}if(!xn())return o=k,!1;return d+=R?`"${n.substring(k,o)}"`:A,!0}return!1}function Pd(){return N("true","true")||N("false","false")||N("null","null")||N("True","true")||N("False","false")||N("None","null")}function N(k,A){if(n.slice(o,o+k.length)===k&&!yn(n[o+k.length]))return d+=A,o+=k.length,!0;return!1}function pn(k){let A=o;if($n(n[o])){while(o<n.length&&yn(n[o]))o++;let R=o;while(H(n,R))R++;if(n[R]==="("){if(o=R+1,c(),n[o]===")"){if(o++,n[o]===";")o++}return!0}}while(o<n.length&&!Un(n[o])&&!p(n[o])&&(!k||n[o]!==":"))o++;if(n[o-1]===":"&&Tn.test(n.substring(A,o+2)))while(o<n.length&&Gn.test(n[o]))o++;if(o>A){while(H(n,o-1)&&o>0)o--;let R=n.slice(A,o);if(d+=R==="undefined"?"null":JSON.stringify(R),n[o]==='"')o++;return!0}}function Xd(){if(n[o]==="/"){let k=o;o++;while(o<n.length&&(n[o]!=="/"||n[o-1]==="\\"))o++;return o++,d+=JSON.stringify(n.substring(k,o)),!0}}function vn(k){let A=k;while(A>0&&H(n,A))A--;return A}function Hd(k){let A=k+1;while(A<n.length&&H(n,A))A++;return A>=n.length||a(n[A])}function xn(){return o>=n.length||a(n[o])||H(n,o)}function Zd(k){throw new W(`Invalid character ${JSON.stringify(k)}`,o)}function _n(){throw new W(`Unexpected character ${JSON.stringify(n[o])}`,o)}function Vd(){throw new W("Unexpected end of json string",n.length)}function Jd(){throw new W("Object key expected",o)}function tn(){throw new W("Colon expected",o)}function Wd(){let k=n.slice(o,o+6);throw new W(`Invalid unicode character "${k}"`,o)}}function vr(n,o){return n[o]==="*"&&n[o+1]==="/"}var xr=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function tr(n){let o=n.match(xr);if(!o)return;let[,d,f]=o,l=f.trim();if(!l)return;let c=l[0];if(c==='"'||c==="{"||c==="["||l==="true"||l==="false"||l==="null"||Number.isFinite(Number(l)))return;return JSON.parse(`{"${d}":${JSON.stringify(l)}}`)}var zr=[(n)=>JSON.parse(n),(n)=>JSON.parse(Jn(n)),tr];function nf(n){if(typeof n!=="string")return n;let o=n.trimStart();if(o[0]!=="{"&&o[0]!=="[")return n;for(let d of zr)try{let f=d(o);if(f!==void 0)return f}catch{}return n}function of(n){let o=new WeakSet;try{return JSON.stringify(n,(f,l)=>{if(typeof l==="bigint")return l.toString();if(l&&typeof l==="object"){if(o.has(l))return"[Circular]";o.add(l)}return l})??"null"}catch{return String(n)}}function df(n){try{return JSON.parse(n)}catch{return}}function x(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function rf(n){let o=n.type;if(typeof o==="string")return[o];return Array.isArray(o)?o.filter((d)=>typeof d==="string"):[]}function Wn(n,o){if(rf(n).includes(o))return!0;for(let f of["anyOf","oneOf","allOf"]){let l=n[f];if(Array.isArray(l)&&l.some((c)=>x(c)&&Wn(c,o)))return!0}return!1}function ff(n,o){if(typeof n!=="string")return n;let d=n.trim(),f=Wn(o,"array"),l=Wn(o,"object");if((!f||!d.startsWith("["))&&(!l||!d.startsWith("{")))return n;try{let c=JSON.parse(d);if(Array.isArray(c))return f?c:n;if(x(c))return l?c:n;return n}catch{return n}}function Kn(n,o){let d=ff(n,o);if(Array.isArray(d)){let g=o.items;if(!x(g))return d;let y=!1,_=d.map((w)=>{let I=Kn(w,g);return y||=I!==w,I});return y?_:d}if(!x(d))return d;let f=o.properties;if(!x(f))return d;let l=!1,c={...d};for(let[g,y]of Object.entries(f)){if(!(g in d)||!x(y))continue;let _=Kn(d[g],y);if(_!==d[g])c[g]=_,l=!0}return l?c:d}function lf(n){if(typeof globalThis.atob==="function")try{let o=globalThis.atob(n),d=Uint8Array.from(o,(f)=>f.charCodeAt(0));return new TextDecoder().decode(d)}catch{return null}if(typeof Buffer<"u")try{return Buffer.from(n,"base64").toString("utf8")}catch{return null}return null}function ef(n){let o=n?.trim();if(!o)return null;try{let d=o.split(".");if(d.length!==3)return null;let f=d[1];if(!f)return null;let l=f.replace(/-/g,"+").replace(/_/g,"/"),c=l.padEnd(l.length+(4-l.length%4)%4,"="),g=lf(c);return g?JSON.parse(g):null}catch{return null}}function sf(n){return Object.fromEntries(Object.entries(n).filter(([,o])=>o!==void 0))}function gf(n){let o=n.replaceAll("\\","/"),d=o.lastIndexOf("/");return(d>=0?o.slice(d+1):o).toLowerCase()}function cf(n){return n==="win32"?"powershell":"/bin/bash"}function bf(n,o){let d=gf(n);if(d==="powershell"||d==="powershell.exe"||d==="pwsh"||d==="pwsh.exe")return["-NoProfile","-NonInteractive","-Command",o];if(d==="cmd"||d==="cmd.exe")return["/d","/s","/c",o];if(d==="wsl"||d==="wsl.exe")return["bash","-c",o];return["-c",o]}function yf(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function wf(n){let o=n?.trim();return o?o:void 0}function So(n,o){if(n.length<=o)return n;return`${n.slice(0,o-1)}…`}function kf(n,o="/",d=100){if(!n||n.length<=d)return n||"";let f=n.split(o)?.shift()?.trim()?.slice(0,d-1);return f?`${f}…`:So(n,d)}function Af(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function _f(n){if(!n)return"(unknown-date)";let o=new Date(n);if(Number.isNaN(o.getTime()))return n;return o.toLocaleString("en-US",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0})}function If(n){let o=Math.max(0,Math.floor(n/1000)),d=Math.floor(o/86400),f=Math.floor(o%86400/3600),l=Math.floor(o%3600/60),c=o%60;if(d>0)return`${d}d ${f}h`;if(f>0)return`${f}h ${l}m`;if(l>0)return`${l}m ${c}s`;return`${c}s`}import{z as mo}from"zod";function Bf(n,o){let d=n.safeParse(o);if(!d.success)throw Error(mo.prettifyError(d.error));return d.data}function Cn(n){return mo.toJSONSchema(n)}function Qn(n){return n==="cline"||n==="cline-pass"}var ao=`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.
12
13
 
13
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.
14
15
  Review each question carefully and answer it with detailed, accurate information.
@@ -43,7 +44,7 @@ When you have completed the task, please provide a summary of what you did and a
43
44
 
44
45
  If user asked a simple question without any coding context, answer it directly without using any tools.
45
46
  {{CLINE_RULES}}
46
- {{CLINE_METADATA}}`,to=`You are Cline, a careful and helpful coding agent that works in the background.
47
+ {{CLINE_METADATA}}`,po=`You are Cline, a careful and helpful coding agent that works in the background.
47
48
  You are tasked to solve an issue reported by the user who you cannot communicate with directly.
48
49
  Your goal is to utilize the tools at your disposal to investigate and answer the question according to user's instructions with the aim to verify that the issue is resolved.
49
50
 
@@ -73,8 +74,25 @@ IMPORTANT:
73
74
  - Always includes tool calls in your response until the task is completed. You should only end the task when all the requirements are met by calling the 'submit_and_exit' tool.
74
75
  - Response without the submit_and_exit tool call will considered not completed and the task will continue.
75
76
  {{CLINE_RULES}}
76
- {{CLINE_METADATA}}`;var On="# Workspace Configuration";function xo(n,o,e){if(e?.trim()?.includes(On))return e.trim();let d=e||JSON.stringify({workspaces:{[n]:{hint:o||n.split("/").at(-1)||n}}},null,2);return`
77
- ${On}
78
- ${d}`}function _d(n){let{ide:o="Terminal Shell",mode:e,platform:d="unknown",workspaceName:l,metadata:g,rules:c,overridePrompt:b,providerId:k}=n,y=n.workspaceRoot??n.rootPath??"",I=Kn(k||"");if(b?.trim()){let T=b.trim();if(I&&g?.trim()&&!T.includes(On))return`${T}
77
+ {{CLINE_METADATA}}`;var jn="# Workspace Configuration",xo=`# Plan / Act Modes
79
78
 
80
- ${xo(y,l,g)}`.trim();return T}return(e==="yolo"?to:vo).replace("{{PLATFORM_NAME}}",d).replace("{{CWD}}",y).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",I?xo(y,l,g):"").replace("{{CLINE_RULES}}",c||"").trim()}var Ed="remote://";import{z as s}from"zod";var zo=s.object({id:s.string(),temperature:s.number().optional(),isR1FormatRequired:s.boolean().optional(),maxTokens:s.number().optional(),contextWindow:s.number().optional(),inputPrice:s.number().optional(),outputPrice:s.number().optional(),supportsImages:s.boolean().optional()}),ne=s.object({models:s.array(zo).optional(),openAiBaseUrl:s.string().optional(),openAiHeaders:s.record(s.string(),s.string()).optional(),azureApiVersion:s.string().optional(),azureIdentity:s.boolean().optional()}),oe=s.object({id:s.string(),thinkingBudgetTokens:s.number().optional()}),ee=s.object({name:s.string(),baseModelId:s.string(),thinkingBudgetTokens:s.number().optional()}),re=s.object({models:s.array(oe).optional(),customModels:s.array(ee).optional(),awsRegion:s.string().optional(),awsUseCrossRegionInference:s.boolean().optional(),awsUseGlobalInference:s.boolean().optional(),awsBedrockUsePromptCache:s.boolean().optional(),awsBedrockEndpoint:s.string().optional()}),de=s.object({id:s.string()}),le=s.object({models:s.array(de).optional()}),se=s.object({id:s.string(),thinkingBudgetTokens:s.number().optional()}),fe=s.object({models:s.array(se).optional(),vertexProjectId:s.string().optional(),vertexRegion:s.string().optional()}),ge=s.object({id:s.string(),thinkingBudgetTokens:s.number().optional(),promptCachingEnabled:s.boolean().optional()}),ce=s.object({models:s.array(ge).optional(),baseUrl:s.string().optional()}),ie=s.object({id:s.string(),thinkingBudgetTokens:s.number().optional()}),be=s.object({models:s.array(ie).optional(),baseUrl:s.string().optional()}),qd=s.object({OpenAiCompatible:ne.optional(),AwsBedrock:re.optional(),Cline:le.optional(),Vertex:fe.optional(),LiteLLM:ce.optional(),Anthropic:be.optional()}),ye=s.object({id:s.string()}),ue=s.object({name:s.string(),url:s.string(),alwaysEnabled:s.boolean().optional(),headers:s.record(s.string(),s.string()).optional()}),mn=s.object({alwaysEnabled:s.boolean(),name:s.string(),contents:s.string()}),kn=s.object({bucket:s.string(),accessKeyId:s.string(),secretAccessKey:s.string(),region:s.string().optional(),endpoint:s.string().optional(),accountId:s.string().optional()}),we=s.object({enabled:s.boolean().optional(),type:s.union([s.literal("s3_access_keys"),s.literal("r2_access_keys"),s.literal("azure_access_keys")]).optional(),s3AccessSettings:kn.optional(),r2AccessSettings:kn.optional(),azureAccessSettings:kn.optional()}),ke=s.object({promptUploading:we.optional()}),Dd=s.object({version:s.string(),providerSettings:qd.optional(),telemetryEnabled:s.boolean().optional(),kanbanEnabled:s.boolean().optional(),mcpMarketplaceEnabled:s.boolean().optional(),allowedMCPServers:s.array(ye).optional(),remoteMCPServers:s.array(ue).optional(),blockPersonalRemoteMCPServers:s.boolean().optional(),yoloModeAllowed:s.boolean().optional(),openTelemetryEnabled:s.boolean().optional(),openTelemetryMetricsExporter:s.string().optional(),openTelemetryLogsExporter:s.string().optional(),openTelemetryOtlpProtocol:s.string().optional(),openTelemetryOtlpEndpoint:s.string().optional(),openTelemetryOtlpHeaders:s.record(s.string(),s.string()).optional(),openTelemetryOtlpMetricsProtocol:s.string().optional(),openTelemetryOtlpMetricsEndpoint:s.string().optional(),openTelemetryOtlpMetricsHeaders:s.record(s.string(),s.string()).optional(),openTelemetryOtlpLogsProtocol:s.string().optional(),openTelemetryOtlpLogsEndpoint:s.string().optional(),openTelemetryOtlpLogsHeaders:s.record(s.string(),s.string()).optional(),openTelemetryMetricExportInterval:s.number().optional(),openTelemetryOtlpInsecure:s.boolean().optional(),openTelemetryLogBatchSize:s.number().optional(),openTelemetryLogBatchTimeout:s.number().optional(),openTelemetryLogMaxQueueSize:s.number().optional(),enterpriseTelemetry:ke.optional(),globalRules:s.array(mn).optional(),globalWorkflows:s.array(mn).optional()}),Bd=s.record(s.string(),s.string());var Md=4317;var Td="127.0.0.1:4317";import jn from"zod";var ad=jn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),Fd=jn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),$d=jn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var Ld="runtime.team.progress.v1",Ud="runtime.team.lifecycle.v1";var Vd="CLINE_ENVIRONMENT",Gd="CLINE_ENVIRONMENT_OVERRIDE",Qn={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"}},Yd="production";function Ie(n){let o=n?.trim().toLowerCase();if(o==="production"||o==="staging"||o==="local")return o;return}function Ae(){if(typeof process>"u"||!process?.env)return{};return process.env}function Re(){let n=Ae();return Ie(n.CLINE_ENVIRONMENT_OVERRIDE)??Ie(n.CLINE_ENVIRONMENT)??"production"}function Hd(n){if(typeof n==="string")return Qn[n];return Qn[Re()]}function Pd(n,o){if(o.CLINE_API_BASE_URL)n={...n,apiBaseUrl:o.CLINE_API_BASE_URL,mcpBaseUrl:`${o.CLINE_API_BASE_URL}/v1/mcp`};return n}function Xd(n){let o=Hd(n);return Pd(o,Ae())}var Cd="agent.reasoning.unexpected_tokens",Zd="sdk.error";function hd(n,o){n?.capture({event:"agent.reasoning.unexpected_tokens",properties:Jd({sessionId:o.sessionId,agentId:o.agentId,runId:o.runId,iteration:o.iteration,providerId:o.providerId,modelId:o.modelId,requestedThinking:o.requestedThinking,reasoningTokenCount:o.reasoningTokenCount})})}function Wd(n,o){if(!n)return;n.capture({event:o.event??"sdk.error",properties:Ee(o)})}function Ee(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...qe(n.error,n.messageLimit)}}function Jd(n){let o={};for(let[e,d]of Object.entries(n))if(d!==void 0)o[e]=d;return o}function qe(n,o=500){let e=md(n)?n:void 0,d=n instanceof Error?n:void 0,l=d?.message??_e(e?.message)??(typeof n==="string"?n:String(n)),g=jd(e?.code),c=Nn(e?.status)??Nn(e?.statusCode)??Nn(e?.responseStatus);return{error_type:d?.name?.trim()||_e(e?.name)||d?.constructor?.name||"Error",error_message:Od(Kd(l),o),...g!==void 0?{error_code:g}:{},...c!==void 0?{error_status:c}:{}}}function Kd(n){return n.replace(/(authorization=Bearer\s+)[^&\s]+/gi,"$1[redacted]").replace(/(api[_-]?key|access[_-]?token|refresh[_-]?token|authorization|password|secret)=([^&\s]+)/gi,"$1=[redacted]").replace(/(Bearer\s+)[A-Za-z0-9._~+/-]+=*/gi,"$1[redacted]").replace(/\/Users\/[^/\s]+/g,"/Users/[redacted]").replace(/\/home\/[^/\s]+/g,"/home/[redacted]").replace(/([A-Za-z]:[\\/]+Users[\\/]+)[^\\/\s]+/g,"$1[redacted]")}function Od(n,o){let e=Math.max(1,Math.floor(o));return n.length>e?n.substring(0,e):n}function md(n){return typeof n==="object"&&n!==null}function _e(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function jd(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function Nn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function De(n){let o={};if(!n)return o;try{n.split(",").forEach((e)=>{let d=e.indexOf("=");if(d<=0)return;let l=decodeURIComponent(e.substring(0,d).trim()),g=decodeURIComponent(e.substring(d+1).trim());if(!l||!g)return;o[l]=g})}catch{}return o}function Qd(){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?De(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function Be(n={}){return{extension_version:"unknown",cline_type:"unknown",platform:"terminal",platform_version:process?.version||"unknown",os_type:process?.platform||"unknown",os_version:process?.platform==="win32"?process?.env?.OS??"unknown":"unknown",...n}}function Nd(n={}){return{...Qd(),...n,metadata:Be(n.metadata)}}function Me(n){let o=n?.trim();return o?o:void 0}function Sd(n,o){if(!n)return;let e=typeof n==="function"?n(o):n;if(!e)return;let d=Me(e.rootSessionId);if(!d)return;return{rootSessionId:d}}function pd(n){return Me(n?.rootSessionId)}var vd=(n)=>crypto.getRandomValues(new Uint8Array(n)),td=(n,o,e)=>{let d=256-256%n.length;if(d===256){let g=n.length-1;return(c=o)=>{if(!c)return"";let b="";while(!0){let k=e(c),y=c;while(y--)if(b+=n[k[y]&g],b.length>=c)return b}}}let l=Math.ceil(409.6*o/d);return(g=o)=>{if(!g)return"";let c="";while(!0){let b=e(l),k=l;while(k--)if(b[k]<d){if(c+=n[b[k]%n.length],c.length>=g)return c}}}},Te=(n,o=21)=>td(n,o|0,vd);function xd(n="",o=""){let e=Te("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${e(5)}${o}`}var zd=["idle","running","pending","completed","failed","cancelled"];var Sn=["rules","skills","workflows","plugins"],ae=Sn,nl=new Set(Sn);function Fe(n){return typeof n==="string"&&nl.has(n)}function ol(n){if(!Array.isArray(n))return;let o=n.map((e)=>typeof e==="string"?e.trim():"").filter(Fe);return[...new Set(o)]}function el(n,o){return new Set(n??ae).has(o)}import{z as L}from"zod";var rl=L.object({rootPath:L.string().min(1),hint:L.string().min(1).optional(),associatedRemoteUrls:L.array(L.string().min(1)).optional(),latestGitCommitHash:L.string().min(1).optional(),latestGitBranchName:L.string().min(1).optional()}),dl=L.object({currentWorkspacePath:L.string().min(1).optional(),workspaces:L.record(L.string().min(1),rl)});function ts(){return{workspaces:{}}}function xs(n,o){let e={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!e.currentWorkspacePath)e.currentWorkspacePath=o.rootPath;return dl.parse(e)}import{z as r}from"zod";var ll=["current_state","boundary_analysis","interface_proposal"],of=3600000,ef=240,rf=400,U=r.preprocess((n)=>n instanceof Date?n.toISOString():n,r.string().datetime()),x=r.enum(["pending","in_progress","blocked","completed"]),$e=r.enum(["queued","running","completed","failed","cancelled","interrupted"]),In=r.enum(["draft","in_review","finalized"]),sl=r.object({agentId:r.string(),role:r.enum(["lead","teammate"]),description:r.string().optional(),status:r.enum(["idle","running","stopped"])}),df=r.object({agentId:r.string(),rolePrompt:r.string(),modelId:r.string().optional(),maxIterations:r.number().optional()});function q(n){return r.preprocess((o)=>o===null?void 0:o,n.optional())}var lf=r.object({agentId:r.string().min(1).describe("Teammate identifier"),rolePrompt:r.string().min(1).describe("System prompt describing teammate role")}).strict(),sf=r.object({agentId:r.string().min(1).describe("Teammate identifier"),reason:q(r.string().min(1)).describe("Optional shutdown reason")}),ff=r.object({}),fl={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},gf={create:["status","taskId","summary","reason"]},cf=r.object({action:r.enum(["create","list","claim","complete","block"]),title:q(r.string().min(1)).describe("Task title"),description:q(r.string().min(1)).describe("Task details"),dependsOn:q(r.array(r.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:q(r.string().min(1)).describe("Optional assignee"),status:q(r.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:q(r.string()).describe("Task ID"),summary:q(r.string().min(1)).describe("Completion summary"),reason:q(r.string().min(1)).describe("Blocking reason")}).superRefine((n,o)=>{for(let e of fl[n.action]){if(n[e]!==void 0)continue;o.addIssue({code:"custom",path:[e],message:`Field "${e}" is required when action=${n.action}`})}}),bf=r.object({agentId:r.string().describe("Teammate agent ID"),task:r.string().min(1).describe("Task instructions for the teammate"),taskId:q(r.string()).describe("Optional shared task list ID"),runMode:q(r.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:q(r.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),yf=r.object({status:q(r.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:q(r.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:q(r.boolean()).describe("Include completed/failed runs (default true)")}),uf=r.object({runId:r.string().min(1).describe("Run ID"),reason:q(r.string().min(1)).describe("Optional cancellation reason")}),wf=r.object({runId:q(r.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),kf=r.object({toAgentId:r.string().min(1).describe("Recipient agent ID"),subject:r.string().min(1).describe("Message subject"),body:r.string().min(1).describe("Message body"),taskId:q(r.string().min(1)).describe("Optional task ID context")}),If=r.object({subject:r.string().min(1).describe("Message subject"),body:r.string().min(1).describe("Message body"),taskId:q(r.string().min(1)).describe("Optional task ID context")}),Af=r.object({unreadOnly:q(r.boolean()).describe("Only unread messages for read action (default true)")}),Rf=r.object({kind:r.enum(["progress","handoff","blocked","decision","done","error"]),summary:r.string().min(1).describe("Update summary"),taskId:q(r.string().min(1)).describe("Optional task ID context"),evidence:q(r.array(r.string().min(1))).describe("Optional evidence links/snippets"),nextAction:q(r.string().min(1)).describe("Planned next step")}),_f=r.object({}),Ef=r.object({title:r.string().describe("Outcome title"),requiredSections:r.array(r.string()).default(ll).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),qf=r.object({outcomeId:r.string().describe("Outcome ID"),section:r.string().describe("Section name"),sourceRunId:q(r.string()).describe("Optional source run ID"),content:r.string().describe("Section fragment content")}),Df=r.object({fragmentId:r.string().describe("Fragment ID"),approved:r.boolean().describe("Review decision")}),Bf=r.object({outcomeId:r.string().describe("Outcome ID")}),Mf=r.object({}),Tf=r.object({teamId:r.string(),teamName:r.string(),members:r.array(sl),taskCounts:r.record(x,r.number()),unreadMessages:r.number(),missionLogEntries:r.number(),activeRuns:r.number(),queuedRuns:r.number(),outcomeCounts:r.record(In,r.number())}),gl=r.object({id:r.string(),title:r.string(),description:r.string(),status:x,createdAt:U,updatedAt:U,createdBy:r.string(),assignee:r.string().optional(),dependsOn:r.array(r.string()),summary:r.string().optional(),isReady:r.boolean(),blockedBy:r.array(r.string())}),af=r.discriminatedUnion("action",[r.object({action:r.literal("create"),taskId:r.string(),status:x,ignoredFields:r.array(r.string()).optional(),note:r.string().optional()}),r.object({action:r.literal("list"),tasks:r.array(gl)}),r.object({action:r.literal("claim"),taskId:r.string(),status:x,nextStep:r.string()}),r.object({action:r.literal("complete"),taskId:r.string(),status:x}),r.object({action:r.literal("block"),taskId:r.string(),status:x})]),Ff=r.object({agentId:r.string(),mode:r.enum(["sync","async"]),status:r.enum(["dispatched","running","queued","joined"]),dispatched:r.boolean(),message:r.string(),deduped:r.boolean().optional(),runId:r.string().optional(),text:r.string().optional(),iterations:r.number().optional()}),cl=r.object({textPreview:r.string(),iterations:r.number(),finishReason:r.string(),durationMs:r.number(),usage:r.object({inputTokens:r.number(),outputTokens:r.number(),cacheReadTokens:r.number().optional(),cacheWriteTokens:r.number().optional(),totalCost:r.number().optional()})}),$f=r.object({id:r.string(),agentId:r.string(),taskId:r.string().optional(),status:$e,messagePreview:r.string(),priority:r.number(),retryCount:r.number(),maxRetries:r.number(),nextAttemptAt:U.optional(),continueConversation:r.boolean().optional(),startedAt:U,endedAt:U.optional(),leaseOwner:r.string().optional(),heartbeatAt:U.optional(),lastProgressAt:U.optional(),lastProgressMessage:r.string().optional(),currentActivity:r.string().optional(),error:r.string().optional(),resultSummary:cl.optional()}),Lf=r.object({id:r.string(),teamId:r.string(),fromAgentId:r.string(),toAgentId:r.string(),subject:r.string(),body:r.string(),taskId:r.string().optional(),sentAt:U,readAt:U.optional()}),Uf=r.object({id:r.string(),teamId:r.string(),title:r.string(),status:In,requiredSections:r.array(r.string()),createdBy:r.string(),createdAt:U,finalizedAt:U.optional()}),Vf=r.object({outcomeId:r.string(),status:In,requiredSections:r.array(r.string())}),Gf=r.object({agentId:r.string(),status:r.string()}),Yf=r.object({runId:r.string(),status:$e}),Hf=r.object({id:r.string(),toAgentId:r.string()}),Pf=r.object({delivered:r.number()}),Xf=r.object({id:r.string()}),Cf=r.object({status:r.string()}),Zf=r.object({fragmentId:r.string(),status:r.string()}),hf=r.object({outcomeId:r.string(),status:In});var il;((D)=>{D.TaskStart="task_start";D.TaskEnd="task_end";D.AgentEvent="agent_event";D.TeammateSpawned="teammate_spawned";D.TeammateShutdown="teammate_shutdown";D.TeamTaskUpdated="team_task_updated";D.TeamMessage="team_message";D.TeamMissionLog="team_mission_log";D.TeamTaskCompleted="team_task_completed";D.RunStarted="run_started";D.RunQueued="run_queued";D.RunProgress="run_progress";D.RunCompleted="run_completed";D.RunFailed="run_failed";D.RunCancelled="run_cancelled";D.RunInterrupted="run_interrupted";D.OutcomeCreated="outcome_created";D.OutcomeFragmentAttached="outcome_fragment_attached";D.OutcomeFragmentReviewed="outcome_fragment_reviewed";D.OutcomeFinalized="outcome_finalized"})(il||={});import{z as bl}from"zod";function yl(n){let{$schema:o,...e}=n;if(typeof e.type==="string")return e;if("properties"in e||"required"in e||"additionalProperties"in e)return{type:"object",...e};for(let d of["oneOf","anyOf","allOf"]){let l=e[d];if(!Array.isArray(l)||l.length===0)continue;if(d==="allOf"){if(l.some((b)=>b&&typeof b==="object"&&b.type==="object"))return{type:"object",...e};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(l.every((c)=>c&&typeof c==="object"&&c.type==="object"))return{type:"object",...e};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${d}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return e}function ul(n){let o=yl(n.inputSchema instanceof bl.ZodType?Jn(n.inputSchema):n.inputSchema);return{name:n.name,description:n.description,inputSchema:o,lifecycle:n.lifecycle,timeoutMs:n.timeoutMs??30000,retryable:n.retryable??!0,maxRetries:n.maxRetries??3,execute:n.execute}}var Le=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function wl(n){let o=n instanceof Error?n.message.toLowerCase():String(n);return Le.some((e)=>o.includes(e))}export{Jn as zodToJsonSchema,To as xmlTagsRemoval,Rd as validateWithZod,Uo as validateImageMedia,nn as validateAndReserveImageMedia,xs as upsertWorkspaceInfo,So as truncateStr,wd as truncateSplit,ud as trimNonEmpty,Yo as toAiSdkToolResultOutput,Mo as stripModeNotices,Qe as shouldIncludeConnectorField,Qr as serializeAbortReason,$ as sanitizeSurrogates,yd as sanitizeFileName,dd as safeJsonStringify,ld as safeJsonParse,pd as resolveRootSessionId,Po as resolveReasoningEffortRatio,Jr as resolveReasoningBudgetFromRatio,Fo as resolveMediaBudget,Kl as resolveHubCommandTimeoutMs,Sd as resolveHookSessionContext,Wr as resolveEffectiveReasoningEffort,Re as resolveClineEnvironment,z as reserveImageMediaBytes,Do as parseUserCommandEnvelope,ol as parseRuntimeConfigExtensions,rd as parseJsonStream,ur as parseHookEventPayload,gd as omitUndefinedValues,Bo as normalizeUserInput,qe as normalizeSdkError,Ro as normalizePluginManifest,Wn as normalizeJsonLikeStringsForSchema,pr as noopBasicLogger,Zr as mergeModelOptions,jr as mergeClineClientRequestHeaders,kd as maskSecret,uo as listConnectorCatalog,Fe as isRuntimeConfigExtensionKind,wl as isLikelyAuthError,Ol as isHubToolExecutorName,Wl as isHubProtocolCompatible,Kn as isClineProvider,Lr as isCanonicalBase64,$o as isBase64Char,$r as imageFileMaxDecodedBytesForBase64Limit,Dn as imageBase64LengthForDecodedBytes,Fr as imageBase64EncodedByteLength,ao as imageBase64DecodedByteLength,el as hasRuntimeConfigExtension,bd as getShellArgs,id as getDefaultShell,kr as getDefaultHubCommandTimeoutMs,Xd as getClineEnvironmentConfig,Rr as formatUserInputBlock,_r as formatUserCommandBlock,Ad as formatUptime,Er as formatModeSwitchNotice,Cr as formatMessagesForAiSdk,Id as formatHumanReadableDate,qn as formatFileContentBlock,Mr as formatDisplayUserInput,Sr as estimateTokens,ts as emptyWorkspaceManifest,ul as createTool,xd as createSessionId,bn as createMediaBudgetState,or as createContributionRegistry,Be as createClineTelemetryServiceMetadata,Nd as createClineTelemetryServiceConfig,Ne as connectorChannelsFromPlatforms,Wd as captureSdkError,hd as captureAgentUnexpectedReasoningTokens,Ee as buildSdkErrorProperties,_d as buildClineSystemPrompt,Co as buildClineClientRequestHeaders,dl as WorkspaceManifestSchema,rl as WorkspaceInfoSchema,fe as VertexSettingsSchema,se as VertexModelSchema,rs as USAGE_COST_DISPLAYS,_n as ToolCallRecordSchema,fo as ThinkingConfigSchema,df as TeamTeammateSpecSchema,af as TeamTaskToolResultSchema,gl as TeamTaskListItemToolResultSchema,cf as TeamTaskInputSchema,Tf as TeamStatusToolResultSchema,ff as TeamStatusInputSchema,lf as TeamSpawnTeammateInputSchema,Gf as TeamSimpleAgentStatusToolResultSchema,sf as TeamShutdownTeammateInputSchema,Hf as TeamSendMessageToolResultSchema,kf as TeamSendMessageInputSchema,$f as TeamRunToolSummarySchema,Ff as TeamRunTaskToolResultSchema,bf as TeamRunTaskInputSchema,cl as TeamRunResultSummarySchema,Df as TeamReviewOutcomeFragmentInputSchema,Af as TeamReadMailboxInputSchema,Uf as TeamOutcomeToolResultSchema,Zf as TeamOutcomeFragmentToolResultSchema,Xf as TeamMissionLogToolResultSchema,Rf as TeamMissionLogInputSchema,il as TeamMessageType,Lf as TeamMailboxMessageToolResultSchema,yf as TeamListRunsInputSchema,Mf as TeamListOutcomesInputSchema,hf as TeamFinalizeOutcomeToolResultSchema,Bf as TeamFinalizeOutcomeInputSchema,Vf as TeamCreateOutcomeToolResultSchema,Ef as TeamCreateOutcomeInputSchema,Cf as TeamCleanupToolResultSchema,_f as TeamCleanupInputSchema,Yf as TeamCancelRunToolResultSchema,uf as TeamCancelRunInputSchema,Pf as TeamBroadcastToolResultSchema,If as TeamBroadcastInputSchema,wf as TeamAwaitRunsInputSchema,qf as TeamAttachOutcomeFragmentInputSchema,gf as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,rf as TEAM_RUN_TEXT_PREVIEW_LIMIT,ef as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,Ld as TEAM_PROGRESS_EVENT_TYPE,Ud as TEAM_LIFECYCLE_EVENT_TYPE,of as TEAM_AWAIT_TIMEOUT_MS,cn as SUPPORTED_IMAGE_MEDIA_TYPES,zd as SESSION_STATUS_VALUES,Zd as SDK_ERROR_TELEMETRY_EVENT,kn as S3AccessKeySettingsSchema,ue as RemoteMCPServerSchema,Dd as RemoteConfigSchema,Ke as ReasoningEffortSchema,Sn as RUNTIME_CONFIG_EXTENSION_KINDS,Ed as REMOTE_URI_SCHEME,en as REASONING_EFFORT_RATIOS,Fd as ProviderProtocolSchema,$d as ProviderClientSchema,ad as ProviderCapabilitySchema,we as PromptUploadingSchema,er as PLUGIN_FILE_EXTENSIONS,ne as OpenAiCompatibleSchema,zo as OpenAiCompatibleModelSchema,lo as ModelStatusSchema,so as ModelPricingSchema,go as ModelMetadataSchema,sn as ModelInfoSchema,ro as ModelCapabilitySchema,Cl as MIN_CLIENT_HUB_PROTOCOL_VERSION,Zl as MAX_CLIENT_HUB_PROTOCOL_VERSION,ce as LiteLLMSchema,ge as LiteLLMModelSchema,W as IMAGE_OMITTED_PLACEHOLDER,qo as HookEventPayloadSchema,Eo as HookEventNameSchema,vl as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,Ir as HUB_TOOL_EXECUTOR_NAMES,ml as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,pl as HUB_MISTAKE_LIMIT_CAPABILITY,Ql as HUB_HOOK_CAPABILITY_PREFIX,wr as HUB_DEFAULT_COMMAND_TIMEOUT_MS,jl as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,Nl as HUB_COMPACTION_CAPABILITY,Jl as HUB_COMMAND_SLOW_LOG_MS,Sl as HUB_CHECKPOINT_CAPABILITY,hl as HUB_CAPABILITIES,mn as GlobalInstructionsFileSchema,rr as FeatureFlagDefaultValue,dr as FEATURE_FLAGS,ke as EnterpriseTelemetrySchema,Bn as EMPTY_CONTENT_TEXT,ae as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,Xo as DEFAULT_REQUEST_HEADERS,hr as DEFAULT_REASONING_EFFORT,ll as DEFAULT_OUTCOME_REQUIRED_SECTIONS,ar as DEFAULT_MAX_TOTAL_MEDIA_BYTES,C as DEFAULT_MAX_IMAGE_ENCODED_BYTES,J as DEFAULT_MAX_IMAGE_DECODED_BYTES,Tr as DEFAULT_MAX_IMAGE_BASE64_BYTES,Yd as DEFAULT_CLINE_ENVIRONMENT,En as ContributionRegistry,je as ConnectorHookEventSchema,co as ConnectorHookEventNameSchema,bo as ConnectorEventContextSchema,io as ConnectorEventActorSchema,Oe as ConnectorAuthorizationRequestSchema,me as ConnectorAuthorizationDecisionSchema,le as ClineSettingsSchema,de as ClineModelSchema,Xl as CURRENT_HUB_PROTOCOL_VERSION,wo as CONNECTOR_PLATFORMS,yo as CONNECTOR_CATALOG,Gd as CLINE_ENVIRONMENT_OVERRIDE_ENV,Vd as CLINE_ENVIRONMENT_ENV,Qn as CLINE_ENVIRONMENTS,Md as CLINE_DEFAULT_RPC_PORT,Td as CLINE_DEFAULT_RPC_ADDRESS,Nr as CHARS_PER_TOKEN,re as AwsBedrockSettingsSchema,oe as AwsBedrockModelSchema,ee as AwsBedrockCustomModelSchema,eo as ApiFormatSchema,he as ApiFormat,be as AnthropicSchema,ie as AnthropicModelSchema,ye as AllowedMCPServerSchema,Je as AgentUsageSchema,Bl as AgentResultSchema,We as AgentFinishReasonSchema,Ml as AgentConfigSchema,Le as AUTH_ERROR_PATTERNS,Bd as APIKeySchema,Cd as AGENT_UNEXPECTED_REASONING_TOKENS_EVENT};
79
+ User messages arrive wrapped in a <user_input mode="..."> tag. The mode attribute is the interaction mode the user was in when they sent that message: "plan" means plan-mode constraints applied (explore, analyze, and align on a plan -- no edits or state-changing commands), while "act" (or "yolo") means implementation was allowed. If the mode attribute changes between messages, the user switched modes -- the newest message's mode is what governs right now, regardless of what earlier messages allowed. A <mode_notice> block inside a message marks exactly when such a switch happened.`,to=`# Plan Mode
80
+
81
+ You are in Plan mode. Your role is to explore, analyze, and plan -- not to execute.
82
+
83
+ - Read files, search the codebase, and gather context to understand the problem
84
+ - Ask clarifying questions when requirements are ambiguous
85
+ - Present your plan as a structured outline with clear steps
86
+ - Explain tradeoffs between different approaches when they exist
87
+ - Do NOT edit files, write code, run destructive commands, or make any changes
88
+ - Do NOT implement anything -- focus on understanding and alignment first
89
+
90
+ The run_commands tool remains available in plan mode strictly for read-only inspection -- listing files, searching (grep), reading configs, inspecting git history and diffs, checking tool versions, and the like. Never use it to change anything: no creating, modifying, or deleting files, no writing scripts that make changes, and no state-changing commands (installs, migrations, database or schema changes, container commands that mutate state, etc.). If the task requires a mutation, put it in the plan; it happens only after the user switches to act mode.
91
+
92
+ Once the user has reviewed your plan and explicitly approved it in a follow-up message, use the switch_to_act_mode tool to switch to act mode and begin implementation. Calling switch_to_act_mode immediately starts execution, so never call it in the same turn you present a plan and never treat the original task request as approval -- end your turn after presenting the plan and wait for the user's response.`;function vo(n,o,d){if(d?.trim()?.includes(jn))return d.trim();let f=d||JSON.stringify({workspaces:{[n]:{hint:o||n.split("/").at(-1)||n}}},null,2);return`
93
+ ${jn}
94
+ ${f}`}function Rf(n){let{ide:o="Terminal Shell",mode:d,platform:f="unknown",workspaceName:l,metadata:c,rules:g,overridePrompt:y,providerId:_}=n,w=n.workspaceRoot??n.rootPath??"",I=Qn(_||"");if(y?.trim()){let F=y.trim();if(I&&c?.trim()&&!F.includes(jn))return`${F}
95
+
96
+ ${vo(w,l,c)}`.trim();return F}let $=d==="yolo"?po:ao,i=[g,xo,d==="plan"?to:void 0].filter(Boolean).join(`
97
+
98
+ `);return $.replace("{{PLATFORM_NAME}}",f).replace("{{CWD}}",w).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",I?vo(w,l,c):"").replace("{{CLINE_RULES}}",i).trim()}var Df="remote://";import{z as e}from"zod";var zo=e.object({id:e.string(),temperature:e.number().optional(),isR1FormatRequired:e.boolean().optional(),maxTokens:e.number().optional(),contextWindow:e.number().optional(),inputPrice:e.number().optional(),outputPrice:e.number().optional(),supportsImages:e.boolean().optional()}),nd=e.object({models:e.array(zo).optional(),openAiBaseUrl:e.string().optional(),openAiHeaders:e.record(e.string(),e.string()).optional(),azureApiVersion:e.string().optional(),azureIdentity:e.boolean().optional()}),od=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional()}),dd=e.object({name:e.string(),baseModelId:e.string(),thinkingBudgetTokens:e.number().optional()}),rd=e.object({models:e.array(od).optional(),customModels:e.array(dd).optional(),awsRegion:e.string().optional(),awsUseCrossRegionInference:e.boolean().optional(),awsUseGlobalInference:e.boolean().optional(),awsBedrockUsePromptCache:e.boolean().optional(),awsBedrockEndpoint:e.string().optional()}),fd=e.object({id:e.string()}),ld=e.object({models:e.array(fd).optional()}),ed=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional()}),sd=e.object({models:e.array(ed).optional(),vertexProjectId:e.string().optional(),vertexRegion:e.string().optional()}),gd=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional(),promptCachingEnabled:e.boolean().optional()}),cd=e.object({models:e.array(gd).optional(),baseUrl:e.string().optional()}),bd=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional()}),yd=e.object({models:e.array(bd).optional(),baseUrl:e.string().optional()}),uf=e.object({OpenAiCompatible:nd.optional(),AwsBedrock:rd.optional(),Cline:ld.optional(),Vertex:sd.optional(),LiteLLM:cd.optional(),Anthropic:yd.optional()}),wd=e.object({id:e.string()}),kd=e.object({name:e.string(),url:e.string(),alwaysEnabled:e.boolean().optional(),headers:e.record(e.string(),e.string()).optional()}),On=e.object({alwaysEnabled:e.boolean(),name:e.string(),contents:e.string()}),kn=e.object({bucket:e.string(),accessKeyId:e.string(),secretAccessKey:e.string(),region:e.string().optional(),endpoint:e.string().optional(),accountId:e.string().optional()}),Ad=e.object({enabled:e.boolean().optional(),type:e.union([e.literal("s3_access_keys"),e.literal("r2_access_keys"),e.literal("azure_access_keys")]).optional(),s3AccessSettings:kn.optional(),r2AccessSettings:kn.optional(),azureAccessSettings:kn.optional()}),_d=e.object({promptUploading:Ad.optional()}),Ef=e.object({version:e.string(),providerSettings:uf.optional(),telemetryEnabled:e.boolean().optional(),kanbanEnabled:e.boolean().optional(),mcpMarketplaceEnabled:e.boolean().optional(),allowedMCPServers:e.array(wd).optional(),remoteMCPServers:e.array(kd).optional(),blockPersonalRemoteMCPServers:e.boolean().optional(),yoloModeAllowed:e.boolean().optional(),openTelemetryEnabled:e.boolean().optional(),openTelemetryMetricsExporter:e.string().optional(),openTelemetryLogsExporter:e.string().optional(),openTelemetryOtlpProtocol:e.string().optional(),openTelemetryOtlpEndpoint:e.string().optional(),openTelemetryOtlpHeaders:e.record(e.string(),e.string()).optional(),openTelemetryOtlpMetricsProtocol:e.string().optional(),openTelemetryOtlpMetricsEndpoint:e.string().optional(),openTelemetryOtlpMetricsHeaders:e.record(e.string(),e.string()).optional(),openTelemetryOtlpLogsProtocol:e.string().optional(),openTelemetryOtlpLogsEndpoint:e.string().optional(),openTelemetryOtlpLogsHeaders:e.record(e.string(),e.string()).optional(),openTelemetryMetricExportInterval:e.number().optional(),openTelemetryOtlpInsecure:e.boolean().optional(),openTelemetryLogBatchSize:e.number().optional(),openTelemetryLogBatchTimeout:e.number().optional(),openTelemetryLogMaxQueueSize:e.number().optional(),enterpriseTelemetry:_d.optional(),globalRules:e.array(On).optional(),globalWorkflows:e.array(On).optional()}),qf=e.record(e.string(),e.string());var Mf=4317;var Ff="127.0.0.1:4317";import hn from"zod";var $f=hn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),Tf=hn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),Gf=hn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var Uf="runtime.team.progress.v1",Yf="runtime.team.lifecycle.v1";var Lf="CLINE_ENVIRONMENT",Pf="CLINE_ENVIRONMENT_OVERRIDE",Nn={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"}},Xf="production";function Id(n){let o=n?.trim().toLowerCase();if(o==="production"||o==="staging"||o==="local")return o;return}function Bd(){if(typeof process>"u"||!process?.env)return{};return process.env}function Rd(){let n=Bd();return Id(n.CLINE_ENVIRONMENT_OVERRIDE)??Id(n.CLINE_ENVIRONMENT)??"production"}function Hf(n){if(typeof n==="string")return Nn[n];return Nn[Rd()]}function Zf(n,o){if(o.CLINE_API_BASE_URL)n={...n,apiBaseUrl:o.CLINE_API_BASE_URL,mcpBaseUrl:`${o.CLINE_API_BASE_URL}/v1/mcp`};return n}function Vf(n){let o=Hf(n);return Zf(o,Bd())}var Jf="agent.reasoning.unexpected_tokens",Wf="sdk.error";function Kf(n,o){n?.capture({event:"agent.reasoning.unexpected_tokens",properties:Qf({sessionId:o.sessionId,agentId:o.agentId,runId:o.runId,iteration:o.iteration,providerId:o.providerId,modelId:o.modelId,requestedThinking:o.requestedThinking,reasoningTokenCount:o.reasoningTokenCount})})}function Cf(n,o){if(!n)return;n.capture({event:o.event??"sdk.error",properties:ud(o)})}function ud(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...Ed(n.error,n.messageLimit)}}function Qf(n){let o={};for(let[d,f]of Object.entries(n))if(f!==void 0)o[d]=f;return o}function Ed(n,o=500){let d=hf(n)?n:void 0,f=n instanceof Error?n:void 0,l=f?.message??Dd(d?.message)??(typeof n==="string"?n:String(n)),c=Nf(d?.code),g=Sn(d?.status)??Sn(d?.statusCode)??Sn(d?.responseStatus);return{error_type:f?.name?.trim()||Dd(d?.name)||f?.constructor?.name||"Error",error_message:Of(jf(l),o),...c!==void 0?{error_code:c}:{},...g!==void 0?{error_status:g}:{}}}function jf(n){return n.replace(/(authorization=Bearer\s+)[^&\s]+/gi,"$1[redacted]").replace(/(api[_-]?key|access[_-]?token|refresh[_-]?token|authorization|password|secret)=([^&\s]+)/gi,"$1=[redacted]").replace(/(Bearer\s+)[A-Za-z0-9._~+/-]+=*/gi,"$1[redacted]").replace(/\/Users\/[^/\s]+/g,"/Users/[redacted]").replace(/\/home\/[^/\s]+/g,"/home/[redacted]").replace(/([A-Za-z]:[\\/]+Users[\\/]+)[^\\/\s]+/g,"$1[redacted]")}function Of(n,o){let d=Math.max(1,Math.floor(o));return n.length>d?n.substring(0,d):n}function hf(n){return typeof n==="object"&&n!==null}function Dd(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function Nf(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function Sn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function qd(n){let o={};if(!n)return o;try{n.split(",").forEach((d)=>{let f=d.indexOf("=");if(f<=0)return;let l=decodeURIComponent(d.substring(0,f).trim()),c=decodeURIComponent(d.substring(f+1).trim());if(!l||!c)return;o[l]=c})}catch{}return o}function Sf(){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?qd(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function Md(n={}){return{extension_version:"unknown",cline_type:"unknown",platform:"terminal",platform_version:process?.version||"unknown",os_type:process?.platform||"unknown",os_version:process?.platform==="win32"?process?.env?.OS??"unknown":"unknown",...n}}function mf(n={}){return{...Sf(),...n,metadata:Md(n.metadata)}}function Fd(n){let o=n?.trim();return o?o:void 0}function af(n,o){if(!n)return;let d=typeof n==="function"?n(o):n;if(!d)return;let f=Fd(d.rootSessionId);if(!f)return;return{rootSessionId:f}}function pf(n){return Fd(n?.rootSessionId)}var vf=(n)=>crypto.getRandomValues(new Uint8Array(n)),xf=(n,o,d)=>{let f=256-256%n.length;if(f===256){let c=n.length-1;return(g=o)=>{if(!g)return"";let y="";while(!0){let _=d(g),w=g;while(w--)if(y+=n[_[w]&c],y.length>=g)return y}}}let l=Math.ceil(409.6*o/f);return(c=o)=>{if(!c)return"";let g="";while(!0){let y=d(l),_=l;while(_--)if(y[_]<f){if(g+=n[y[_]%n.length],g.length>=c)return g}}}},$d=(n,o=21)=>xf(n,o|0,vf);function tf(n="",o=""){let d=$d("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${d(5)}${o}`}var zf=["idle","running","pending","completed","failed","cancelled"];var mn=["rules","skills","workflows","plugins"],id=mn,nl=new Set(mn);function Td(n){return typeof n==="string"&&nl.has(n)}function ol(n){if(!Array.isArray(n))return;let o=n.map((d)=>typeof d==="string"?d.trim():"").filter(Td);return[...new Set(o)]}function dl(n,o){return new Set(n??id).has(o)}import{z as U}from"zod";var rl=U.object({rootPath:U.string().min(1),hint:U.string().min(1).optional(),associatedRemoteUrls:U.array(U.string().min(1)).optional(),latestGitCommitHash:U.string().min(1).optional(),latestGitBranchName:U.string().min(1).optional()}),fl=U.object({currentWorkspacePath:U.string().min(1).optional(),workspaces:U.record(U.string().min(1),rl)});function te(){return{workspaces:{}}}function ze(n,o){let d={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!d.currentWorkspacePath)d.currentWorkspacePath=o.rootPath;return fl.parse(d)}import{z as r}from"zod";var ll=["current_state","boundary_analysis","interface_proposal"],ds=3600000,rs=240,fs=400,Y=r.preprocess((n)=>n instanceof Date?n.toISOString():n,r.string().datetime()),t=r.enum(["pending","in_progress","blocked","completed"]),Gd=r.enum(["queued","running","completed","failed","cancelled","interrupted"]),An=r.enum(["draft","in_review","finalized"]),el=r.object({agentId:r.string(),role:r.enum(["lead","teammate"]),description:r.string().optional(),status:r.enum(["idle","running","stopped"])}),ls=r.object({agentId:r.string(),rolePrompt:r.string(),modelId:r.string().optional(),maxIterations:r.number().optional()});function E(n){return r.preprocess((o)=>o===null?void 0:o,n.optional())}var es=r.object({agentId:r.string().min(1).describe("Teammate identifier"),rolePrompt:r.string().min(1).describe("System prompt describing teammate role")}).strict(),ss=r.object({agentId:r.string().min(1).describe("Teammate identifier"),reason:E(r.string().min(1)).describe("Optional shutdown reason")}),gs=r.object({}),sl={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},cs={create:["status","taskId","summary","reason"]},bs=r.object({action:r.enum(["create","list","claim","complete","block"]),title:E(r.string().min(1)).describe("Task title"),description:E(r.string().min(1)).describe("Task details"),dependsOn:E(r.array(r.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:E(r.string().min(1)).describe("Optional assignee"),status:E(r.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:E(r.string()).describe("Task ID"),summary:E(r.string().min(1)).describe("Completion summary"),reason:E(r.string().min(1)).describe("Blocking reason")}).superRefine((n,o)=>{for(let d of sl[n.action]){if(n[d]!==void 0)continue;o.addIssue({code:"custom",path:[d],message:`Field "${d}" is required when action=${n.action}`})}}),ys=r.object({agentId:r.string().describe("Teammate agent ID"),task:r.string().min(1).describe("Task instructions for the teammate"),taskId:E(r.string()).describe("Optional shared task list ID"),runMode:E(r.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:E(r.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),ws=r.object({status:E(r.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:E(r.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:E(r.boolean()).describe("Include completed/failed runs (default true)")}),ks=r.object({runId:r.string().min(1).describe("Run ID"),reason:E(r.string().min(1)).describe("Optional cancellation reason")}),As=r.object({runId:E(r.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),_s=r.object({toAgentId:r.string().min(1).describe("Recipient agent ID"),subject:r.string().min(1).describe("Message subject"),body:r.string().min(1).describe("Message body"),taskId:E(r.string().min(1)).describe("Optional task ID context")}),Is=r.object({subject:r.string().min(1).describe("Message subject"),body:r.string().min(1).describe("Message body"),taskId:E(r.string().min(1)).describe("Optional task ID context")}),Bs=r.object({unreadOnly:E(r.boolean()).describe("Only unread messages for read action (default true)")}),Rs=r.object({kind:r.enum(["progress","handoff","blocked","decision","done","error"]),summary:r.string().min(1).describe("Update summary"),taskId:E(r.string().min(1)).describe("Optional task ID context"),evidence:E(r.array(r.string().min(1))).describe("Optional evidence links/snippets"),nextAction:E(r.string().min(1)).describe("Planned next step")}),Ds=r.object({}),us=r.object({title:r.string().describe("Outcome title"),requiredSections:r.array(r.string()).default(ll).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),Es=r.object({outcomeId:r.string().describe("Outcome ID"),section:r.string().describe("Section name"),sourceRunId:E(r.string()).describe("Optional source run ID"),content:r.string().describe("Section fragment content")}),qs=r.object({fragmentId:r.string().describe("Fragment ID"),approved:r.boolean().describe("Review decision")}),Ms=r.object({outcomeId:r.string().describe("Outcome ID")}),Fs=r.object({}),$s=r.object({teamId:r.string(),teamName:r.string(),members:r.array(el),taskCounts:r.record(t,r.number()),unreadMessages:r.number(),missionLogEntries:r.number(),activeRuns:r.number(),queuedRuns:r.number(),outcomeCounts:r.record(An,r.number())}),gl=r.object({id:r.string(),title:r.string(),description:r.string(),status:t,createdAt:Y,updatedAt:Y,createdBy:r.string(),assignee:r.string().optional(),dependsOn:r.array(r.string()),summary:r.string().optional(),isReady:r.boolean(),blockedBy:r.array(r.string())}),is=r.discriminatedUnion("action",[r.object({action:r.literal("create"),taskId:r.string(),status:t,ignoredFields:r.array(r.string()).optional(),note:r.string().optional()}),r.object({action:r.literal("list"),tasks:r.array(gl)}),r.object({action:r.literal("claim"),taskId:r.string(),status:t,nextStep:r.string()}),r.object({action:r.literal("complete"),taskId:r.string(),status:t}),r.object({action:r.literal("block"),taskId:r.string(),status:t})]),Ts=r.object({agentId:r.string(),mode:r.enum(["sync","async"]),status:r.enum(["dispatched","running","queued","joined"]),dispatched:r.boolean(),message:r.string(),deduped:r.boolean().optional(),runId:r.string().optional(),text:r.string().optional(),iterations:r.number().optional()}),cl=r.object({textPreview:r.string(),iterations:r.number(),finishReason:r.string(),durationMs:r.number(),usage:r.object({inputTokens:r.number(),outputTokens:r.number(),cacheReadTokens:r.number().optional(),cacheWriteTokens:r.number().optional(),totalCost:r.number().optional()})}),Gs=r.object({id:r.string(),agentId:r.string(),taskId:r.string().optional(),status:Gd,messagePreview:r.string(),priority:r.number(),retryCount:r.number(),maxRetries:r.number(),nextAttemptAt:Y.optional(),continueConversation:r.boolean().optional(),startedAt:Y,endedAt:Y.optional(),leaseOwner:r.string().optional(),heartbeatAt:Y.optional(),lastProgressAt:Y.optional(),lastProgressMessage:r.string().optional(),currentActivity:r.string().optional(),error:r.string().optional(),resultSummary:cl.optional()}),Us=r.object({id:r.string(),teamId:r.string(),fromAgentId:r.string(),toAgentId:r.string(),subject:r.string(),body:r.string(),taskId:r.string().optional(),sentAt:Y,readAt:Y.optional()}),Ys=r.object({id:r.string(),teamId:r.string(),title:r.string(),status:An,requiredSections:r.array(r.string()),createdBy:r.string(),createdAt:Y,finalizedAt:Y.optional()}),Ls=r.object({outcomeId:r.string(),status:An,requiredSections:r.array(r.string())}),Ps=r.object({agentId:r.string(),status:r.string()}),Xs=r.object({runId:r.string(),status:Gd}),Hs=r.object({id:r.string(),toAgentId:r.string()}),Zs=r.object({delivered:r.number()}),Vs=r.object({id:r.string()}),Js=r.object({status:r.string()}),Ws=r.object({fragmentId:r.string(),status:r.string()}),Ks=r.object({outcomeId:r.string(),status:An});var bl;((q)=>{q.TaskStart="task_start";q.TaskEnd="task_end";q.AgentEvent="agent_event";q.TeammateSpawned="teammate_spawned";q.TeammateShutdown="teammate_shutdown";q.TeamTaskUpdated="team_task_updated";q.TeamMessage="team_message";q.TeamMissionLog="team_mission_log";q.TeamTaskCompleted="team_task_completed";q.RunStarted="run_started";q.RunQueued="run_queued";q.RunProgress="run_progress";q.RunCompleted="run_completed";q.RunFailed="run_failed";q.RunCancelled="run_cancelled";q.RunInterrupted="run_interrupted";q.OutcomeCreated="outcome_created";q.OutcomeFragmentAttached="outcome_fragment_attached";q.OutcomeFragmentReviewed="outcome_fragment_reviewed";q.OutcomeFinalized="outcome_finalized"})(bl||={});import{z as yl}from"zod";function wl(n){let{$schema:o,...d}=n;if(typeof d.type==="string")return d;if("properties"in d||"required"in d||"additionalProperties"in d)return{type:"object",...d};for(let f of["oneOf","anyOf","allOf"]){let l=d[f];if(!Array.isArray(l)||l.length===0)continue;if(f==="allOf"){if(l.some((y)=>y&&typeof y==="object"&&y.type==="object"))return{type:"object",...d};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(l.every((g)=>g&&typeof g==="object"&&g.type==="object"))return{type:"object",...d};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${f}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return d}function kl(n){let o=wl(n.inputSchema instanceof yl.ZodType?Cn(n.inputSchema):n.inputSchema);return{name:n.name,description:n.description,inputSchema:o,lifecycle:n.lifecycle,timeoutMs:n.timeoutMs??30000,retryable:n.retryable??!0,maxRetries:n.maxRetries??3,execute:n.execute}}var Ud=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function Al(n){let o=n instanceof Error?n.message.toLowerCase():String(n);return Ud.some((d)=>o.includes(d))}export{Cn as zodToJsonSchema,Fo as xmlTagsRemoval,Bf as validateWithZod,Uo as validateImageMedia,nn as validateAndReserveImageMedia,ze as upsertWorkspaceInfo,So as truncateStr,kf as truncateSplit,wf as trimNonEmpty,Po as toAiSdkToolResultOutput,Mo as stripModeNotices,Sd as shouldIncludeConnectorField,Or as serializeAbortReason,G as sanitizeSurrogates,yf as sanitizeFileName,of as safeJsonStringify,df as safeJsonParse,pf as resolveRootSessionId,Ho as resolveReasoningEffortRatio,jr as resolveReasoningBudgetFromRatio,io as resolveMediaBudget,jl as resolveHubCommandTimeoutMs,af as resolveHookSessionContext,Qr as resolveEffectiveReasoningEffort,Rd as resolveClineEnvironment,z as reserveImageMediaBytes,Eo as parseUserCommandEnvelope,ol as parseRuntimeConfigExtensions,nf as parseJsonStream,kr as parseHookEventPayload,sf as omitUndefinedValues,qo as normalizeUserInput,Ed as normalizeSdkError,Bo as normalizePluginManifest,Kn as normalizeJsonLikeStringsForSchema,Sr as noopBasicLogger,Kr as mergeModelOptions,Af as maskSecret,wo as listConnectorCatalog,Td as isRuntimeConfigExtensionKind,Al as isLikelyAuthError,Ol as isHubToolExecutorName,Cl as isHubProtocolCompatible,Qn as isClineProvider,Yr as isCanonicalBase64,To as isBase64Char,Ur as imageFileMaxDecodedBytesForBase64Limit,un as imageBase64LengthForDecodedBytes,Gr as imageBase64EncodedByteLength,$o as imageBase64DecodedByteLength,dl as hasRuntimeConfigExtension,bf as getShellArgs,cf as getDefaultShell,_r as getDefaultHubCommandTimeoutMs,Vf as getClineEnvironmentConfig,Rr as formatUserInputBlock,Dr as formatUserCommandBlock,If as formatUptime,ur as formatModeSwitchNotice,Wr as formatMessagesForAiSdk,_f as formatHumanReadableDate,Dn as formatFileContentBlock,$r as formatDisplayUserInput,Zo as estimateTokens,Nr as estimateRequestInputTokens,te as emptyWorkspaceManifest,ef as decodeJwtPayload,kl as createTool,tf as createSessionId,Er as createModeSwitchNoticeTracker,bn as createMediaBudgetState,or as createContributionRegistry,Md as createClineTelemetryServiceMetadata,mf as createClineTelemetryServiceConfig,md as connectorChannelsFromPlatforms,Cf as captureSdkError,Kf as captureAgentUnexpectedReasoningTokens,ud as buildSdkErrorProperties,Rf as buildClineSystemPrompt,fl as WorkspaceManifestSchema,rl as WorkspaceInfoSchema,sd as VertexSettingsSchema,ed as VertexModelSchema,re as USAGE_COST_DISPLAYS,Bn as ToolCallRecordSchema,eo as ThinkingConfigSchema,ls as TeamTeammateSpecSchema,is as TeamTaskToolResultSchema,gl as TeamTaskListItemToolResultSchema,bs as TeamTaskInputSchema,$s as TeamStatusToolResultSchema,gs as TeamStatusInputSchema,es as TeamSpawnTeammateInputSchema,Ps as TeamSimpleAgentStatusToolResultSchema,ss as TeamShutdownTeammateInputSchema,Hs as TeamSendMessageToolResultSchema,_s as TeamSendMessageInputSchema,Gs as TeamRunToolSummarySchema,Ts as TeamRunTaskToolResultSchema,ys as TeamRunTaskInputSchema,cl as TeamRunResultSummarySchema,qs as TeamReviewOutcomeFragmentInputSchema,Bs as TeamReadMailboxInputSchema,Ys as TeamOutcomeToolResultSchema,Ws as TeamOutcomeFragmentToolResultSchema,Vs as TeamMissionLogToolResultSchema,Rs as TeamMissionLogInputSchema,bl as TeamMessageType,Us as TeamMailboxMessageToolResultSchema,ws as TeamListRunsInputSchema,Fs as TeamListOutcomesInputSchema,Ks as TeamFinalizeOutcomeToolResultSchema,Ms as TeamFinalizeOutcomeInputSchema,Ls as TeamCreateOutcomeToolResultSchema,us as TeamCreateOutcomeInputSchema,Js as TeamCleanupToolResultSchema,Ds as TeamCleanupInputSchema,Xs as TeamCancelRunToolResultSchema,ks as TeamCancelRunInputSchema,Zs as TeamBroadcastToolResultSchema,Is as TeamBroadcastInputSchema,As as TeamAwaitRunsInputSchema,Es as TeamAttachOutcomeFragmentInputSchema,cs as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,fs as TEAM_RUN_TEXT_PREVIEW_LIMIT,rs as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,Uf as TEAM_PROGRESS_EVENT_TYPE,Yf as TEAM_LIFECYCLE_EVENT_TYPE,ds as TEAM_AWAIT_TIMEOUT_MS,cn as SUPPORTED_IMAGE_MEDIA_TYPES,zf as SESSION_STATUS_VALUES,Wf as SDK_ERROR_TELEMETRY_EVENT,kn as S3AccessKeySettingsSchema,kd as RemoteMCPServerSchema,Ef as RemoteConfigSchema,jd as ReasoningEffortSchema,mn as RUNTIME_CONFIG_EXTENSION_KINDS,Df as REMOTE_URI_SCHEME,dn as REASONING_EFFORT_RATIOS,Tf as ProviderProtocolSchema,Gf as ProviderClientSchema,$f as ProviderCapabilitySchema,Ad as PromptUploadingSchema,dr as PLUGIN_FILE_EXTENSIONS,to as PLAN_MODE_INSTRUCTIONS,nd as OpenAiCompatibleSchema,zo as OpenAiCompatibleModelSchema,fo as ModelStatusSchema,lo as ModelPricingSchema,so as ModelMetadataSchema,en as ModelInfoSchema,ro as ModelCapabilitySchema,xo as MODE_TAG_INSTRUCTIONS,Jl as MIN_CLIENT_HUB_PROTOCOL_VERSION,Wl as MAX_CLIENT_HUB_PROTOCOL_VERSION,cd as LiteLLMSchema,gd as LiteLLMModelSchema,C as IMAGE_OMITTED_PLACEHOLDER,uo as HookEventPayloadSchema,Do as HookEventNameSchema,vl as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,Ir as HUB_TOOL_EXECUTOR_NAMES,hl as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,pl as HUB_MISTAKE_LIMIT_CAPABILITY,Sl as HUB_HOOK_CAPABILITY_PREFIX,Ar as HUB_DEFAULT_COMMAND_TIMEOUT_MS,Nl as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,ml as HUB_COMPACTION_CAPABILITY,Ql as HUB_COMMAND_SLOW_LOG_MS,al as HUB_CHECKPOINT_CAPABILITY,Kl as HUB_CAPABILITIES,On as GlobalInstructionsFileSchema,rr as FeatureFlagDefaultValue,fr as FEATURE_FLAGS,_d as EnterpriseTelemetrySchema,En as EMPTY_CONTENT_TEXT,id as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,Cr as DEFAULT_REASONING_EFFORT,ll as DEFAULT_OUTCOME_REQUIRED_SECTIONS,Tr as DEFAULT_MAX_TOTAL_MEDIA_BYTES,J as DEFAULT_MAX_IMAGE_ENCODED_BYTES,Q as DEFAULT_MAX_IMAGE_DECODED_BYTES,ir as DEFAULT_MAX_IMAGE_BASE64_BYTES,Xf as DEFAULT_CLINE_ENVIRONMENT,Rn as ContributionRegistry,Nd as ConnectorHookEventSchema,go as ConnectorHookEventNameSchema,bo as ConnectorEventContextSchema,co as ConnectorEventActorSchema,Od as ConnectorAuthorizationRequestSchema,hd as ConnectorAuthorizationDecisionSchema,ld as ClineSettingsSchema,fd as ClineModelSchema,Vl as CURRENT_HUB_PROTOCOL_VERSION,ko as CONNECTOR_PLATFORMS,yo as CONNECTOR_CATALOG,Pf as CLINE_ENVIRONMENT_OVERRIDE_ENV,Lf as CLINE_ENVIRONMENT_ENV,Nn as CLINE_ENVIRONMENTS,Mf as CLINE_DEFAULT_RPC_PORT,Ff as CLINE_DEFAULT_RPC_ADDRESS,hr as CHARS_PER_TOKEN,rd as AwsBedrockSettingsSchema,od as AwsBedrockModelSchema,dd as AwsBedrockCustomModelSchema,oo as ApiFormatSchema,Kd as ApiFormat,yd as AnthropicSchema,bd as AnthropicModelSchema,wd as AllowedMCPServerSchema,Qd as AgentUsageSchema,Ml as AgentResultSchema,Cd as AgentFinishReasonSchema,Fl as AgentConfigSchema,Ud as AUTH_ERROR_PATTERNS,qf as APIKeySchema,Jf as AGENT_UNEXPECTED_REASONING_TOKENS_EVENT};
package/dist/index.d.ts CHANGED
@@ -25,20 +25,22 @@ export type { ContentBlock, FileContent, ImageContent, Message, MessageRole, Mes
25
25
  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";
26
26
  export { mergeModelOptions } from "./llms/model-options";
27
27
  export { DEFAULT_REASONING_EFFORT, REASONING_EFFORT_RATIOS, resolveEffectiveReasoningEffort, resolveReasoningBudgetFromRatio, resolveReasoningEffortRatio, } from "./llms/reasoning-effort";
28
- export { buildClineClientRequestHeaders, type ClineClientRequestHeadersInput, DEFAULT_REQUEST_HEADERS, type MergeClineClientRequestHeadersInput, mergeClineClientRequestHeaders, serializeAbortReason, } from "./llms/requests";
29
- export { CHARS_PER_TOKEN, estimateTokens } from "./llms/tokens";
28
+ export { serializeAbortReason } from "./llms/requests";
29
+ export { CHARS_PER_TOKEN, estimateRequestInputTokens, estimateTokens, type TokenEstimatedRequest, } from "./llms/tokens";
30
30
  export type { ToolApprovalRequest, ToolApprovalResult, ToolCallRecord, ToolPolicy, } from "./llms/tools";
31
31
  export { ToolCallRecordSchema } from "./llms/tools";
32
32
  export { type BasicLogger, type BasicLogMetadata, noopBasicLogger, } from "./logging/logger";
33
33
  export { normalizeJsonLikeStringsForSchema, parseJsonStream, safeJsonParse, safeJsonStringify, } from "./parse/json";
34
+ export { decodeJwtPayload } from "./parse/jwt";
34
35
  export { type OmitUndefinedValues, omitUndefinedValues } from "./parse/object";
35
36
  export { getDefaultShell, getShellArgs } from "./parse/shell";
36
37
  export { maskSecret, sanitizeFileName, trimNonEmpty, truncateSplit, truncateStr, } from "./parse/string";
37
38
  export { formatHumanReadableDate, formatUptime } from "./parse/time";
38
39
  export { validateWithZod, zodToJsonSchema } from "./parse/zod";
39
40
  export type { ClineSystemPromptOptions } from "./prompt/cline";
40
- export { buildClineSystemPrompt, processWorkspaceInfo } from "./prompt/cline";
41
- export { formatDisplayUserInput, formatFileContentBlock, formatModeSwitchNotice, formatUserCommandBlock, formatUserInputBlock, normalizeUserInput, parseUserCommandEnvelope, parseUserInputMode, stripModeNotices, xmlTagsRemoval, } from "./prompt/format";
41
+ export { buildClineSystemPrompt, MODE_TAG_INSTRUCTIONS, PLAN_MODE_INSTRUCTIONS, processWorkspaceInfo, } from "./prompt/cline";
42
+ export type { ModeSwitchNotice, ModeSwitchNoticeTracker, } from "./prompt/format";
43
+ export { createModeSwitchNoticeTracker, formatDisplayUserInput, formatFileContentBlock, formatModeSwitchNotice, formatUserCommandBlock, formatUserInputBlock, normalizeUserInput, parseUserCommandEnvelope, parseUserInputMode, stripModeNotices, xmlTagsRemoval, } from "./prompt/format";
42
44
  export { isClineProvider } from "./providers/utils";
43
45
  export { buildRemoteConfigSessionBlobUploadMetadata, clearRemoteConfigSessionBlobUpload, createRemoteConfigSessionMessagesArtifactUploader, prepareRemoteConfigRuntime, REMOTE_CONFIG_SESSION_BLOB_UPLOAD_METADATA_KEY, readRemoteConfigSessionBlobUploadMetadata, registerRemoteConfigSessionBlobUpload, } from "./remote-config";
44
46
  export type { PreparedRemoteConfigRuntime, PrepareRemoteConfigRuntimeOptions, RemoteConfigBundle, } from "./remote-config/bundle";