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