@cline/shared 0.0.49 → 0.0.51-nightly.1781925400
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.d.ts +1 -0
- package/dist/index.browser.js +19 -17
- package/dist/index.js +41 -39
- package/dist/prompt/system.d.ts +2 -2
- package/package.json +1 -1
package/dist/agent.d.ts
CHANGED
package/dist/index.browser.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import{z as s}from"zod";import{z as k}from"zod";var jn=k.enum(["default","openai-responses","r1"]),Dr={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},Cn=k.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),Nn=k.enum(["active","preview","deprecated","legacy"]),hn=k.object({input:k.number().optional(),output:k.number().optional(),cacheWrite:k.number().optional(),cacheRead:k.number().optional()}),xn=k.object({maxBudget:k.number().optional(),outputPrice:k.number().optional(),thinkingLevel:k.enum(["low","high"]).optional()}),Sn=k.object({reasoningDefaultOn:k.boolean().optional()}).catchall(k.unknown()),dn=k.object({id:k.string(),name:k.string().optional(),description:k.string().optional(),maxTokens:k.number().optional(),contextWindow:k.number().optional(),maxInputTokens:k.number().optional(),capabilities:k.array(Cn).optional(),apiFormat:jn.optional(),systemRole:k.enum(["system","developer"]).optional(),temperature:k.number().optional(),pricing:hn.optional(),thinkingConfig:xn.optional(),status:Nn.optional(),deprecationNotice:k.string().optional(),replacedBy:k.string().optional(),releaseDate:k.string().optional(),deprecationDate:k.string().optional(),family:k.string().optional(),metadata:Sn.optional()});import{z as T}from"zod";var cn=T.object({id:T.string(),name:T.string(),input:T.unknown(),output:T.unknown(),error:T.string().optional(),durationMs:T.number(),startedAt:T.date(),endedAt:T.date()});var kr=s.enum(["completed","max_iterations","aborted","mistake_limit","error"]),Rr=s.object({inputTokens:s.number(),outputTokens:s.number(),cacheReadTokens:s.number().optional(),cacheWriteTokens:s.number().optional(),totalCost:s.number().optional()}),Jf=s.object({text:s.string(),usage:Rr,messages:s.array(s.custom()),toolCalls:s.array(cn),iterations:s.number(),finishReason:kr,model:s.object({id:s.string(),provider:s.string(),info:dn.optional()}),startedAt:s.date(),endedAt:s.date(),durationMs:s.number()}),$r=s.enum(["low","medium","high","xhigh"]),Qf=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(),dn).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:$r.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 A}from"zod";var an=A.enum(["connector.started","connector.stopping","session.authorize","message.received","message.denied","message.completed","message.failed","session.started","session.reused","session.reset","schedule.delivery.started","schedule.delivery.sent","schedule.delivery.failed"]),vn=A.object({id:A.string().optional(),label:A.string().optional(),role:A.string().optional(),participantKey:A.string().optional(),participantLabel:A.string().optional(),platformUserId:A.string().optional(),metadata:A.record(A.string(),A.unknown()).optional()}),pn=A.object({source:A.string(),sourceEvent:A.string(),threadId:A.string(),channelId:A.string(),isDM:A.boolean(),sessionId:A.string().optional(),workspaceRoot:A.string().optional(),metadata:A.record(A.string(),A.unknown()).optional()}),ur=A.object({actor:vn,context:pn,payload:A.record(A.string(),A.unknown()).optional()}),Mr=A.object({action:A.enum(["allow","deny"]).default("allow"),message:A.string().optional(),reason:A.string().optional(),metadata:A.record(A.string(),A.unknown()).optional()}),br=A.object({adapter:A.string(),botUserName:A.string().optional(),event:an,payload:A.record(A.string(),A.unknown()),ts:A.string()});var Lr=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],Fr=new Set(Lr);function oo(n,o){return n.name||`extension_${String(o).padStart(4,"0")}`}function zn(n){return Array.isArray(n)&&n.every((o)=>typeof o==="string")}function no(n){if(!Array.isArray(n))return;let o=n.filter((r)=>typeof r==="string").map((r)=>r.trim()).filter((r)=>r.length>0);return o.length>0?o:void 0}function ro(n){let o=no(n.providerIds),r=no(n.modelIds);return{...n,...o?{providerIds:o}:{},...r?{modelIds:r}:{}}}function Yr(n,o){let r=oo(n,o),f=n.manifest;if(!f||typeof f!=="object")throw Error(`Invalid manifest for extension "${r}": manifest is required`);if(!Array.isArray(f.capabilities)||f.capabilities.length===0)throw Error(`Invalid manifest for extension "${r}": capabilities must be a non-empty array`);let g=new Set;for(let c of f.capabilities){if(!Fr.has(c))throw Error(`Invalid manifest for extension "${r}": unsupported capability "${String(c)}"`);g.add(c)}if(Object.hasOwn(f,"providerIds")&&!zn(f.providerIds))throw Error(`Invalid manifest for extension "${r}": providerIds must be a string array when provided`);if(Object.hasOwn(f,"modelIds")&&!zn(f.modelIds))throw Error(`Invalid manifest for extension "${r}": modelIds must be a string array when provided`);let _=g.has("hooks");if(n.hooks!==void 0&&!_)throw Error(`Invalid manifest for extension "${r}": runtime hooks require the "hooks" capability`);return{capabilities:g,raw:ro(f)}}function Ur(n,o){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${o}": expected object`);let r=typeof n.eventType==="string"?n.eventType.trim():"",f=typeof n.source==="string"?n.source.trim():"";if(!r)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!f)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:r,source:f,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class Bn{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:Yr(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,r=[];for(let f of this.normalized){let{extension:g}=f;if(g.disabled)continue;let _=oo(g,f.order),l={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},c={registerTool:(E)=>l.tools.push(E),registerCommand:(E)=>l.commands.push(E),registerRule:(E)=>{if(!f.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${_}": registerRule requires the "rules" capability`);l.rules.push(E)},registerMessageBuilder:(E)=>l.messageBuilder.push(E),registerProvider:(E)=>l.providers.push(E),registerAutomationEventType:(E)=>{if(!f.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${_}": registerAutomationEventType requires the "automationEvents" capability`);l.automationEventTypes.push(Ur(E,_))},registerMcpServer:(E)=>{if(!f.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${_}": registerMcpServer requires the "mcp" capability`);l.mcpServers.push({...E,metadata:{...E.metadata??{},source:"plugin",plugin:_}})}},B=f.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await g.setup?.(c,B),r.push(l)}catch(E){if(n.tolerateSetupErrors!==!0)throw E;o??=E}}if(o&&n.tolerateSetupErrors!==!0)throw o;for(let f of r)this.registry.tools.push(...f.tools),this.registry.commands.push(...f.commands),this.registry.rules.push(...f.rules),this.registry.messageBuilder.push(...f.messageBuilder),this.registry.providers.push(...f.providers),this.registry.automationEventTypes.push(...f.automationEventTypes),this.registry.mcpServers.push(...f.mcpServers);if(this.phase="activate",o)throw o}activate(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase==="setup")throw Error("Contribution registry setup must complete before activation");if(this.phase!=="activate")return;this.phase="run"}async initialize(n={}){this.resolve(),this.validate();try{await this.setup(n)}finally{if(this.phase==="activate")this.activate()}}isActivated(){return this.phase==="run"}getRegistrySnapshot(){return{tools:[...this.registry.tools],commands:[...this.registry.commands],rules:[...this.registry.rules],messageBuilder:[...this.registry.messageBuilder],providers:[...this.registry.providers],automationEventTypes:[...this.registry.automationEventTypes],mcpServers:[...this.registry.mcpServers]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getRegisteredMcpServers(){return[...this.registry.mcpServers]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,o)=>n.order-o.order).map(({extension:n})=>n)}}function qr(n={}){return new Bn(n)}var Hr=[".js",".ts"];var fo={CLINE_PASS:"ext-cline-pass"},Tr={[fo.CLINE_PASS]:!1},Gr=Object.values(fo);import{z as w}from"zod";var eo=w.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),Q=w.record(w.string(),w.string()),Xr=w.object({toolName:w.string(),parameters:Q}),Vr=w.object({toolName:w.string(),parameters:Q,result:w.string(),success:w.boolean(),executionTimeMs:w.number()}),mr=w.object({prompt:w.string(),attachments:w.array(w.string())}),Zr=w.object({taskMetadata:Q}),Jr=w.object({taskMetadata:Q,previousState:Q}),Qr=w.object({taskMetadata:Q}),Wr=w.object({taskMetadata:Q}),Or=w.object({taskId:w.string(),ulid:w.string(),contextSize:w.number(),compactionStrategy:w.string(),previousApiReqIndex:w.number(),tokensIn:w.number(),tokensOut:w.number(),tokensInCache:w.number(),tokensOutCache:w.number(),deletedRangeStart:w.number(),deletedRangeEnd:w.number(),contextJsonPath:w.string(),contextRawPath:w.string()}),so=w.object({clineVersion:w.string(),hookName:eo,timestamp:w.string(),taskId:w.string(),sessionContext:w.object({rootSessionId:w.string().optional(),hookLogPath:w.string().optional()}).optional(),workspaceRoots:w.array(w.string()),workspaceInfo:w.custom().optional(),userId:w.string(),agent_id:w.string(),parent_agent_id:w.string().nullable(),iteration:w.number().optional(),reason:w.string().optional(),tool_call:w.object({id:w.string(),name:w.string(),input:w.unknown()}).optional(),tool_result:w.custom().optional(),turn:w.unknown().optional(),error:w.object({name:w.string(),message:w.string(),stack:w.string().optional()}).optional(),preToolUse:Xr.optional(),postToolUse:Vr.optional(),userPromptSubmit:mr.optional(),taskStart:Zr.optional(),taskResume:Jr.optional(),taskCancel:Qr.optional(),taskComplete:Wr.optional(),preCompact:Or.optional()}).passthrough();function Pr(n){let o=so.safeParse(n);if(!o.success)return;return o.data}var af="v1",vf="v1",pf="v1",zf=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function fn(n){let o=/^v(\d+)$/.exec(n?.trim()??"");if(!o)return;return Number.parseInt(o[1]??"",10)}function ne(n,o="v1"){let r=fn(n.protocolVersion),f=fn(o);if(r===void 0||f===void 0)return{compatible:!1,reason:"missing_protocol"};let g=fn(n.minClientProtocolVersion)??r,_=fn(n.maxClientProtocolVersion)??r;return f>=g&&f<=_?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var Kr=30000,oe=5000;function jr(n){switch(n){case"run.start":case"session.send_input":return null;default:return Kr}}function re(n,o){return o===void 0?jr(n):o}var Cr=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],ir=new Set(Cr);function de(n){return typeof n==="string"&&ir.has(n)}var fe="tool_executor.",ee="custom_tool.",se="hook.",ge="compaction.compact",le="checkpoint.create",_e="mistake_limit.decide",we="user_instructions.snapshot";function In(n,o){return`<file_content path="${n}">
|
|
1
|
+
import{z as s}from"zod";import{z as k}from"zod";var jn=k.enum(["default","openai-responses","r1"]),De={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},hn=k.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),Cn=k.enum(["active","preview","deprecated","legacy"]),xn=k.object({input:k.number().optional(),output:k.number().optional(),cacheWrite:k.number().optional(),cacheRead:k.number().optional()}),Nn=k.object({maxBudget:k.number().optional(),outputPrice:k.number().optional(),thinkingLevel:k.enum(["low","high"]).optional()}),Sn=k.object({reasoningDefaultOn:k.boolean().optional()}).catchall(k.unknown()),rn=k.object({id:k.string(),name:k.string().optional(),description:k.string().optional(),maxTokens:k.number().optional(),contextWindow:k.number().optional(),maxInputTokens:k.number().optional(),capabilities:k.array(hn).optional(),apiFormat:jn.optional(),systemRole:k.enum(["system","developer"]).optional(),temperature:k.number().optional(),pricing:xn.optional(),thinkingConfig:Nn.optional(),status:Cn.optional(),deprecationNotice:k.string().optional(),replacedBy:k.string().optional(),releaseDate:k.string().optional(),deprecationDate:k.string().optional(),family:k.string().optional(),metadata:Sn.optional()});import{z as q}from"zod";var yn=q.object({id:q.string(),name:q.string(),input:q.unknown(),output:q.unknown(),error:q.string().optional(),durationMs:q.number(),startedAt:q.date(),endedAt:q.date()});var ke=s.enum(["completed","max_iterations","aborted","mistake_limit","error"]),ue=s.object({inputTokens:s.number(),outputTokens:s.number(),cacheReadTokens:s.number().optional(),cacheWriteTokens:s.number().optional(),totalCost:s.number().optional()}),Zd=s.object({text:s.string(),usage:ue,messages:s.array(s.custom()),toolCalls:s.array(yn),iterations:s.number(),finishReason:ke,model:s.object({id:s.string(),provider:s.string(),info:rn.optional()}),startedAt:s.date(),endedAt:s.date(),durationMs:s.number()}),Re=s.enum(["low","medium","high","xhigh"]),Jd=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(),rn).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:Re.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 an=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"]),pn=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()}),vn=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()}),$e=I.object({actor:pn,context:vn,payload:I.record(I.string(),I.unknown()).optional()}),be=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()}),Me=I.object({adapter:I.string(),botUserName:I.string().optional(),event:an,payload:I.record(I.string(),I.unknown()),ts:I.string()});var ie=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],Le=new Set(ie);function oo(n,o){return n.name||`extension_${String(o).padStart(4,"0")}`}function zn(n){return Array.isArray(n)&&n.every((o)=>typeof o==="string")}function no(n){if(!Array.isArray(n))return;let o=n.filter((e)=>typeof e==="string").map((e)=>e.trim()).filter((e)=>e.length>0);return o.length>0?o:void 0}function eo(n){let o=no(n.providerIds),e=no(n.modelIds);return{...n,...o?{providerIds:o}:{},...e?{modelIds:e}:{}}}function me(n,o){let e=oo(n,o),d=n.manifest;if(!d||typeof d!=="object")throw Error(`Invalid manifest for extension "${e}": manifest is required`);if(!Array.isArray(d.capabilities)||d.capabilities.length===0)throw Error(`Invalid manifest for extension "${e}": capabilities must be a non-empty array`);let l=new Set;for(let y of d.capabilities){if(!Le.has(y))throw Error(`Invalid manifest for extension "${e}": unsupported capability "${String(y)}"`);l.add(y)}if(Object.hasOwn(d,"providerIds")&&!zn(d.providerIds))throw Error(`Invalid manifest for extension "${e}": providerIds must be a string array when provided`);if(Object.hasOwn(d,"modelIds")&&!zn(d.modelIds))throw Error(`Invalid manifest for extension "${e}": modelIds must be a string array when provided`);let t=l.has("hooks");if(n.hooks!==void 0&&!t)throw Error(`Invalid manifest for extension "${e}": runtime hooks require the "hooks" capability`);return{capabilities:l,raw:eo(d)}}function Fe(n,o){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${o}": expected object`);let e=typeof n.eventType==="string"?n.eventType.trim():"",d=typeof n.source==="string"?n.source.trim():"";if(!e)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!d)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:e,source:d,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class En{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,o)=>({extension:n,order:o,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:me(n.extension,n.order)})),this.phase="setup"}async setup(n={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let o,e=[];for(let d of this.normalized){let{extension:l}=d;if(l.disabled)continue;let t=oo(l,d.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(!d.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${t}": registerRule requires the "rules" capability`);g.rules.push(w)},registerMessageBuilder:(w)=>g.messageBuilder.push(w),registerProvider:(w)=>g.providers.push(w),registerAutomationEventType:(w)=>{if(!d.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${t}": registerAutomationEventType requires the "automationEvents" capability`);g.automationEventTypes.push(Fe(w,t))},registerMcpServer:(w)=>{if(!d.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${t}": registerMcpServer requires the "mcp" capability`);g.mcpServers.push({...w,metadata:{...w.metadata??{},source:"plugin",plugin:t}})}},E=d.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await l.setup?.(y,E),e.push(g)}catch(w){if(n.tolerateSetupErrors!==!0)throw w;o??=w}}if(o&&n.tolerateSetupErrors!==!0)throw o;for(let d of e)this.registry.tools.push(...d.tools),this.registry.commands.push(...d.commands),this.registry.rules.push(...d.rules),this.registry.messageBuilder.push(...d.messageBuilder),this.registry.providers.push(...d.providers),this.registry.automationEventTypes.push(...d.automationEventTypes),this.registry.mcpServers.push(...d.mcpServers);if(this.phase="activate",o)throw o}activate(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase==="setup")throw Error("Contribution registry setup must complete before activation");if(this.phase!=="activate")return;this.phase="run"}async initialize(n={}){this.resolve(),this.validate();try{await this.setup(n)}finally{if(this.phase==="activate")this.activate()}}isActivated(){return this.phase==="run"}getRegistrySnapshot(){return{tools:[...this.registry.tools],commands:[...this.registry.commands],rules:[...this.registry.rules],messageBuilder:[...this.registry.messageBuilder],providers:[...this.registry.providers],automationEventTypes:[...this.registry.automationEventTypes],mcpServers:[...this.registry.mcpServers]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getRegisteredMcpServers(){return[...this.registry.mcpServers]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,o)=>n.order-o.order).map(({extension:n})=>n)}}function Ye(n={}){return new En(n)}var Ue=[".js",".ts"];var ro={CLINE_PASS:"ext-cline-pass"},qe={[ro.CLINE_PASS]:!1},Ge=Object.values(ro);import{z as c}from"zod";var fo=c.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),J=c.record(c.string(),c.string()),He=c.object({toolName:c.string(),parameters:J}),Te=c.object({toolName:c.string(),parameters:J,result:c.string(),success:c.boolean(),executionTimeMs:c.number()}),Xe=c.object({prompt:c.string(),attachments:c.array(c.string())}),Ve=c.object({taskMetadata:J}),Ze=c.object({taskMetadata:J,previousState:J}),Je=c.object({taskMetadata:J}),Qe=c.object({taskMetadata:J}),We=c.object({taskId:c.string(),ulid:c.string(),contextSize:c.number(),compactionStrategy:c.string(),previousApiReqIndex:c.number(),tokensIn:c.number(),tokensOut:c.number(),tokensInCache:c.number(),tokensOutCache:c.number(),deletedRangeStart:c.number(),deletedRangeEnd:c.number(),contextJsonPath:c.string(),contextRawPath:c.string()}),so=c.object({clineVersion:c.string(),hookName:fo,timestamp:c.string(),taskId:c.string(),sessionContext:c.object({rootSessionId:c.string().optional(),hookLogPath:c.string().optional()}).optional(),workspaceRoots:c.array(c.string()),workspaceInfo:c.custom().optional(),userId:c.string(),agent_id:c.string(),parent_agent_id:c.string().nullable(),iteration:c.number().optional(),reason:c.string().optional(),tool_call:c.object({id:c.string(),name:c.string(),input:c.unknown()}).optional(),tool_result:c.custom().optional(),turn:c.unknown().optional(),error:c.object({name:c.string(),message:c.string(),stack:c.string().optional()}).optional(),preToolUse:He.optional(),postToolUse:Te.optional(),userPromptSubmit:Xe.optional(),taskStart:Ve.optional(),taskResume:Ze.optional(),taskCancel:Je.optional(),taskComplete:Qe.optional(),preCompact:We.optional()}).passthrough();function Oe(n){let o=so.safeParse(n);if(!o.success)return;return o.data}var Sd="v1",ad="v1",pd="v1",vd=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function dn(n){let o=/^v(\d+)$/.exec(n?.trim()??"");if(!o)return;return Number.parseInt(o[1]??"",10)}function zd(n,o="v1"){let e=dn(n.protocolVersion),d=dn(o);if(e===void 0||d===void 0)return{compatible:!1,reason:"missing_protocol"};let l=dn(n.minClientProtocolVersion)??e,t=dn(n.maxClientProtocolVersion)??e;return d>=l&&d<=t?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var Pe=30000,nf=5000;function Ke(n){switch(n){case"run.start":case"session.send_input":return null;default:return Pe}}function of(n,o){return o===void 0?Ke(n):o}var je=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],he=new Set(je);function ef(n){return typeof n==="string"&&he.has(n)}var rf="tool_executor.",df="custom_tool.",ff="hook.",sf="compaction.compact",lf="checkpoint.create",gf="mistake_limit.decide",tf="user_instructions.snapshot";function Bn(n,o){return`<file_content path="${n}">
|
|
2
2
|
${o}
|
|
3
|
-
</file_content>`}function Nr(n,o="act"){return`<user_input mode="${o}">${n}</user_input>`}function hr(n,o){return`<user_command slash="${o}">${n}</user_command>`}function xr(n,o){let r=n.trim(),f=new RegExp(`^<${o}\\b([^>]*)>([\\s\\S]*?)<\\/${o}>$`,"i").exec(r);if(!f)return;return{attrs:f[1]??"",content:f[2]??""}}function Sr(n,o){return new RegExp(`${o}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function go(n){if(!n?.trim())return;let o=xr(n,"user_command");if(!o)return;let r=Sr(o.attrs,"slash");if(!r)return;return{slash:r,content:o.content.trim()}}function lo(n){if(!n?.trim())return"";let o=n.trim();for(let r of["user_input","user_command"]){let f=_o(o,r);o=(f!==o?f:o.replace(new RegExp(`<${r}[^>]*>`,"g"),"")).trim()}return o}function ar(n){let o=lo(n),r=go(n);if(!r)return o;if(r.slash.toLowerCase()==="team"){let g=o.toLowerCase().startsWith("spawn a team of agents for the following task:")?o.slice(46).trim():o;return g?`/team ${g}`:"/team"}return o?`/${r.slash} ${o}`:`/${r.slash}`}function _o(n,o){if(!n?.trim())return"";if(!o)return n;let r=new RegExp(`<${o}\\b[^>]*>([\\s\\S]*?)</${o}>`,"g");return n.replace(r,"$1")}var W="[media omitted: invalid or exceeds size limit]",sn=["image/png","image/jpeg","image/gif","image/webp"],vr=5242880,X=5242880,O=6291456,pr=8388608;function zr(n){return n.length}function wo(n){let o=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-o}function nd(n=5242880){return Math.floor(n*3/4)}function An(n){return Math.ceil(n/3)*4}function yo(n={}){return{maxImageEncodedBytes:n.maxImageEncodedBytes??5242880,maxImageDecodedBytes:n.maxImageDecodedBytes??6291456,maxTotalMediaBytes:n.maxTotalMediaBytes??8388608}}function gn(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function en(n,o){n.omittedImages+=1,n.omittedReasons[o]=(n.omittedReasons[o]??0)+1}function x(n,o,r,f){let g=yo(r);if(n>g.maxImageEncodedBytes){let _={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${g.maxImageEncodedBytes} byte encoded limit`};return en(f,_.reason),_}if(o>g.maxImageDecodedBytes){let _={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${g.maxImageDecodedBytes} byte decoded limit`};return en(f,_.reason),_}if(f.totalEncodedBytes+n>g.maxTotalMediaBytes){let _={ok:!1,reason:"total_limit",message:`Image media exceeds the ${g.maxTotalMediaBytes} byte total media limit`};return en(f,_.reason),_}return f.totalEncodedBytes+=n,f.keptImages+=1,null}function Eo(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function od(n){return n.length>0&&co(n,0,n.length)}function co(n,o,r){let f=r-o;if(f%4!==0)return!1;let g=r;if(f>=2&&n.charCodeAt(r-2)===61&&n.charCodeAt(r-1)===61)g-=2;else if(f>=1&&n.charCodeAt(r-1)===61)g-=1;for(let _=o;_<g;_++)if(!Eo(n.charCodeAt(_)))return!1;for(let _=g;_<r;_++)if(n.charCodeAt(_)!==61)return!1;return!0}function rd(n,o,r){return r-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 dd(n){let o=0,r=n.length;while(o<r&&/\s/.test(n[o]??""))o+=1;while(r>o&&/\s/.test(n[r-1]??""))r-=1;return{start:o,end:r}}function fd(n,o,r){if(!rd(n,o,r))return;let f=o+5,g=n.indexOf(",",f);if(g===-1||g>=r)return;if(g-f>128)return;let _=n.slice(f,g).toLowerCase(),l=";base64";if(!_.endsWith(l))return;let c=_.slice(0,-l.length);if(!c||c.includes(";"))return;return{mediaType:c,base64Start:g+1,base64End:r}}function Bo(n,o,r={}){let f=r.maxEncodedBytes??5242880,g=r.maxDecodedBytes??6291456,_=new Set(r.supportedMediaTypes??sn),l=n?.toLowerCase(),c=dd(o),B=c.start,E=c.end,I=fd(o,c.start,c.end);if(I){if(l&&l!==I.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${I.mediaType}`};l=I.mediaType,B=I.base64Start,E=I.base64End}if(!l||!_.has(l))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let b=E-B;if(b===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(b>f)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${f} byte encoded limit`};if(!co(o,B,E))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let L=o.slice(B,E),F=wo(L);if(F>g)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${g} byte decoded limit`};return{ok:!0,mediaType:l,base64:L,encodedBytes:b,decodedBytes:F}}function S(n,o,r,f){let g=Bo(n,o,{maxEncodedBytes:r.maxImageEncodedBytes,maxDecodedBytes:r.maxImageDecodedBytes});if(!g.ok)return en(f,g.reason),g;let _=x(g.encodedBytes,g.decodedBytes,r,f);if(_)return _;return g}function U(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var tn="ERROR: EMPTY CONTENT",ed="[image attached]";function Io(n,o){let r=n[n.length-1];if(o.role==="tool"&&r?.role==="tool"&&Array.isArray(r.content)&&Array.isArray(o.content)){r.content.push(...o.content);return}n.push(o)}function sd(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((o)=>{if(!o||typeof o!=="object")return!1;let r=o;if(r.type==="text")return typeof r.text==="string";if(r.type==="image")return typeof r.data==="string"&&typeof r.mediaType==="string";return!1})}function P(){return{type:"text",text:W}}function Ao(n){return x(X,0,{maxImageEncodedBytes:X,maxImageDecodedBytes:O},n)===null}function gd(n){try{return new URL(n).protocol}catch{return}}function Dn(n,o){let r=S(n.mediaType,n.data,{maxImageEncodedBytes:X,maxImageDecodedBytes:O},o);if(!r.ok)return P();return{type:"image-data",data:r.base64,mediaType:r.mediaType}}function ld(n,o){if(n.image instanceof URL){if(n.image.protocol==="data:"){let l=S(n.mediaType,n.image.href,{maxImageEncodedBytes:X,maxImageDecodedBytes:O},o);if(!l.ok)return P();return{type:"image",image:`data:${l.mediaType};base64,${l.base64}`,mediaType:l.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return P();if(!Ao(o))return P();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let l=gd(n.image);if(l==="http:"||l==="https:"){if(!Ao(o))return P();return{type:"image",image:n.image,mediaType:n.mediaType}}let c=l==="data:",B=S(n.mediaType??(c?void 0:"image/png"),n.image,{maxImageEncodedBytes:X,maxImageDecodedBytes:O},o);if(!B.ok)return P();return{type:"image",image:c?`data:${B.mediaType};base64,${B.base64}`:B.base64,mediaType:B.mediaType}}let r=n.image.byteLength,f=An(r),g=n.mediaType?.toLowerCase()??"image/png";if(!sn.includes(g)||x(f,r,{maxImageEncodedBytes:X,maxImageDecodedBytes:O},o))return P();return{type:"image",image:n.image,mediaType:g}}function kn(n,o,r,f=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let B=[],E=!1,I=!1;for(let b of n){if(b&&typeof b==="object"){let F=b;if(F.type==="image"&&typeof F.data==="string"&&typeof F.mediaType==="string"){if(!f){B.push(W),E=!0,I=!0;continue}let nn={type:"image",data:F.data,mediaType:F.mediaType},K=Dn(nn,r);if(K.type==="image-data")o.push({type:"image",data:K.data,mediaType:K.mediaType});else B.push(K.text);E=!0,I=!0;continue}if(F.type==="image"){B.push(W),E=!0,I=!0;continue}if(F.type==="text"&&typeof F.text==="string"){B.push(F.text),E=!0;continue}}let L=kn(b,o,r,f);B.push(L.value),E||=L.changed,I||=L.mediaChanged}return{value:E?B:n,changed:E,mediaChanged:I}}let g=n;if(g.type==="image"){if(typeof g.data==="string"&&typeof g.mediaType==="string"){if(!f)return{value:W,changed:!0,mediaChanged:!0};let B={type:"image",data:g.data,mediaType:g.mediaType},E=Dn(B,r);if(E.type==="image-data")return o.push({type:"image",data:E.data,mediaType:E.mediaType}),{value:ed,changed:!0,mediaChanged:!0};return{value:E.text,changed:!0,mediaChanged:!0}}return{value:W,changed:!0,mediaChanged:!0}}let _={},l=!1,c=!1;for(let[B,E]of Object.entries(g)){let I=kn(E,o,r,f);_[B]=I.value,l||=I.changed,c||=I.mediaChanged}return{value:l?_:n,changed:l,mediaChanged:c}}function a(n){if(typeof n==="string")return U(n);if(Array.isArray(n))return n.map((o)=>a(o));if(n!==null&&typeof n==="object"){let o=n,r={};for(let[f,g]of Object.entries(o))r[f]=a(g);return r}return n}function to(n,o=!1,r=gn()){if(typeof n==="string")return{type:o?"error-text":"text",value:U(n)};if(!o&&sd(n))return{type:"content",value:n.map((f)=>f.type==="image"?Dn(f,r):{type:"text",text:U(f.text)})};if(n!==null&&typeof n==="object"){let f=[],g=kn(n,f,r,!o);if(!o&&f.length>0)return{type:"content",value:[{type:"text",text:typeof g.value==="string"?U(g.value):JSON.stringify(a(g.value))},...f.map((l)=>({type:"image-data",data:l.data,mediaType:l.mediaType}))]};if(g.mediaChanged)return{type:o?"error-json":"json",value:a(g.value)}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:o?"error-json":"json",value:a(n)};return{type:o?"error-text":"text",value:U(String(n))}}function _d(n,o,r){let f=r?.assistantToolCallArgKey??"input",g=[],_=gn();if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)g.push({role:"system",content:typeof n==="string"?U(n):n});for(let l of o){let c=l.content;if(typeof c==="string"){if(c.trim().length===0){g.push({role:l.role,content:[{type:"text",text:tn}]});continue}g.push({role:l.role,content:U(c)});continue}let B=[],E=[];if(c.length===0){g.push({role:l.role,content:[{type:"text",text:tn}]});continue}for(let I of c)switch(I.type){case"text":B.push({type:"text",text:U(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"reasoning":B.push({type:"reasoning",text:U(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"image":B.push(ld(I,_));break;case"file":B.push({type:"text",text:In(I.path,U(I.content))});break;case"tool-call":if(l.role==="assistant")B.push({type:"tool-call",toolCallId:I.toolCallId,toolName:I.toolName,[f]:I.input,...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"tool-result":{E.push({type:"tool-result",toolCallId:I.toolCallId,toolName:I.toolName,output:to(I.output,I.isError??!1,_)});break}}if(B.length>0)Io(g,{role:l.role,content:B});if(E.length>0)Io(g,{role:"tool",content:E})}return g}function Do(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function wd(n,o){if(!n&&!o)return;let r=n?.metadata,f=o?.metadata,g={...n??{},...o??{}};if(Do(r)&&Do(f))g.metadata={...r,...f};return g}var v={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},yd=void 0;function Ed(n,o){if(typeof n==="string"&&n.toLowerCase()in v)return n.toLowerCase();return o?void 0:void 0}function ko(n,o){let r=typeof n==="string"?n.toLowerCase():void 0;if(r&&r in v)return v[r];if(o?.fallbackEffort)return v[o.fallbackEffort];return}function cd(n){let o=ko(n.effort,{fallbackEffort:n.fallbackEffort});if(o===void 0)return;if(o<=0)return 0;let r=n.minimumBudget??1;if(n.maxBudget<r)return;let f=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(f*o),r),n.maxBudget)}var Bd={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"};function Id(n){return n instanceof Error?{name:n.name,message:n.message}:n}function Ad(n){return Math.max(1,Math.ceil(n/3))}var td={debug:()=>{},log:()=>{},error:()=>{}};class V extends Error{constructor(n,o){super(`${n} at position ${o}`);this.position=o}}function Ro(n){return/^[0-9A-Fa-f]$/.test(n)}function Z(n){return n>="0"&&n<="9"}function $o(n){return n>=" "}function p(n){return`,:[]/{}()
|
|
4
|
-
+`.includes(n)}function
|
|
5
|
-
+`.includes(n)}function Ln(n){return z(n)||
|
|
6
|
-
`||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function
|
|
7
|
-
`,r:"\r",t:"\t"};function
|
|
8
|
-
`)o++;return!0}return!1}function
|
|
9
|
-
${
|
|
10
|
-
]`}function
|
|
11
|
-
`)
|
|
3
|
+
</file_content>`}function Ce(n,o="act"){return`<user_input mode="${o}">${n}</user_input>`}function xe(n,o){return`<user_command slash="${o}">${n}</user_command>`}function Ne(n,o){let e=n.trim(),d=new RegExp(`^<${o}\\b([^>]*)>([\\s\\S]*?)<\\/${o}>$`,"i").exec(e);if(!d)return;return{attrs:d[1]??"",content:d[2]??""}}function Se(n,o){return new RegExp(`${o}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function lo(n){if(!n?.trim())return;let o=Ne(n,"user_command");if(!o)return;let e=Se(o.attrs,"slash");if(!e)return;return{slash:e,content:o.content.trim()}}function go(n){if(!n?.trim())return"";let o=n.trim();for(let e of["user_input","user_command"]){let d=to(o,e);o=(d!==o?d:o.replace(new RegExp(`<${e}[^>]*>`,"g"),"")).trim()}return o}function ae(n){let o=go(n),e=lo(n);if(!e)return o;if(e.slash.toLowerCase()==="team"){let l=o.toLowerCase().startsWith("spawn a team of agents for the following task:")?o.slice(46).trim():o;return l?`/team ${l}`:"/team"}return o?`/${e.slash} ${o}`:`/${e.slash}`}function to(n,o){if(!n?.trim())return"";if(!o)return n;let e=new RegExp(`<${o}\\b[^>]*>([\\s\\S]*?)</${o}>`,"g");return n.replace(e,"$1")}var Q="[media omitted: invalid or exceeds size limit]",sn=["image/png","image/jpeg","image/gif","image/webp"],pe=5242880,H=5242880,W=6291456,ve=8388608;function ze(n){return n.length}function co(n){let o=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-o}function nr(n=5242880){return Math.floor(n*3/4)}function In(n){return Math.ceil(n/3)*4}function _o(n={}){return{maxImageEncodedBytes:n.maxImageEncodedBytes??5242880,maxImageDecodedBytes:n.maxImageDecodedBytes??6291456,maxTotalMediaBytes:n.maxTotalMediaBytes??8388608}}function ln(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function fn(n,o){n.omittedImages+=1,n.omittedReasons[o]=(n.omittedReasons[o]??0)+1}function N(n,o,e,d){let l=_o(e);if(n>l.maxImageEncodedBytes){let t={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${l.maxImageEncodedBytes} byte encoded limit`};return fn(d,t.reason),t}if(o>l.maxImageDecodedBytes){let t={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l.maxImageDecodedBytes} byte decoded limit`};return fn(d,t.reason),t}if(d.totalEncodedBytes+n>l.maxTotalMediaBytes){let t={ok:!1,reason:"total_limit",message:`Image media exceeds the ${l.maxTotalMediaBytes} byte total media limit`};return fn(d,t.reason),t}return d.totalEncodedBytes+=n,d.keptImages+=1,null}function wo(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function or(n){return n.length>0&&yo(n,0,n.length)}function yo(n,o,e){let d=e-o;if(d%4!==0)return!1;let l=e;if(d>=2&&n.charCodeAt(e-2)===61&&n.charCodeAt(e-1)===61)l-=2;else if(d>=1&&n.charCodeAt(e-1)===61)l-=1;for(let t=o;t<l;t++)if(!wo(n.charCodeAt(t)))return!1;for(let t=l;t<e;t++)if(n.charCodeAt(t)!==61)return!1;return!0}function er(n,o,e){return e-o>=5&&(n.charCodeAt(o)|32)===100&&(n.charCodeAt(o+1)|32)===97&&(n.charCodeAt(o+2)|32)===116&&(n.charCodeAt(o+3)|32)===97&&n.charCodeAt(o+4)===58}function rr(n){let o=0,e=n.length;while(o<e&&/\s/.test(n[o]??""))o+=1;while(e>o&&/\s/.test(n[e-1]??""))e-=1;return{start:o,end:e}}function dr(n,o,e){if(!er(n,o,e))return;let d=o+5,l=n.indexOf(",",d);if(l===-1||l>=e)return;if(l-d>128)return;let t=n.slice(d,l).toLowerCase(),g=";base64";if(!t.endsWith(g))return;let y=t.slice(0,-g.length);if(!y||y.includes(";"))return;return{mediaType:y,base64Start:l+1,base64End:e}}function Eo(n,o,e={}){let d=e.maxEncodedBytes??5242880,l=e.maxDecodedBytes??6291456,t=new Set(e.supportedMediaTypes??sn),g=n?.toLowerCase(),y=rr(o),E=y.start,w=y.end,B=dr(o,y.start,y.end);if(B){if(g&&g!==B.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${B.mediaType}`};g=B.mediaType,E=B.base64Start,w=B.base64End}if(!g||!t.has(g))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let M=w-E;if(M===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(M>d)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${d} byte encoded limit`};if(!yo(o,E,w))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let i=o.slice(E,w),L=co(i);if(L>l)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l} byte decoded limit`};return{ok:!0,mediaType:g,base64:i,encodedBytes:M,decodedBytes:L}}function S(n,o,e,d){let l=Eo(n,o,{maxEncodedBytes:e.maxImageEncodedBytes,maxDecodedBytes:e.maxImageDecodedBytes});if(!l.ok)return fn(d,l.reason),l;let t=N(l.encodedBytes,l.decodedBytes,e,d);if(t)return t;return l}function F(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var An="ERROR: EMPTY CONTENT",fr="[image attached]";function Bo(n,o){let e=n[n.length-1];if(o.role==="tool"&&e?.role==="tool"&&Array.isArray(e.content)&&Array.isArray(o.content)){e.content.push(...o.content);return}n.push(o)}function sr(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((o)=>{if(!o||typeof o!=="object")return!1;let e=o;if(e.type==="text")return typeof e.text==="string";if(e.type==="image")return typeof e.data==="string"&&typeof e.mediaType==="string";return!1})}function O(){return{type:"text",text:Q}}function Io(n){return N(H,0,{maxImageEncodedBytes:H,maxImageDecodedBytes:W},n)===null}function lr(n){try{return new URL(n).protocol}catch{return}}function Dn(n,o){let e=S(n.mediaType,n.data,{maxImageEncodedBytes:H,maxImageDecodedBytes:W},o);if(!e.ok)return O();return{type:"image-data",data:e.base64,mediaType:e.mediaType}}function gr(n,o){if(n.image instanceof URL){if(n.image.protocol==="data:"){let g=S(n.mediaType,n.image.href,{maxImageEncodedBytes:H,maxImageDecodedBytes:W},o);if(!g.ok)return O();return{type:"image",image:`data:${g.mediaType};base64,${g.base64}`,mediaType:g.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return O();if(!Io(o))return O();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let g=lr(n.image);if(g==="http:"||g==="https:"){if(!Io(o))return O();return{type:"image",image:n.image,mediaType:n.mediaType}}let y=g==="data:",E=S(n.mediaType??(y?void 0:"image/png"),n.image,{maxImageEncodedBytes:H,maxImageDecodedBytes:W},o);if(!E.ok)return O();return{type:"image",image:y?`data:${E.mediaType};base64,${E.base64}`:E.base64,mediaType:E.mediaType}}let e=n.image.byteLength,d=In(e),l=n.mediaType?.toLowerCase()??"image/png";if(!sn.includes(l)||N(d,e,{maxImageEncodedBytes:H,maxImageDecodedBytes:W},o))return O();return{type:"image",image:n.image,mediaType:l}}function kn(n,o,e,d=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let E=[],w=!1,B=!1;for(let M of n){if(M&&typeof M==="object"){let L=M;if(L.type==="image"&&typeof L.data==="string"&&typeof L.mediaType==="string"){if(!d){E.push(Q),w=!0,B=!0;continue}let nn={type:"image",data:L.data,mediaType:L.mediaType},P=Dn(nn,e);if(P.type==="image-data")o.push({type:"image",data:P.data,mediaType:P.mediaType});else E.push(P.text);w=!0,B=!0;continue}if(L.type==="image"){E.push(Q),w=!0,B=!0;continue}if(L.type==="text"&&typeof L.text==="string"){E.push(L.text),w=!0;continue}}let i=kn(M,o,e,d);E.push(i.value),w||=i.changed,B||=i.mediaChanged}return{value:w?E:n,changed:w,mediaChanged:B}}let l=n;if(l.type==="image"){if(typeof l.data==="string"&&typeof l.mediaType==="string"){if(!d)return{value:Q,changed:!0,mediaChanged:!0};let E={type:"image",data:l.data,mediaType:l.mediaType},w=Dn(E,e);if(w.type==="image-data")return o.push({type:"image",data:w.data,mediaType:w.mediaType}),{value:fr,changed:!0,mediaChanged:!0};return{value:w.text,changed:!0,mediaChanged:!0}}return{value:Q,changed:!0,mediaChanged:!0}}let t={},g=!1,y=!1;for(let[E,w]of Object.entries(l)){let B=kn(w,o,e,d);t[E]=B.value,g||=B.changed,y||=B.mediaChanged}return{value:g?t:n,changed:g,mediaChanged:y}}function a(n){if(typeof n==="string")return F(n);if(Array.isArray(n))return n.map((o)=>a(o));if(n!==null&&typeof n==="object"){let o=n,e={};for(let[d,l]of Object.entries(o))e[d]=a(l);return e}return n}function Ao(n,o=!1,e=ln()){if(typeof n==="string")return{type:o?"error-text":"text",value:F(n)};if(!o&&sr(n))return{type:"content",value:n.map((d)=>d.type==="image"?Dn(d,e):{type:"text",text:F(d.text)})};if(n!==null&&typeof n==="object"){let d=[],l=kn(n,d,e,!o);if(!o&&d.length>0)return{type:"content",value:[{type:"text",text:typeof l.value==="string"?F(l.value):JSON.stringify(a(l.value))},...d.map((g)=>({type:"image-data",data:g.data,mediaType:g.mediaType}))]};if(l.mediaChanged)return{type:o?"error-json":"json",value:a(l.value)}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:o?"error-json":"json",value:a(n)};return{type:o?"error-text":"text",value:F(String(n))}}function tr(n,o,e){let d=e?.assistantToolCallArgKey??"input",l=[],t=ln();if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)l.push({role:"system",content:typeof n==="string"?F(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:An}]});continue}l.push({role:g.role,content:F(y)});continue}let E=[],w=[];if(y.length===0){l.push({role:g.role,content:[{type:"text",text:An}]});continue}for(let B of y)switch(B.type){case"text":E.push({type:"text",text:F(B.text),...B.providerOptions?{providerOptions:B.providerOptions}:{}});break;case"reasoning":E.push({type:"reasoning",text:F(B.text),...B.providerOptions?{providerOptions:B.providerOptions}:{}});break;case"image":E.push(gr(B,t));break;case"file":E.push({type:"text",text:Bn(B.path,F(B.content))});break;case"tool-call":if(g.role==="assistant")E.push({type:"tool-call",toolCallId:B.toolCallId,toolName:B.toolName,[d]:B.input,...B.providerOptions?{providerOptions:B.providerOptions}:{}});break;case"tool-result":{w.push({type:"tool-result",toolCallId:B.toolCallId,toolName:B.toolName,output:Ao(B.output,B.isError??!1,t)});break}}if(E.length>0)Bo(l,{role:g.role,content:E});if(w.length>0)Bo(l,{role:"tool",content:w})}return l}function Do(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function cr(n,o){if(!n&&!o)return;let e=n?.metadata,d=o?.metadata,l={...n??{},...o??{}};if(Do(e)&&Do(d))l.metadata={...e,...d};return l}var p={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},_r=void 0;function wr(n,o){if(typeof n==="string"&&n.toLowerCase()in p)return n.toLowerCase();return o?void 0:void 0}function ko(n,o){let e=typeof n==="string"?n.toLowerCase():void 0;if(e&&e in p)return p[e];if(o?.fallbackEffort)return p[o.fallbackEffort];return}function yr(n){let o=ko(n.effort,{fallbackEffort:n.fallbackEffort});if(o===void 0)return;if(o<=0)return 0;let e=n.minimumBudget??1;if(n.maxBudget<e)return;let d=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(d*o),e),n.maxBudget)}var Er={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"};function Br(n){return n instanceof Error?{name:n.name,message:n.message}:n}function Ir(n){return Math.max(1,Math.ceil(n/3))}var Ar={debug:()=>{},log:()=>{},error:()=>{}};class T extends Error{constructor(n,o){super(`${n} at position ${o}`);this.position=o}}function uo(n){return/^[0-9A-Fa-f]$/.test(n)}function V(n){return n>="0"&&n<="9"}function Ro(n){return n>=" "}function v(n){return`,:[]/{}()
|
|
4
|
+
+`.includes(n)}function un(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"}function Rn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"||n>="0"&&n<="9"}var $n=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,bn=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function Mn(n){return`,[]/{}
|
|
5
|
+
+`.includes(n)}function Ln(n){return z(n)||Dr.test(n)}var Dr=/^[[{\w-]$/;function $o(n){return n===`
|
|
6
|
+
`||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function X(n,o){let e=n.charCodeAt(o);return e===32||e===10||e===9||e===13}function bo(n,o){let e=n.charCodeAt(o);return e===32||e===9||e===13}function Mo(n,o){let e=n.charCodeAt(o);return e===160||e===6158||e>=8192&&e<=8203||e===8239||e===8287||e===12288||e===65279}function z(n){return mn(n)||gn(n)}function mn(n){return n==='"'||n==="“"||n==="”"}function Fn(n){return n==='"'}function gn(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function Yn(n){return n==="'"}function h(n,o){let e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,d=n.lastIndexOf(o);return d!==-1?n.substring(0,d)+(e?"":n.substring(d+1)):n}function m(n,o){let e=n.length;if(!X(n,e-1))return n+o;while(X(n,e-1))e--;return n.substring(0,e)+o+n.substring(e)}function io(n,o,e){return n.substring(0,o)+n.substring(o+e)}function Lo(n){return/[,\n][ \t\r]*$/.test(n)}var kr={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},ur={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
7
|
+
`,r:"\r",t:"\t"};function Un(n){let o=0,e="";if(w(["```","[```","{```"]),!t())Be();w(["```","```]","```}"]);let l=M(",");if(l)g();if(Ln(n[o])&&Lo(e)){if(!l)e=m(e,",");ce()}else if(l)e=h(e,",");while(n[o]==="}"||n[o]==="]")o++,g();if(o>=n.length)return e;Ee();function t(){g();let _=P()||te()||K()||$()||_e()||Wn(!1)||we();return g(),_}function g(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,A=o,D=y(_);do if(D=E(),D)D=y(_);while(D);return o>A}function y(_){let A=_?X:bo,D="";while(!0)if(A(n,o))D+=n[o],o++;else if(Mo(n,o))D+=" ",o++;else break;if(D.length>0)return e+=D,!0;return!1}function E(){if(n[o]==="/"&&n[o+1]==="*"){while(o<n.length&&!Rr(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(_){if(B(_)){if(un(n[o]))while(o<n.length&&Rn(n[o]))o++;return g(),!0}return!1}function B(_){y(!0);for(let A of _){let D=o+A.length;if(n.slice(o,D)===A)return o=D,!0}return!1}function M(_){if(n[o]===_)return e+=n[o],o++,!0;return!1}function i(_){if(n[o]===_)return o++,!0;return!1}function L(){return i("\\")}function nn(){if(g(),n[o]==="."&&n[o+1]==="."&&n[o+2]===".")return o+=3,g(),i(","),!0;return!1}function P(){if(n[o]==="{"){if(e+="{",o++,g(),i(","))g();let _=!0;while(o<n.length&&n[o]!=="}"){let A;if(!_){if(A=M(","),!A)e=m(e,",");g()}else A=!0,_=!1;if(nn(),!(K()||Wn(!0))){if(n[o]==="}"||n[o]==="{"||n[o]==="]"||n[o]==="["||n[o]===void 0)e=h(e,",");else Ie();break}g();let en=M(":"),Z=o>=n.length;if(!en)if(Ln(n[o])||Z)e=m(e,":");else Pn();if(!t())if(en||Z)e+="null";else Pn()}if(n[o]==="}")e+="}",o++;else e=m(e,"}");return!0}return!1}function te(){if(n[o]==="["){if(e+="[",o++,g(),i(","))g();let _=!0;while(o<n.length&&n[o]!=="]"){if(!_){if(!M(","))e=m(e,",")}else _=!1;if(nn(),!t()){e=h(e,",");break}}if(n[o]==="]")e+="]",o++;else e=m(e,"]");return!0}return!1}function ce(){let _=!0,A=!0;while(A){if(!_){if(!M(","))e=m(e,",")}else _=!1;A=t()}if(!A)e=h(e,",");e=`[
|
|
9
|
+
${e}
|
|
10
|
+
]`}function K(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,D=n[o]==="\\";if(D)o++,D=!0;if(z(n[o])){let en=Fn(n[o])?Fn:Yn(n[o])?Yn:gn(n[o])?gn:mn,Z=o,x=e.length,R='"';o++;while(!0){if(o>=n.length){let b=On(o-1);if(!_&&v(n.charAt(b)))return o=Z,e=e.substring(0,x),K(!0);return R=m(R,'"'),e+=R,!0}if(o===A)return R=m(R,'"'),e+=R,!0;if(en(n[o])){let b=o,wn=R.length;if(R+='"',o++,e+=R,g(!1),_||o>=n.length||v(n[o])||z(n[o])||V(n[o]))return Qn(),!0;let G=On(b-1),Kn=n.charAt(G);if(Kn===",")return o=Z,e=e.substring(0,x),K(!1,G);if(v(Kn))return o=Z,e=e.substring(0,x),K(!0);e=e.substring(0,x),o=b+1,R=`${R.substring(0,wn)}\\${R.substring(wn)}`}else if(_&&Mn(n[o])){if(n[o-1]===":"&&$n.test(n.substring(Z+1,o+2)))while(o<n.length&&bn.test(n[o]))R+=n[o],o++;return R=m(R,'"'),e+=R,Qn(),!0}else if(n[o]==="\\"){let b=n.charAt(o+1);if(ur[b]!==void 0)R+=n.slice(o,o+2),o+=2;else if(b==="u"){let G=2;while(G<6&&uo(n[o+G]))G++;if(G===6)R+=n.slice(o,o+6),o+=6;else if(o+G>=n.length)o=n.length;else Ae()}else if(b===`
|
|
11
|
+
`)R+="\\n",o+=2;else R+=b,o+=2}else{let b=n.charAt(o);if(b==='"'&&n[o-1]!=="\\")R+=`\\${b}`,o++;else if($o(b))R+=kr[b],o++;else{if(!Ro(b))ye(b);R+=b,o++}}if(D)L()}}return!1}function Qn(){let _=!1;g();while(n[o]==="+"){_=!0,o++,g(),e=h(e,'"',!0);let A=e.length;if(K())e=io(e,A,1);else e=m(e,'"')}return _}function $(){let _=o;if(n[o]==="-"){if(o++,on())return _n(_),!0;if(!V(n[o]))return o=_,!1}while(V(n[o]))o++;if(n[o]==="."){if(o++,on())return _n(_),!0;if(!V(n[o]))return o=_,!1;while(V(n[o]))o++}if(n[o]==="e"||n[o]==="E"){if(o++,n[o]==="-"||n[o]==="+")o++;if(on())return _n(_),!0;if(!V(n[o]))return o=_,!1;while(V(n[o]))o++}if(!on())return o=_,!1;if(o>_){let A=n.slice(_,o),D=/^0\d/.test(A);return e+=D?`"${A}"`:A,!0}return!1}function _e(){return j("true","true")||j("false","false")||j("null","null")||j("True","true")||j("False","false")||j("None","null")}function j(_,A){if(n.slice(o,o+_.length)===_)return e+=A,o+=_.length,!0;return!1}function Wn(_){let A=o;if(un(n[o])){while(o<n.length&&Rn(n[o]))o++;let D=o;while(X(n,D))D++;if(n[D]==="("){if(o=D+1,t(),n[o]===")"){if(o++,n[o]===";")o++}return!0}}while(o<n.length&&!Mn(n[o])&&!z(n[o])&&(!_||n[o]!==":"))o++;if(n[o-1]===":"&&$n.test(n.substring(A,o+2)))while(o<n.length&&bn.test(n[o]))o++;if(o>A){while(X(n,o-1)&&o>0)o--;let D=n.slice(A,o);if(e+=D==="undefined"?"null":JSON.stringify(D),n[o]==='"')o++;return!0}}function we(){if(n[o]==="/"){let _=o;o++;while(o<n.length&&(n[o]!=="/"||n[o-1]==="\\"))o++;return o++,e+=JSON.stringify(n.substring(_,o)),!0}}function On(_){let A=_;while(A>0&&X(n,A))A--;return A}function on(){return o>=n.length||v(n[o])||X(n,o)}function _n(_){e+=`${n.slice(_,o)}0`}function ye(_){throw new T(`Invalid character ${JSON.stringify(_)}`,o)}function Ee(){throw new T(`Unexpected character ${JSON.stringify(n[o])}`,o)}function Be(){throw new T("Unexpected end of json string",n.length)}function Ie(){throw new T("Object key expected",o)}function Pn(){throw new T("Colon expected",o)}function Ae(){let _=n.slice(o,o+6);throw new T(`Invalid unicode character "${_}"`,o)}}function Rr(n,o){return n[o]==="*"&&n[o+1]==="/"}var $r=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function br(n){let o=n.match($r);if(!o)return;let[,e,d]=o,l=d.trim();if(!l)return;let t=l[0];if(t==='"'||t==="{"||t==="["||l==="true"||l==="false"||l==="null"||Number.isFinite(Number(l)))return;return JSON.parse(`{"${e}":${JSON.stringify(l)}}`)}var Mr=[(n)=>JSON.parse(n),(n)=>JSON.parse(Un(n)),br];function ir(n){if(typeof n!=="string")return n;let o=n.trimStart();if(o[0]!=="{"&&o[0]!=="[")return n;for(let e of Mr)try{let d=e(o);if(d!==void 0)return d}catch{}return n}function Lr(n){let o=new WeakSet;try{return JSON.stringify(n,(d,l)=>{if(typeof l==="bigint")return l.toString();if(l&&typeof l==="object"){if(o.has(l))return"[Circular]";o.add(l)}return l})??"null"}catch{return String(n)}}function mr(n){try{return JSON.parse(n)}catch{return}}function Fr(n){let o=n.replaceAll("\\","/"),e=o.lastIndexOf("/");return(e>=0?o.slice(e+1):o).toLowerCase()}function Yr(n){return n==="win32"?"powershell":"/bin/bash"}function Ur(n,o){let e=Fr(n);if(e==="powershell"||e==="powershell.exe"||e==="pwsh"||e==="pwsh.exe")return["-NoProfile","-NonInteractive","-Command",o];if(e==="cmd"||e==="cmd.exe")return["/d","/s","/c",o];return["-c",o]}function qr(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function mo(n,o){if(n.length<=o)return n;return`${n.slice(0,o-1)}…`}function Gr(n,o="/",e=100){if(!n||n.length<=e)return n||"";let d=n.split(o)?.shift()?.trim()?.slice(0,e-1);return d?`${d}…`:mo(n,e)}function Hr(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function Tr(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 Xr(n){let o=Math.max(0,Math.floor(n/1000)),e=Math.floor(o/86400),d=Math.floor(o%86400/3600),l=Math.floor(o%3600/60),t=o%60;if(e>0)return`${e}d ${d}h`;if(d>0)return`${d}h ${l}m`;if(l>0)return`${l}m ${t}s`;return`${t}s`}import{z as Fo}from"zod";function Vr(n,o){let e=n.safeParse(o);if(!e.success)throw Error(Fo.prettifyError(e.error));return e.data}function qn(n){return Fo.toJSONSchema(n)}function Gn(n){return n==="cline"||n==="cline-pass"}var Yo=`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.
|
|
@@ -29,7 +29,8 @@ Remember:
|
|
|
29
29
|
- Be explicit about any assumptions or limitations in your solution.
|
|
30
30
|
- Always show your planning process before executing any task. This will help ensure that you have a clear understanding of the requirements and that your approach aligns with the user's needs.
|
|
31
31
|
- Always use absolute paths when referring to files.
|
|
32
|
-
- You can call multiple tools in a single response.
|
|
32
|
+
- You can call multiple tools in a single response. Before using tools, identify every independent read, search, command, or edit needed for the next step and emit all of those tool calls now, either as multiple tool calls or as one batched input for tools that accept arrays. Do not wait for one independent result before requesting another. Do not split independent reads, searches, checks, or edits across separate turns.
|
|
33
|
+
- Good parallelism examples: read all known relevant files in one read_files call; run independent inspection commands in one run_commands call; emit independent read_files, search_codebase, and run_commands calls together in one response; emit multiple editor calls together when editing different files or non-overlapping regions.
|
|
33
34
|
- Always verify the files you have edited or created at the end of the task to ensure they are completed and working as expected.
|
|
34
35
|
|
|
35
36
|
Begin by analyzing the user's input and gathering any necessary additional context. Then, present your plan at the start of your response along with tool calls before proceeding with the task. It's OK for this section to be quite long.
|
|
@@ -42,7 +43,7 @@ When you have completed the task, please provide a summary of what you did and a
|
|
|
42
43
|
|
|
43
44
|
If user asked a simple question without any coding context, answer it directly without using any tools.
|
|
44
45
|
{{CLINE_RULES}}
|
|
45
|
-
{{CLINE_METADATA}}`,
|
|
46
|
+
{{CLINE_METADATA}}`,Uo=`You are Cline, a careful and helpful coding agent that works in the background.
|
|
46
47
|
You are tasked to solve an issue reported by the user who you cannot communicate with directly.
|
|
47
48
|
Your goal is to utilize the tools at your disposal to investigate and answer the question according to user's instructions with the aim to verify that the issue is resolved.
|
|
48
49
|
|
|
@@ -52,7 +53,8 @@ RULES:
|
|
|
52
53
|
- Provide complete and functional code without omissions or placeholders.
|
|
53
54
|
- Always show your planning process without repeating yourself before executing any task. This will help ensure that you have a clear understanding of the requirements and that your approach aligns with the user's request.
|
|
54
55
|
- Always use absolute paths when referring to files.
|
|
55
|
-
- You can call multiple tools in a single response.
|
|
56
|
+
- You can call multiple tools in a single response. Before using tools, identify every independent read, search, command, or edit needed for the next step and emit all of those tool calls now, either as multiple tool calls or as one batched input for tools that accept arrays. Do not wait for one independent result before requesting another. Do not split independent reads, searches, checks, or edits across separate turns.
|
|
57
|
+
- Good parallelism examples: read all known relevant files in one read_files call; run independent inspection commands in one run_commands call; emit independent read_files, search_codebase, and run_commands calls together in one response; emit multiple editor calls together when editing different files or non-overlapping regions.
|
|
56
58
|
- Always verify the files you have edited or created at the end of the task to ensure they are completed and working as expected.
|
|
57
59
|
|
|
58
60
|
Environment you are running in:
|
|
@@ -71,8 +73,8 @@ IMPORTANT:
|
|
|
71
73
|
- Always includes tool calls in your response until the task is completed. You should only end the task when all the requirements are met by calling the 'submit_and_exit' tool.
|
|
72
74
|
- Response without the submit_and_exit tool call will considered not completed and the task will continue.
|
|
73
75
|
{{CLINE_RULES}}
|
|
74
|
-
{{CLINE_METADATA}}`;var
|
|
75
|
-
${
|
|
76
|
-
${
|
|
76
|
+
{{CLINE_METADATA}}`;var Hn="# Workspace Configuration";function qo(n,o,e){if(e?.trim()?.includes(Hn))return e.trim();let d=e||JSON.stringify({workspaces:{[n]:{hint:o||n.split("/").at(-1)||n}}},null,2);return`
|
|
77
|
+
${Hn}
|
|
78
|
+
${d}`}function Zr(n){let{ide:o="Terminal Shell",mode:e,platform:d="unknown",workspaceName:l,metadata:t,rules:g,overridePrompt:y,providerId:E}=n,w=n.workspaceRoot??n.rootPath??"",B=Gn(E||"");if(y?.trim()){let i=y.trim();if(B&&t?.trim()&&!i.includes(Hn))return`${i}
|
|
77
79
|
|
|
78
|
-
${To(E,g,_)}`.trim();return L}return(r==="yolo"?Ho:qo).replace("{{PLATFORM_NAME}}",f).replace("{{CWD}}",E).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",I?To(E,g,_):"").replace("{{CLINE_RULES}}",l||"").trim()}var Qd="remote://";import{z as e}from"zod";var Go=e.object({id:e.string(),temperature:e.number().optional(),isR1FormatRequired:e.boolean().optional(),maxTokens:e.number().optional(),contextWindow:e.number().optional(),inputPrice:e.number().optional(),outputPrice:e.number().optional(),supportsImages:e.boolean().optional()}),Xo=e.object({models:e.array(Go).optional(),openAiBaseUrl:e.string().optional(),openAiHeaders:e.record(e.string(),e.string()).optional(),azureApiVersion:e.string().optional(),azureIdentity:e.boolean().optional()}),Vo=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional()}),mo=e.object({name:e.string(),baseModelId:e.string(),thinkingBudgetTokens:e.number().optional()}),Zo=e.object({models:e.array(Vo).optional(),customModels:e.array(mo).optional(),awsRegion:e.string().optional(),awsUseCrossRegionInference:e.boolean().optional(),awsUseGlobalInference:e.boolean().optional(),awsBedrockUsePromptCache:e.boolean().optional(),awsBedrockEndpoint:e.string().optional()}),Jo=e.object({id:e.string()}),Qo=e.object({models:e.array(Jo).optional()}),Wo=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional()}),Oo=e.object({models:e.array(Wo).optional(),vertexProjectId:e.string().optional(),vertexRegion:e.string().optional()}),Po=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional(),promptCachingEnabled:e.boolean().optional()}),Ko=e.object({models:e.array(Po).optional(),baseUrl:e.string().optional()}),jo=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional()}),Co=e.object({models:e.array(jo).optional(),baseUrl:e.string().optional()}),Wd=e.object({OpenAiCompatible:Xo.optional(),AwsBedrock:Zo.optional(),Cline:Qo.optional(),Vertex:Oo.optional(),LiteLLM:Ko.optional(),Anthropic:Co.optional()}),io=e.object({id:e.string()}),No=e.object({name:e.string(),url:e.string(),alwaysEnabled:e.boolean().optional(),headers:e.record(e.string(),e.string()).optional()}),Xn=e.object({alwaysEnabled:e.boolean(),name:e.string(),contents:e.string()}),_n=e.object({bucket:e.string(),accessKeyId:e.string(),secretAccessKey:e.string(),region:e.string().optional(),endpoint:e.string().optional(),accountId:e.string().optional()}),ho=e.object({enabled:e.boolean().optional(),type:e.union([e.literal("s3_access_keys"),e.literal("r2_access_keys"),e.literal("azure_access_keys")]).optional(),s3AccessSettings:_n.optional(),r2AccessSettings:_n.optional(),azureAccessSettings:_n.optional()}),xo=e.object({promptUploading:ho.optional()}),Od=e.object({version:e.string(),providerSettings:Wd.optional(),telemetryEnabled:e.boolean().optional(),kanbanEnabled:e.boolean().optional(),mcpMarketplaceEnabled:e.boolean().optional(),allowedMCPServers:e.array(io).optional(),remoteMCPServers:e.array(No).optional(),blockPersonalRemoteMCPServers:e.boolean().optional(),yoloModeAllowed:e.boolean().optional(),openTelemetryEnabled:e.boolean().optional(),openTelemetryMetricsExporter:e.string().optional(),openTelemetryLogsExporter:e.string().optional(),openTelemetryOtlpProtocol:e.string().optional(),openTelemetryOtlpEndpoint:e.string().optional(),openTelemetryOtlpHeaders:e.record(e.string(),e.string()).optional(),openTelemetryOtlpMetricsProtocol:e.string().optional(),openTelemetryOtlpMetricsEndpoint:e.string().optional(),openTelemetryOtlpMetricsHeaders:e.record(e.string(),e.string()).optional(),openTelemetryOtlpLogsProtocol:e.string().optional(),openTelemetryOtlpLogsEndpoint:e.string().optional(),openTelemetryOtlpLogsHeaders:e.record(e.string(),e.string()).optional(),openTelemetryMetricExportInterval:e.number().optional(),openTelemetryOtlpInsecure:e.boolean().optional(),openTelemetryLogBatchSize:e.number().optional(),openTelemetryLogBatchTimeout:e.number().optional(),openTelemetryLogMaxQueueSize:e.number().optional(),enterpriseTelemetry:xo.optional(),globalRules:e.array(Xn).optional(),globalWorkflows:e.array(Xn).optional()}),Pd=e.record(e.string(),e.string());var Kd=4317;var jd="127.0.0.1:4317";import Vn from"zod";var Cd=Vn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),id=Vn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),Nd=Vn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var hd="runtime.team.progress.v1",xd="runtime.team.lifecycle.v1";var Sd="CLINE_ENVIRONMENT",ad="CLINE_ENVIRONMENT_OVERRIDE",mn={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"}},vd="production";function So(n){let o=n?.trim().toLowerCase();if(o==="production"||o==="staging"||o==="local")return o;return}function ao(){if(typeof process>"u"||!process?.env)return{};return process.env}function vo(){let n=ao();return So(n.CLINE_ENVIRONMENT_OVERRIDE)??So(n.CLINE_ENVIRONMENT)??"production"}function pd(n){if(typeof n==="string")return mn[n];return mn[vo()]}function zd(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 nf(n){let o=pd(n);return zd(o,ao())}var of="sdk.error";function rf(n,o){if(!n)return;n.capture({event:o.event??"sdk.error",properties:zo(o)})}function zo(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...nr(n.error,n.messageLimit)}}function nr(n,o=500){let r=ef(n)?n:void 0,f=n instanceof Error?n:void 0,g=f?.message??po(r?.message)??(typeof n==="string"?n:String(n)),_=sf(r?.code),l=Zn(r?.status)??Zn(r?.statusCode)??Zn(r?.responseStatus);return{error_type:f?.name?.trim()||po(r?.name)||f?.constructor?.name||"Error",error_message:ff(df(g),o),..._!==void 0?{error_code:_}:{},...l!==void 0?{error_status:l}:{}}}function df(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 ff(n,o){let r=Math.max(1,Math.floor(o));return n.length>r?n.substring(0,r):n}function ef(n){return typeof n==="object"&&n!==null}function po(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function sf(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function Zn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function or(n){let o={};if(!n)return o;try{n.split(",").forEach((r)=>{let f=r.indexOf("=");if(f<=0)return;let g=decodeURIComponent(r.substring(0,f).trim()),_=decodeURIComponent(r.substring(f+1).trim());if(!g||!_)return;o[g]=_})}catch{}return o}function gf(){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?or(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function rr(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 lf(n={}){return{...gf(),...n,metadata:rr(n.metadata)}}function dr(n){let o=n?.trim();return o?o:void 0}function _f(n,o){if(!n)return;let r=typeof n==="function"?n(o):n;if(!r)return;let f=dr(r.rootSessionId);if(!f)return;return{rootSessionId:f}}function wf(n){return dr(n?.rootSessionId)}var yf=(n)=>crypto.getRandomValues(new Uint8Array(n)),Ef=(n,o,r)=>{let f=256-256%n.length;if(f===256){let _=n.length-1;return(l=o)=>{if(!l)return"";let c="";while(!0){let B=r(l),E=l;while(E--)if(c+=n[B[E]&_],c.length>=l)return c}}}let g=Math.ceil(409.6*o/f);return(_=o)=>{if(!_)return"";let l="";while(!0){let c=r(g),B=g;while(B--)if(c[B]<f){if(l+=n[c[B]%n.length],l.length>=_)return l}}}},fr=(n,o=21)=>Ef(n,o|0,yf);function cf(n="",o=""){let r=fr("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${r(5)}${o}`}var Bf=["idle","running","pending","completed","failed","cancelled"];var Jn=["rules","skills","workflows","plugins"],er=Jn,If=new Set(Jn);function sr(n){return typeof n==="string"&&If.has(n)}function Af(n){if(!Array.isArray(n))return;let o=n.map((r)=>typeof r==="string"?r.trim():"").filter(sr);return[...new Set(o)]}function tf(n,o){return new Set(n??er).has(o)}import{z as q}from"zod";var Df=q.object({rootPath:q.string().min(1),hint:q.string().min(1).optional(),associatedRemoteUrls:q.array(q.string().min(1)).optional(),latestGitCommitHash:q.string().min(1).optional(),latestGitBranchName:q.string().min(1).optional()}),kf=q.object({currentWorkspacePath:q.string().min(1).optional(),workspaces:q.record(q.string().min(1),Df)});function ls(){return{workspaces:{}}}function _s(n,o){let r={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!r.currentWorkspacePath)r.currentWorkspacePath=o.rootPath;return kf.parse(r)}import{z as d}from"zod";var Rf=["current_state","boundary_analysis","interface_proposal"],Es=3600000,cs=240,Bs=400,H=d.preprocess((n)=>n instanceof Date?n.toISOString():n,d.string().datetime()),N=d.enum(["pending","in_progress","blocked","completed"]),gr=d.enum(["queued","running","completed","failed","cancelled","interrupted"]),wn=d.enum(["draft","in_review","finalized"]),$f=d.object({agentId:d.string(),role:d.enum(["lead","teammate"]),description:d.string().optional(),status:d.enum(["idle","running","stopped"])}),Is=d.object({agentId:d.string(),rolePrompt:d.string(),modelId:d.string().optional(),maxIterations:d.number().optional()});function R(n){return d.preprocess((o)=>o===null?void 0:o,n.optional())}var As=d.object({agentId:d.string().min(1).describe("Teammate identifier"),rolePrompt:d.string().min(1).describe("System prompt describing teammate role")}).strict(),ts=d.object({agentId:d.string().min(1).describe("Teammate identifier"),reason:R(d.string().min(1)).describe("Optional shutdown reason")}),Ds=d.object({}),uf={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},ks={create:["status","taskId","summary","reason"]},Rs=d.object({action:d.enum(["create","list","claim","complete","block"]),title:R(d.string().min(1)).describe("Task title"),description:R(d.string().min(1)).describe("Task details"),dependsOn:R(d.array(d.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:R(d.string().min(1)).describe("Optional assignee"),status:R(d.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:R(d.string()).describe("Task ID"),summary:R(d.string().min(1)).describe("Completion summary"),reason:R(d.string().min(1)).describe("Blocking reason")}).superRefine((n,o)=>{for(let r of uf[n.action]){if(n[r]!==void 0)continue;o.addIssue({code:"custom",path:[r],message:`Field "${r}" is required when action=${n.action}`})}}),$s=d.object({agentId:d.string().describe("Teammate agent ID"),task:d.string().min(1).describe("Task instructions for the teammate"),taskId:R(d.string()).describe("Optional shared task list ID"),runMode:R(d.enum(["sync","async"])).describe("Execution mode: 'sync' blocks until the teammate finishes and returns the result (default if omitted); 'async' queues the run and returns a runId immediately — use team_await_runs to collect results later."),continueConversation:R(d.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),us=d.object({status:R(d.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:R(d.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:R(d.boolean()).describe("Include completed/failed runs (default true)")}),Ms=d.object({runId:d.string().min(1).describe("Run ID"),reason:R(d.string().min(1)).describe("Optional cancellation reason")}),bs=d.object({runId:R(d.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),Ls=d.object({toAgentId:d.string().min(1).describe("Recipient agent ID"),subject:d.string().min(1).describe("Message subject"),body:d.string().min(1).describe("Message body"),taskId:R(d.string().min(1)).describe("Optional task ID context")}),Fs=d.object({subject:d.string().min(1).describe("Message subject"),body:d.string().min(1).describe("Message body"),taskId:R(d.string().min(1)).describe("Optional task ID context")}),Ys=d.object({unreadOnly:R(d.boolean()).describe("Only unread messages for read action (default true)")}),Us=d.object({kind:d.enum(["progress","handoff","blocked","decision","done","error"]),summary:d.string().min(1).describe("Update summary"),taskId:R(d.string().min(1)).describe("Optional task ID context"),evidence:R(d.array(d.string().min(1))).describe("Optional evidence links/snippets"),nextAction:R(d.string().min(1)).describe("Planned next step")}),qs=d.object({}),Hs=d.object({title:d.string().describe("Outcome title"),requiredSections:d.array(d.string()).default(Rf).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),Ts=d.object({outcomeId:d.string().describe("Outcome ID"),section:d.string().describe("Section name"),sourceRunId:R(d.string()).describe("Optional source run ID"),content:d.string().describe("Section fragment content")}),Gs=d.object({fragmentId:d.string().describe("Fragment ID"),approved:d.boolean().describe("Review decision")}),Xs=d.object({outcomeId:d.string().describe("Outcome ID")}),Vs=d.object({}),ms=d.object({teamId:d.string(),teamName:d.string(),members:d.array($f),taskCounts:d.record(N,d.number()),unreadMessages:d.number(),missionLogEntries:d.number(),activeRuns:d.number(),queuedRuns:d.number(),outcomeCounts:d.record(wn,d.number())}),Mf=d.object({id:d.string(),title:d.string(),description:d.string(),status:N,createdAt:H,updatedAt:H,createdBy:d.string(),assignee:d.string().optional(),dependsOn:d.array(d.string()),summary:d.string().optional(),isReady:d.boolean(),blockedBy:d.array(d.string())}),Zs=d.discriminatedUnion("action",[d.object({action:d.literal("create"),taskId:d.string(),status:N,ignoredFields:d.array(d.string()).optional(),note:d.string().optional()}),d.object({action:d.literal("list"),tasks:d.array(Mf)}),d.object({action:d.literal("claim"),taskId:d.string(),status:N,nextStep:d.string()}),d.object({action:d.literal("complete"),taskId:d.string(),status:N}),d.object({action:d.literal("block"),taskId:d.string(),status:N})]),Js=d.object({agentId:d.string(),mode:d.enum(["sync","async"]),status:d.enum(["dispatched","running","queued","joined"]),dispatched:d.boolean(),message:d.string(),deduped:d.boolean().optional(),runId:d.string().optional(),text:d.string().optional(),iterations:d.number().optional()}),bf=d.object({textPreview:d.string(),iterations:d.number(),finishReason:d.string(),durationMs:d.number(),usage:d.object({inputTokens:d.number(),outputTokens:d.number(),cacheReadTokens:d.number().optional(),cacheWriteTokens:d.number().optional(),totalCost:d.number().optional()})}),Qs=d.object({id:d.string(),agentId:d.string(),taskId:d.string().optional(),status:gr,messagePreview:d.string(),priority:d.number(),retryCount:d.number(),maxRetries:d.number(),nextAttemptAt:H.optional(),continueConversation:d.boolean().optional(),startedAt:H,endedAt:H.optional(),leaseOwner:d.string().optional(),heartbeatAt:H.optional(),lastProgressAt:H.optional(),lastProgressMessage:d.string().optional(),currentActivity:d.string().optional(),error:d.string().optional(),resultSummary:bf.optional()}),Ws=d.object({id:d.string(),teamId:d.string(),fromAgentId:d.string(),toAgentId:d.string(),subject:d.string(),body:d.string(),taskId:d.string().optional(),sentAt:H,readAt:H.optional()}),Os=d.object({id:d.string(),teamId:d.string(),title:d.string(),status:wn,requiredSections:d.array(d.string()),createdBy:d.string(),createdAt:H,finalizedAt:H.optional()}),Ps=d.object({outcomeId:d.string(),status:wn,requiredSections:d.array(d.string())}),Ks=d.object({agentId:d.string(),status:d.string()}),js=d.object({runId:d.string(),status:gr}),Cs=d.object({id:d.string(),toAgentId:d.string()}),is=d.object({delivered:d.number()}),Ns=d.object({id:d.string()}),hs=d.object({status:d.string()}),xs=d.object({fragmentId:d.string(),status:d.string()}),Ss=d.object({outcomeId:d.string(),status:wn});var Lf;((u)=>{u.TaskStart="task_start";u.TaskEnd="task_end";u.AgentEvent="agent_event";u.TeammateSpawned="teammate_spawned";u.TeammateShutdown="teammate_shutdown";u.TeamTaskUpdated="team_task_updated";u.TeamMessage="team_message";u.TeamMissionLog="team_mission_log";u.TeamTaskCompleted="team_task_completed";u.RunStarted="run_started";u.RunQueued="run_queued";u.RunProgress="run_progress";u.RunCompleted="run_completed";u.RunFailed="run_failed";u.RunCancelled="run_cancelled";u.RunInterrupted="run_interrupted";u.OutcomeCreated="outcome_created";u.OutcomeFragmentAttached="outcome_fragment_attached";u.OutcomeFragmentReviewed="outcome_fragment_reviewed";u.OutcomeFinalized="outcome_finalized"})(Lf||={});import{z as Ff}from"zod";function Yf(n){let{$schema:o,...r}=n;if(typeof r.type==="string")return r;if("properties"in r||"required"in r||"additionalProperties"in r)return{type:"object",...r};for(let f of["oneOf","anyOf","allOf"]){let g=r[f];if(!Array.isArray(g)||g.length===0)continue;if(f==="allOf"){if(g.some((c)=>c&&typeof c==="object"&&c.type==="object"))return{type:"object",...r};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(g.every((l)=>l&&typeof l==="object"&&l.type==="object"))return{type:"object",...r};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${f}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return r}function Uf(n){let o=Yf(n.inputSchema instanceof Ff.ZodType?Hn(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 lr=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function qf(n){let o=n instanceof Error?n.message.toLowerCase():String(n);return lr.some((r)=>o.includes(r))}export{Hn as zodToJsonSchema,_o as xmlTagsRemoval,Zd as validateWithZod,Bo as validateImageMedia,S as validateAndReserveImageMedia,_s as upsertWorkspaceInfo,Yo as truncateStr,Gd as truncateSplit,to as toAiSdkToolResultOutput,Id as serializeAbortReason,U as sanitizeSurrogates,Td as sanitizeFileName,Fd as safeJsonStringify,Yd as safeJsonParse,wf as resolveRootSessionId,ko as resolveReasoningEffortRatio,cd as resolveReasoningBudgetFromRatio,yo as resolveMediaBudget,re as resolveHubCommandTimeoutMs,_f as resolveHookSessionContext,Ed as resolveEffectiveReasoningEffort,vo as resolveClineEnvironment,x as reserveImageMediaBytes,go as parseUserCommandEnvelope,Af as parseRuntimeConfigExtensions,Ld as parseJsonStream,Pr as parseHookEventPayload,lo as normalizeUserInput,nr as normalizeSdkError,ro as normalizePluginManifest,td as noopBasicLogger,wd as mergeModelOptions,Xd as maskSecret,sr as isRuntimeConfigExtensionKind,qf as isLikelyAuthError,de as isHubToolExecutorName,ne as isHubProtocolCompatible,Tn as isClineProvider,od as isCanonicalBase64,Eo as isBase64Char,nd as imageFileMaxDecodedBytesForBase64Limit,An as imageBase64LengthForDecodedBytes,zr as imageBase64EncodedByteLength,wo as imageBase64DecodedByteLength,tf as hasRuntimeConfigExtension,Hd as getShellArgs,qd as getDefaultShell,jr as getDefaultHubCommandTimeoutMs,nf as getClineEnvironmentConfig,Nr as formatUserInputBlock,hr as formatUserCommandBlock,md as formatUptime,_d as formatMessagesForAiSdk,Vd as formatHumanReadableDate,In as formatFileContentBlock,ar as formatDisplayUserInput,Ad as estimateTokens,ls as emptyWorkspaceManifest,Uf as createTool,cf as createSessionId,gn as createMediaBudgetState,qr as createContributionRegistry,rr as createClineTelemetryServiceMetadata,lf as createClineTelemetryServiceConfig,rf as captureSdkError,zo as buildSdkErrorProperties,Jd as buildClineSystemPrompt,kf as WorkspaceManifestSchema,Df as WorkspaceInfoSchema,Oo as VertexSettingsSchema,Wo as VertexModelSchema,cn as ToolCallRecordSchema,xn as ThinkingConfigSchema,Is as TeamTeammateSpecSchema,Zs as TeamTaskToolResultSchema,Mf as TeamTaskListItemToolResultSchema,Rs as TeamTaskInputSchema,ms as TeamStatusToolResultSchema,Ds as TeamStatusInputSchema,As as TeamSpawnTeammateInputSchema,Ks as TeamSimpleAgentStatusToolResultSchema,ts as TeamShutdownTeammateInputSchema,Cs as TeamSendMessageToolResultSchema,Ls as TeamSendMessageInputSchema,Qs as TeamRunToolSummarySchema,Js as TeamRunTaskToolResultSchema,$s as TeamRunTaskInputSchema,bf as TeamRunResultSummarySchema,Gs as TeamReviewOutcomeFragmentInputSchema,Ys as TeamReadMailboxInputSchema,Os as TeamOutcomeToolResultSchema,xs as TeamOutcomeFragmentToolResultSchema,Ns as TeamMissionLogToolResultSchema,Us as TeamMissionLogInputSchema,Lf as TeamMessageType,Ws as TeamMailboxMessageToolResultSchema,us as TeamListRunsInputSchema,Vs as TeamListOutcomesInputSchema,Ss as TeamFinalizeOutcomeToolResultSchema,Xs as TeamFinalizeOutcomeInputSchema,Ps as TeamCreateOutcomeToolResultSchema,Hs as TeamCreateOutcomeInputSchema,hs as TeamCleanupToolResultSchema,qs as TeamCleanupInputSchema,js as TeamCancelRunToolResultSchema,Ms as TeamCancelRunInputSchema,is as TeamBroadcastToolResultSchema,Fs as TeamBroadcastInputSchema,bs as TeamAwaitRunsInputSchema,Ts as TeamAttachOutcomeFragmentInputSchema,ks as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,Bs as TEAM_RUN_TEXT_PREVIEW_LIMIT,cs as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,hd as TEAM_PROGRESS_EVENT_TYPE,xd as TEAM_LIFECYCLE_EVENT_TYPE,Es as TEAM_AWAIT_TIMEOUT_MS,sn as SUPPORTED_IMAGE_MEDIA_TYPES,Bf as SESSION_STATUS_VALUES,of as SDK_ERROR_TELEMETRY_EVENT,_n as S3AccessKeySettingsSchema,No as RemoteMCPServerSchema,Od as RemoteConfigSchema,$r as ReasoningEffortSchema,Jn as RUNTIME_CONFIG_EXTENSION_KINDS,Qd as REMOTE_URI_SCHEME,v as REASONING_EFFORT_RATIOS,id as ProviderProtocolSchema,Nd as ProviderClientSchema,Cd as ProviderCapabilitySchema,ho as PromptUploadingSchema,Hr as PLUGIN_FILE_EXTENSIONS,Xo as OpenAiCompatibleSchema,Go as OpenAiCompatibleModelSchema,Nn as ModelStatusSchema,hn as ModelPricingSchema,Sn as ModelMetadataSchema,dn as ModelInfoSchema,Cn as ModelCapabilitySchema,vf as MIN_CLIENT_HUB_PROTOCOL_VERSION,pf as MAX_CLIENT_HUB_PROTOCOL_VERSION,Ko as LiteLLMSchema,Po as LiteLLMModelSchema,W as IMAGE_OMITTED_PLACEHOLDER,so as HookEventPayloadSchema,eo as HookEventNameSchema,we as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,Cr as HUB_TOOL_EXECUTOR_NAMES,fe as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,_e as HUB_MISTAKE_LIMIT_CAPABILITY,se as HUB_HOOK_CAPABILITY_PREFIX,Kr as HUB_DEFAULT_COMMAND_TIMEOUT_MS,ee as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,ge as HUB_COMPACTION_CAPABILITY,oe as HUB_COMMAND_SLOW_LOG_MS,le as HUB_CHECKPOINT_CAPABILITY,zf as HUB_CAPABILITIES,Xn as GlobalInstructionsFileSchema,Tr as FeatureFlagDefaultValue,Gr as FEATURE_FLAGS,xo as EnterpriseTelemetrySchema,tn as EMPTY_CONTENT_TEXT,er as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,Bd as DEFAULT_REQUEST_HEADERS,yd as DEFAULT_REASONING_EFFORT,Rf as DEFAULT_OUTCOME_REQUIRED_SECTIONS,pr as DEFAULT_MAX_TOTAL_MEDIA_BYTES,X as DEFAULT_MAX_IMAGE_ENCODED_BYTES,O as DEFAULT_MAX_IMAGE_DECODED_BYTES,vr as DEFAULT_MAX_IMAGE_BASE64_BYTES,vd as DEFAULT_CLINE_ENVIRONMENT,Bn as ContributionRegistry,br as ConnectorHookEventSchema,an as ConnectorHookEventNameSchema,pn as ConnectorEventContextSchema,vn as ConnectorEventActorSchema,ur as ConnectorAuthorizationRequestSchema,Mr as ConnectorAuthorizationDecisionSchema,Qo as ClineSettingsSchema,Jo as ClineModelSchema,af as CURRENT_HUB_PROTOCOL_VERSION,ad as CLINE_ENVIRONMENT_OVERRIDE_ENV,Sd as CLINE_ENVIRONMENT_ENV,mn as CLINE_ENVIRONMENTS,Kd as CLINE_DEFAULT_RPC_PORT,jd as CLINE_DEFAULT_RPC_ADDRESS,Zo as AwsBedrockSettingsSchema,Vo as AwsBedrockModelSchema,mo as AwsBedrockCustomModelSchema,jn as ApiFormatSchema,Dr as ApiFormat,Co as AnthropicSchema,jo as AnthropicModelSchema,io as AllowedMCPServerSchema,Rr as AgentUsageSchema,Jf as AgentResultSchema,kr as AgentFinishReasonSchema,Qf as AgentConfigSchema,lr as AUTH_ERROR_PATTERNS,Pd as APIKeySchema};
|
|
80
|
+
${qo(w,l,t)}`.trim();return i}return(e==="yolo"?Uo:Yo).replace("{{PLATFORM_NAME}}",d).replace("{{CWD}}",w).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",B?qo(w,l,t):"").replace("{{CLINE_RULES}}",g||"").trim()}var Jr="remote://";import{z as f}from"zod";var Go=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()}),Ho=f.object({models:f.array(Go).optional(),openAiBaseUrl:f.string().optional(),openAiHeaders:f.record(f.string(),f.string()).optional(),azureApiVersion:f.string().optional(),azureIdentity:f.boolean().optional()}),To=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),Xo=f.object({name:f.string(),baseModelId:f.string(),thinkingBudgetTokens:f.number().optional()}),Vo=f.object({models:f.array(To).optional(),customModels:f.array(Xo).optional(),awsRegion:f.string().optional(),awsUseCrossRegionInference:f.boolean().optional(),awsUseGlobalInference:f.boolean().optional(),awsBedrockUsePromptCache:f.boolean().optional(),awsBedrockEndpoint:f.string().optional()}),Zo=f.object({id:f.string()}),Jo=f.object({models:f.array(Zo).optional()}),Qo=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),Wo=f.object({models:f.array(Qo).optional(),vertexProjectId:f.string().optional(),vertexRegion:f.string().optional()}),Oo=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional(),promptCachingEnabled:f.boolean().optional()}),Po=f.object({models:f.array(Oo).optional(),baseUrl:f.string().optional()}),Ko=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),jo=f.object({models:f.array(Ko).optional(),baseUrl:f.string().optional()}),Qr=f.object({OpenAiCompatible:Ho.optional(),AwsBedrock:Vo.optional(),Cline:Jo.optional(),Vertex:Wo.optional(),LiteLLM:Po.optional(),Anthropic:jo.optional()}),ho=f.object({id:f.string()}),Co=f.object({name:f.string(),url:f.string(),alwaysEnabled:f.boolean().optional(),headers:f.record(f.string(),f.string()).optional()}),Tn=f.object({alwaysEnabled:f.boolean(),name:f.string(),contents:f.string()}),tn=f.object({bucket:f.string(),accessKeyId:f.string(),secretAccessKey:f.string(),region:f.string().optional(),endpoint:f.string().optional(),accountId:f.string().optional()}),xo=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:tn.optional(),r2AccessSettings:tn.optional(),azureAccessSettings:tn.optional()}),No=f.object({promptUploading:xo.optional()}),Wr=f.object({version:f.string(),providerSettings:Qr.optional(),telemetryEnabled:f.boolean().optional(),kanbanEnabled:f.boolean().optional(),mcpMarketplaceEnabled:f.boolean().optional(),allowedMCPServers:f.array(ho).optional(),remoteMCPServers:f.array(Co).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:No.optional(),globalRules:f.array(Tn).optional(),globalWorkflows:f.array(Tn).optional()}),Or=f.record(f.string(),f.string());var Pr=4317;var Kr="127.0.0.1:4317";import Xn from"zod";var jr=Xn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),hr=Xn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),Cr=Xn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var xr="runtime.team.progress.v1",Nr="runtime.team.lifecycle.v1";var Sr="CLINE_ENVIRONMENT",ar="CLINE_ENVIRONMENT_OVERRIDE",Vn={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"}},pr="production";function So(n){let o=n?.trim().toLowerCase();if(o==="production"||o==="staging"||o==="local")return o;return}function ao(){if(typeof process>"u"||!process?.env)return{};return process.env}function po(){let n=ao();return So(n.CLINE_ENVIRONMENT_OVERRIDE)??So(n.CLINE_ENVIRONMENT)??"production"}function vr(n){if(typeof n==="string")return Vn[n];return Vn[po()]}function zr(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 nd(n){let o=vr(n);return zr(o,ao())}var od="sdk.error";function ed(n,o){if(!n)return;n.capture({event:o.event??"sdk.error",properties:zo(o)})}function zo(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...ne(n.error,n.messageLimit)}}function ne(n,o=500){let e=fd(n)?n:void 0,d=n instanceof Error?n:void 0,l=d?.message??vo(e?.message)??(typeof n==="string"?n:String(n)),t=sd(e?.code),g=Zn(e?.status)??Zn(e?.statusCode)??Zn(e?.responseStatus);return{error_type:d?.name?.trim()||vo(e?.name)||d?.constructor?.name||"Error",error_message:dd(rd(l),o),...t!==void 0?{error_code:t}:{},...g!==void 0?{error_status:g}:{}}}function rd(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 dd(n,o){let e=Math.max(1,Math.floor(o));return n.length>e?n.substring(0,e):n}function fd(n){return typeof n==="object"&&n!==null}function vo(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function sd(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function Zn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function oe(n){let o={};if(!n)return o;try{n.split(",").forEach((e)=>{let d=e.indexOf("=");if(d<=0)return;let l=decodeURIComponent(e.substring(0,d).trim()),t=decodeURIComponent(e.substring(d+1).trim());if(!l||!t)return;o[l]=t})}catch{}return o}function ld(){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?oe(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function ee(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 gd(n={}){return{...ld(),...n,metadata:ee(n.metadata)}}function re(n){let o=n?.trim();return o?o:void 0}function td(n,o){if(!n)return;let e=typeof n==="function"?n(o):n;if(!e)return;let d=re(e.rootSessionId);if(!d)return;return{rootSessionId:d}}function cd(n){return re(n?.rootSessionId)}var _d=(n)=>crypto.getRandomValues(new Uint8Array(n)),wd=(n,o,e)=>{let d=256-256%n.length;if(d===256){let t=n.length-1;return(g=o)=>{if(!g)return"";let y="";while(!0){let E=e(g),w=g;while(w--)if(y+=n[E[w]&t],y.length>=g)return y}}}let l=Math.ceil(409.6*o/d);return(t=o)=>{if(!t)return"";let g="";while(!0){let y=e(l),E=l;while(E--)if(y[E]<d){if(g+=n[y[E]%n.length],g.length>=t)return g}}}},de=(n,o=21)=>wd(n,o|0,_d);function yd(n="",o=""){let e=de("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${e(5)}${o}`}var Ed=["idle","running","pending","completed","failed","cancelled"];var Jn=["rules","skills","workflows","plugins"],fe=Jn,Bd=new Set(Jn);function se(n){return typeof n==="string"&&Bd.has(n)}function Id(n){if(!Array.isArray(n))return;let o=n.map((e)=>typeof e==="string"?e.trim():"").filter(se);return[...new Set(o)]}function Ad(n,o){return new Set(n??fe).has(o)}import{z as Y}from"zod";var Dd=Y.object({rootPath:Y.string().min(1),hint:Y.string().min(1).optional(),associatedRemoteUrls:Y.array(Y.string().min(1)).optional(),latestGitCommitHash:Y.string().min(1).optional(),latestGitBranchName:Y.string().min(1).optional()}),kd=Y.object({currentWorkspacePath:Y.string().min(1).optional(),workspaces:Y.record(Y.string().min(1),Dd)});function gs(){return{workspaces:{}}}function ts(n,o){let e={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!e.currentWorkspacePath)e.currentWorkspacePath=o.rootPath;return kd.parse(e)}import{z as r}from"zod";var ud=["current_state","boundary_analysis","interface_proposal"],ws=3600000,ys=240,Es=400,U=r.preprocess((n)=>n instanceof Date?n.toISOString():n,r.string().datetime()),C=r.enum(["pending","in_progress","blocked","completed"]),le=r.enum(["queued","running","completed","failed","cancelled","interrupted"]),cn=r.enum(["draft","in_review","finalized"]),Rd=r.object({agentId:r.string(),role:r.enum(["lead","teammate"]),description:r.string().optional(),status:r.enum(["idle","running","stopped"])}),Bs=r.object({agentId:r.string(),rolePrompt:r.string(),modelId:r.string().optional(),maxIterations:r.number().optional()});function u(n){return r.preprocess((o)=>o===null?void 0:o,n.optional())}var Is=r.object({agentId:r.string().min(1).describe("Teammate identifier"),rolePrompt:r.string().min(1).describe("System prompt describing teammate role")}).strict(),As=r.object({agentId:r.string().min(1).describe("Teammate identifier"),reason:u(r.string().min(1)).describe("Optional shutdown reason")}),Ds=r.object({}),$d={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},ks={create:["status","taskId","summary","reason"]},us=r.object({action:r.enum(["create","list","claim","complete","block"]),title:u(r.string().min(1)).describe("Task title"),description:u(r.string().min(1)).describe("Task details"),dependsOn:u(r.array(r.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:u(r.string().min(1)).describe("Optional assignee"),status:u(r.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:u(r.string()).describe("Task ID"),summary:u(r.string().min(1)).describe("Completion summary"),reason:u(r.string().min(1)).describe("Blocking reason")}).superRefine((n,o)=>{for(let e of $d[n.action]){if(n[e]!==void 0)continue;o.addIssue({code:"custom",path:[e],message:`Field "${e}" is required when action=${n.action}`})}}),Rs=r.object({agentId:r.string().describe("Teammate agent ID"),task:r.string().min(1).describe("Task instructions for the teammate"),taskId:u(r.string()).describe("Optional shared task list ID"),runMode:u(r.enum(["sync","async"])).describe("Execution mode: 'sync' blocks until the teammate finishes and returns the result (default if omitted); 'async' queues the run and returns a runId immediately — use team_await_runs to collect results later."),continueConversation:u(r.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),$s=r.object({status:u(r.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:u(r.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:u(r.boolean()).describe("Include completed/failed runs (default true)")}),bs=r.object({runId:r.string().min(1).describe("Run ID"),reason:u(r.string().min(1)).describe("Optional cancellation reason")}),Ms=r.object({runId:u(r.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),is=r.object({toAgentId:r.string().min(1).describe("Recipient agent ID"),subject:r.string().min(1).describe("Message subject"),body:r.string().min(1).describe("Message body"),taskId:u(r.string().min(1)).describe("Optional task ID context")}),Ls=r.object({subject:r.string().min(1).describe("Message subject"),body:r.string().min(1).describe("Message body"),taskId:u(r.string().min(1)).describe("Optional task ID context")}),ms=r.object({unreadOnly:u(r.boolean()).describe("Only unread messages for read action (default true)")}),Fs=r.object({kind:r.enum(["progress","handoff","blocked","decision","done","error"]),summary:r.string().min(1).describe("Update summary"),taskId:u(r.string().min(1)).describe("Optional task ID context"),evidence:u(r.array(r.string().min(1))).describe("Optional evidence links/snippets"),nextAction:u(r.string().min(1)).describe("Planned next step")}),Ys=r.object({}),Us=r.object({title:r.string().describe("Outcome title"),requiredSections:r.array(r.string()).default(ud).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),qs=r.object({outcomeId:r.string().describe("Outcome ID"),section:r.string().describe("Section name"),sourceRunId:u(r.string()).describe("Optional source run ID"),content:r.string().describe("Section fragment content")}),Gs=r.object({fragmentId:r.string().describe("Fragment ID"),approved:r.boolean().describe("Review decision")}),Hs=r.object({outcomeId:r.string().describe("Outcome ID")}),Ts=r.object({}),Xs=r.object({teamId:r.string(),teamName:r.string(),members:r.array(Rd),taskCounts:r.record(C,r.number()),unreadMessages:r.number(),missionLogEntries:r.number(),activeRuns:r.number(),queuedRuns:r.number(),outcomeCounts:r.record(cn,r.number())}),bd=r.object({id:r.string(),title:r.string(),description:r.string(),status:C,createdAt:U,updatedAt:U,createdBy:r.string(),assignee:r.string().optional(),dependsOn:r.array(r.string()),summary:r.string().optional(),isReady:r.boolean(),blockedBy:r.array(r.string())}),Vs=r.discriminatedUnion("action",[r.object({action:r.literal("create"),taskId:r.string(),status:C,ignoredFields:r.array(r.string()).optional(),note:r.string().optional()}),r.object({action:r.literal("list"),tasks:r.array(bd)}),r.object({action:r.literal("claim"),taskId:r.string(),status:C,nextStep:r.string()}),r.object({action:r.literal("complete"),taskId:r.string(),status:C}),r.object({action:r.literal("block"),taskId:r.string(),status:C})]),Zs=r.object({agentId:r.string(),mode:r.enum(["sync","async"]),status:r.enum(["dispatched","running","queued","joined"]),dispatched:r.boolean(),message:r.string(),deduped:r.boolean().optional(),runId:r.string().optional(),text:r.string().optional(),iterations:r.number().optional()}),Md=r.object({textPreview:r.string(),iterations:r.number(),finishReason:r.string(),durationMs:r.number(),usage:r.object({inputTokens:r.number(),outputTokens:r.number(),cacheReadTokens:r.number().optional(),cacheWriteTokens:r.number().optional(),totalCost:r.number().optional()})}),Js=r.object({id:r.string(),agentId:r.string(),taskId:r.string().optional(),status:le,messagePreview:r.string(),priority:r.number(),retryCount:r.number(),maxRetries:r.number(),nextAttemptAt:U.optional(),continueConversation:r.boolean().optional(),startedAt:U,endedAt:U.optional(),leaseOwner:r.string().optional(),heartbeatAt:U.optional(),lastProgressAt:U.optional(),lastProgressMessage:r.string().optional(),currentActivity:r.string().optional(),error:r.string().optional(),resultSummary:Md.optional()}),Qs=r.object({id:r.string(),teamId:r.string(),fromAgentId:r.string(),toAgentId:r.string(),subject:r.string(),body:r.string(),taskId:r.string().optional(),sentAt:U,readAt:U.optional()}),Ws=r.object({id:r.string(),teamId:r.string(),title:r.string(),status:cn,requiredSections:r.array(r.string()),createdBy:r.string(),createdAt:U,finalizedAt:U.optional()}),Os=r.object({outcomeId:r.string(),status:cn,requiredSections:r.array(r.string())}),Ps=r.object({agentId:r.string(),status:r.string()}),Ks=r.object({runId:r.string(),status:le}),js=r.object({id:r.string(),toAgentId:r.string()}),hs=r.object({delivered:r.number()}),Cs=r.object({id:r.string()}),xs=r.object({status:r.string()}),Ns=r.object({fragmentId:r.string(),status:r.string()}),Ss=r.object({outcomeId:r.string(),status:cn});var id;(($)=>{$.TaskStart="task_start";$.TaskEnd="task_end";$.AgentEvent="agent_event";$.TeammateSpawned="teammate_spawned";$.TeammateShutdown="teammate_shutdown";$.TeamTaskUpdated="team_task_updated";$.TeamMessage="team_message";$.TeamMissionLog="team_mission_log";$.TeamTaskCompleted="team_task_completed";$.RunStarted="run_started";$.RunQueued="run_queued";$.RunProgress="run_progress";$.RunCompleted="run_completed";$.RunFailed="run_failed";$.RunCancelled="run_cancelled";$.RunInterrupted="run_interrupted";$.OutcomeCreated="outcome_created";$.OutcomeFragmentAttached="outcome_fragment_attached";$.OutcomeFragmentReviewed="outcome_fragment_reviewed";$.OutcomeFinalized="outcome_finalized"})(id||={});import{z as Ld}from"zod";function md(n){let{$schema:o,...e}=n;if(typeof e.type==="string")return e;if("properties"in e||"required"in e||"additionalProperties"in e)return{type:"object",...e};for(let d of["oneOf","anyOf","allOf"]){let l=e[d];if(!Array.isArray(l)||l.length===0)continue;if(d==="allOf"){if(l.some((y)=>y&&typeof y==="object"&&y.type==="object"))return{type:"object",...e};throw Error('Tool inputSchema must describe an object at the top level, but the schema has a top-level "allOf" with no branch that asserts type: "object". Add type: "object" to at least one allOf branch to make the object constraint explicit.')}if(l.every((g)=>g&&typeof g==="object"&&g.type==="object"))return{type:"object",...e};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${d}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return e}function Fd(n){let o=md(n.inputSchema instanceof Ld.ZodType?qn(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 ge=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function Yd(n){let o=n instanceof Error?n.message.toLowerCase():String(n);return ge.some((e)=>o.includes(e))}export{qn as zodToJsonSchema,to as xmlTagsRemoval,Vr as validateWithZod,Eo as validateImageMedia,S as validateAndReserveImageMedia,ts as upsertWorkspaceInfo,mo as truncateStr,Gr as truncateSplit,Ao as toAiSdkToolResultOutput,Br as serializeAbortReason,F as sanitizeSurrogates,qr as sanitizeFileName,Lr as safeJsonStringify,mr as safeJsonParse,cd as resolveRootSessionId,ko as resolveReasoningEffortRatio,yr as resolveReasoningBudgetFromRatio,_o as resolveMediaBudget,of as resolveHubCommandTimeoutMs,td as resolveHookSessionContext,wr as resolveEffectiveReasoningEffort,po as resolveClineEnvironment,N as reserveImageMediaBytes,lo as parseUserCommandEnvelope,Id as parseRuntimeConfigExtensions,ir as parseJsonStream,Oe as parseHookEventPayload,go as normalizeUserInput,ne as normalizeSdkError,eo as normalizePluginManifest,Ar as noopBasicLogger,cr as mergeModelOptions,Hr as maskSecret,se as isRuntimeConfigExtensionKind,Yd as isLikelyAuthError,ef as isHubToolExecutorName,zd as isHubProtocolCompatible,Gn as isClineProvider,or as isCanonicalBase64,wo as isBase64Char,nr as imageFileMaxDecodedBytesForBase64Limit,In as imageBase64LengthForDecodedBytes,ze as imageBase64EncodedByteLength,co as imageBase64DecodedByteLength,Ad as hasRuntimeConfigExtension,Ur as getShellArgs,Yr as getDefaultShell,Ke as getDefaultHubCommandTimeoutMs,nd as getClineEnvironmentConfig,Ce as formatUserInputBlock,xe as formatUserCommandBlock,Xr as formatUptime,tr as formatMessagesForAiSdk,Tr as formatHumanReadableDate,Bn as formatFileContentBlock,ae as formatDisplayUserInput,Ir as estimateTokens,gs as emptyWorkspaceManifest,Fd as createTool,yd as createSessionId,ln as createMediaBudgetState,Ye as createContributionRegistry,ee as createClineTelemetryServiceMetadata,gd as createClineTelemetryServiceConfig,ed as captureSdkError,zo as buildSdkErrorProperties,Zr as buildClineSystemPrompt,kd as WorkspaceManifestSchema,Dd as WorkspaceInfoSchema,Wo as VertexSettingsSchema,Qo as VertexModelSchema,yn as ToolCallRecordSchema,Nn as ThinkingConfigSchema,Bs as TeamTeammateSpecSchema,Vs as TeamTaskToolResultSchema,bd as TeamTaskListItemToolResultSchema,us as TeamTaskInputSchema,Xs as TeamStatusToolResultSchema,Ds as TeamStatusInputSchema,Is as TeamSpawnTeammateInputSchema,Ps as TeamSimpleAgentStatusToolResultSchema,As as TeamShutdownTeammateInputSchema,js as TeamSendMessageToolResultSchema,is as TeamSendMessageInputSchema,Js as TeamRunToolSummarySchema,Zs as TeamRunTaskToolResultSchema,Rs as TeamRunTaskInputSchema,Md as TeamRunResultSummarySchema,Gs as TeamReviewOutcomeFragmentInputSchema,ms as TeamReadMailboxInputSchema,Ws as TeamOutcomeToolResultSchema,Ns as TeamOutcomeFragmentToolResultSchema,Cs as TeamMissionLogToolResultSchema,Fs as TeamMissionLogInputSchema,id as TeamMessageType,Qs as TeamMailboxMessageToolResultSchema,$s as TeamListRunsInputSchema,Ts as TeamListOutcomesInputSchema,Ss as TeamFinalizeOutcomeToolResultSchema,Hs as TeamFinalizeOutcomeInputSchema,Os as TeamCreateOutcomeToolResultSchema,Us as TeamCreateOutcomeInputSchema,xs as TeamCleanupToolResultSchema,Ys as TeamCleanupInputSchema,Ks as TeamCancelRunToolResultSchema,bs as TeamCancelRunInputSchema,hs as TeamBroadcastToolResultSchema,Ls as TeamBroadcastInputSchema,Ms as TeamAwaitRunsInputSchema,qs as TeamAttachOutcomeFragmentInputSchema,ks as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,Es as TEAM_RUN_TEXT_PREVIEW_LIMIT,ys as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,xr as TEAM_PROGRESS_EVENT_TYPE,Nr as TEAM_LIFECYCLE_EVENT_TYPE,ws as TEAM_AWAIT_TIMEOUT_MS,sn as SUPPORTED_IMAGE_MEDIA_TYPES,Ed as SESSION_STATUS_VALUES,od as SDK_ERROR_TELEMETRY_EVENT,tn as S3AccessKeySettingsSchema,Co as RemoteMCPServerSchema,Wr as RemoteConfigSchema,Re as ReasoningEffortSchema,Jn as RUNTIME_CONFIG_EXTENSION_KINDS,Jr as REMOTE_URI_SCHEME,p as REASONING_EFFORT_RATIOS,hr as ProviderProtocolSchema,Cr as ProviderClientSchema,jr as ProviderCapabilitySchema,xo as PromptUploadingSchema,Ue as PLUGIN_FILE_EXTENSIONS,Ho as OpenAiCompatibleSchema,Go as OpenAiCompatibleModelSchema,Cn as ModelStatusSchema,xn as ModelPricingSchema,Sn as ModelMetadataSchema,rn as ModelInfoSchema,hn as ModelCapabilitySchema,ad as MIN_CLIENT_HUB_PROTOCOL_VERSION,pd as MAX_CLIENT_HUB_PROTOCOL_VERSION,Po as LiteLLMSchema,Oo as LiteLLMModelSchema,Q as IMAGE_OMITTED_PLACEHOLDER,so as HookEventPayloadSchema,fo as HookEventNameSchema,tf as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,je as HUB_TOOL_EXECUTOR_NAMES,rf as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,gf as HUB_MISTAKE_LIMIT_CAPABILITY,ff as HUB_HOOK_CAPABILITY_PREFIX,Pe as HUB_DEFAULT_COMMAND_TIMEOUT_MS,df as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,sf as HUB_COMPACTION_CAPABILITY,nf as HUB_COMMAND_SLOW_LOG_MS,lf as HUB_CHECKPOINT_CAPABILITY,vd as HUB_CAPABILITIES,Tn as GlobalInstructionsFileSchema,qe as FeatureFlagDefaultValue,Ge as FEATURE_FLAGS,No as EnterpriseTelemetrySchema,An as EMPTY_CONTENT_TEXT,fe as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,Er as DEFAULT_REQUEST_HEADERS,_r as DEFAULT_REASONING_EFFORT,ud as DEFAULT_OUTCOME_REQUIRED_SECTIONS,ve as DEFAULT_MAX_TOTAL_MEDIA_BYTES,H as DEFAULT_MAX_IMAGE_ENCODED_BYTES,W as DEFAULT_MAX_IMAGE_DECODED_BYTES,pe as DEFAULT_MAX_IMAGE_BASE64_BYTES,pr as DEFAULT_CLINE_ENVIRONMENT,En as ContributionRegistry,Me as ConnectorHookEventSchema,an as ConnectorHookEventNameSchema,vn as ConnectorEventContextSchema,pn as ConnectorEventActorSchema,$e as ConnectorAuthorizationRequestSchema,be as ConnectorAuthorizationDecisionSchema,Jo as ClineSettingsSchema,Zo as ClineModelSchema,Sd as CURRENT_HUB_PROTOCOL_VERSION,ar as CLINE_ENVIRONMENT_OVERRIDE_ENV,Sr as CLINE_ENVIRONMENT_ENV,Vn as CLINE_ENVIRONMENTS,Pr as CLINE_DEFAULT_RPC_PORT,Kr as CLINE_DEFAULT_RPC_ADDRESS,Vo as AwsBedrockSettingsSchema,To as AwsBedrockModelSchema,Xo as AwsBedrockCustomModelSchema,jn as ApiFormatSchema,De as ApiFormat,jo as AnthropicSchema,Ko as AnthropicModelSchema,ho as AllowedMCPServerSchema,ue as AgentUsageSchema,Zd as AgentResultSchema,ke as AgentFinishReasonSchema,Jd as AgentConfigSchema,ge as AUTH_ERROR_PATTERNS,Or as APIKeySchema};
|