@cline/shared 0.0.56 → 0.0.58-nightly.1783394305
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/index.browser.js +10 -10
- package/dist/index.d.ts +1 -1
- package/dist/index.js +40 -40
- package/dist/prompt/format.d.ts +6 -0
- package/package.json +1 -1
package/dist/index.browser.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import{z as s}from"zod";import{z as R}from"zod";var no=R.enum(["default","openai-responses","r1"]),Hd={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},oo=R.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),eo=R.enum(["active","preview","deprecated","legacy"]),ro=R.object({input:R.number().optional(),output:R.number().optional(),cacheWrite:R.number().optional(),cacheRead:R.number().optional()}),lo=R.object({maxBudget:R.number().optional(),outputPrice:R.number().optional(),thinkingLevel:R.enum(["low","high"]).optional()}),fo=R.object({reasoningDefaultOn:R.boolean().optional()}).catchall(R.unknown()),fn=R.object({id:R.string(),name:R.string().optional(),description:R.string().optional(),maxTokens:R.number().optional(),contextWindow:R.number().optional(),maxInputTokens:R.number().optional(),capabilities:R.array(oo).optional(),apiFormat:no.optional(),systemRole:R.enum(["system","developer"]).optional(),temperature:R.number().optional(),pricing:ro.optional(),thinkingConfig:lo.optional(),status:eo.optional(),deprecationNotice:R.string().optional(),replacedBy:R.string().optional(),releaseDate:R.string().optional(),deprecationDate:R.string().optional(),family:R.string().optional(),metadata:fo.optional()});import{z as V}from"zod";var In=V.object({id:V.string(),name:V.string(),input:V.unknown(),output:V.unknown(),error:V.string().optional(),durationMs:V.number(),startedAt:V.date(),endedAt:V.date()});var Zd=s.enum(["completed","max_iterations","aborted","mistake_limit","error"]),ad=s.object({inputTokens:s.number(),outputTokens:s.number(),cacheReadTokens:s.number().optional(),cacheWriteTokens:s.number().optional(),totalCost:s.number().optional()}),ul=s.object({text:s.string(),usage:ad,messages:s.array(s.custom()),toolCalls:s.array(In),iterations:s.number(),finishReason:Zd,model:s.object({id:s.string(),provider:s.string(),info:fn.optional()}),startedAt:s.date(),endedAt:s.date(),durationMs:s.number()}),hd=s.enum(["low","medium","high","xhigh"]),Il=s.object({sessionId:s.string().optional(),providerId:s.string(),modelId:s.string(),apiKey:s.string().optional(),baseUrl:s.string().url().optional(),headers:s.record(s.string(),s.string()).optional(),knownModels:s.record(s.string(),fn).optional(),providerConfig:s.unknown().optional(),initialMessages:s.array(s.custom()).optional(),systemPrompt:s.string(),tools:s.array(s.custom()),maxIterations:s.number().positive().optional(),maxParallelToolCalls:s.number().int().positive().default(8),maxTokensPerTurn:s.number().positive().optional(),apiTimeoutMs:s.number().positive().default(180000),userFileContentLoader:s.function().input([s.string()]).output(s.promise(s.string())).optional(),toolContextMetadata:s.record(s.string(),s.unknown()).optional(),execution:s.object({maxConsecutiveMistakes:s.number().int().positive().optional(),reminderAfterIterations:s.number().nonnegative().optional(),reminderText:s.string().optional(),loopDetection:s.union([s.literal(!1),s.object({softThreshold:s.number().int().positive().optional(),hardThreshold:s.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:hd.optional(),thinkingBudgetTokens:s.number().positive().optional(),thinking:s.boolean().optional(),onEvent:s.function().input([s.custom()]).output(s.void()).optional(),hooks:s.custom().optional(),parentAgentId:s.string().optional(),extensions:s.array(s.custom()).optional(),hookErrorMode:s.enum(["ignore","throw"]).default("ignore"),toolPolicies:s.record(s.string(),s.object({enabled:s.boolean().optional(),autoApprove:s.boolean().optional()})).optional(),requestToolApproval:s.function().input([s.object({sessionId:s.string(),agentId:s.string(),conversationId:s.string(),iteration:s.number(),toolCallId:s.string(),toolName:s.string(),input:s.unknown(),policy:s.object({enabled:s.boolean().optional(),autoApprove:s.boolean().optional()}).default({})})]).output(s.union([s.object({approved:s.boolean(),reason:s.string().optional()}),s.promise(s.object({approved:s.boolean(),reason:s.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:s.function().input([s.object({iteration:s.number().int().positive(),consecutiveMistakes:s.number().int().positive(),maxConsecutiveMistakes:s.number().int().positive(),reason:s.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:s.string().optional()})]).output(s.union([s.object({action:s.literal("continue"),guidance:s.string().optional()}),s.object({action:s.literal("stop"),reason:s.string().optional()}),s.promise(s.union([s.object({action:s.literal("continue"),guidance:s.string().optional()}),s.object({action:s.literal("stop"),reason:s.string().optional()})]))])).optional(),logger:s.custom().optional(),extensionContext:s.custom().optional(),abortSignal:s.custom().optional()});import{z as I}from"zod";var so=I.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"]),go=I.object({id:I.string().optional(),label:I.string().optional(),role:I.string().optional(),participantKey:I.string().optional(),participantLabel:I.string().optional(),platformUserId:I.string().optional(),metadata:I.record(I.string(),I.unknown()).optional()}),co=I.object({source:I.string(),sourceEvent:I.string(),threadId:I.string(),channelId:I.string(),isDM:I.boolean(),sessionId:I.string().optional(),workspaceRoot:I.string().optional(),metadata:I.record(I.string(),I.unknown()).optional()}),Cd=I.object({actor:go,context:co,payload:I.record(I.string(),I.unknown()).optional()}),Wd=I.object({action:I.enum(["allow","deny"]).default("allow"),message:I.string().optional(),reason:I.string().optional(),metadata:I.record(I.string(),I.unknown()).optional()}),Jd=I.object({adapter:I.string(),botUserName:I.string().optional(),event:so,payload:I.record(I.string(),I.unknown()),ts:I.string()});var bo=[{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 yo(){return bo.map((n)=>({...n}))}function Kd(n,o){let d=n.includeWhen;if(!d)return!0;let r=o[d.flag]??"";if(d.equals!==void 0&&r!==d.equals)return!1;if(d.notEquals!==void 0&&r===d.notEquals)return!1;return!0}function Od(n=wo){let o=new Set(yo().map((d)=>d.name));return n.filter((d)=>o.has(d.id)).map((d)=>({id:d.id,name:d.name,type:d.type,hint:d.hint,fields:d.fields.map((r)=>({flag:r.flag,label:r.label,placeholder:r.placeholder,required:r.required,help:r.help,initialValue:r.initialValue,options:r.options,includeWhen:r.includeWhen})),security:d.security?{prompt:d.security.prompt,fields:d.security.fields.map((r)=>({key:r.key,label:r.label,placeholder:r.placeholder,help:r.help,requiredMessage:r.requiredMessage}))}:void 0}))}function Qd(n){return/^\d+$/.test(n)?void 0:"Telegram user ID must contain digits only"}function jd(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 md(n){return/^[UW][A-Z0-9]+$/.test(n)?void 0:"Slack member ID must start with U or W and contain uppercase letters or digits only"}var wo=[{id:"telegram",name:"Telegram",type:"polling",hint:"Easiest to set up. No public URL needed.",fields:[{flag:"-k",label:"Bot token",placeholder:"7123456789:AAH...",required:!0,help:["Open Telegram and start a chat with @BotFather","Send /newbot and follow the prompts","BotFather gives you this after creating the bot","It looks like 7123456789:AAHxxx..."]}],security:{prompt:"By default, anyone who finds your bot can message it and run tasks on your machine. Restrict access to your Telegram user ID?",fields:[{key:"userId",label:"Your Telegram user ID",placeholder:"123456789",help:["Message @userinfobot on Telegram","It will reply with your numeric user ID"],requiredMessage:"User ID is required to restrict access",validate:Qd}],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:jd},{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:md}],buildArgs:({teamId:n,userId:o})=>["--hook-command",`jq -r ".payload.actor.participantKey" | grep -qx "slack:team:${n}:user:${o}" && echo '{"action":"allow"}' || echo '{"action":"deny"}'`]}},{id:"discord",name:"Discord",type:"webhook",hint:"Requires a Discord app and public URL.",fields:[{flag:"--application-id",label:"Application ID",required:!0,help:["Go to discord.com/developers/applications","Create a new app, copy the Application ID"]},{flag:"--bot-token",label:"Bot token",required:!0,help:["Go to Bot section, create a bot, copy the token"]},{flag:"--public-key",label:"Public key",required:!0,help:["Found in General Information of your app"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0,help:["Base URL for the connector","For Discord, set the Interactions Endpoint URL to <base-url>/api/webhooks/discord"]}]},{id:"whatsapp",name:"WhatsApp",type:"webhook",hint:"Requires Meta developer account and public URL.",fields:[{flag:"--phone-number-id",label:"Phone number ID",required:!0,help:["From your WhatsApp Business account in Meta Developer portal"]},{flag:"--access-token",label:"Access token",required:!0,help:["Generate a permanent token in Meta Developer portal"]},{flag:"--app-secret",label:"App secret",required:!0,help:["Found in App Settings > Basic"]},{flag:"--verify-token",label:"Webhook verify token",placeholder:"my-verify-token",required:!0,help:["Any string you choose, used to verify webhook setup"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"gchat",name:"Google Chat",type:"webhook",hint:"Requires Google Cloud project and public URL.",fields:[{flag:"--credentials-json",label:"Service account credentials JSON",required:!0,help:["Create a service account in Google Cloud Console","Download the credentials JSON file","Paste the JSON content here"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"linear",name:"Linear",type:"webhook",hint:"React to Linear issues and comments.",fields:[{flag:"--api-key",label:"API key",required:!0,help:["Go to Linear Settings > API > Personal API keys"]},{flag:"--webhook-secret",label:"Webhook signing secret",required:!0,help:["Go to Settings > API > Webhooks, create one","Copy the signing secret"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]}];var Nd=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],Sd=new Set(Nd);function Ao(n,o){return n.name||`extension_${String(o).padStart(4,"0")}`}function ko(n){return Array.isArray(n)&&n.every((o)=>typeof o==="string")}function _o(n){if(!Array.isArray(n))return;let o=n.filter((d)=>typeof d==="string").map((d)=>d.trim()).filter((d)=>d.length>0);return o.length>0?o:void 0}function uo(n){let o=_o(n.providerIds),d=_o(n.modelIds);return{...n,...o?{providerIds:o}:{},...d?{modelIds:d}:{}}}function pd(n,o){let d=Ao(n,o),r=n.manifest;if(!r||typeof r!=="object")throw Error(`Invalid manifest for extension "${d}": manifest is required`);if(!Array.isArray(r.capabilities)||r.capabilities.length===0)throw Error(`Invalid manifest for extension "${d}": capabilities must be a non-empty array`);let l=new Set;for(let y of r.capabilities){if(!Sd.has(y))throw Error(`Invalid manifest for extension "${d}": unsupported capability "${String(y)}"`);l.add(y)}if(Object.hasOwn(r,"providerIds")&&!ko(r.providerIds))throw Error(`Invalid manifest for extension "${d}": providerIds must be a string array when provided`);if(Object.hasOwn(r,"modelIds")&&!ko(r.modelIds))throw Error(`Invalid manifest for extension "${d}": modelIds must be a string array when provided`);let c=l.has("hooks");if(n.hooks!==void 0&&!c)throw Error(`Invalid manifest for extension "${d}": runtime hooks require the "hooks" capability`);return{capabilities:l,raw:uo(r)}}function vd(n,o){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${o}": expected object`);let d=typeof n.eventType==="string"?n.eventType.trim():"",r=typeof n.source==="string"?n.source.trim():"";if(!d)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!r)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:d,source:r,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class Rn{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,o)=>({extension:n,order:o,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:pd(n.extension,n.order)})),this.phase="setup"}async setup(n={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let o,d=[];for(let r of this.normalized){let{extension:l}=r;if(l.disabled)continue;let c=Ao(l,r.order),g={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},y={registerTool:(w)=>g.tools.push(w),registerCommand:(w)=>g.commands.push(w),registerRule:(w)=>{if(!r.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${c}": registerRule requires the "rules" capability`);g.rules.push(w)},registerMessageBuilder:(w)=>g.messageBuilder.push(w),registerProvider:(w)=>g.providers.push(w),registerAutomationEventType:(w)=>{if(!r.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${c}": registerAutomationEventType requires the "automationEvents" capability`);g.automationEventTypes.push(vd(w,c))},registerMcpServer:(w)=>{if(!r.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${c}": registerMcpServer requires the "mcp" capability`);g.mcpServers.push({...w,metadata:{...w.metadata??{},source:"plugin",plugin:c}})}},A=r.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await l.setup?.(y,A),d.push(g)}catch(w){if(n.tolerateSetupErrors!==!0)throw w;o??=w}}if(o&&n.tolerateSetupErrors!==!0)throw o;for(let r of d)this.registry.tools.push(...r.tools),this.registry.commands.push(...r.commands),this.registry.rules.push(...r.rules),this.registry.messageBuilder.push(...r.messageBuilder),this.registry.providers.push(...r.providers),this.registry.automationEventTypes.push(...r.automationEventTypes),this.registry.mcpServers.push(...r.mcpServers);if(this.phase="activate",o)throw o}activate(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase==="setup")throw Error("Contribution registry setup must complete before activation");if(this.phase!=="activate")return;this.phase="run"}async initialize(n={}){this.resolve(),this.validate();try{await this.setup(n)}finally{if(this.phase==="activate")this.activate()}}isActivated(){return this.phase==="run"}getRegistrySnapshot(){return{tools:[...this.registry.tools],commands:[...this.registry.commands],rules:[...this.registry.rules],messageBuilder:[...this.registry.messageBuilder],providers:[...this.registry.providers],automationEventTypes:[...this.registry.automationEventTypes],mcpServers:[...this.registry.mcpServers]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getRegisteredMcpServers(){return[...this.registry.mcpServers]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,o)=>n.order-o.order).map(({extension:n})=>n)}}function xd(n={}){return new Rn(n)}var td=[".js",".ts"];var Io={CLINE_PASS:"ext-cline-pass"},zd={[Io.CLINE_PASS]:!1},ne=Object.values(Io);import{z as b}from"zod";var io=b.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),C=b.record(b.string(),b.string()),oe=b.object({toolName:b.string(),parameters:C}),de=b.object({toolName:b.string(),parameters:C,result:b.string(),success:b.boolean(),executionTimeMs:b.number()}),ee=b.object({prompt:b.string(),attachments:b.array(b.string())}),re=b.object({taskMetadata:C}),le=b.object({taskMetadata:C,previousState:C}),fe=b.object({taskMetadata:C}),se=b.object({taskMetadata:C}),ge=b.object({taskId:b.string(),ulid:b.string(),contextSize:b.number(),compactionStrategy:b.string(),previousApiReqIndex:b.number(),tokensIn:b.number(),tokensOut:b.number(),tokensInCache:b.number(),tokensOutCache:b.number(),deletedRangeStart:b.number(),deletedRangeEnd:b.number(),contextJsonPath:b.string(),contextRawPath:b.string()}),Ro=b.object({clineVersion:b.string(),hookName:io,timestamp:b.string(),taskId:b.string(),sessionContext:b.object({rootSessionId:b.string().optional(),hookLogPath:b.string().optional()}).optional(),workspaceRoots:b.array(b.string()),workspaceInfo:b.custom().optional(),userId:b.string(),agent_id:b.string(),parent_agent_id:b.string().nullable(),iteration:b.number().optional(),reason:b.string().optional(),tool_call:b.object({id:b.string(),name:b.string(),input:b.unknown()}).optional(),tool_result:b.custom().optional(),turn:b.unknown().optional(),error:b.object({name:b.string(),message:b.string(),stack:b.string().optional()}).optional(),preToolUse:oe.optional(),postToolUse:de.optional(),userPromptSubmit:ee.optional(),taskStart:re.optional(),taskResume:le.optional(),taskCancel:fe.optional(),taskComplete:se.optional(),preCompact:ge.optional()}).passthrough();function ce(n){let o=Ro.safeParse(n);if(!o.success)return;return o.data}var Gl="v1",Ll="v1",Yl="v1",Pl=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function sn(n){let o=/^v(\d+)$/.exec(n?.trim()??"");if(!o)return;return Number.parseInt(o[1]??"",10)}function Vl(n,o="v1"){let d=sn(n.protocolVersion),r=sn(o);if(d===void 0||r===void 0)return{compatible:!1,reason:"missing_protocol"};let l=sn(n.minClientProtocolVersion)??d,c=sn(n.maxClientProtocolVersion)??d;return r>=l&&r<=c?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var be=30000,Xl=5000;function ye(n){switch(n){case"run.start":case"session.send_input":return null;default:return be}}function Hl(n,o){return o===void 0?ye(n):o}var we=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],ke=new Set(we);function Zl(n){return typeof n==="string"&&ke.has(n)}var al="tool_executor.",hl="custom_tool.",Cl="hook.",Wl="compaction.compact",Jl="checkpoint.create",Kl="mistake_limit.decide",Ol="user_instructions.snapshot";function Dn(n,o){return`<file_content path="${n}">
|
|
1
|
+
import{z as s}from"zod";import{z as R}from"zod";var no=R.enum(["default","openai-responses","r1"]),Hd={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},oo=R.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),eo=R.enum(["active","preview","deprecated","legacy"]),ro=R.object({input:R.number().optional(),output:R.number().optional(),cacheWrite:R.number().optional(),cacheRead:R.number().optional()}),lo=R.object({maxBudget:R.number().optional(),outputPrice:R.number().optional(),thinkingLevel:R.enum(["low","high"]).optional()}),fo=R.object({reasoningDefaultOn:R.boolean().optional()}).catchall(R.unknown()),fn=R.object({id:R.string(),name:R.string().optional(),description:R.string().optional(),maxTokens:R.number().optional(),contextWindow:R.number().optional(),maxInputTokens:R.number().optional(),capabilities:R.array(oo).optional(),apiFormat:no.optional(),systemRole:R.enum(["system","developer"]).optional(),temperature:R.number().optional(),pricing:ro.optional(),thinkingConfig:lo.optional(),status:eo.optional(),deprecationNotice:R.string().optional(),replacedBy:R.string().optional(),releaseDate:R.string().optional(),deprecationDate:R.string().optional(),family:R.string().optional(),metadata:fo.optional()});import{z as V}from"zod";var un=V.object({id:V.string(),name:V.string(),input:V.unknown(),output:V.unknown(),error:V.string().optional(),durationMs:V.number(),startedAt:V.date(),endedAt:V.date()});var Zd=s.enum(["completed","max_iterations","aborted","mistake_limit","error"]),ad=s.object({inputTokens:s.number(),outputTokens:s.number(),cacheReadTokens:s.number().optional(),cacheWriteTokens:s.number().optional(),totalCost:s.number().optional()}),Il=s.object({text:s.string(),usage:ad,messages:s.array(s.custom()),toolCalls:s.array(un),iterations:s.number(),finishReason:Zd,model:s.object({id:s.string(),provider:s.string(),info:fn.optional()}),startedAt:s.date(),endedAt:s.date(),durationMs:s.number()}),hd=s.enum(["low","medium","high","xhigh"]),ul=s.object({sessionId:s.string().optional(),providerId:s.string(),modelId:s.string(),apiKey:s.string().optional(),baseUrl:s.string().url().optional(),headers:s.record(s.string(),s.string()).optional(),knownModels:s.record(s.string(),fn).optional(),providerConfig:s.unknown().optional(),initialMessages:s.array(s.custom()).optional(),systemPrompt:s.string(),tools:s.array(s.custom()),maxIterations:s.number().positive().optional(),maxParallelToolCalls:s.number().int().positive().default(8),maxTokensPerTurn:s.number().positive().optional(),apiTimeoutMs:s.number().positive().default(180000),userFileContentLoader:s.function().input([s.string()]).output(s.promise(s.string())).optional(),toolContextMetadata:s.record(s.string(),s.unknown()).optional(),execution:s.object({maxConsecutiveMistakes:s.number().int().positive().optional(),reminderAfterIterations:s.number().nonnegative().optional(),reminderText:s.string().optional(),loopDetection:s.union([s.literal(!1),s.object({softThreshold:s.number().int().positive().optional(),hardThreshold:s.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:hd.optional(),thinkingBudgetTokens:s.number().positive().optional(),thinking:s.boolean().optional(),onEvent:s.function().input([s.custom()]).output(s.void()).optional(),hooks:s.custom().optional(),parentAgentId:s.string().optional(),extensions:s.array(s.custom()).optional(),hookErrorMode:s.enum(["ignore","throw"]).default("ignore"),toolPolicies:s.record(s.string(),s.object({enabled:s.boolean().optional(),autoApprove:s.boolean().optional()})).optional(),requestToolApproval:s.function().input([s.object({sessionId:s.string(),agentId:s.string(),conversationId:s.string(),iteration:s.number(),toolCallId:s.string(),toolName:s.string(),input:s.unknown(),policy:s.object({enabled:s.boolean().optional(),autoApprove:s.boolean().optional()}).default({})})]).output(s.union([s.object({approved:s.boolean(),reason:s.string().optional()}),s.promise(s.object({approved:s.boolean(),reason:s.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:s.function().input([s.object({iteration:s.number().int().positive(),consecutiveMistakes:s.number().int().positive(),maxConsecutiveMistakes:s.number().int().positive(),reason:s.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:s.string().optional()})]).output(s.union([s.object({action:s.literal("continue"),guidance:s.string().optional()}),s.object({action:s.literal("stop"),reason:s.string().optional()}),s.promise(s.union([s.object({action:s.literal("continue"),guidance:s.string().optional()}),s.object({action:s.literal("stop"),reason:s.string().optional()})]))])).optional(),logger:s.custom().optional(),extensionContext:s.custom().optional(),abortSignal:s.custom().optional()});import{z as u}from"zod";var so=u.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"]),go=u.object({id:u.string().optional(),label:u.string().optional(),role:u.string().optional(),participantKey:u.string().optional(),participantLabel:u.string().optional(),platformUserId:u.string().optional(),metadata:u.record(u.string(),u.unknown()).optional()}),co=u.object({source:u.string(),sourceEvent:u.string(),threadId:u.string(),channelId:u.string(),isDM:u.boolean(),sessionId:u.string().optional(),workspaceRoot:u.string().optional(),metadata:u.record(u.string(),u.unknown()).optional()}),Cd=u.object({actor:go,context:co,payload:u.record(u.string(),u.unknown()).optional()}),Wd=u.object({action:u.enum(["allow","deny"]).default("allow"),message:u.string().optional(),reason:u.string().optional(),metadata:u.record(u.string(),u.unknown()).optional()}),Jd=u.object({adapter:u.string(),botUserName:u.string().optional(),event:so,payload:u.record(u.string(),u.unknown()),ts:u.string()});var bo=[{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 yo(){return bo.map((n)=>({...n}))}function Kd(n,o){let d=n.includeWhen;if(!d)return!0;let r=o[d.flag]??"";if(d.equals!==void 0&&r!==d.equals)return!1;if(d.notEquals!==void 0&&r===d.notEquals)return!1;return!0}function Od(n=wo){let o=new Set(yo().map((d)=>d.name));return n.filter((d)=>o.has(d.id)).map((d)=>({id:d.id,name:d.name,type:d.type,hint:d.hint,fields:d.fields.map((r)=>({flag:r.flag,label:r.label,placeholder:r.placeholder,required:r.required,help:r.help,initialValue:r.initialValue,options:r.options,includeWhen:r.includeWhen})),security:d.security?{prompt:d.security.prompt,fields:d.security.fields.map((r)=>({key:r.key,label:r.label,placeholder:r.placeholder,help:r.help,requiredMessage:r.requiredMessage}))}:void 0}))}function Qd(n){return/^\d+$/.test(n)?void 0:"Telegram user ID must contain digits only"}function jd(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 md(n){return/^[UW][A-Z0-9]+$/.test(n)?void 0:"Slack member ID must start with U or W and contain uppercase letters or digits only"}var wo=[{id:"telegram",name:"Telegram",type:"polling",hint:"Easiest to set up. No public URL needed.",fields:[{flag:"-k",label:"Bot token",placeholder:"7123456789:AAH...",required:!0,help:["Open Telegram and start a chat with @BotFather","Send /newbot and follow the prompts","BotFather gives you this after creating the bot","It looks like 7123456789:AAHxxx..."]}],security:{prompt:"By default, anyone who finds your bot can message it and run tasks on your machine. Restrict access to your Telegram user ID?",fields:[{key:"userId",label:"Your Telegram user ID",placeholder:"123456789",help:["Message @userinfobot on Telegram","It will reply with your numeric user ID"],requiredMessage:"User ID is required to restrict access",validate:Qd}],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:jd},{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:md}],buildArgs:({teamId:n,userId:o})=>["--hook-command",`jq -r ".payload.actor.participantKey" | grep -qx "slack:team:${n}:user:${o}" && echo '{"action":"allow"}' || echo '{"action":"deny"}'`]}},{id:"discord",name:"Discord",type:"webhook",hint:"Requires a Discord app and public URL.",fields:[{flag:"--application-id",label:"Application ID",required:!0,help:["Go to discord.com/developers/applications","Create a new app, copy the Application ID"]},{flag:"--bot-token",label:"Bot token",required:!0,help:["Go to Bot section, create a bot, copy the token"]},{flag:"--public-key",label:"Public key",required:!0,help:["Found in General Information of your app"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0,help:["Base URL for the connector","For Discord, set the Interactions Endpoint URL to <base-url>/api/webhooks/discord"]}]},{id:"whatsapp",name:"WhatsApp",type:"webhook",hint:"Requires Meta developer account and public URL.",fields:[{flag:"--phone-number-id",label:"Phone number ID",required:!0,help:["From your WhatsApp Business account in Meta Developer portal"]},{flag:"--access-token",label:"Access token",required:!0,help:["Generate a permanent token in Meta Developer portal"]},{flag:"--app-secret",label:"App secret",required:!0,help:["Found in App Settings > Basic"]},{flag:"--verify-token",label:"Webhook verify token",placeholder:"my-verify-token",required:!0,help:["Any string you choose, used to verify webhook setup"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"gchat",name:"Google Chat",type:"webhook",hint:"Requires Google Cloud project and public URL.",fields:[{flag:"--credentials-json",label:"Service account credentials JSON",required:!0,help:["Create a service account in Google Cloud Console","Download the credentials JSON file","Paste the JSON content here"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"linear",name:"Linear",type:"webhook",hint:"React to Linear issues and comments.",fields:[{flag:"--api-key",label:"API key",required:!0,help:["Go to Linear Settings > API > Personal API keys"]},{flag:"--webhook-secret",label:"Webhook signing secret",required:!0,help:["Go to Settings > API > Webhooks, create one","Copy the signing secret"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]}];var Nd=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],Sd=new Set(Nd);function _o(n,o){return n.name||`extension_${String(o).padStart(4,"0")}`}function ko(n){return Array.isArray(n)&&n.every((o)=>typeof o==="string")}function Ao(n){if(!Array.isArray(n))return;let o=n.filter((d)=>typeof d==="string").map((d)=>d.trim()).filter((d)=>d.length>0);return o.length>0?o:void 0}function Io(n){let o=Ao(n.providerIds),d=Ao(n.modelIds);return{...n,...o?{providerIds:o}:{},...d?{modelIds:d}:{}}}function pd(n,o){let d=_o(n,o),r=n.manifest;if(!r||typeof r!=="object")throw Error(`Invalid manifest for extension "${d}": manifest is required`);if(!Array.isArray(r.capabilities)||r.capabilities.length===0)throw Error(`Invalid manifest for extension "${d}": capabilities must be a non-empty array`);let l=new Set;for(let y of r.capabilities){if(!Sd.has(y))throw Error(`Invalid manifest for extension "${d}": unsupported capability "${String(y)}"`);l.add(y)}if(Object.hasOwn(r,"providerIds")&&!ko(r.providerIds))throw Error(`Invalid manifest for extension "${d}": providerIds must be a string array when provided`);if(Object.hasOwn(r,"modelIds")&&!ko(r.modelIds))throw Error(`Invalid manifest for extension "${d}": modelIds must be a string array when provided`);let c=l.has("hooks");if(n.hooks!==void 0&&!c)throw Error(`Invalid manifest for extension "${d}": runtime hooks require the "hooks" capability`);return{capabilities:l,raw:Io(r)}}function vd(n,o){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${o}": expected object`);let d=typeof n.eventType==="string"?n.eventType.trim():"",r=typeof n.source==="string"?n.source.trim():"";if(!d)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!r)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:d,source:r,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class Rn{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,o)=>({extension:n,order:o,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:pd(n.extension,n.order)})),this.phase="setup"}async setup(n={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let o,d=[];for(let r of this.normalized){let{extension:l}=r;if(l.disabled)continue;let c=_o(l,r.order),g={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},y={registerTool:(w)=>g.tools.push(w),registerCommand:(w)=>g.commands.push(w),registerRule:(w)=>{if(!r.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${c}": registerRule requires the "rules" capability`);g.rules.push(w)},registerMessageBuilder:(w)=>g.messageBuilder.push(w),registerProvider:(w)=>g.providers.push(w),registerAutomationEventType:(w)=>{if(!r.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${c}": registerAutomationEventType requires the "automationEvents" capability`);g.automationEventTypes.push(vd(w,c))},registerMcpServer:(w)=>{if(!r.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${c}": registerMcpServer requires the "mcp" capability`);g.mcpServers.push({...w,metadata:{...w.metadata??{},source:"plugin",plugin:c}})}},_=r.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await l.setup?.(y,_),d.push(g)}catch(w){if(n.tolerateSetupErrors!==!0)throw w;o??=w}}if(o&&n.tolerateSetupErrors!==!0)throw o;for(let r of d)this.registry.tools.push(...r.tools),this.registry.commands.push(...r.commands),this.registry.rules.push(...r.rules),this.registry.messageBuilder.push(...r.messageBuilder),this.registry.providers.push(...r.providers),this.registry.automationEventTypes.push(...r.automationEventTypes),this.registry.mcpServers.push(...r.mcpServers);if(this.phase="activate",o)throw o}activate(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase==="setup")throw Error("Contribution registry setup must complete before activation");if(this.phase!=="activate")return;this.phase="run"}async initialize(n={}){this.resolve(),this.validate();try{await this.setup(n)}finally{if(this.phase==="activate")this.activate()}}isActivated(){return this.phase==="run"}getRegistrySnapshot(){return{tools:[...this.registry.tools],commands:[...this.registry.commands],rules:[...this.registry.rules],messageBuilder:[...this.registry.messageBuilder],providers:[...this.registry.providers],automationEventTypes:[...this.registry.automationEventTypes],mcpServers:[...this.registry.mcpServers]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getRegisteredMcpServers(){return[...this.registry.mcpServers]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,o)=>n.order-o.order).map(({extension:n})=>n)}}function xd(n={}){return new Rn(n)}var td=[".js",".ts"];var uo={CLINE_PASS:"ext-cline-pass"},zd={[uo.CLINE_PASS]:!1},ne=Object.values(uo);import{z as b}from"zod";var io=b.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),C=b.record(b.string(),b.string()),oe=b.object({toolName:b.string(),parameters:C}),de=b.object({toolName:b.string(),parameters:C,result:b.string(),success:b.boolean(),executionTimeMs:b.number()}),ee=b.object({prompt:b.string(),attachments:b.array(b.string())}),re=b.object({taskMetadata:C}),le=b.object({taskMetadata:C,previousState:C}),fe=b.object({taskMetadata:C}),se=b.object({taskMetadata:C}),ge=b.object({taskId:b.string(),ulid:b.string(),contextSize:b.number(),compactionStrategy:b.string(),previousApiReqIndex:b.number(),tokensIn:b.number(),tokensOut:b.number(),tokensInCache:b.number(),tokensOutCache:b.number(),deletedRangeStart:b.number(),deletedRangeEnd:b.number(),contextJsonPath:b.string(),contextRawPath:b.string()}),Ro=b.object({clineVersion:b.string(),hookName:io,timestamp:b.string(),taskId:b.string(),sessionContext:b.object({rootSessionId:b.string().optional(),hookLogPath:b.string().optional()}).optional(),workspaceRoots:b.array(b.string()),workspaceInfo:b.custom().optional(),userId:b.string(),agent_id:b.string(),parent_agent_id:b.string().nullable(),iteration:b.number().optional(),reason:b.string().optional(),tool_call:b.object({id:b.string(),name:b.string(),input:b.unknown()}).optional(),tool_result:b.custom().optional(),turn:b.unknown().optional(),error:b.object({name:b.string(),message:b.string(),stack:b.string().optional()}).optional(),preToolUse:oe.optional(),postToolUse:de.optional(),userPromptSubmit:ee.optional(),taskStart:re.optional(),taskResume:le.optional(),taskCancel:fe.optional(),taskComplete:se.optional(),preCompact:ge.optional()}).passthrough();function ce(n){let o=Ro.safeParse(n);if(!o.success)return;return o.data}var Ul="v1",Ll="v1",Yl="v1",Pl=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function sn(n){let o=/^v(\d+)$/.exec(n?.trim()??"");if(!o)return;return Number.parseInt(o[1]??"",10)}function Vl(n,o="v1"){let d=sn(n.protocolVersion),r=sn(o);if(d===void 0||r===void 0)return{compatible:!1,reason:"missing_protocol"};let l=sn(n.minClientProtocolVersion)??d,c=sn(n.maxClientProtocolVersion)??d;return r>=l&&r<=c?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var be=30000,Xl=5000;function ye(n){switch(n){case"run.start":case"session.send_input":return null;default:return be}}function Hl(n,o){return o===void 0?ye(n):o}var we=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],ke=new Set(we);function Zl(n){return typeof n==="string"&&ke.has(n)}var al="tool_executor.",hl="custom_tool.",Cl="hook.",Wl="compaction.compact",Jl="checkpoint.create",Kl="mistake_limit.decide",Ol="user_instructions.snapshot";function Dn(n,o){return`<file_content path="${n}">
|
|
2
2
|
${o}
|
|
3
|
-
</file_content>`}function _e(n,o="act"){return`<user_input mode="${o}">${n}</user_input>`}function Ae(n,o){return`<user_command slash="${o}">${n}</user_command>`}function ue(n,o){return`<mode_notice>The user switched from ${n} mode to ${o} mode before sending this message.</mode_notice>`}function Ie(n,o){let d=n.trim(),r=new RegExp(`^<${o}\\b([^>]*)>([\\s\\S]*?)<\\/${o}>$`,"i").exec(d);if(!r)return;return{attrs:r[1]??"",content:r[2]??""}}function ie(n,o){return new RegExp(`${o}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function Do(n){if(!n?.trim())return;let o=Ie(n,"user_command");if(!o)return;let d=ie(o.attrs,"slash");if(!d)return;return{slash:d,content:o.content.trim()}}function Eo(n){if(!n?.trim())return"";let o=n.trim();for(let d of["user_input","user_command"]){let r=qo(o,d);o=(r!==o?r:o.replace(new RegExp(`<${d}[^>]*>`,"g"),"")).trim()}return o}function Bo(n){if(!n?.trim())return"";return Re(n,"mode_notice").trim()}function Re(n,o){let d=`<${o}>`,r=`</${o}>`,l=n,c=l.indexOf(d);while(c!==-1){let g=l.indexOf(r,c+d.length);if(g===-1)break;l=l.slice(0,c)+l.slice(g+r.length),c=l.indexOf(d,c)}return l}function De(n){let o=Bo(Eo(n)),d=Do(n);if(!d)return o;if(d.slash.toLowerCase()==="team"){let l=o.toLowerCase().startsWith("spawn a team of agents for the following task:")?o.slice(46).trim():o;return l?`/team ${l}`:"/team"}return o?`/${d.slash} ${o}`:`/${d.slash}`}function qo(n,o){if(!n?.trim())return"";if(!o)return n;let d=new RegExp(`<${o}\\b[^>]*>([\\s\\S]*?)</${o}>`,"g");return n.replace(d,"$1")}var W="[media omitted: invalid or exceeds size limit]",cn=["image/png","image/jpeg","image/gif","image/webp"],Ee=5242880,a=5242880,J=6291456,Be=8388608;function qe(n){return n.length}function Mo(n){let o=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-o}function Me(n=5242880){return Math.floor(n*3/4)}function En(n){return Math.ceil(n/3)*4}function To(n={}){return{maxImageEncodedBytes:n.maxImageEncodedBytes??5242880,maxImageDecodedBytes:n.maxImageDecodedBytes??6291456,maxTotalMediaBytes:n.maxTotalMediaBytes??8388608}}function bn(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function gn(n,o){n.omittedImages+=1,n.omittedReasons[o]=(n.omittedReasons[o]??0)+1}function z(n,o,d,r){let l=To(d);if(n>l.maxImageEncodedBytes){let c={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${l.maxImageEncodedBytes} byte encoded limit`};return gn(r,c.reason),c}if(o>l.maxImageDecodedBytes){let c={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l.maxImageDecodedBytes} byte decoded limit`};return gn(r,c.reason),c}if(r.totalEncodedBytes+n>l.maxTotalMediaBytes){let c={ok:!1,reason:"total_limit",message:`Image media exceeds the ${l.maxTotalMediaBytes} byte total media limit`};return gn(r,c.reason),c}return r.totalEncodedBytes+=n,r.keptImages+=1,null}function Fo(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function Te(n){return n.length>0&&$o(n,0,n.length)}function $o(n,o,d){let r=d-o;if(r%4!==0)return!1;let l=d;if(r>=2&&n.charCodeAt(d-2)===61&&n.charCodeAt(d-1)===61)l-=2;else if(r>=1&&n.charCodeAt(d-1)===61)l-=1;for(let c=o;c<l;c++)if(!Fo(n.charCodeAt(c)))return!1;for(let c=l;c<d;c++)if(n.charCodeAt(c)!==61)return!1;return!0}function Fe(n,o,d){return d-o>=5&&(n.charCodeAt(o)|32)===100&&(n.charCodeAt(o+1)|32)===97&&(n.charCodeAt(o+2)|32)===116&&(n.charCodeAt(o+3)|32)===97&&n.charCodeAt(o+4)===58}function $e(n){let o=0,d=n.length;while(o<d&&/\s/.test(n[o]??""))o+=1;while(d>o&&/\s/.test(n[d-1]??""))d-=1;return{start:o,end:d}}function Ue(n,o,d){if(!Fe(n,o,d))return;let r=o+5,l=n.indexOf(",",r);if(l===-1||l>=d)return;if(l-r>128)return;let c=n.slice(r,l).toLowerCase(),g=";base64";if(!c.endsWith(g))return;let y=c.slice(0,-g.length);if(!y||y.includes(";"))return;return{mediaType:y,base64Start:l+1,base64End:d}}function Uo(n,o,d={}){let r=d.maxEncodedBytes??5242880,l=d.maxDecodedBytes??6291456,c=new Set(d.supportedMediaTypes??cn),g=n?.toLowerCase(),y=$e(o),A=y.start,w=y.end,u=Ue(o,y.start,y.end);if(u){if(g&&g!==u.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${u.mediaType}`};g=u.mediaType,A=u.base64Start,w=u.base64End}if(!g||!c.has(g))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let M=w-A;if(M===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(M>r)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${r} byte encoded limit`};if(!$o(o,A,w))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let T=o.slice(A,w),F=Mo(T);if(F>l)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l} byte decoded limit`};return{ok:!0,mediaType:g,base64:T,encodedBytes:M,decodedBytes:F}}function nn(n,o,d,r){let l=Uo(n,o,{maxEncodedBytes:d.maxImageEncodedBytes,maxDecodedBytes:d.maxImageDecodedBytes});if(!l.ok)return gn(r,l.reason),l;let c=z(l.encodedBytes,l.decodedBytes,d,r);if(c)return c;return l}function U(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var Bn="ERROR: EMPTY CONTENT",Ge="[image attached]";function Go(n,o){let d=n[n.length-1];if(o.role==="tool"&&d?.role==="tool"&&Array.isArray(d.content)&&Array.isArray(o.content)){d.content.push(...o.content);return}n.push(o)}function Le(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((o)=>{if(!o||typeof o!=="object")return!1;let d=o;if(d.type==="text")return typeof d.text==="string";if(d.type==="image")return typeof d.data==="string"&&typeof d.mediaType==="string";return!1})}function K(){return{type:"text",text:W}}function Lo(n){return z(a,0,{maxImageEncodedBytes:a,maxImageDecodedBytes:J},n)===null}function Ye(n){try{return new URL(n).protocol}catch{return}}function qn(n,o){let d=nn(n.mediaType,n.data,{maxImageEncodedBytes:a,maxImageDecodedBytes:J},o);if(!d.ok)return K();return{type:"image-data",data:d.base64,mediaType:d.mediaType}}function Pe(n,o){if(n.image instanceof URL){if(n.image.protocol==="data:"){let g=nn(n.mediaType,n.image.href,{maxImageEncodedBytes:a,maxImageDecodedBytes:J},o);if(!g.ok)return K();return{type:"image",image:`data:${g.mediaType};base64,${g.base64}`,mediaType:g.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return K();if(!Lo(o))return K();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let g=Ye(n.image);if(g==="http:"||g==="https:"){if(!Lo(o))return K();return{type:"image",image:n.image,mediaType:n.mediaType}}let y=g==="data:",A=nn(n.mediaType??(y?void 0:"image/png"),n.image,{maxImageEncodedBytes:a,maxImageDecodedBytes:J},o);if(!A.ok)return K();return{type:"image",image:y?`data:${A.mediaType};base64,${A.base64}`:A.base64,mediaType:A.mediaType}}let d=n.image.byteLength,r=En(d),l=n.mediaType?.toLowerCase()??"image/png";if(!cn.includes(l)||z(r,d,{maxImageEncodedBytes:a,maxImageDecodedBytes:J},o))return K();return{type:"image",image:n.image,mediaType:l}}function Mn(n,o,d,r=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let A=[],w=!1,u=!1;for(let M of n){if(M&&typeof M==="object"){let F=M;if(F.type==="image"&&typeof F.data==="string"&&typeof F.mediaType==="string"){if(!r){A.push(W),w=!0,u=!0;continue}let en={type:"image",data:F.data,mediaType:F.mediaType},O=qn(en,d);if(O.type==="image-data")o.push({type:"image",data:O.data,mediaType:O.mediaType});else A.push(O.text);w=!0,u=!0;continue}if(F.type==="image"){A.push(W),w=!0,u=!0;continue}if(F.type==="text"&&typeof F.text==="string"){A.push(F.text),w=!0;continue}}let T=Mn(M,o,d,r);A.push(T.value),w||=T.changed,u||=T.mediaChanged}return{value:w?A:n,changed:w,mediaChanged:u}}let l=n;if(l.type==="image"){if(typeof l.data==="string"&&typeof l.mediaType==="string"){if(!r)return{value:W,changed:!0,mediaChanged:!0};let A={type:"image",data:l.data,mediaType:l.mediaType},w=qn(A,d);if(w.type==="image-data")return o.push({type:"image",data:w.data,mediaType:w.mediaType}),{value:Ge,changed:!0,mediaChanged:!0};return{value:w.text,changed:!0,mediaChanged:!0}}return{value:W,changed:!0,mediaChanged:!0}}let c={},g=!1,y=!1;for(let[A,w]of Object.entries(l)){let u=Mn(w,o,d,r);c[A]=u.value,g||=u.changed,y||=u.mediaChanged}return{value:g?c:n,changed:g,mediaChanged:y}}function on(n){if(typeof n==="string")return U(n);if(Array.isArray(n))return n.map((o)=>on(o));if(n!==null&&typeof n==="object"){let o=n,d={};for(let[r,l]of Object.entries(o))d[r]=on(l);return d}return n}function Yo(n,o=!1,d=bn()){if(typeof n==="string")return{type:o?"error-text":"text",value:U(n)};if(!o&&Le(n))return{type:"content",value:n.map((r)=>r.type==="image"?qn(r,d):{type:"text",text:U(r.text)})};if(n!==null&&typeof n==="object"){let r=[],l=Mn(n,r,d,!o);if(!o&&r.length>0)return{type:"content",value:[{type:"text",text:typeof l.value==="string"?U(l.value):JSON.stringify(on(l.value))},...r.map((g)=>({type:"image-data",data:g.data,mediaType:g.mediaType}))]};if(l.mediaChanged)return{type:o?"error-json":"json",value:on(l.value)}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:o?"error-json":"json",value:on(n)};return{type:o?"error-text":"text",value:U(String(n))}}function Ve(n,o,d){let r=d?.assistantToolCallArgKey??"input",l=[],c=bn();if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)l.push({role:"system",content:typeof n==="string"?U(n):n});for(let g of o){let y=g.content;if(typeof y==="string"){if(y.trim().length===0){l.push({role:g.role,content:[{type:"text",text:Bn}]});continue}l.push({role:g.role,content:U(y)});continue}let A=[],w=[];if(y.length===0){l.push({role:g.role,content:[{type:"text",text:Bn}]});continue}for(let u of y)switch(u.type){case"text":A.push({type:"text",text:U(u.text),...u.providerOptions?{providerOptions:u.providerOptions}:{}});break;case"reasoning":A.push({type:"reasoning",text:U(u.text),...u.providerOptions?{providerOptions:u.providerOptions}:{}});break;case"image":A.push(Pe(u,c));break;case"file":A.push({type:"text",text:Dn(u.path,U(u.content))});break;case"tool-call":if(g.role==="assistant")A.push({type:"tool-call",toolCallId:u.toolCallId,toolName:u.toolName,[r]:u.input,...u.providerOptions?{providerOptions:u.providerOptions}:{}});break;case"tool-result":{w.push({type:"tool-result",toolCallId:u.toolCallId,toolName:u.toolName,output:Yo(u.output,u.isError??!1,c)});break}}if(A.length>0)Go(l,{role:g.role,content:A});if(w.length>0)Go(l,{role:"tool",content:w})}return l}var vl=["show","hide","subscription"];function Po(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function Xe(n,o){if(!n&&!o)return;let d=n?.metadata,r=o?.metadata,l={...n??{},...o??{}};if(Po(d)&&Po(r))l.metadata={...d,...r};return l}var dn={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},He=void 0;function Ze(n,o){if(typeof n==="string"&&n.toLowerCase()in dn)return n.toLowerCase();return o?void 0:void 0}function Vo(n,o){let d=typeof n==="string"?n.toLowerCase():void 0;if(d&&d in dn)return dn[d];if(o?.fallbackEffort)return dn[o.fallbackEffort];return}function ae(n){let o=Vo(n.effort,{fallbackEffort:n.fallbackEffort});if(o===void 0)return;if(o<=0)return 0;let d=n.minimumBudget??1;if(n.maxBudget<d)return;let r=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(r*o),d),n.maxBudget)}var he={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"};function Ce(n){return n instanceof Error?{name:n.name,message:n.message}:n}var We=3;function Je(n){return Math.max(1,Math.ceil(n/3))}var Ke={debug:()=>{},log:()=>{},error:()=>{}};class h extends Error{constructor(n,o){super(`${n} at position ${o}`);this.position=o}}function Xo(n){return/^[0-9A-Fa-f]$/.test(n)}function H(n){return n>="0"&&n<="9"}function Ho(n){return n>=" "}function S(n){return`,:[]/{}()
|
|
4
|
-
+`.includes(n)}function Tn(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 Fn=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,$n=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function
|
|
5
|
-
+`.includes(n)}function
|
|
3
|
+
</file_content>`}function Ae(n,o="act"){return`<user_input mode="${o}">${n}</user_input>`}function _e(n,o){return`<user_command slash="${o}">${n}</user_command>`}function Ie(n,o){return`<mode_notice>The user switched from ${n} mode to ${o} mode before sending this message.</mode_notice>`}function ue(n,o){let d=n.trim(),r=new RegExp(`^<${o}\\b([^>]*)>([\\s\\S]*?)<\\/${o}>$`,"i").exec(d);if(!r)return;return{attrs:r[1]??"",content:r[2]??""}}function ie(n,o){return new RegExp(`${o}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function Do(n){if(!n?.trim())return;let o=ue(n,"user_command");if(!o)return;let d=ie(o.attrs,"slash");if(!d)return;return{slash:d,content:o.content.trim()}}function Bo(n){if(!n?.trim())return"";let o=n.trim();for(let d of["user_input","user_command"]){let r=qo(o,d);o=(r!==o?r:o.replace(new RegExp(`<${d}[^>]*>`,"g"),"")).trim()}return o}function Eo(n){if(!n?.trim())return"";return Re(n,"mode_notice").trim()}function Re(n,o){let d=`<${o}>`,r=`</${o}>`,l=n,c=l.indexOf(d);while(c!==-1){let g=l.indexOf(r,c+d.length);if(g===-1)break;l=l.slice(0,c)+l.slice(g+r.length),c=l.indexOf(d,c)}return l}function De(n){let o=Eo(Bo(n)),d=Do(n);if(!d)return o;if(d.slash.toLowerCase()==="team"){let l=o.toLowerCase().startsWith("spawn a team of agents for the following task:")?o.slice(46).trim():o;return l?`/team ${l}`:"/team"}return o?`/${d.slash} ${o}`:`/${d.slash}`}function qo(n,o){if(!n?.trim())return"";if(!o)return n;let d=new RegExp(`<${o}\\b[^>]*>([\\s\\S]*?)</${o}>`,"g");return n.replace(d,"$1")}var W="[media omitted: invalid or exceeds size limit]",cn=["image/png","image/jpeg","image/gif","image/webp"],Be=5242880,a=5242880,J=6291456,Ee=8388608;function qe(n){return n.length}function Mo(n){let o=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-o}function Me(n=5242880){return Math.floor(n*3/4)}function Bn(n){return Math.ceil(n/3)*4}function To(n={}){return{maxImageEncodedBytes:n.maxImageEncodedBytes??5242880,maxImageDecodedBytes:n.maxImageDecodedBytes??6291456,maxTotalMediaBytes:n.maxTotalMediaBytes??8388608}}function bn(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function gn(n,o){n.omittedImages+=1,n.omittedReasons[o]=(n.omittedReasons[o]??0)+1}function z(n,o,d,r){let l=To(d);if(n>l.maxImageEncodedBytes){let c={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${l.maxImageEncodedBytes} byte encoded limit`};return gn(r,c.reason),c}if(o>l.maxImageDecodedBytes){let c={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l.maxImageDecodedBytes} byte decoded limit`};return gn(r,c.reason),c}if(r.totalEncodedBytes+n>l.maxTotalMediaBytes){let c={ok:!1,reason:"total_limit",message:`Image media exceeds the ${l.maxTotalMediaBytes} byte total media limit`};return gn(r,c.reason),c}return r.totalEncodedBytes+=n,r.keptImages+=1,null}function Fo(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function Te(n){return n.length>0&&$o(n,0,n.length)}function $o(n,o,d){let r=d-o;if(r%4!==0)return!1;let l=d;if(r>=2&&n.charCodeAt(d-2)===61&&n.charCodeAt(d-1)===61)l-=2;else if(r>=1&&n.charCodeAt(d-1)===61)l-=1;for(let c=o;c<l;c++)if(!Fo(n.charCodeAt(c)))return!1;for(let c=l;c<d;c++)if(n.charCodeAt(c)!==61)return!1;return!0}function Fe(n,o,d){return d-o>=5&&(n.charCodeAt(o)|32)===100&&(n.charCodeAt(o+1)|32)===97&&(n.charCodeAt(o+2)|32)===116&&(n.charCodeAt(o+3)|32)===97&&n.charCodeAt(o+4)===58}function $e(n){let o=0,d=n.length;while(o<d&&/\s/.test(n[o]??""))o+=1;while(d>o&&/\s/.test(n[d-1]??""))d-=1;return{start:o,end:d}}function Ge(n,o,d){if(!Fe(n,o,d))return;let r=o+5,l=n.indexOf(",",r);if(l===-1||l>=d)return;if(l-r>128)return;let c=n.slice(r,l).toLowerCase(),g=";base64";if(!c.endsWith(g))return;let y=c.slice(0,-g.length);if(!y||y.includes(";"))return;return{mediaType:y,base64Start:l+1,base64End:d}}function Go(n,o,d={}){let r=d.maxEncodedBytes??5242880,l=d.maxDecodedBytes??6291456,c=new Set(d.supportedMediaTypes??cn),g=n?.toLowerCase(),y=$e(o),_=y.start,w=y.end,I=Ge(o,y.start,y.end);if(I){if(g&&g!==I.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${I.mediaType}`};g=I.mediaType,_=I.base64Start,w=I.base64End}if(!g||!c.has(g))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let M=w-_;if(M===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(M>r)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${r} byte encoded limit`};if(!$o(o,_,w))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let T=o.slice(_,w),F=Mo(T);if(F>l)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l} byte decoded limit`};return{ok:!0,mediaType:g,base64:T,encodedBytes:M,decodedBytes:F}}function nn(n,o,d,r){let l=Go(n,o,{maxEncodedBytes:d.maxImageEncodedBytes,maxDecodedBytes:d.maxImageDecodedBytes});if(!l.ok)return gn(r,l.reason),l;let c=z(l.encodedBytes,l.decodedBytes,d,r);if(c)return c;return l}function G(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var En="ERROR: EMPTY CONTENT",Ue="[image attached]";function Uo(n,o){let d=n[n.length-1];if(o.role==="tool"&&d?.role==="tool"&&Array.isArray(d.content)&&Array.isArray(o.content)){d.content.push(...o.content);return}n.push(o)}function Le(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((o)=>{if(!o||typeof o!=="object")return!1;let d=o;if(d.type==="text")return typeof d.text==="string";if(d.type==="image")return typeof d.data==="string"&&typeof d.mediaType==="string";return!1})}function K(){return{type:"text",text:W}}function Lo(n){return z(a,0,{maxImageEncodedBytes:a,maxImageDecodedBytes:J},n)===null}function Ye(n){try{return new URL(n).protocol}catch{return}}function qn(n,o){let d=nn(n.mediaType,n.data,{maxImageEncodedBytes:a,maxImageDecodedBytes:J},o);if(!d.ok)return K();return{type:"image-data",data:d.base64,mediaType:d.mediaType}}function Pe(n,o){if(n.image instanceof URL){if(n.image.protocol==="data:"){let g=nn(n.mediaType,n.image.href,{maxImageEncodedBytes:a,maxImageDecodedBytes:J},o);if(!g.ok)return K();return{type:"image",image:`data:${g.mediaType};base64,${g.base64}`,mediaType:g.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return K();if(!Lo(o))return K();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let g=Ye(n.image);if(g==="http:"||g==="https:"){if(!Lo(o))return K();return{type:"image",image:n.image,mediaType:n.mediaType}}let y=g==="data:",_=nn(n.mediaType??(y?void 0:"image/png"),n.image,{maxImageEncodedBytes:a,maxImageDecodedBytes:J},o);if(!_.ok)return K();return{type:"image",image:y?`data:${_.mediaType};base64,${_.base64}`:_.base64,mediaType:_.mediaType}}let d=n.image.byteLength,r=Bn(d),l=n.mediaType?.toLowerCase()??"image/png";if(!cn.includes(l)||z(r,d,{maxImageEncodedBytes:a,maxImageDecodedBytes:J},o))return K();return{type:"image",image:n.image,mediaType:l}}function Mn(n,o,d,r=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let _=[],w=!1,I=!1;for(let M of n){if(M&&typeof M==="object"){let F=M;if(F.type==="image"&&typeof F.data==="string"&&typeof F.mediaType==="string"){if(!r){_.push(W),w=!0,I=!0;continue}let en={type:"image",data:F.data,mediaType:F.mediaType},O=qn(en,d);if(O.type==="image-data")o.push({type:"image",data:O.data,mediaType:O.mediaType});else _.push(O.text);w=!0,I=!0;continue}if(F.type==="image"){_.push(W),w=!0,I=!0;continue}if(F.type==="text"&&typeof F.text==="string"){_.push(F.text),w=!0;continue}}let T=Mn(M,o,d,r);_.push(T.value),w||=T.changed,I||=T.mediaChanged}return{value:w?_:n,changed:w,mediaChanged:I}}let l=n;if(l.type==="image"){if(typeof l.data==="string"&&typeof l.mediaType==="string"){if(!r)return{value:W,changed:!0,mediaChanged:!0};let _={type:"image",data:l.data,mediaType:l.mediaType},w=qn(_,d);if(w.type==="image-data")return o.push({type:"image",data:w.data,mediaType:w.mediaType}),{value:Ue,changed:!0,mediaChanged:!0};return{value:w.text,changed:!0,mediaChanged:!0}}return{value:W,changed:!0,mediaChanged:!0}}let c={},g=!1,y=!1;for(let[_,w]of Object.entries(l)){let I=Mn(w,o,d,r);c[_]=I.value,g||=I.changed,y||=I.mediaChanged}return{value:g?c:n,changed:g,mediaChanged:y}}function on(n){if(typeof n==="string")return G(n);if(Array.isArray(n))return n.map((o)=>on(o));if(n!==null&&typeof n==="object"){let o=n,d={};for(let[r,l]of Object.entries(o))d[r]=on(l);return d}return n}function Yo(n,o=!1,d=bn()){if(typeof n==="string")return{type:o?"error-text":"text",value:G(n)};if(!o&&Le(n))return{type:"content",value:n.map((r)=>r.type==="image"?qn(r,d):{type:"text",text:G(r.text)})};if(n!==null&&typeof n==="object"){let r=[],l=Mn(n,r,d,!o);if(!o&&r.length>0)return{type:"content",value:[{type:"text",text:typeof l.value==="string"?G(l.value):JSON.stringify(on(l.value))},...r.map((g)=>({type:"image-data",data:g.data,mediaType:g.mediaType}))]};if(l.mediaChanged)return{type:o?"error-json":"json",value:on(l.value)}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:o?"error-json":"json",value:on(n)};return{type:o?"error-text":"text",value:G(String(n))}}function Ve(n,o,d){let r=d?.assistantToolCallArgKey??"input",l=[],c=bn();if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)l.push({role:"system",content:typeof n==="string"?G(n):n});for(let g of o){let y=g.content;if(typeof y==="string"){if(y.trim().length===0){l.push({role:g.role,content:[{type:"text",text:En}]});continue}l.push({role:g.role,content:G(y)});continue}let _=[],w=[];if(y.length===0){l.push({role:g.role,content:[{type:"text",text:En}]});continue}for(let I of y)switch(I.type){case"text":_.push({type:"text",text:G(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"reasoning":_.push({type:"reasoning",text:G(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"image":_.push(Pe(I,c));break;case"file":_.push({type:"text",text:Dn(I.path,G(I.content))});break;case"tool-call":if(g.role==="assistant")_.push({type:"tool-call",toolCallId:I.toolCallId,toolName:I.toolName,[r]:I.input,...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"tool-result":{w.push({type:"tool-result",toolCallId:I.toolCallId,toolName:I.toolName,output:Yo(I.output,I.isError??!1,c)});break}}if(_.length>0)Uo(l,{role:g.role,content:_});if(w.length>0)Uo(l,{role:"tool",content:w})}return l}var vl=["show","hide","subscription"];function Po(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function Xe(n,o){if(!n&&!o)return;let d=n?.metadata,r=o?.metadata,l={...n??{},...o??{}};if(Po(d)&&Po(r))l.metadata={...d,...r};return l}var dn={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},He=void 0;function Ze(n,o){if(typeof n==="string"&&n.toLowerCase()in dn)return n.toLowerCase();return o?void 0:void 0}function Vo(n,o){let d=typeof n==="string"?n.toLowerCase():void 0;if(d&&d in dn)return dn[d];if(o?.fallbackEffort)return dn[o.fallbackEffort];return}function ae(n){let o=Vo(n.effort,{fallbackEffort:n.fallbackEffort});if(o===void 0)return;if(o<=0)return 0;let d=n.minimumBudget??1;if(n.maxBudget<d)return;let r=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(r*o),d),n.maxBudget)}var he={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"};function Ce(n){return n instanceof Error?{name:n.name,message:n.message}:n}var We=3;function Je(n){return Math.max(1,Math.ceil(n/3))}var Ke={debug:()=>{},log:()=>{},error:()=>{}};class h extends Error{constructor(n,o){super(`${n} at position ${o}`);this.position=o}}function Xo(n){return/^[0-9A-Fa-f]$/.test(n)}function H(n){return n>="0"&&n<="9"}function Ho(n){return n>=" "}function S(n){return`,:[]/{}()
|
|
4
|
+
+`.includes(n)}function Tn(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 Fn=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,$n=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function Gn(n){return`,[]/{}
|
|
5
|
+
+`.includes(n)}function Un(n){return p(n)||Oe.test(n)}var Oe=/^[[{\w-]$/;function Ln(n){return n===`
|
|
6
6
|
`||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function X(n,o){let d=n.charCodeAt(o);return d===32||d===10||d===9||d===13}function Zo(n,o){let d=n.charCodeAt(o);return d===32||d===9||d===13}function ao(n,o){let d=n.charCodeAt(o);return d===160||d===6158||d>=8192&&d<=8203||d===8239||d===8287||d===12288||d===65279}function p(n){return Yn(n)||wn(n)}function Yn(n){return n==='"'||n==="“"||n==="”"}function Pn(n){return n==='"'}function wn(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function Vn(n){return n==="'"}function v(n,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=n.lastIndexOf(o);return r!==-1?n.substring(0,r)+(d?"":n.substring(r+1)):n}function $(n,o){let d=n.length;if(!X(n,d-1))return n+o;while(X(n,d-1))d--;return n.substring(0,d)+o+n.substring(d)}function ho(n,o,d){return n.substring(0,o)+n.substring(o+d)}function Co(n){return/[,\n][ \t\r]*$/.test(n)}var Qe={""":'"',"&":"&","<":"<",">":">","'":"'"},Xn=12;function Hn(n){if(n.charAt(0)!=="&")return null;let o=n.indexOf(";");if(o===-1)return null;let d=n.substring(0,o+1),r=Qe[d];if(r!==void 0)return{char:r,length:d.length};if(n.charAt(1)==="#"){let l=n.substring(2,o),c=l.charAt(0)==="x"||l.charAt(0)==="X",g=c?l.substring(1):l;if(g.length>0){let y=Number.parseInt(g,c?16:10);if(!Number.isNaN(y)&&y>=0&&y<=1114111)return{char:String.fromCodePoint(y),length:d.length}}}return null}function Wo(n){return n!==null&&n.char==='"'}function Jo(n){return n!==null&&n.char==="'"}function N(n,o){let d=0;for(let r=0;r<n.length;r++)if(n.charAt(r)===o)d++;return d}function Ko(n,o){switch(o){case")":return N(n,"(")>N(n,")");case"]":return N(n,"[")>N(n,"]");case"}":return N(n,"{")>N(n,"}");default:return!1}}var Oo={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},je={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
7
|
-
`,r:"\r",t:"\t"};function Zn(n){let o=0,d="";if(w(["```","[```","{```"]),!c())Pd();w(["```","```]","```}"]);let l=M(",");if(l)g();if(
|
|
8
|
-
`)o++;return!0}return!1}function w(k){if(
|
|
7
|
+
`,r:"\r",t:"\t"};function Zn(n){let o=0,d="";if(w(["```","[```","{```"]),!c())Pd();w(["```","```]","```}"]);let l=M(",");if(l)g();if(Un(n[o])&&Co(d)){if(!l)d=$(d,",");$d()}else if(l)d=v(d,",");while(n[o]==="}"||n[o]==="]")o++,g();if(o>=n.length)return d;_n();function c(){g();let k=O()||Fd()||Q()||E()||Gd()||Sn(!1)||Ud();return g(),k}function g(){let k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,A=o,i=y(k);do if(i=_(),i)i=y(k);while(i);return o>A}function y(k){let A=k?X:Zo,i="";while(!0)if(A(n,o))i+=n[o],o++;else if(ao(n,o))i+=" ",o++;else break;if(i.length>0)return d+=i,!0;return!1}function _(){if(n[o]==="/"&&n[o+1]==="*"){while(o<n.length&&!me(n,o))o++;return o+=2,!0}if(n[o]==="/"&&n[o+1]==="/"){while(o<n.length&&n[o]!==`
|
|
8
|
+
`)o++;return!0}return!1}function w(k){if(I(k)){if(Tn(n[o]))while(o<n.length&&yn(n[o]))o++;return g(),!0}return!1}function I(k){y(!0);for(let A of k){let i=o+A.length;if(n.slice(o,i)===A)return o=i,!0}return!1}function M(k){if(n[o]===k)return d+=n[o],o++,!0;return!1}function T(k){if(n[o]===k)return o++,!0;return!1}function F(){return T("\\")}function en(){if(g(),n[o]==="."&&n[o+1]==="."&&n[o+2]===".")return o+=3,g(),T(","),!0;return!1}function O(){if(n[o]==="{"){if(d+="{",o++,g(),T(","))g();let k=!0;while(o<n.length&&n[o]!=="}"){let A;if(!k){if(A=M(","),!A)d=$(d,",");g()}else A=!0;if(en(),!(Q()||Sn(!0))){if(n[o]==="}"||n[o]==="{"||n[o]==="]"||n[o]==="["||n[o]===void 0){if(!k)d=v(d,",")}else Vd();break}g();let Y=M(":"),m=o>=n.length;if(!Y)if(Un(n[o])||m)d=$(d,":");else xn();if(!c())if(Y||m)d+="null";else xn();k=!1}if(n[o]==="}")d+="}",o++;else d=$(d,"}");return!0}return!1}function Fd(){if(n[o]==="["){if(d+="[",o++,g(),T(","))g();let k=!0;while(o<n.length&&n[o]!=="]"){if(!k){if(!M(","))d=$(d,",")}if(en(),!c()){if(!k)d=v(d,",");break}k=!1}if(n[o]==="]")d+="]",o++;else d=$(d,"]");return!0}return!1}function $d(){let k=!0,A=!0;while(A){if(!k){if(!M(","))d=$(d,",")}else k=!1;A=c()}if(!A)d=v(d,",");d=`[
|
|
9
9
|
${d}
|
|
10
|
-
]`}function Q(){let k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,
|
|
11
|
-
`)D+="\\n",o+=2;else D+=q,o+=2}else{let q=n.charAt(o);if(q==='"'&&n[o-1]!=="\\")D+=`\\${q}`,o++;else if(Ln(q))D+=Oo[q],o++;else{if(!Ho(q))Yd(q);D+=q,o++}}if(i)F()}}return!1}function Nn(){let k=!1;g();while(n[o]==="+"){k=!0,o++,g(),d=v(d,'"',!0);let
|
|
10
|
+
]`}function Q(){let k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,i=n[o]==="\\";if(i){if(o++,!p(n[o]))_n()}let Y=n[o]==="&"?Hn(n.slice(o,o+Xn)):null,m=Wo(Y)||Jo(Y);if(p(n[o])||m){let tn=Pn(n[o])?Pn:Vn(n[o])?Vn:wn(n[o])?wn:Yn,rn=o,ln=d.length,D='"';o+=m&&Y?Y.length:1;while(!0){if(o>=n.length){let q=pn(o-1);if(!k&&S(n.charAt(q)))return o=rn,d=d.substring(0,ln),Q(!0);return D=$(D,'"'),d+=D,!0}if(o===A)return D=$(D,'"'),d+=D,!0;let P=m&&n[o]==="&"?Hn(n.slice(o,o+Xn)):null;if(P&&Y?P.char===Y.char:tn(n[o])){let q=o,In=D.length;if(D+='"',o+=P?P.length:1,d+=D,g(!1),k||o>=n.length||S(n[o])&&!Ko(D,n[o])||p(n[o])&&!Ld(o)||H(n[o]))return Nn(),!0;if(n[o]==="\\")_n();let Z=pn(q-1),zn=n.charAt(Z);if(zn===",")return o=rn,d=d.substring(0,ln),Q(!1,Z);if(S(zn))return o=rn,d=d.substring(0,ln),Q(!0);d=d.substring(0,ln),o=q+(P?P.length:1),D=`${D.substring(0,In)}\\${D.substring(In)}`}else if(k&&Gn(n[o])){if(n[o-1]===":"&&Fn.test(n.substring(rn+1,o+2)))while(o<n.length&&$n.test(n[o]))D+=n[o],o++;return D=$(D,'"'),d+=D,Nn(),!0}else if(P){let q=P.char;if(q==='"')D+="\\\"";else if(Ln(q))D+=Oo[q];else D+=q;o+=P.length}else if(n[o]==="\\"){let q=n.charAt(o+1);if(je[q]!==void 0)D+=n.slice(o,o+2),o+=2;else if(q==="u"){let Z=2;while(Z<6&&Xo(n[o+Z]))Z++;if(Z===6)D+=n.slice(o,o+6),o+=6;else if(o+Z>=n.length)o=n.length;else Xd()}else if(q===`
|
|
11
|
+
`)D+="\\n",o+=2;else D+=q,o+=2}else{let q=n.charAt(o);if(q==='"'&&n[o-1]!=="\\")D+=`\\${q}`,o++;else if(Ln(q))D+=Oo[q],o++;else{if(!Ho(q))Yd(q);D+=q,o++}}if(i)F()}}return!1}function Nn(){let k=!1;g();while(n[o]==="+"){k=!0,o++,g(),d=v(d,'"',!0);let A=d.length;if(Q())d=ho(d,A,1);else d=$(d,'"')}return k}function E(){let k=o,A="",i=!1;if(n[o]==="-"){if(A+=n[o],o++,!H(n[o])&&vn())A+="0"}if(n[o]==="0"&&H(n[o+1]))i=!0;while(H(n[o]))A+=n[o],o++;if(n[o]==="."){if(A===""||A==="-")A+="0";if(A+=n[o],o++,!H(n[o]))A+="0";while(H(n[o]))A+=n[o],o++}if(o>k){if(n[o]==="e"||n[o]==="E"){if(A==="-")i=!0;if(A+=n[o],o++,n[o]==="-"||n[o]==="+")A+=n[o],o++;if(!H(n[o]))A+="0";while(H(n[o]))A+=n[o],o++}if(!vn())return o=k,!1;return d+=i?`"${n.substring(k,o)}"`:A,!0}return!1}function Gd(){return j("true","true")||j("false","false")||j("null","null")||j("True","true")||j("False","false")||j("None","null")}function j(k,A){if(n.slice(o,o+k.length)===k&&!yn(n[o+k.length]))return d+=A,o+=k.length,!0;return!1}function Sn(k){let A=o;if(Tn(n[o])){while(o<n.length&&yn(n[o]))o++;let i=o;while(X(n,i))i++;if(n[i]==="("){if(o=i+1,c(),n[o]===")"){if(o++,n[o]===";")o++}return!0}}while(o<n.length&&!Gn(n[o])&&!p(n[o])&&(!k||n[o]!==":"))o++;if(n[o-1]===":"&&Fn.test(n.substring(A,o+2)))while(o<n.length&&$n.test(n[o]))o++;if(o>A){while(X(n,o-1)&&o>0)o--;let i=n.slice(A,o);if(d+=i==="undefined"?"null":JSON.stringify(i),n[o]==='"')o++;return!0}}function Ud(){if(n[o]==="/"){let k=o;o++;while(o<n.length&&(n[o]!=="/"||n[o-1]==="\\"))o++;return o++,d+=JSON.stringify(n.substring(k,o)),!0}}function pn(k){let A=k;while(A>0&&X(n,A))A--;return A}function Ld(k){let A=k+1;while(A<n.length&&X(n,A))A++;return A>=n.length||S(n[A])}function vn(){return o>=n.length||S(n[o])||X(n,o)}function Yd(k){throw new h(`Invalid character ${JSON.stringify(k)}`,o)}function _n(){throw new h(`Unexpected character ${JSON.stringify(n[o])}`,o)}function Pd(){throw new h("Unexpected end of json string",n.length)}function Vd(){throw new h("Object key expected",o)}function xn(){throw new h("Colon expected",o)}function Xd(){let k=n.slice(o,o+6);throw new h(`Invalid unicode character "${k}"`,o)}}function me(n,o){return n[o]==="*"&&n[o+1]==="/"}var Ne=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function Se(n){let o=n.match(Ne);if(!o)return;let[,d,r]=o,l=r.trim();if(!l)return;let c=l[0];if(c==='"'||c==="{"||c==="["||l==="true"||l==="false"||l==="null"||Number.isFinite(Number(l)))return;return JSON.parse(`{"${d}":${JSON.stringify(l)}}`)}var pe=[(n)=>JSON.parse(n),(n)=>JSON.parse(Zn(n)),Se];function ve(n){if(typeof n!=="string")return n;let o=n.trimStart();if(o[0]!=="{"&&o[0]!=="[")return n;for(let d of pe)try{let r=d(o);if(r!==void 0)return r}catch{}return n}function xe(n){let o=new WeakSet;try{return JSON.stringify(n,(r,l)=>{if(typeof l==="bigint")return l.toString();if(l&&typeof l==="object"){if(o.has(l))return"[Circular]";o.add(l)}return l})??"null"}catch{return String(n)}}function te(n){try{return JSON.parse(n)}catch{return}}function x(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function ze(n){let o=n.type;if(typeof o==="string")return[o];return Array.isArray(o)?o.filter((d)=>typeof d==="string"):[]}function an(n,o){if(ze(n).includes(o))return!0;for(let r of["anyOf","oneOf","allOf"]){let l=n[r];if(Array.isArray(l)&&l.some((c)=>x(c)&&an(c,o)))return!0}return!1}function nr(n,o){if(typeof n!=="string")return n;let d=n.trim(),r=an(o,"array"),l=an(o,"object");if((!r||!d.startsWith("["))&&(!l||!d.startsWith("{")))return n;try{let c=JSON.parse(d);if(Array.isArray(c))return r?c:n;if(x(c))return l?c:n;return n}catch{return n}}function hn(n,o){let d=nr(n,o);if(Array.isArray(d)){let g=o.items;if(!x(g))return d;let y=!1,_=d.map((w)=>{let I=hn(w,g);return y||=I!==w,I});return y?_:d}if(!x(d))return d;let r=o.properties;if(!x(r))return d;let l=!1,c={...d};for(let[g,y]of Object.entries(r)){if(!(g in d)||!x(y))continue;let _=hn(d[g],y);if(_!==d[g])c[g]=_,l=!0}return l?c:d}function or(n){return Object.fromEntries(Object.entries(n).filter(([,o])=>o!==void 0))}function dr(n){let o=n.replaceAll("\\","/"),d=o.lastIndexOf("/");return(d>=0?o.slice(d+1):o).toLowerCase()}function er(n){return n==="win32"?"powershell":"/bin/bash"}function rr(n,o){let d=dr(n);if(d==="powershell"||d==="powershell.exe"||d==="pwsh"||d==="pwsh.exe")return["-NoProfile","-NonInteractive","-Command",o];if(d==="cmd"||d==="cmd.exe")return["/d","/s","/c",o];return["-c",o]}function lr(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function fr(n){let o=n?.trim();return o?o:void 0}function Qo(n,o){if(n.length<=o)return n;return`${n.slice(0,o-1)}…`}function sr(n,o="/",d=100){if(!n||n.length<=d)return n||"";let r=n.split(o)?.shift()?.trim()?.slice(0,d-1);return r?`${r}…`:Qo(n,d)}function gr(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function cr(n){if(!n)return"(unknown-date)";let o=new Date(n);if(Number.isNaN(o.getTime()))return n;return o.toLocaleString("en-US",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0})}function br(n){let o=Math.max(0,Math.floor(n/1000)),d=Math.floor(o/86400),r=Math.floor(o%86400/3600),l=Math.floor(o%3600/60),c=o%60;if(d>0)return`${d}d ${r}h`;if(r>0)return`${r}h ${l}m`;if(l>0)return`${l}m ${c}s`;return`${c}s`}import{z as jo}from"zod";function yr(n,o){let d=n.safeParse(o);if(!d.success)throw Error(jo.prettifyError(d.error));return d.data}function Cn(n){return jo.toJSONSchema(n)}function Wn(n){return n==="cline"||n==="cline-pass"}var mo=`You are Cline, an AI coding agent. Your primary goal is to assist users with various coding tasks by leveraging your knowledge and the tools at your disposal. Given the user's prompt, you should use the tools available to you to answer user's question.
|
|
12
12
|
|
|
13
13
|
Always gather all the necessary context before starting to work on a task. For example, if you are generating a unit test or new code, make sure you understand the requirement, the naming conventions, frameworks and libraries used and aligned in the current codebase, and the environment and commands used to run and test the code etc. Always validate the new unit test at the end including running the code if possible for live feedback.
|
|
14
14
|
Review each question carefully and answer it with detailed, accurate information.
|
|
@@ -75,6 +75,6 @@ IMPORTANT:
|
|
|
75
75
|
{{CLINE_RULES}}
|
|
76
76
|
{{CLINE_METADATA}}`;var Jn="# Workspace Configuration";function So(n,o,d){if(d?.trim()?.includes(Jn))return d.trim();let r=d||JSON.stringify({workspaces:{[n]:{hint:o||n.split("/").at(-1)||n}}},null,2);return`
|
|
77
77
|
${Jn}
|
|
78
|
-
${r}`}function wr(n){let{ide:o="Terminal Shell",mode:d,platform:r="unknown",workspaceName:l,metadata:c,rules:g,overridePrompt:y,providerId:
|
|
78
|
+
${r}`}function wr(n){let{ide:o="Terminal Shell",mode:d,platform:r="unknown",workspaceName:l,metadata:c,rules:g,overridePrompt:y,providerId:_}=n,w=n.workspaceRoot??n.rootPath??"",I=Wn(_||"");if(y?.trim()){let T=y.trim();if(I&&c?.trim()&&!T.includes(Jn))return`${T}
|
|
79
79
|
|
|
80
|
-
${So(w,l,c)}`.trim();return T}return(d==="yolo"?No:mo).replace("{{PLATFORM_NAME}}",r).replace("{{CWD}}",w).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",u?So(w,l,c):"").replace("{{CLINE_RULES}}",g||"").trim()}var kr="remote://";import{z as f}from"zod";var po=f.object({id:f.string(),temperature:f.number().optional(),isR1FormatRequired:f.boolean().optional(),maxTokens:f.number().optional(),contextWindow:f.number().optional(),inputPrice:f.number().optional(),outputPrice:f.number().optional(),supportsImages:f.boolean().optional()}),vo=f.object({models:f.array(po).optional(),openAiBaseUrl:f.string().optional(),openAiHeaders:f.record(f.string(),f.string()).optional(),azureApiVersion:f.string().optional(),azureIdentity:f.boolean().optional()}),xo=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),to=f.object({name:f.string(),baseModelId:f.string(),thinkingBudgetTokens:f.number().optional()}),zo=f.object({models:f.array(xo).optional(),customModels:f.array(to).optional(),awsRegion:f.string().optional(),awsUseCrossRegionInference:f.boolean().optional(),awsUseGlobalInference:f.boolean().optional(),awsBedrockUsePromptCache:f.boolean().optional(),awsBedrockEndpoint:f.string().optional()}),nd=f.object({id:f.string()}),od=f.object({models:f.array(nd).optional()}),dd=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),ed=f.object({models:f.array(dd).optional(),vertexProjectId:f.string().optional(),vertexRegion:f.string().optional()}),rd=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional(),promptCachingEnabled:f.boolean().optional()}),ld=f.object({models:f.array(rd).optional(),baseUrl:f.string().optional()}),fd=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),sd=f.object({models:f.array(fd).optional(),baseUrl:f.string().optional()}),_r=f.object({OpenAiCompatible:vo.optional(),AwsBedrock:zo.optional(),Cline:od.optional(),Vertex:ed.optional(),LiteLLM:ld.optional(),Anthropic:sd.optional()}),gd=f.object({id:f.string()}),cd=f.object({name:f.string(),url:f.string(),alwaysEnabled:f.boolean().optional(),headers:f.record(f.string(),f.string()).optional()}),Kn=f.object({alwaysEnabled:f.boolean(),name:f.string(),contents:f.string()}),kn=f.object({bucket:f.string(),accessKeyId:f.string(),secretAccessKey:f.string(),region:f.string().optional(),endpoint:f.string().optional(),accountId:f.string().optional()}),bd=f.object({enabled:f.boolean().optional(),type:f.union([f.literal("s3_access_keys"),f.literal("r2_access_keys"),f.literal("azure_access_keys")]).optional(),s3AccessSettings:kn.optional(),r2AccessSettings:kn.optional(),azureAccessSettings:kn.optional()}),yd=f.object({promptUploading:bd.optional()}),Ar=f.object({version:f.string(),providerSettings:_r.optional(),telemetryEnabled:f.boolean().optional(),kanbanEnabled:f.boolean().optional(),mcpMarketplaceEnabled:f.boolean().optional(),allowedMCPServers:f.array(gd).optional(),remoteMCPServers:f.array(cd).optional(),blockPersonalRemoteMCPServers:f.boolean().optional(),yoloModeAllowed:f.boolean().optional(),openTelemetryEnabled:f.boolean().optional(),openTelemetryMetricsExporter:f.string().optional(),openTelemetryLogsExporter:f.string().optional(),openTelemetryOtlpProtocol:f.string().optional(),openTelemetryOtlpEndpoint:f.string().optional(),openTelemetryOtlpHeaders:f.record(f.string(),f.string()).optional(),openTelemetryOtlpMetricsProtocol:f.string().optional(),openTelemetryOtlpMetricsEndpoint:f.string().optional(),openTelemetryOtlpMetricsHeaders:f.record(f.string(),f.string()).optional(),openTelemetryOtlpLogsProtocol:f.string().optional(),openTelemetryOtlpLogsEndpoint:f.string().optional(),openTelemetryOtlpLogsHeaders:f.record(f.string(),f.string()).optional(),openTelemetryMetricExportInterval:f.number().optional(),openTelemetryOtlpInsecure:f.boolean().optional(),openTelemetryLogBatchSize:f.number().optional(),openTelemetryLogBatchTimeout:f.number().optional(),openTelemetryLogMaxQueueSize:f.number().optional(),enterpriseTelemetry:yd.optional(),globalRules:f.array(Kn).optional(),globalWorkflows:f.array(Kn).optional()}),ur=f.record(f.string(),f.string());var Ir=4317;var ir="127.0.0.1:4317";import On from"zod";var Rr=On.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),Dr=On.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),Er=On.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var Br="runtime.team.progress.v1",qr="runtime.team.lifecycle.v1";var Mr="CLINE_ENVIRONMENT",Tr="CLINE_ENVIRONMENT_OVERRIDE",Qn={production:{environment:"production",appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",mcpBaseUrl:"https://api.cline.bot/v1/mcp",workOsClientId:"client_01K3A541FN8TA3EPPHTD2325AR"},staging:{environment:"staging",appBaseUrl:"https://staging-app.cline.bot",apiBaseUrl:"https://core-api.staging.int.cline.bot",mcpBaseUrl:"https://core-api.staging.int.cline.bot/v1/mcp",workOsClientId:"client_01K3A5415VF6QBQBG3XYCW91G6"},local:{environment:"local",appBaseUrl:"http://localhost:3000",apiBaseUrl:"http://localhost:7777",mcpBaseUrl:"http://localhost:7777/v1/mcp",workOsClientId:"client_01K6XQAY7JK6T5HXVSZW2S5VYK"}},Fr="production";function wd(n){let o=n?.trim().toLowerCase();if(o==="production"||o==="staging"||o==="local")return o;return}function kd(){if(typeof process>"u"||!process?.env)return{};return process.env}function _d(){let n=kd();return wd(n.CLINE_ENVIRONMENT_OVERRIDE)??wd(n.CLINE_ENVIRONMENT)??"production"}function $r(n){if(typeof n==="string")return Qn[n];return Qn[_d()]}function Ur(n,o){if(o.CLINE_API_BASE_URL)n={...n,apiBaseUrl:o.CLINE_API_BASE_URL,mcpBaseUrl:`${o.CLINE_API_BASE_URL}/v1/mcp`};return n}function Gr(n){let o=$r(n);return Ur(o,kd())}var Lr="agent.reasoning.unexpected_tokens",Yr="sdk.error";function Pr(n,o){n?.capture({event:"agent.reasoning.unexpected_tokens",properties:Xr({sessionId:o.sessionId,agentId:o.agentId,runId:o.runId,iteration:o.iteration,providerId:o.providerId,modelId:o.modelId,requestedThinking:o.requestedThinking,reasoningTokenCount:o.reasoningTokenCount})})}function Vr(n,o){if(!n)return;n.capture({event:o.event??"sdk.error",properties:ud(o)})}function ud(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...Id(n.error,n.messageLimit)}}function Xr(n){let o={};for(let[d,r]of Object.entries(n))if(r!==void 0)o[d]=r;return o}function Id(n,o=500){let d=ar(n)?n:void 0,r=n instanceof Error?n:void 0,l=r?.message??Ad(d?.message)??(typeof n==="string"?n:String(n)),c=hr(d?.code),g=jn(d?.status)??jn(d?.statusCode)??jn(d?.responseStatus);return{error_type:r?.name?.trim()||Ad(d?.name)||r?.constructor?.name||"Error",error_message:Zr(Hr(l),o),...c!==void 0?{error_code:c}:{},...g!==void 0?{error_status:g}:{}}}function Hr(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 Zr(n,o){let d=Math.max(1,Math.floor(o));return n.length>d?n.substring(0,d):n}function ar(n){return typeof n==="object"&&n!==null}function Ad(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function hr(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function jn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function id(n){let o={};if(!n)return o;try{n.split(",").forEach((d)=>{let r=d.indexOf("=");if(r<=0)return;let l=decodeURIComponent(d.substring(0,r).trim()),c=decodeURIComponent(d.substring(r+1).trim());if(!l||!c)return;o[l]=c})}catch{}return o}function Cr(){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?id(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function Rd(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 Wr(n={}){return{...Cr(),...n,metadata:Rd(n.metadata)}}function Dd(n){let o=n?.trim();return o?o:void 0}function Jr(n,o){if(!n)return;let d=typeof n==="function"?n(o):n;if(!d)return;let r=Dd(d.rootSessionId);if(!r)return;return{rootSessionId:r}}function Kr(n){return Dd(n?.rootSessionId)}var Or=(n)=>crypto.getRandomValues(new Uint8Array(n)),Qr=(n,o,d)=>{let r=256-256%n.length;if(r===256){let c=n.length-1;return(g=o)=>{if(!g)return"";let y="";while(!0){let A=d(g),w=g;while(w--)if(y+=n[A[w]&c],y.length>=g)return y}}}let l=Math.ceil(409.6*o/r);return(c=o)=>{if(!c)return"";let g="";while(!0){let y=d(l),A=l;while(A--)if(y[A]<r){if(g+=n[y[A]%n.length],g.length>=c)return g}}}},Ed=(n,o=21)=>Qr(n,o|0,Or);function jr(n="",o=""){let d=Ed("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${d(5)}${o}`}var mr=["idle","running","pending","completed","failed","cancelled"];var mn=["rules","skills","workflows","plugins"],Bd=mn,Nr=new Set(mn);function qd(n){return typeof n==="string"&&Nr.has(n)}function Sr(n){if(!Array.isArray(n))return;let o=n.map((d)=>typeof d==="string"?d.trim():"").filter(qd);return[...new Set(o)]}function pr(n,o){return new Set(n??Bd).has(o)}import{z as G}from"zod";var vr=G.object({rootPath:G.string().min(1),hint:G.string().min(1).optional(),associatedRemoteUrls:G.array(G.string().min(1)).optional(),latestGitCommitHash:G.string().min(1).optional(),latestGitBranchName:G.string().min(1).optional()}),xr=G.object({currentWorkspacePath:G.string().min(1).optional(),workspaces:G.record(G.string().min(1),vr)});function jf(){return{workspaces:{}}}function mf(n,o){let d={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!d.currentWorkspacePath)d.currentWorkspacePath=o.rootPath;return xr.parse(d)}import{z as e}from"zod";var tr=["current_state","boundary_analysis","interface_proposal"],pf=3600000,vf=240,xf=400,L=e.preprocess((n)=>n instanceof Date?n.toISOString():n,e.string().datetime()),t=e.enum(["pending","in_progress","blocked","completed"]),Md=e.enum(["queued","running","completed","failed","cancelled","interrupted"]),_n=e.enum(["draft","in_review","finalized"]),zr=e.object({agentId:e.string(),role:e.enum(["lead","teammate"]),description:e.string().optional(),status:e.enum(["idle","running","stopped"])}),tf=e.object({agentId:e.string(),rolePrompt:e.string(),modelId:e.string().optional(),maxIterations:e.number().optional()});function E(n){return e.preprocess((o)=>o===null?void 0:o,n.optional())}var zf=e.object({agentId:e.string().min(1).describe("Teammate identifier"),rolePrompt:e.string().min(1).describe("System prompt describing teammate role")}).strict(),ns=e.object({agentId:e.string().min(1).describe("Teammate identifier"),reason:E(e.string().min(1)).describe("Optional shutdown reason")}),os=e.object({}),nl={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},ds={create:["status","taskId","summary","reason"]},es=e.object({action:e.enum(["create","list","claim","complete","block"]),title:E(e.string().min(1)).describe("Task title"),description:E(e.string().min(1)).describe("Task details"),dependsOn:E(e.array(e.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:E(e.string().min(1)).describe("Optional assignee"),status:E(e.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:E(e.string()).describe("Task ID"),summary:E(e.string().min(1)).describe("Completion summary"),reason:E(e.string().min(1)).describe("Blocking reason")}).superRefine((n,o)=>{for(let d of nl[n.action]){if(n[d]!==void 0)continue;o.addIssue({code:"custom",path:[d],message:`Field "${d}" is required when action=${n.action}`})}}),rs=e.object({agentId:e.string().describe("Teammate agent ID"),task:e.string().min(1).describe("Task instructions for the teammate"),taskId:E(e.string()).describe("Optional shared task list ID"),runMode:E(e.enum(["sync","async"])).describe("Execution mode: 'sync' blocks until the teammate finishes and returns the result (default if omitted); 'async' queues the run and returns a runId immediately — use team_await_runs to collect results later."),continueConversation:E(e.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),ls=e.object({status:E(e.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:E(e.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:E(e.boolean()).describe("Include completed/failed runs (default true)")}),fs=e.object({runId:e.string().min(1).describe("Run ID"),reason:E(e.string().min(1)).describe("Optional cancellation reason")}),ss=e.object({runId:E(e.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),gs=e.object({toAgentId:e.string().min(1).describe("Recipient agent ID"),subject:e.string().min(1).describe("Message subject"),body:e.string().min(1).describe("Message body"),taskId:E(e.string().min(1)).describe("Optional task ID context")}),cs=e.object({subject:e.string().min(1).describe("Message subject"),body:e.string().min(1).describe("Message body"),taskId:E(e.string().min(1)).describe("Optional task ID context")}),bs=e.object({unreadOnly:E(e.boolean()).describe("Only unread messages for read action (default true)")}),ys=e.object({kind:e.enum(["progress","handoff","blocked","decision","done","error"]),summary:e.string().min(1).describe("Update summary"),taskId:E(e.string().min(1)).describe("Optional task ID context"),evidence:E(e.array(e.string().min(1))).describe("Optional evidence links/snippets"),nextAction:E(e.string().min(1)).describe("Planned next step")}),ws=e.object({}),ks=e.object({title:e.string().describe("Outcome title"),requiredSections:e.array(e.string()).default(tr).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),_s=e.object({outcomeId:e.string().describe("Outcome ID"),section:e.string().describe("Section name"),sourceRunId:E(e.string()).describe("Optional source run ID"),content:e.string().describe("Section fragment content")}),As=e.object({fragmentId:e.string().describe("Fragment ID"),approved:e.boolean().describe("Review decision")}),us=e.object({outcomeId:e.string().describe("Outcome ID")}),Is=e.object({}),is=e.object({teamId:e.string(),teamName:e.string(),members:e.array(zr),taskCounts:e.record(t,e.number()),unreadMessages:e.number(),missionLogEntries:e.number(),activeRuns:e.number(),queuedRuns:e.number(),outcomeCounts:e.record(_n,e.number())}),ol=e.object({id:e.string(),title:e.string(),description:e.string(),status:t,createdAt:L,updatedAt:L,createdBy:e.string(),assignee:e.string().optional(),dependsOn:e.array(e.string()),summary:e.string().optional(),isReady:e.boolean(),blockedBy:e.array(e.string())}),Rs=e.discriminatedUnion("action",[e.object({action:e.literal("create"),taskId:e.string(),status:t,ignoredFields:e.array(e.string()).optional(),note:e.string().optional()}),e.object({action:e.literal("list"),tasks:e.array(ol)}),e.object({action:e.literal("claim"),taskId:e.string(),status:t,nextStep:e.string()}),e.object({action:e.literal("complete"),taskId:e.string(),status:t}),e.object({action:e.literal("block"),taskId:e.string(),status:t})]),Ds=e.object({agentId:e.string(),mode:e.enum(["sync","async"]),status:e.enum(["dispatched","running","queued","joined"]),dispatched:e.boolean(),message:e.string(),deduped:e.boolean().optional(),runId:e.string().optional(),text:e.string().optional(),iterations:e.number().optional()}),dl=e.object({textPreview:e.string(),iterations:e.number(),finishReason:e.string(),durationMs:e.number(),usage:e.object({inputTokens:e.number(),outputTokens:e.number(),cacheReadTokens:e.number().optional(),cacheWriteTokens:e.number().optional(),totalCost:e.number().optional()})}),Es=e.object({id:e.string(),agentId:e.string(),taskId:e.string().optional(),status:Md,messagePreview:e.string(),priority:e.number(),retryCount:e.number(),maxRetries:e.number(),nextAttemptAt:L.optional(),continueConversation:e.boolean().optional(),startedAt:L,endedAt:L.optional(),leaseOwner:e.string().optional(),heartbeatAt:L.optional(),lastProgressAt:L.optional(),lastProgressMessage:e.string().optional(),currentActivity:e.string().optional(),error:e.string().optional(),resultSummary:dl.optional()}),Bs=e.object({id:e.string(),teamId:e.string(),fromAgentId:e.string(),toAgentId:e.string(),subject:e.string(),body:e.string(),taskId:e.string().optional(),sentAt:L,readAt:L.optional()}),qs=e.object({id:e.string(),teamId:e.string(),title:e.string(),status:_n,requiredSections:e.array(e.string()),createdBy:e.string(),createdAt:L,finalizedAt:L.optional()}),Ms=e.object({outcomeId:e.string(),status:_n,requiredSections:e.array(e.string())}),Ts=e.object({agentId:e.string(),status:e.string()}),Fs=e.object({runId:e.string(),status:Md}),$s=e.object({id:e.string(),toAgentId:e.string()}),Us=e.object({delivered:e.number()}),Gs=e.object({id:e.string()}),Ls=e.object({status:e.string()}),Ys=e.object({fragmentId:e.string(),status:e.string()}),Ps=e.object({outcomeId:e.string(),status:_n});var el;((B)=>{B.TaskStart="task_start";B.TaskEnd="task_end";B.AgentEvent="agent_event";B.TeammateSpawned="teammate_spawned";B.TeammateShutdown="teammate_shutdown";B.TeamTaskUpdated="team_task_updated";B.TeamMessage="team_message";B.TeamMissionLog="team_mission_log";B.TeamTaskCompleted="team_task_completed";B.RunStarted="run_started";B.RunQueued="run_queued";B.RunProgress="run_progress";B.RunCompleted="run_completed";B.RunFailed="run_failed";B.RunCancelled="run_cancelled";B.RunInterrupted="run_interrupted";B.OutcomeCreated="outcome_created";B.OutcomeFragmentAttached="outcome_fragment_attached";B.OutcomeFragmentReviewed="outcome_fragment_reviewed";B.OutcomeFinalized="outcome_finalized"})(el||={});import{z as rl}from"zod";function ll(n){let{$schema:o,...d}=n;if(typeof d.type==="string")return d;if("properties"in d||"required"in d||"additionalProperties"in d)return{type:"object",...d};for(let r of["oneOf","anyOf","allOf"]){let l=d[r];if(!Array.isArray(l)||l.length===0)continue;if(r==="allOf"){if(l.some((y)=>y&&typeof y==="object"&&y.type==="object"))return{type:"object",...d};throw Error('Tool inputSchema must describe an object at the top level, but the schema has a top-level "allOf" with no branch that asserts type: "object". Add type: "object" to at least one allOf branch to make the object constraint explicit.')}if(l.every((g)=>g&&typeof g==="object"&&g.type==="object"))return{type:"object",...d};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${r}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return d}function fl(n){let o=ll(n.inputSchema instanceof rl.ZodType?Cn(n.inputSchema):n.inputSchema);return{name:n.name,description:n.description,inputSchema:o,lifecycle:n.lifecycle,timeoutMs:n.timeoutMs??30000,retryable:n.retryable??!0,maxRetries:n.maxRetries??3,execute:n.execute}}var Td=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function sl(n){let o=n instanceof Error?n.message.toLowerCase():String(n);return Td.some((d)=>o.includes(d))}export{Cn as zodToJsonSchema,qo as xmlTagsRemoval,yr as validateWithZod,Uo as validateImageMedia,nn as validateAndReserveImageMedia,mf as upsertWorkspaceInfo,Qo as truncateStr,sr as truncateSplit,fr as trimNonEmpty,Yo as toAiSdkToolResultOutput,Bo as stripModeNotices,Kd as shouldIncludeConnectorField,Ce as serializeAbortReason,U as sanitizeSurrogates,lr as sanitizeFileName,xe as safeJsonStringify,te as safeJsonParse,Kr as resolveRootSessionId,Vo as resolveReasoningEffortRatio,ae as resolveReasoningBudgetFromRatio,To as resolveMediaBudget,Hl as resolveHubCommandTimeoutMs,Jr as resolveHookSessionContext,Ze as resolveEffectiveReasoningEffort,_d as resolveClineEnvironment,z as reserveImageMediaBytes,Do as parseUserCommandEnvelope,Sr as parseRuntimeConfigExtensions,ve as parseJsonStream,ce as parseHookEventPayload,or as omitUndefinedValues,Eo as normalizeUserInput,Id as normalizeSdkError,uo as normalizePluginManifest,hn as normalizeJsonLikeStringsForSchema,Ke as noopBasicLogger,Xe as mergeModelOptions,gr as maskSecret,yo as listConnectorCatalog,qd as isRuntimeConfigExtensionKind,sl as isLikelyAuthError,Zl as isHubToolExecutorName,Vl as isHubProtocolCompatible,Wn as isClineProvider,Te as isCanonicalBase64,Fo as isBase64Char,Me as imageFileMaxDecodedBytesForBase64Limit,En as imageBase64LengthForDecodedBytes,qe as imageBase64EncodedByteLength,Mo as imageBase64DecodedByteLength,pr as hasRuntimeConfigExtension,rr as getShellArgs,er as getDefaultShell,ye as getDefaultHubCommandTimeoutMs,Gr as getClineEnvironmentConfig,_e as formatUserInputBlock,Ae as formatUserCommandBlock,br as formatUptime,ue as formatModeSwitchNotice,Ve as formatMessagesForAiSdk,cr as formatHumanReadableDate,Dn as formatFileContentBlock,De as formatDisplayUserInput,Je as estimateTokens,jf as emptyWorkspaceManifest,fl as createTool,jr as createSessionId,bn as createMediaBudgetState,xd as createContributionRegistry,Rd as createClineTelemetryServiceMetadata,Wr as createClineTelemetryServiceConfig,Od as connectorChannelsFromPlatforms,Vr as captureSdkError,Pr as captureAgentUnexpectedReasoningTokens,ud as buildSdkErrorProperties,wr as buildClineSystemPrompt,xr as WorkspaceManifestSchema,vr as WorkspaceInfoSchema,ed as VertexSettingsSchema,dd as VertexModelSchema,vl as USAGE_COST_DISPLAYS,In as ToolCallRecordSchema,lo as ThinkingConfigSchema,tf as TeamTeammateSpecSchema,Rs as TeamTaskToolResultSchema,ol as TeamTaskListItemToolResultSchema,es as TeamTaskInputSchema,is as TeamStatusToolResultSchema,os as TeamStatusInputSchema,zf as TeamSpawnTeammateInputSchema,Ts as TeamSimpleAgentStatusToolResultSchema,ns as TeamShutdownTeammateInputSchema,$s as TeamSendMessageToolResultSchema,gs as TeamSendMessageInputSchema,Es as TeamRunToolSummarySchema,Ds as TeamRunTaskToolResultSchema,rs as TeamRunTaskInputSchema,dl as TeamRunResultSummarySchema,As as TeamReviewOutcomeFragmentInputSchema,bs as TeamReadMailboxInputSchema,qs as TeamOutcomeToolResultSchema,Ys as TeamOutcomeFragmentToolResultSchema,Gs as TeamMissionLogToolResultSchema,ys as TeamMissionLogInputSchema,el as TeamMessageType,Bs as TeamMailboxMessageToolResultSchema,ls as TeamListRunsInputSchema,Is as TeamListOutcomesInputSchema,Ps as TeamFinalizeOutcomeToolResultSchema,us as TeamFinalizeOutcomeInputSchema,Ms as TeamCreateOutcomeToolResultSchema,ks as TeamCreateOutcomeInputSchema,Ls as TeamCleanupToolResultSchema,ws as TeamCleanupInputSchema,Fs as TeamCancelRunToolResultSchema,fs as TeamCancelRunInputSchema,Us as TeamBroadcastToolResultSchema,cs as TeamBroadcastInputSchema,ss as TeamAwaitRunsInputSchema,_s as TeamAttachOutcomeFragmentInputSchema,ds as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,xf as TEAM_RUN_TEXT_PREVIEW_LIMIT,vf as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,Br as TEAM_PROGRESS_EVENT_TYPE,qr as TEAM_LIFECYCLE_EVENT_TYPE,pf as TEAM_AWAIT_TIMEOUT_MS,cn as SUPPORTED_IMAGE_MEDIA_TYPES,mr as SESSION_STATUS_VALUES,Yr as SDK_ERROR_TELEMETRY_EVENT,kn as S3AccessKeySettingsSchema,cd as RemoteMCPServerSchema,Ar as RemoteConfigSchema,hd as ReasoningEffortSchema,mn as RUNTIME_CONFIG_EXTENSION_KINDS,kr as REMOTE_URI_SCHEME,dn as REASONING_EFFORT_RATIOS,Dr as ProviderProtocolSchema,Er as ProviderClientSchema,Rr as ProviderCapabilitySchema,bd as PromptUploadingSchema,td as PLUGIN_FILE_EXTENSIONS,vo as OpenAiCompatibleSchema,po as OpenAiCompatibleModelSchema,eo as ModelStatusSchema,ro as ModelPricingSchema,fo as ModelMetadataSchema,fn as ModelInfoSchema,oo as ModelCapabilitySchema,Ll as MIN_CLIENT_HUB_PROTOCOL_VERSION,Yl as MAX_CLIENT_HUB_PROTOCOL_VERSION,ld as LiteLLMSchema,rd as LiteLLMModelSchema,W as IMAGE_OMITTED_PLACEHOLDER,Ro as HookEventPayloadSchema,io as HookEventNameSchema,Ol as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,we as HUB_TOOL_EXECUTOR_NAMES,al as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,Kl as HUB_MISTAKE_LIMIT_CAPABILITY,Cl as HUB_HOOK_CAPABILITY_PREFIX,be as HUB_DEFAULT_COMMAND_TIMEOUT_MS,hl as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,Wl as HUB_COMPACTION_CAPABILITY,Xl as HUB_COMMAND_SLOW_LOG_MS,Jl as HUB_CHECKPOINT_CAPABILITY,Pl as HUB_CAPABILITIES,Kn as GlobalInstructionsFileSchema,zd as FeatureFlagDefaultValue,ne as FEATURE_FLAGS,yd as EnterpriseTelemetrySchema,Bn as EMPTY_CONTENT_TEXT,Bd as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,he as DEFAULT_REQUEST_HEADERS,He as DEFAULT_REASONING_EFFORT,tr as DEFAULT_OUTCOME_REQUIRED_SECTIONS,Be as DEFAULT_MAX_TOTAL_MEDIA_BYTES,a as DEFAULT_MAX_IMAGE_ENCODED_BYTES,J as DEFAULT_MAX_IMAGE_DECODED_BYTES,Ee as DEFAULT_MAX_IMAGE_BASE64_BYTES,Fr as DEFAULT_CLINE_ENVIRONMENT,Rn as ContributionRegistry,Jd as ConnectorHookEventSchema,so as ConnectorHookEventNameSchema,co as ConnectorEventContextSchema,go as ConnectorEventActorSchema,Cd as ConnectorAuthorizationRequestSchema,Wd as ConnectorAuthorizationDecisionSchema,od as ClineSettingsSchema,nd as ClineModelSchema,Gl as CURRENT_HUB_PROTOCOL_VERSION,wo as CONNECTOR_PLATFORMS,bo as CONNECTOR_CATALOG,Tr as CLINE_ENVIRONMENT_OVERRIDE_ENV,Mr as CLINE_ENVIRONMENT_ENV,Qn as CLINE_ENVIRONMENTS,Ir as CLINE_DEFAULT_RPC_PORT,ir as CLINE_DEFAULT_RPC_ADDRESS,We as CHARS_PER_TOKEN,zo as AwsBedrockSettingsSchema,xo as AwsBedrockModelSchema,to as AwsBedrockCustomModelSchema,no as ApiFormatSchema,Hd as ApiFormat,sd as AnthropicSchema,fd as AnthropicModelSchema,gd as AllowedMCPServerSchema,ad as AgentUsageSchema,ul as AgentResultSchema,Zd as AgentFinishReasonSchema,Il as AgentConfigSchema,Td as AUTH_ERROR_PATTERNS,ur as APIKeySchema,Lr as AGENT_UNEXPECTED_REASONING_TOKENS_EVENT};
|
|
80
|
+
${So(w,l,c)}`.trim();return T}return(d==="yolo"?No:mo).replace("{{PLATFORM_NAME}}",r).replace("{{CWD}}",w).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",I?So(w,l,c):"").replace("{{CLINE_RULES}}",g||"").trim()}var kr="remote://";import{z as f}from"zod";var po=f.object({id:f.string(),temperature:f.number().optional(),isR1FormatRequired:f.boolean().optional(),maxTokens:f.number().optional(),contextWindow:f.number().optional(),inputPrice:f.number().optional(),outputPrice:f.number().optional(),supportsImages:f.boolean().optional()}),vo=f.object({models:f.array(po).optional(),openAiBaseUrl:f.string().optional(),openAiHeaders:f.record(f.string(),f.string()).optional(),azureApiVersion:f.string().optional(),azureIdentity:f.boolean().optional()}),xo=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),to=f.object({name:f.string(),baseModelId:f.string(),thinkingBudgetTokens:f.number().optional()}),zo=f.object({models:f.array(xo).optional(),customModels:f.array(to).optional(),awsRegion:f.string().optional(),awsUseCrossRegionInference:f.boolean().optional(),awsUseGlobalInference:f.boolean().optional(),awsBedrockUsePromptCache:f.boolean().optional(),awsBedrockEndpoint:f.string().optional()}),nd=f.object({id:f.string()}),od=f.object({models:f.array(nd).optional()}),dd=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),ed=f.object({models:f.array(dd).optional(),vertexProjectId:f.string().optional(),vertexRegion:f.string().optional()}),rd=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional(),promptCachingEnabled:f.boolean().optional()}),ld=f.object({models:f.array(rd).optional(),baseUrl:f.string().optional()}),fd=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),sd=f.object({models:f.array(fd).optional(),baseUrl:f.string().optional()}),Ar=f.object({OpenAiCompatible:vo.optional(),AwsBedrock:zo.optional(),Cline:od.optional(),Vertex:ed.optional(),LiteLLM:ld.optional(),Anthropic:sd.optional()}),gd=f.object({id:f.string()}),cd=f.object({name:f.string(),url:f.string(),alwaysEnabled:f.boolean().optional(),headers:f.record(f.string(),f.string()).optional()}),Kn=f.object({alwaysEnabled:f.boolean(),name:f.string(),contents:f.string()}),kn=f.object({bucket:f.string(),accessKeyId:f.string(),secretAccessKey:f.string(),region:f.string().optional(),endpoint:f.string().optional(),accountId:f.string().optional()}),bd=f.object({enabled:f.boolean().optional(),type:f.union([f.literal("s3_access_keys"),f.literal("r2_access_keys"),f.literal("azure_access_keys")]).optional(),s3AccessSettings:kn.optional(),r2AccessSettings:kn.optional(),azureAccessSettings:kn.optional()}),yd=f.object({promptUploading:bd.optional()}),_r=f.object({version:f.string(),providerSettings:Ar.optional(),telemetryEnabled:f.boolean().optional(),kanbanEnabled:f.boolean().optional(),mcpMarketplaceEnabled:f.boolean().optional(),allowedMCPServers:f.array(gd).optional(),remoteMCPServers:f.array(cd).optional(),blockPersonalRemoteMCPServers:f.boolean().optional(),yoloModeAllowed:f.boolean().optional(),openTelemetryEnabled:f.boolean().optional(),openTelemetryMetricsExporter:f.string().optional(),openTelemetryLogsExporter:f.string().optional(),openTelemetryOtlpProtocol:f.string().optional(),openTelemetryOtlpEndpoint:f.string().optional(),openTelemetryOtlpHeaders:f.record(f.string(),f.string()).optional(),openTelemetryOtlpMetricsProtocol:f.string().optional(),openTelemetryOtlpMetricsEndpoint:f.string().optional(),openTelemetryOtlpMetricsHeaders:f.record(f.string(),f.string()).optional(),openTelemetryOtlpLogsProtocol:f.string().optional(),openTelemetryOtlpLogsEndpoint:f.string().optional(),openTelemetryOtlpLogsHeaders:f.record(f.string(),f.string()).optional(),openTelemetryMetricExportInterval:f.number().optional(),openTelemetryOtlpInsecure:f.boolean().optional(),openTelemetryLogBatchSize:f.number().optional(),openTelemetryLogBatchTimeout:f.number().optional(),openTelemetryLogMaxQueueSize:f.number().optional(),enterpriseTelemetry:yd.optional(),globalRules:f.array(Kn).optional(),globalWorkflows:f.array(Kn).optional()}),Ir=f.record(f.string(),f.string());var ur=4317;var ir="127.0.0.1:4317";import On from"zod";var Rr=On.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),Dr=On.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),Br=On.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var Er="runtime.team.progress.v1",qr="runtime.team.lifecycle.v1";var Mr="CLINE_ENVIRONMENT",Tr="CLINE_ENVIRONMENT_OVERRIDE",Qn={production:{environment:"production",appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",mcpBaseUrl:"https://api.cline.bot/v1/mcp",workOsClientId:"client_01K3A541FN8TA3EPPHTD2325AR"},staging:{environment:"staging",appBaseUrl:"https://staging-app.cline.bot",apiBaseUrl:"https://core-api.staging.int.cline.bot",mcpBaseUrl:"https://core-api.staging.int.cline.bot/v1/mcp",workOsClientId:"client_01K3A5415VF6QBQBG3XYCW91G6"},local:{environment:"local",appBaseUrl:"http://localhost:3000",apiBaseUrl:"http://localhost:7777",mcpBaseUrl:"http://localhost:7777/v1/mcp",workOsClientId:"client_01K6XQAY7JK6T5HXVSZW2S5VYK"}},Fr="production";function wd(n){let o=n?.trim().toLowerCase();if(o==="production"||o==="staging"||o==="local")return o;return}function kd(){if(typeof process>"u"||!process?.env)return{};return process.env}function Ad(){let n=kd();return wd(n.CLINE_ENVIRONMENT_OVERRIDE)??wd(n.CLINE_ENVIRONMENT)??"production"}function $r(n){if(typeof n==="string")return Qn[n];return Qn[Ad()]}function Gr(n,o){if(o.CLINE_API_BASE_URL)n={...n,apiBaseUrl:o.CLINE_API_BASE_URL,mcpBaseUrl:`${o.CLINE_API_BASE_URL}/v1/mcp`};return n}function Ur(n){let o=$r(n);return Gr(o,kd())}var Lr="agent.reasoning.unexpected_tokens",Yr="sdk.error";function Pr(n,o){n?.capture({event:"agent.reasoning.unexpected_tokens",properties:Xr({sessionId:o.sessionId,agentId:o.agentId,runId:o.runId,iteration:o.iteration,providerId:o.providerId,modelId:o.modelId,requestedThinking:o.requestedThinking,reasoningTokenCount:o.reasoningTokenCount})})}function Vr(n,o){if(!n)return;n.capture({event:o.event??"sdk.error",properties:Id(o)})}function Id(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...ud(n.error,n.messageLimit)}}function Xr(n){let o={};for(let[d,r]of Object.entries(n))if(r!==void 0)o[d]=r;return o}function ud(n,o=500){let d=ar(n)?n:void 0,r=n instanceof Error?n:void 0,l=r?.message??_d(d?.message)??(typeof n==="string"?n:String(n)),c=hr(d?.code),g=jn(d?.status)??jn(d?.statusCode)??jn(d?.responseStatus);return{error_type:r?.name?.trim()||_d(d?.name)||r?.constructor?.name||"Error",error_message:Zr(Hr(l),o),...c!==void 0?{error_code:c}:{},...g!==void 0?{error_status:g}:{}}}function Hr(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 Zr(n,o){let d=Math.max(1,Math.floor(o));return n.length>d?n.substring(0,d):n}function ar(n){return typeof n==="object"&&n!==null}function _d(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function hr(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function jn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function id(n){let o={};if(!n)return o;try{n.split(",").forEach((d)=>{let r=d.indexOf("=");if(r<=0)return;let l=decodeURIComponent(d.substring(0,r).trim()),c=decodeURIComponent(d.substring(r+1).trim());if(!l||!c)return;o[l]=c})}catch{}return o}function Cr(){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?id(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function Rd(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 Wr(n={}){return{...Cr(),...n,metadata:Rd(n.metadata)}}function Dd(n){let o=n?.trim();return o?o:void 0}function Jr(n,o){if(!n)return;let d=typeof n==="function"?n(o):n;if(!d)return;let r=Dd(d.rootSessionId);if(!r)return;return{rootSessionId:r}}function Kr(n){return Dd(n?.rootSessionId)}var Or=(n)=>crypto.getRandomValues(new Uint8Array(n)),Qr=(n,o,d)=>{let r=256-256%n.length;if(r===256){let c=n.length-1;return(g=o)=>{if(!g)return"";let y="";while(!0){let _=d(g),w=g;while(w--)if(y+=n[_[w]&c],y.length>=g)return y}}}let l=Math.ceil(409.6*o/r);return(c=o)=>{if(!c)return"";let g="";while(!0){let y=d(l),_=l;while(_--)if(y[_]<r){if(g+=n[y[_]%n.length],g.length>=c)return g}}}},Bd=(n,o=21)=>Qr(n,o|0,Or);function jr(n="",o=""){let d=Bd("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${d(5)}${o}`}var mr=["idle","running","pending","completed","failed","cancelled"];var mn=["rules","skills","workflows","plugins"],Ed=mn,Nr=new Set(mn);function qd(n){return typeof n==="string"&&Nr.has(n)}function Sr(n){if(!Array.isArray(n))return;let o=n.map((d)=>typeof d==="string"?d.trim():"").filter(qd);return[...new Set(o)]}function pr(n,o){return new Set(n??Ed).has(o)}import{z as U}from"zod";var vr=U.object({rootPath:U.string().min(1),hint:U.string().min(1).optional(),associatedRemoteUrls:U.array(U.string().min(1)).optional(),latestGitCommitHash:U.string().min(1).optional(),latestGitBranchName:U.string().min(1).optional()}),xr=U.object({currentWorkspacePath:U.string().min(1).optional(),workspaces:U.record(U.string().min(1),vr)});function jf(){return{workspaces:{}}}function mf(n,o){let d={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!d.currentWorkspacePath)d.currentWorkspacePath=o.rootPath;return xr.parse(d)}import{z as e}from"zod";var tr=["current_state","boundary_analysis","interface_proposal"],pf=3600000,vf=240,xf=400,L=e.preprocess((n)=>n instanceof Date?n.toISOString():n,e.string().datetime()),t=e.enum(["pending","in_progress","blocked","completed"]),Md=e.enum(["queued","running","completed","failed","cancelled","interrupted"]),An=e.enum(["draft","in_review","finalized"]),zr=e.object({agentId:e.string(),role:e.enum(["lead","teammate"]),description:e.string().optional(),status:e.enum(["idle","running","stopped"])}),tf=e.object({agentId:e.string(),rolePrompt:e.string(),modelId:e.string().optional(),maxIterations:e.number().optional()});function B(n){return e.preprocess((o)=>o===null?void 0:o,n.optional())}var zf=e.object({agentId:e.string().min(1).describe("Teammate identifier"),rolePrompt:e.string().min(1).describe("System prompt describing teammate role")}).strict(),ns=e.object({agentId:e.string().min(1).describe("Teammate identifier"),reason:B(e.string().min(1)).describe("Optional shutdown reason")}),os=e.object({}),nl={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},ds={create:["status","taskId","summary","reason"]},es=e.object({action:e.enum(["create","list","claim","complete","block"]),title:B(e.string().min(1)).describe("Task title"),description:B(e.string().min(1)).describe("Task details"),dependsOn:B(e.array(e.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:B(e.string().min(1)).describe("Optional assignee"),status:B(e.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:B(e.string()).describe("Task ID"),summary:B(e.string().min(1)).describe("Completion summary"),reason:B(e.string().min(1)).describe("Blocking reason")}).superRefine((n,o)=>{for(let d of nl[n.action]){if(n[d]!==void 0)continue;o.addIssue({code:"custom",path:[d],message:`Field "${d}" is required when action=${n.action}`})}}),rs=e.object({agentId:e.string().describe("Teammate agent ID"),task:e.string().min(1).describe("Task instructions for the teammate"),taskId:B(e.string()).describe("Optional shared task list ID"),runMode:B(e.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:B(e.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),ls=e.object({status:B(e.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:B(e.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:B(e.boolean()).describe("Include completed/failed runs (default true)")}),fs=e.object({runId:e.string().min(1).describe("Run ID"),reason:B(e.string().min(1)).describe("Optional cancellation reason")}),ss=e.object({runId:B(e.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),gs=e.object({toAgentId:e.string().min(1).describe("Recipient agent ID"),subject:e.string().min(1).describe("Message subject"),body:e.string().min(1).describe("Message body"),taskId:B(e.string().min(1)).describe("Optional task ID context")}),cs=e.object({subject:e.string().min(1).describe("Message subject"),body:e.string().min(1).describe("Message body"),taskId:B(e.string().min(1)).describe("Optional task ID context")}),bs=e.object({unreadOnly:B(e.boolean()).describe("Only unread messages for read action (default true)")}),ys=e.object({kind:e.enum(["progress","handoff","blocked","decision","done","error"]),summary:e.string().min(1).describe("Update summary"),taskId:B(e.string().min(1)).describe("Optional task ID context"),evidence:B(e.array(e.string().min(1))).describe("Optional evidence links/snippets"),nextAction:B(e.string().min(1)).describe("Planned next step")}),ws=e.object({}),ks=e.object({title:e.string().describe("Outcome title"),requiredSections:e.array(e.string()).default(tr).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),As=e.object({outcomeId:e.string().describe("Outcome ID"),section:e.string().describe("Section name"),sourceRunId:B(e.string()).describe("Optional source run ID"),content:e.string().describe("Section fragment content")}),_s=e.object({fragmentId:e.string().describe("Fragment ID"),approved:e.boolean().describe("Review decision")}),Is=e.object({outcomeId:e.string().describe("Outcome ID")}),us=e.object({}),is=e.object({teamId:e.string(),teamName:e.string(),members:e.array(zr),taskCounts:e.record(t,e.number()),unreadMessages:e.number(),missionLogEntries:e.number(),activeRuns:e.number(),queuedRuns:e.number(),outcomeCounts:e.record(An,e.number())}),ol=e.object({id:e.string(),title:e.string(),description:e.string(),status:t,createdAt:L,updatedAt:L,createdBy:e.string(),assignee:e.string().optional(),dependsOn:e.array(e.string()),summary:e.string().optional(),isReady:e.boolean(),blockedBy:e.array(e.string())}),Rs=e.discriminatedUnion("action",[e.object({action:e.literal("create"),taskId:e.string(),status:t,ignoredFields:e.array(e.string()).optional(),note:e.string().optional()}),e.object({action:e.literal("list"),tasks:e.array(ol)}),e.object({action:e.literal("claim"),taskId:e.string(),status:t,nextStep:e.string()}),e.object({action:e.literal("complete"),taskId:e.string(),status:t}),e.object({action:e.literal("block"),taskId:e.string(),status:t})]),Ds=e.object({agentId:e.string(),mode:e.enum(["sync","async"]),status:e.enum(["dispatched","running","queued","joined"]),dispatched:e.boolean(),message:e.string(),deduped:e.boolean().optional(),runId:e.string().optional(),text:e.string().optional(),iterations:e.number().optional()}),dl=e.object({textPreview:e.string(),iterations:e.number(),finishReason:e.string(),durationMs:e.number(),usage:e.object({inputTokens:e.number(),outputTokens:e.number(),cacheReadTokens:e.number().optional(),cacheWriteTokens:e.number().optional(),totalCost:e.number().optional()})}),Bs=e.object({id:e.string(),agentId:e.string(),taskId:e.string().optional(),status:Md,messagePreview:e.string(),priority:e.number(),retryCount:e.number(),maxRetries:e.number(),nextAttemptAt:L.optional(),continueConversation:e.boolean().optional(),startedAt:L,endedAt:L.optional(),leaseOwner:e.string().optional(),heartbeatAt:L.optional(),lastProgressAt:L.optional(),lastProgressMessage:e.string().optional(),currentActivity:e.string().optional(),error:e.string().optional(),resultSummary:dl.optional()}),Es=e.object({id:e.string(),teamId:e.string(),fromAgentId:e.string(),toAgentId:e.string(),subject:e.string(),body:e.string(),taskId:e.string().optional(),sentAt:L,readAt:L.optional()}),qs=e.object({id:e.string(),teamId:e.string(),title:e.string(),status:An,requiredSections:e.array(e.string()),createdBy:e.string(),createdAt:L,finalizedAt:L.optional()}),Ms=e.object({outcomeId:e.string(),status:An,requiredSections:e.array(e.string())}),Ts=e.object({agentId:e.string(),status:e.string()}),Fs=e.object({runId:e.string(),status:Md}),$s=e.object({id:e.string(),toAgentId:e.string()}),Gs=e.object({delivered:e.number()}),Us=e.object({id:e.string()}),Ls=e.object({status:e.string()}),Ys=e.object({fragmentId:e.string(),status:e.string()}),Ps=e.object({outcomeId:e.string(),status:An});var el;((E)=>{E.TaskStart="task_start";E.TaskEnd="task_end";E.AgentEvent="agent_event";E.TeammateSpawned="teammate_spawned";E.TeammateShutdown="teammate_shutdown";E.TeamTaskUpdated="team_task_updated";E.TeamMessage="team_message";E.TeamMissionLog="team_mission_log";E.TeamTaskCompleted="team_task_completed";E.RunStarted="run_started";E.RunQueued="run_queued";E.RunProgress="run_progress";E.RunCompleted="run_completed";E.RunFailed="run_failed";E.RunCancelled="run_cancelled";E.RunInterrupted="run_interrupted";E.OutcomeCreated="outcome_created";E.OutcomeFragmentAttached="outcome_fragment_attached";E.OutcomeFragmentReviewed="outcome_fragment_reviewed";E.OutcomeFinalized="outcome_finalized"})(el||={});import{z as rl}from"zod";function ll(n){let{$schema:o,...d}=n;if(typeof d.type==="string")return d;if("properties"in d||"required"in d||"additionalProperties"in d)return{type:"object",...d};for(let r of["oneOf","anyOf","allOf"]){let l=d[r];if(!Array.isArray(l)||l.length===0)continue;if(r==="allOf"){if(l.some((y)=>y&&typeof y==="object"&&y.type==="object"))return{type:"object",...d};throw Error('Tool inputSchema must describe an object at the top level, but the schema has a top-level "allOf" with no branch that asserts type: "object". Add type: "object" to at least one allOf branch to make the object constraint explicit.')}if(l.every((g)=>g&&typeof g==="object"&&g.type==="object"))return{type:"object",...d};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${r}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return d}function fl(n){let o=ll(n.inputSchema instanceof rl.ZodType?Cn(n.inputSchema):n.inputSchema);return{name:n.name,description:n.description,inputSchema:o,lifecycle:n.lifecycle,timeoutMs:n.timeoutMs??30000,retryable:n.retryable??!0,maxRetries:n.maxRetries??3,execute:n.execute}}var Td=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function sl(n){let o=n instanceof Error?n.message.toLowerCase():String(n);return Td.some((d)=>o.includes(d))}export{Cn as zodToJsonSchema,qo as xmlTagsRemoval,yr as validateWithZod,Go as validateImageMedia,nn as validateAndReserveImageMedia,mf as upsertWorkspaceInfo,Qo as truncateStr,sr as truncateSplit,fr as trimNonEmpty,Yo as toAiSdkToolResultOutput,Eo as stripModeNotices,Kd as shouldIncludeConnectorField,Ce as serializeAbortReason,G as sanitizeSurrogates,lr as sanitizeFileName,xe as safeJsonStringify,te as safeJsonParse,Kr as resolveRootSessionId,Vo as resolveReasoningEffortRatio,ae as resolveReasoningBudgetFromRatio,To as resolveMediaBudget,Hl as resolveHubCommandTimeoutMs,Jr as resolveHookSessionContext,Ze as resolveEffectiveReasoningEffort,Ad as resolveClineEnvironment,z as reserveImageMediaBytes,Do as parseUserCommandEnvelope,Sr as parseRuntimeConfigExtensions,ve as parseJsonStream,ce as parseHookEventPayload,or as omitUndefinedValues,Bo as normalizeUserInput,ud as normalizeSdkError,Io as normalizePluginManifest,hn as normalizeJsonLikeStringsForSchema,Ke as noopBasicLogger,Xe as mergeModelOptions,gr as maskSecret,yo as listConnectorCatalog,qd as isRuntimeConfigExtensionKind,sl as isLikelyAuthError,Zl as isHubToolExecutorName,Vl as isHubProtocolCompatible,Wn as isClineProvider,Te as isCanonicalBase64,Fo as isBase64Char,Me as imageFileMaxDecodedBytesForBase64Limit,Bn as imageBase64LengthForDecodedBytes,qe as imageBase64EncodedByteLength,Mo as imageBase64DecodedByteLength,pr as hasRuntimeConfigExtension,rr as getShellArgs,er as getDefaultShell,ye as getDefaultHubCommandTimeoutMs,Ur as getClineEnvironmentConfig,Ae as formatUserInputBlock,_e as formatUserCommandBlock,br as formatUptime,Ie as formatModeSwitchNotice,Ve as formatMessagesForAiSdk,cr as formatHumanReadableDate,Dn as formatFileContentBlock,De as formatDisplayUserInput,Je as estimateTokens,jf as emptyWorkspaceManifest,fl as createTool,jr as createSessionId,bn as createMediaBudgetState,xd as createContributionRegistry,Rd as createClineTelemetryServiceMetadata,Wr as createClineTelemetryServiceConfig,Od as connectorChannelsFromPlatforms,Vr as captureSdkError,Pr as captureAgentUnexpectedReasoningTokens,Id as buildSdkErrorProperties,wr as buildClineSystemPrompt,xr as WorkspaceManifestSchema,vr as WorkspaceInfoSchema,ed as VertexSettingsSchema,dd as VertexModelSchema,vl as USAGE_COST_DISPLAYS,un as ToolCallRecordSchema,lo as ThinkingConfigSchema,tf as TeamTeammateSpecSchema,Rs as TeamTaskToolResultSchema,ol as TeamTaskListItemToolResultSchema,es as TeamTaskInputSchema,is as TeamStatusToolResultSchema,os as TeamStatusInputSchema,zf as TeamSpawnTeammateInputSchema,Ts as TeamSimpleAgentStatusToolResultSchema,ns as TeamShutdownTeammateInputSchema,$s as TeamSendMessageToolResultSchema,gs as TeamSendMessageInputSchema,Bs as TeamRunToolSummarySchema,Ds as TeamRunTaskToolResultSchema,rs as TeamRunTaskInputSchema,dl as TeamRunResultSummarySchema,_s as TeamReviewOutcomeFragmentInputSchema,bs as TeamReadMailboxInputSchema,qs as TeamOutcomeToolResultSchema,Ys as TeamOutcomeFragmentToolResultSchema,Us as TeamMissionLogToolResultSchema,ys as TeamMissionLogInputSchema,el as TeamMessageType,Es as TeamMailboxMessageToolResultSchema,ls as TeamListRunsInputSchema,us as TeamListOutcomesInputSchema,Ps as TeamFinalizeOutcomeToolResultSchema,Is as TeamFinalizeOutcomeInputSchema,Ms as TeamCreateOutcomeToolResultSchema,ks as TeamCreateOutcomeInputSchema,Ls as TeamCleanupToolResultSchema,ws as TeamCleanupInputSchema,Fs as TeamCancelRunToolResultSchema,fs as TeamCancelRunInputSchema,Gs as TeamBroadcastToolResultSchema,cs as TeamBroadcastInputSchema,ss as TeamAwaitRunsInputSchema,As as TeamAttachOutcomeFragmentInputSchema,ds as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,xf as TEAM_RUN_TEXT_PREVIEW_LIMIT,vf as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,Er as TEAM_PROGRESS_EVENT_TYPE,qr as TEAM_LIFECYCLE_EVENT_TYPE,pf as TEAM_AWAIT_TIMEOUT_MS,cn as SUPPORTED_IMAGE_MEDIA_TYPES,mr as SESSION_STATUS_VALUES,Yr as SDK_ERROR_TELEMETRY_EVENT,kn as S3AccessKeySettingsSchema,cd as RemoteMCPServerSchema,_r as RemoteConfigSchema,hd as ReasoningEffortSchema,mn as RUNTIME_CONFIG_EXTENSION_KINDS,kr as REMOTE_URI_SCHEME,dn as REASONING_EFFORT_RATIOS,Dr as ProviderProtocolSchema,Br as ProviderClientSchema,Rr as ProviderCapabilitySchema,bd as PromptUploadingSchema,td as PLUGIN_FILE_EXTENSIONS,vo as OpenAiCompatibleSchema,po as OpenAiCompatibleModelSchema,eo as ModelStatusSchema,ro as ModelPricingSchema,fo as ModelMetadataSchema,fn as ModelInfoSchema,oo as ModelCapabilitySchema,Ll as MIN_CLIENT_HUB_PROTOCOL_VERSION,Yl as MAX_CLIENT_HUB_PROTOCOL_VERSION,ld as LiteLLMSchema,rd as LiteLLMModelSchema,W as IMAGE_OMITTED_PLACEHOLDER,Ro as HookEventPayloadSchema,io as HookEventNameSchema,Ol as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,we as HUB_TOOL_EXECUTOR_NAMES,al as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,Kl as HUB_MISTAKE_LIMIT_CAPABILITY,Cl as HUB_HOOK_CAPABILITY_PREFIX,be as HUB_DEFAULT_COMMAND_TIMEOUT_MS,hl as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,Wl as HUB_COMPACTION_CAPABILITY,Xl as HUB_COMMAND_SLOW_LOG_MS,Jl as HUB_CHECKPOINT_CAPABILITY,Pl as HUB_CAPABILITIES,Kn as GlobalInstructionsFileSchema,zd as FeatureFlagDefaultValue,ne as FEATURE_FLAGS,yd as EnterpriseTelemetrySchema,En as EMPTY_CONTENT_TEXT,Ed as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,he as DEFAULT_REQUEST_HEADERS,He as DEFAULT_REASONING_EFFORT,tr as DEFAULT_OUTCOME_REQUIRED_SECTIONS,Ee as DEFAULT_MAX_TOTAL_MEDIA_BYTES,a as DEFAULT_MAX_IMAGE_ENCODED_BYTES,J as DEFAULT_MAX_IMAGE_DECODED_BYTES,Be as DEFAULT_MAX_IMAGE_BASE64_BYTES,Fr as DEFAULT_CLINE_ENVIRONMENT,Rn as ContributionRegistry,Jd as ConnectorHookEventSchema,so as ConnectorHookEventNameSchema,co as ConnectorEventContextSchema,go as ConnectorEventActorSchema,Cd as ConnectorAuthorizationRequestSchema,Wd as ConnectorAuthorizationDecisionSchema,od as ClineSettingsSchema,nd as ClineModelSchema,Ul as CURRENT_HUB_PROTOCOL_VERSION,wo as CONNECTOR_PLATFORMS,bo as CONNECTOR_CATALOG,Tr as CLINE_ENVIRONMENT_OVERRIDE_ENV,Mr as CLINE_ENVIRONMENT_ENV,Qn as CLINE_ENVIRONMENTS,ur as CLINE_DEFAULT_RPC_PORT,ir as CLINE_DEFAULT_RPC_ADDRESS,We as CHARS_PER_TOKEN,zo as AwsBedrockSettingsSchema,xo as AwsBedrockModelSchema,to as AwsBedrockCustomModelSchema,no as ApiFormatSchema,Hd as ApiFormat,sd as AnthropicSchema,fd as AnthropicModelSchema,gd as AllowedMCPServerSchema,ad as AgentUsageSchema,Il as AgentResultSchema,Zd as AgentFinishReasonSchema,ul as AgentConfigSchema,Td as AUTH_ERROR_PATTERNS,Ir as APIKeySchema,Lr as AGENT_UNEXPECTED_REASONING_TOKENS_EVENT};
|
package/dist/index.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export { formatHumanReadableDate, formatUptime } from "./parse/time";
|
|
|
38
38
|
export { validateWithZod, zodToJsonSchema } from "./parse/zod";
|
|
39
39
|
export type { ClineSystemPromptOptions } from "./prompt/cline";
|
|
40
40
|
export { buildClineSystemPrompt, processWorkspaceInfo } from "./prompt/cline";
|
|
41
|
-
export { formatDisplayUserInput, formatFileContentBlock, formatModeSwitchNotice, formatUserCommandBlock, formatUserInputBlock, normalizeUserInput, parseUserCommandEnvelope, stripModeNotices, xmlTagsRemoval, } from "./prompt/format";
|
|
41
|
+
export { formatDisplayUserInput, formatFileContentBlock, formatModeSwitchNotice, formatUserCommandBlock, formatUserInputBlock, normalizeUserInput, parseUserCommandEnvelope, parseUserInputMode, stripModeNotices, xmlTagsRemoval, } from "./prompt/format";
|
|
42
42
|
export { isClineProvider } from "./providers/utils";
|
|
43
43
|
export { buildRemoteConfigSessionBlobUploadMetadata, clearRemoteConfigSessionBlobUpload, createRemoteConfigSessionMessagesArtifactUploader, prepareRemoteConfigRuntime, REMOTE_CONFIG_SESSION_BLOB_UPLOAD_METADATA_KEY, readRemoteConfigSessionBlobUploadMetadata, registerRemoteConfigSessionBlobUpload, } from "./remote-config";
|
|
44
44
|
export type { PreparedRemoteConfigRuntime, PrepareRemoteConfigRuntimeOptions, RemoteConfigBundle, } from "./remote-config/bundle";
|