@cline/shared 0.0.46-nightly.1781147825 → 0.0.47

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.
@@ -7,8 +7,12 @@ import type { ClientContext, UserContext } from "./context";
7
7
  export interface AgentExtensionCommand {
8
8
  name: string;
9
9
  description?: string;
10
- handler?: (input: string) => Promise<string> | string;
10
+ handler?: (input: string) => Promise<AgentExtensionCommandResult> | AgentExtensionCommandResult;
11
11
  }
12
+ export type AgentExtensionCommandResult = string | {
13
+ reply?: string;
14
+ submitPrompt?: string;
15
+ };
12
16
  export interface AgentExtensionRule {
13
17
  id: string;
14
18
  content: string | (() => string | Promise<string>);
@@ -0,0 +1,42 @@
1
+ export type FeatureFlag = string;
2
+ export type FeatureFlagJsonValue = string | number | boolean | null | {
3
+ [key: string]: FeatureFlagJsonValue;
4
+ } | FeatureFlagJsonValue[];
5
+ export type FeatureFlagPayload = FeatureFlagJsonValue;
6
+ export type FeatureFlagsAndPayloads = {
7
+ featureFlags?: Record<string, FeatureFlagPayload>;
8
+ featureFlagPayloads?: Record<string, FeatureFlagPayload>;
9
+ };
10
+ export interface FeatureFlagsContext {
11
+ /** Stable SDK/client/user identifier used by providers that evaluate per identity. */
12
+ distinctId?: string;
13
+ /** Authenticated Cline account/user ID, when available. */
14
+ userId?: string | null;
15
+ /** Optional SDK consumer name, e.g. `my-production-app`. */
16
+ clientName?: string;
17
+ }
18
+ type AssertTrue<T extends true> = T;
19
+ type Primitive = string | number | boolean | bigint | symbol | null | undefined;
20
+ type HasNonPrimitiveFieldNames<T> = {
21
+ [K in keyof T]-?: Exclude<T[K], Primitive> extends never ? never : K;
22
+ }[keyof T];
23
+ type HasOnlyPrimitiveFields<T> = HasNonPrimitiveFieldNames<T> extends never ? true : false;
24
+ export type FeatureFlagsContextPrimitiveValued = AssertTrue<HasOnlyPrimitiveFields<FeatureFlagsContext>>;
25
+ export interface FeatureFlagsSettings {
26
+ /** Whether the provider is enabled. */
27
+ enabled: boolean;
28
+ /** Optional timeout in ms for feature flag requests. */
29
+ timeoutMs?: number;
30
+ }
31
+ export interface IFeatureFlagsProvider {
32
+ getAllFlagsAndPayloads(options: {
33
+ flagKeys?: readonly string[];
34
+ context?: FeatureFlagsContext;
35
+ }): Promise<FeatureFlagsAndPayloads | undefined>;
36
+ readonly enabled: boolean;
37
+ getSettings(): FeatureFlagsSettings;
38
+ dispose(): Promise<void>;
39
+ }
40
+ export declare const FeatureFlagDefaultValue: Partial<Record<FeatureFlag, FeatureFlagPayload | undefined>>;
41
+ export declare const FEATURE_FLAGS: readonly FeatureFlag[];
42
+ export {};
@@ -5,9 +5,10 @@ export { ConnectorAuthorizationDecisionSchema, ConnectorAuthorizationRequestSche
5
5
  export type * from "./connectors/options";
6
6
  export type { AutomationEventEnvelope } from "./cron";
7
7
  export type { ClientContext, ClientName, ExtensionContext, UserContext, WorkspaceContext, } from "./extensions/context";
8
- export type { AgentExtensionApi, AgentExtensionAutomationContext, AgentExtensionAutomationEventType, AgentExtensionCapability, AgentExtensionCommand, AgentExtensionHooks, AgentExtensionMessageBuilder, AgentExtensionProvider, AgentExtensionRegistry, AgentExtensionRule, AgentExtensionSessionContext, ContributionRegistryExtension, ContributionRegistryOptions, PluginManifest, PluginSetupContext, } from "./extensions/contribution-registry";
8
+ export type { AgentExtensionApi, AgentExtensionAutomationContext, AgentExtensionAutomationEventType, AgentExtensionCapability, AgentExtensionCommand, AgentExtensionCommandResult, AgentExtensionHooks, AgentExtensionMessageBuilder, AgentExtensionProvider, AgentExtensionRegistry, AgentExtensionRule, AgentExtensionSessionContext, ContributionRegistryExtension, ContributionRegistryOptions, PluginManifest, PluginSetupContext, } from "./extensions/contribution-registry";
9
9
  export { ContributionRegistry, createContributionRegistry, normalizePluginManifest, } from "./extensions/contribution-registry";
10
10
  export { PLUGIN_FILE_EXTENSIONS } from "./extensions/plugin";
11
+ export { FEATURE_FLAGS, type FeatureFlag, FeatureFlagDefaultValue, type FeatureFlagPayload, type FeatureFlagsAndPayloads, type FeatureFlagsContext, type FeatureFlagsSettings, type IFeatureFlagsProvider, } from "./feature-flags";
11
12
  export type { HookControl } from "./hooks/contracts";
12
13
  export type { AgentAbortHookPayload, AgentEndHookPayload, AgentErrorHookPayload, AgentResumeHookPayload, AgentStartHookPayload, HookEventName, HookEventPayload, HookEventPayloadBase, PostToolUseData, PreCompactData, PreCompactHookPayload, PreToolUseData, PromptSubmitHookPayload, SessionShutdownHookPayload, TaskCancelData, TaskCompleteData, TaskResumeData, TaskStartData, ToolCallHookPayload, ToolResultHookPayload, UserPromptSubmitData, } from "./hooks/events";
13
14
  export { HookEventNameSchema, HookEventPayloadSchema, parseHookEventPayload, } from "./hooks/events";
@@ -1,14 +1,14 @@
1
- import{z as d}from"zod";import{z as U}from"zod";var Vn=U.enum(["default","openai-responses","r1"]),ef={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},Pn=U.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),Wn=U.enum(["active","preview","deprecated","legacy"]),jn=U.object({input:U.number().optional(),output:U.number().optional(),cacheWrite:U.number().optional(),cacheRead:U.number().optional()}),ln=U.object({maxBudget:U.number().optional(),outputPrice:U.number().optional(),thinkingLevel:U.enum(["low","high"]).optional()}),bn=U.object({reasoningDefaultOn:U.boolean().optional()}).catchall(U.unknown()),m=U.object({id:U.string(),name:U.string().optional(),description:U.string().optional(),maxTokens:U.number().optional(),contextWindow:U.number().optional(),maxInputTokens:U.number().optional(),capabilities:U.array(Pn).optional(),apiFormat:Vn.optional(),systemRole:U.enum(["system","developer"]).optional(),temperature:U.number().optional(),pricing:jn.optional(),thinkingConfig:ln.optional(),status:Wn.optional(),deprecationNotice:U.string().optional(),replacedBy:U.string().optional(),releaseDate:U.string().optional(),deprecationDate:U.string().optional(),family:U.string().optional(),metadata:bn.optional()});import{z as B}from"zod";var fn=B.object({id:B.string(),name:B.string(),input:B.unknown(),output:B.unknown(),error:B.string().optional(),durationMs:B.number(),startedAt:B.date(),endedAt:B.date()});var af=d.enum(["completed","max_iterations","aborted","mistake_limit","error"]),zf=d.object({inputTokens:d.number(),outputTokens:d.number(),cacheReadTokens:d.number().optional(),cacheWriteTokens:d.number().optional(),totalCost:d.number().optional()}),or=d.object({text:d.string(),usage:zf,messages:d.array(d.custom()),toolCalls:d.array(fn),iterations:d.number(),finishReason:af,model:d.object({id:d.string(),provider:d.string(),info:m.optional()}),startedAt:d.date(),endedAt:d.date(),durationMs:d.number()}),no=d.enum(["low","medium","high","xhigh"]),gr=d.object({sessionId:d.string().optional(),providerId:d.string(),modelId:d.string(),apiKey:d.string().optional(),baseUrl:d.string().url().optional(),headers:d.record(d.string(),d.string()).optional(),knownModels:d.record(d.string(),m).optional(),providerConfig:d.unknown().optional(),initialMessages:d.array(d.custom()).optional(),systemPrompt:d.string(),tools:d.array(d.custom()),maxIterations:d.number().positive().optional(),maxParallelToolCalls:d.number().int().positive().default(8),maxTokensPerTurn:d.number().positive().optional(),apiTimeoutMs:d.number().positive().default(180000),userFileContentLoader:d.function().input([d.string()]).output(d.promise(d.string())).optional(),toolContextMetadata:d.record(d.string(),d.unknown()).optional(),execution:d.object({maxConsecutiveMistakes:d.number().int().positive().optional(),reminderAfterIterations:d.number().nonnegative().optional(),reminderText:d.string().optional(),loopDetection:d.union([d.literal(!1),d.object({softThreshold:d.number().int().positive().optional(),hardThreshold:d.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:no.optional(),thinkingBudgetTokens:d.number().positive().optional(),thinking:d.boolean().optional(),onEvent:d.function().input([d.custom()]).output(d.void()).optional(),hooks:d.custom().optional(),parentAgentId:d.string().optional(),extensions:d.array(d.custom()).optional(),hookErrorMode:d.enum(["ignore","throw"]).default("ignore"),toolPolicies:d.record(d.string(),d.object({enabled:d.boolean().optional(),autoApprove:d.boolean().optional()})).optional(),requestToolApproval:d.function().input([d.object({sessionId:d.string(),agentId:d.string(),conversationId:d.string(),iteration:d.number(),toolCallId:d.string(),toolName:d.string(),input:d.unknown(),policy:d.object({enabled:d.boolean().optional(),autoApprove:d.boolean().optional()}).default({})})]).output(d.union([d.object({approved:d.boolean(),reason:d.string().optional()}),d.promise(d.object({approved:d.boolean(),reason:d.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:d.function().input([d.object({iteration:d.number().int().positive(),consecutiveMistakes:d.number().int().positive(),maxConsecutiveMistakes:d.number().int().positive(),reason:d.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:d.string().optional()})]).output(d.union([d.object({action:d.literal("continue"),guidance:d.string().optional()}),d.object({action:d.literal("stop"),reason:d.string().optional()}),d.promise(d.union([d.object({action:d.literal("continue"),guidance:d.string().optional()}),d.object({action:d.literal("stop"),reason:d.string().optional()})]))])).optional(),logger:d.custom().optional(),extensionContext:d.custom().optional(),abortSignal:d.custom().optional()});import{z as q}from"zod";var Kn=q.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"]),Tn=q.object({id:q.string().optional(),label:q.string().optional(),role:q.string().optional(),participantKey:q.string().optional(),participantLabel:q.string().optional(),platformUserId:q.string().optional(),metadata:q.record(q.string(),q.unknown()).optional()}),Nn=q.object({source:q.string(),sourceEvent:q.string(),threadId:q.string(),channelId:q.string(),isDM:q.boolean(),sessionId:q.string().optional(),workspaceRoot:q.string().optional(),metadata:q.record(q.string(),q.unknown()).optional()}),fo=q.object({actor:Tn,context:Nn,payload:q.record(q.string(),q.unknown()).optional()}),oo=q.object({action:q.enum(["allow","deny"]).default("allow"),message:q.string().optional(),reason:q.string().optional(),metadata:q.record(q.string(),q.unknown()).optional()}),go=q.object({adapter:q.string(),botUserName:q.string().optional(),event:Kn,payload:q.record(q.string(),q.unknown()),ts:q.string()});var ro=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents"],wo=new Set(ro);function On(n,f){return n.name||`extension_${String(f).padStart(4,"0")}`}function Cn(n){return Array.isArray(n)&&n.every((f)=>typeof f==="string")}function Mn(n){if(!Array.isArray(n))return;let f=n.filter((o)=>typeof o==="string").map((o)=>o.trim()).filter((o)=>o.length>0);return f.length>0?f:void 0}function Sn(n){let f=Mn(n.providerIds),o=Mn(n.modelIds);return{...n,...f?{providerIds:f}:{},...o?{modelIds:o}:{}}}function $o(n,f){let o=On(n,f),w=n.manifest;if(!w||typeof w!=="object")throw Error(`Invalid manifest for extension "${o}": manifest is required`);if(!Array.isArray(w.capabilities)||w.capabilities.length===0)throw Error(`Invalid manifest for extension "${o}": capabilities must be a non-empty array`);let $=new Set;for(let Y of w.capabilities){if(!wo.has(Y))throw Error(`Invalid manifest for extension "${o}": unsupported capability "${String(Y)}"`);$.add(Y)}if(Object.hasOwn(w,"providerIds")&&!Cn(w.providerIds))throw Error(`Invalid manifest for extension "${o}": providerIds must be a string array when provided`);if(Object.hasOwn(w,"modelIds")&&!Cn(w.modelIds))throw Error(`Invalid manifest for extension "${o}": modelIds must be a string array when provided`);let R=$.has("hooks");if(n.hooks!==void 0&&!R)throw Error(`Invalid manifest for extension "${o}": runtime hooks require the "hooks" capability`);return{capabilities:$,raw:Sn(w)}}function Ro(n,f){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${f}": expected object`);let o=typeof n.eventType==="string"?n.eventType.trim():"",w=typeof n.source==="string"?n.source.trim():"";if(!o)throw Error(`Invalid automation event contribution for extension "${f}": eventType is required`);if(!w)throw Error(`Invalid automation event contribution for extension "${f}": source is required`);return{...n,eventType:o,source:w,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class on{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,f)=>({extension:n,order:f,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:$o(n.extension,n.order)})),this.phase="setup"}async setup(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;for(let n of this.normalized){let{extension:f}=n;if(f.disabled)continue;let o=On(f,n.order),w={registerTool:(R)=>this.registry.tools.push(R),registerCommand:(R)=>this.registry.commands.push(R),registerRule:(R)=>{if(!n.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${o}": registerRule requires the "rules" capability`);this.registry.rules.push(R)},registerMessageBuilder:(R)=>this.registry.messageBuilder.push(R),registerProvider:(R)=>this.registry.providers.push(R),registerAutomationEventType:(R)=>{if(!n.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${o}": registerAutomationEventType requires the "automationEvents" capability`);this.registry.automationEventTypes.push(Ro(R,o))}},$=n.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};await f.setup?.(w,$)}this.phase="activate"}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(){this.resolve(),this.validate(),await this.setup(),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]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,f)=>n.order-f.order).map(({extension:n})=>n)}}function yo(n={}){return new on(n)}var _o=[".js",".ts"];import{z as y}from"zod";var hn=y.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),b=y.record(y.string(),y.string()),Eo=y.object({toolName:y.string(),parameters:b}),qo=y.object({toolName:y.string(),parameters:b,result:y.string(),success:y.boolean(),executionTimeMs:y.number()}),Ho=y.object({prompt:y.string(),attachments:y.array(y.string())}),Io=y.object({taskMetadata:b}),ko=y.object({taskMetadata:b,previousState:b}),Uo=y.object({taskMetadata:b}),Yo=y.object({taskMetadata:b}),Fo=y.object({taskId:y.string(),ulid:y.string(),contextSize:y.number(),compactionStrategy:y.string(),previousApiReqIndex:y.number(),tokensIn:y.number(),tokensOut:y.number(),tokensInCache:y.number(),tokensOutCache:y.number(),deletedRangeStart:y.number(),deletedRangeEnd:y.number(),contextJsonPath:y.string(),contextRawPath:y.string()}),cn=y.object({clineVersion:y.string(),hookName:hn,timestamp:y.string(),taskId:y.string(),sessionContext:y.object({rootSessionId:y.string().optional(),hookLogPath:y.string().optional()}).optional(),workspaceRoots:y.array(y.string()),workspaceInfo:y.custom().optional(),userId:y.string(),agent_id:y.string(),parent_agent_id:y.string().nullable(),iteration:y.number().optional(),reason:y.string().optional(),tool_call:y.object({id:y.string(),name:y.string(),input:y.unknown()}).optional(),tool_result:y.custom().optional(),turn:y.unknown().optional(),error:y.object({name:y.string(),message:y.string(),stack:y.string().optional()}).optional(),preToolUse:Eo.optional(),postToolUse:qo.optional(),userPromptSubmit:Ho.optional(),taskStart:Io.optional(),taskResume:ko.optional(),taskCancel:Uo.optional(),taskComplete:Yo.optional(),preCompact:Fo.optional()}).passthrough();function Lo(n){let f=cn.safeParse(n);if(!f.success)return;return f.data}var Hr="v1",Ir="v1",kr="v1",Ur=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function p(n){let f=/^v(\d+)$/.exec(n?.trim()??"");if(!f)return;return Number.parseInt(f[1]??"",10)}function Yr(n,f="v1"){let o=p(n.protocolVersion),w=p(f);if(o===void 0||w===void 0)return{compatible:!1,reason:"missing_protocol"};let $=p(n.minClientProtocolVersion)??o,R=p(n.maxClientProtocolVersion)??o;return w>=$&&w<=R?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var Do=30000,Fr=5000;function Ao(n){switch(n){case"run.start":case"session.send_input":return null;default:return Do}}function Lr(n,f){return f===void 0?Ao(n):f}var Go=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],Zo=new Set(Go);function Dr(n){return typeof n==="string"&&Zo.has(n)}var Ar="tool_executor.",Gr="custom_tool.",Zr="hook.",Xr="compaction.compact",Jr="checkpoint.create",Qr="mistake_limit.decide",Br="user_instructions.snapshot";function gn(n,f){return`<file_content path="${n}">
1
+ import{z as g}from"zod";import{z as U}from"zod";var Vn=U.enum(["default","openai-responses","r1"]),zf={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},Pn=U.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),Wn=U.enum(["active","preview","deprecated","legacy"]),jn=U.object({input:U.number().optional(),output:U.number().optional(),cacheWrite:U.number().optional(),cacheRead:U.number().optional()}),bn=U.object({maxBudget:U.number().optional(),outputPrice:U.number().optional(),thinkingLevel:U.enum(["low","high"]).optional()}),Kn=U.object({reasoningDefaultOn:U.boolean().optional()}).catchall(U.unknown()),v=U.object({id:U.string(),name:U.string().optional(),description:U.string().optional(),maxTokens:U.number().optional(),contextWindow:U.number().optional(),maxInputTokens:U.number().optional(),capabilities:U.array(Pn).optional(),apiFormat:Vn.optional(),systemRole:U.enum(["system","developer"]).optional(),temperature:U.number().optional(),pricing:jn.optional(),thinkingConfig:bn.optional(),status:Wn.optional(),deprecationNotice:U.string().optional(),replacedBy:U.string().optional(),releaseDate:U.string().optional(),deprecationDate:U.string().optional(),family:U.string().optional(),metadata:Kn.optional()});import{z as B}from"zod";var fn=B.object({id:B.string(),name:B.string(),input:B.unknown(),output:B.unknown(),error:B.string().optional(),durationMs:B.number(),startedAt:B.date(),endedAt:B.date()});var no=g.enum(["completed","max_iterations","aborted","mistake_limit","error"]),fo=g.object({inputTokens:g.number(),outputTokens:g.number(),cacheReadTokens:g.number().optional(),cacheWriteTokens:g.number().optional(),totalCost:g.number().optional()}),wd=g.object({text:g.string(),usage:fo,messages:g.array(g.custom()),toolCalls:g.array(fn),iterations:g.number(),finishReason:no,model:g.object({id:g.string(),provider:g.string(),info:v.optional()}),startedAt:g.date(),endedAt:g.date(),durationMs:g.number()}),oo=g.enum(["low","medium","high","xhigh"]),$d=g.object({sessionId:g.string().optional(),providerId:g.string(),modelId:g.string(),apiKey:g.string().optional(),baseUrl:g.string().url().optional(),headers:g.record(g.string(),g.string()).optional(),knownModels:g.record(g.string(),v).optional(),providerConfig:g.unknown().optional(),initialMessages:g.array(g.custom()).optional(),systemPrompt:g.string(),tools:g.array(g.custom()),maxIterations:g.number().positive().optional(),maxParallelToolCalls:g.number().int().positive().default(8),maxTokensPerTurn:g.number().positive().optional(),apiTimeoutMs:g.number().positive().default(180000),userFileContentLoader:g.function().input([g.string()]).output(g.promise(g.string())).optional(),toolContextMetadata:g.record(g.string(),g.unknown()).optional(),execution:g.object({maxConsecutiveMistakes:g.number().int().positive().optional(),reminderAfterIterations:g.number().nonnegative().optional(),reminderText:g.string().optional(),loopDetection:g.union([g.literal(!1),g.object({softThreshold:g.number().int().positive().optional(),hardThreshold:g.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:oo.optional(),thinkingBudgetTokens:g.number().positive().optional(),thinking:g.boolean().optional(),onEvent:g.function().input([g.custom()]).output(g.void()).optional(),hooks:g.custom().optional(),parentAgentId:g.string().optional(),extensions:g.array(g.custom()).optional(),hookErrorMode:g.enum(["ignore","throw"]).default("ignore"),toolPolicies:g.record(g.string(),g.object({enabled:g.boolean().optional(),autoApprove:g.boolean().optional()})).optional(),requestToolApproval:g.function().input([g.object({sessionId:g.string(),agentId:g.string(),conversationId:g.string(),iteration:g.number(),toolCallId:g.string(),toolName:g.string(),input:g.unknown(),policy:g.object({enabled:g.boolean().optional(),autoApprove:g.boolean().optional()}).default({})})]).output(g.union([g.object({approved:g.boolean(),reason:g.string().optional()}),g.promise(g.object({approved:g.boolean(),reason:g.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:g.function().input([g.object({iteration:g.number().int().positive(),consecutiveMistakes:g.number().int().positive(),maxConsecutiveMistakes:g.number().int().positive(),reason:g.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:g.string().optional()})]).output(g.union([g.object({action:g.literal("continue"),guidance:g.string().optional()}),g.object({action:g.literal("stop"),reason:g.string().optional()}),g.promise(g.union([g.object({action:g.literal("continue"),guidance:g.string().optional()}),g.object({action:g.literal("stop"),reason:g.string().optional()})]))])).optional(),logger:g.custom().optional(),extensionContext:g.custom().optional(),abortSignal:g.custom().optional()});import{z as H}from"zod";var ln=H.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"]),Tn=H.object({id:H.string().optional(),label:H.string().optional(),role:H.string().optional(),participantKey:H.string().optional(),participantLabel:H.string().optional(),platformUserId:H.string().optional(),metadata:H.record(H.string(),H.unknown()).optional()}),On=H.object({source:H.string(),sourceEvent:H.string(),threadId:H.string(),channelId:H.string(),isDM:H.boolean(),sessionId:H.string().optional(),workspaceRoot:H.string().optional(),metadata:H.record(H.string(),H.unknown()).optional()}),ro=H.object({actor:Tn,context:On,payload:H.record(H.string(),H.unknown()).optional()}),go=H.object({action:H.enum(["allow","deny"]).default("allow"),message:H.string().optional(),reason:H.string().optional(),metadata:H.record(H.string(),H.unknown()).optional()}),wo=H.object({adapter:H.string(),botUserName:H.string().optional(),event:ln,payload:H.record(H.string(),H.unknown()),ts:H.string()});var $o=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents"],Ro=new Set($o);function Mn(n,f){return n.name||`extension_${String(f).padStart(4,"0")}`}function Nn(n){return Array.isArray(n)&&n.every((f)=>typeof f==="string")}function Cn(n){if(!Array.isArray(n))return;let f=n.filter((o)=>typeof o==="string").map((o)=>o.trim()).filter((o)=>o.length>0);return f.length>0?f:void 0}function Sn(n){let f=Cn(n.providerIds),o=Cn(n.modelIds);return{...n,...f?{providerIds:f}:{},...o?{modelIds:o}:{}}}function yo(n,f){let o=Mn(n,f),w=n.manifest;if(!w||typeof w!=="object")throw Error(`Invalid manifest for extension "${o}": manifest is required`);if(!Array.isArray(w.capabilities)||w.capabilities.length===0)throw Error(`Invalid manifest for extension "${o}": capabilities must be a non-empty array`);let $=new Set;for(let Y of w.capabilities){if(!Ro.has(Y))throw Error(`Invalid manifest for extension "${o}": unsupported capability "${String(Y)}"`);$.add(Y)}if(Object.hasOwn(w,"providerIds")&&!Nn(w.providerIds))throw Error(`Invalid manifest for extension "${o}": providerIds must be a string array when provided`);if(Object.hasOwn(w,"modelIds")&&!Nn(w.modelIds))throw Error(`Invalid manifest for extension "${o}": modelIds must be a string array when provided`);let R=$.has("hooks");if(n.hooks!==void 0&&!R)throw Error(`Invalid manifest for extension "${o}": runtime hooks require the "hooks" capability`);return{capabilities:$,raw:Sn(w)}}function _o(n,f){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${f}": expected object`);let o=typeof n.eventType==="string"?n.eventType.trim():"",w=typeof n.source==="string"?n.source.trim():"";if(!o)throw Error(`Invalid automation event contribution for extension "${f}": eventType is required`);if(!w)throw Error(`Invalid automation event contribution for extension "${f}": source is required`);return{...n,eventType:o,source:w,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class on{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,f)=>({extension:n,order:f,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:yo(n.extension,n.order)})),this.phase="setup"}async setup(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;for(let n of this.normalized){let{extension:f}=n;if(f.disabled)continue;let o=Mn(f,n.order),w={registerTool:(R)=>this.registry.tools.push(R),registerCommand:(R)=>this.registry.commands.push(R),registerRule:(R)=>{if(!n.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${o}": registerRule requires the "rules" capability`);this.registry.rules.push(R)},registerMessageBuilder:(R)=>this.registry.messageBuilder.push(R),registerProvider:(R)=>this.registry.providers.push(R),registerAutomationEventType:(R)=>{if(!n.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${o}": registerAutomationEventType requires the "automationEvents" capability`);this.registry.automationEventTypes.push(_o(R,o))}},$=n.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};await f.setup?.(w,$)}this.phase="activate"}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(){this.resolve(),this.validate(),await this.setup(),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]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,f)=>n.order-f.order).map(({extension:n})=>n)}}function Eo(n={}){return new on(n)}var Ho=[".js",".ts"];var hn={},Io=Object.keys(hn);import{z as y}from"zod";var cn=y.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),K=y.record(y.string(),y.string()),qo=y.object({toolName:y.string(),parameters:K}),ko=y.object({toolName:y.string(),parameters:K,result:y.string(),success:y.boolean(),executionTimeMs:y.number()}),Uo=y.object({prompt:y.string(),attachments:y.array(y.string())}),Yo=y.object({taskMetadata:K}),Lo=y.object({taskMetadata:K,previousState:K}),Fo=y.object({taskMetadata:K}),Ao=y.object({taskMetadata:K}),Do=y.object({taskId:y.string(),ulid:y.string(),contextSize:y.number(),compactionStrategy:y.string(),previousApiReqIndex:y.number(),tokensIn:y.number(),tokensOut:y.number(),tokensInCache:y.number(),tokensOutCache:y.number(),deletedRangeStart:y.number(),deletedRangeEnd:y.number(),contextJsonPath:y.string(),contextRawPath:y.string()}),xn=y.object({clineVersion:y.string(),hookName:cn,timestamp:y.string(),taskId:y.string(),sessionContext:y.object({rootSessionId:y.string().optional(),hookLogPath:y.string().optional()}).optional(),workspaceRoots:y.array(y.string()),workspaceInfo:y.custom().optional(),userId:y.string(),agent_id:y.string(),parent_agent_id:y.string().nullable(),iteration:y.number().optional(),reason:y.string().optional(),tool_call:y.object({id:y.string(),name:y.string(),input:y.unknown()}).optional(),tool_result:y.custom().optional(),turn:y.unknown().optional(),error:y.object({name:y.string(),message:y.string(),stack:y.string().optional()}).optional(),preToolUse:qo.optional(),postToolUse:ko.optional(),userPromptSubmit:Uo.optional(),taskStart:Yo.optional(),taskResume:Lo.optional(),taskCancel:Fo.optional(),taskComplete:Ao.optional(),preCompact:Do.optional()}).passthrough();function Go(n){let f=xn.safeParse(n);if(!f.success)return;return f.data}var Ld="v1",Fd="v1",Ad="v1",Dd=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function p(n){let f=/^v(\d+)$/.exec(n?.trim()??"");if(!f)return;return Number.parseInt(f[1]??"",10)}function Gd(n,f="v1"){let o=p(n.protocolVersion),w=p(f);if(o===void 0||w===void 0)return{compatible:!1,reason:"missing_protocol"};let $=p(n.minClientProtocolVersion)??o,R=p(n.maxClientProtocolVersion)??o;return w>=$&&w<=R?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var Zo=30000,Zd=5000;function Xo(n){switch(n){case"run.start":case"session.send_input":return null;default:return Zo}}function Xd(n,f){return f===void 0?Xo(n):f}var Jo=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],Qo=new Set(Jo);function Jd(n){return typeof n==="string"&&Qo.has(n)}var Qd="tool_executor.",Bd="custom_tool.",sd="hook.",Vd="compaction.compact",Pd="checkpoint.create",Wd="mistake_limit.decide",jd="user_instructions.snapshot";function rn(n,f){return`<file_content path="${n}">
2
2
  ${f}
3
- </file_content>`}function Xo(n,f="act"){return`<user_input mode="${f}">${n}</user_input>`}function Jo(n,f){return`<user_command slash="${f}">${n}</user_command>`}function Qo(n,f){let o=n.trim(),w=new RegExp(`^<${f}\\b([^>]*)>([\\s\\S]*?)<\\/${f}>$`,"i").exec(o);if(!w)return;return{attrs:w[1]??"",content:w[2]??""}}function Bo(n,f){return new RegExp(`${f}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function xn(n){if(!n?.trim())return;let f=Qo(n,"user_command");if(!f)return;let o=Bo(f.attrs,"slash");if(!o)return;return{slash:o,content:f.content.trim()}}function un(n){if(!n?.trim())return"";let f=n.trim();for(let o of["user_input","user_command"]){let w=vn(f,o);f=(w!==f?w:f.replace(new RegExp(`<${o}[^>]*>`,"g"),"")).trim()}return f}function so(n){let f=un(n),o=xn(n);if(!o)return f;if(o.slash.toLowerCase()==="team"){let $=f.toLowerCase().startsWith("spawn a team of agents for the following task:")?f.slice(46).trim():f;return $?`/team ${$}`:"/team"}return f?`/${o.slash} ${f}`:`/${o.slash}`}function vn(n,f){if(!n?.trim())return"";if(!f)return n;let o=new RegExp(`<${f}\\b[^>]*>([\\s\\S]*?)</${f}>`,"g");return n.replace(o,"$1")}function X(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var rn="ERROR: EMPTY CONTENT";function mn(n,f){let o=n[n.length-1];if(f.role==="tool"&&o?.role==="tool"&&Array.isArray(o.content)&&Array.isArray(f.content)){o.content.push(...f.content);return}n.push(f)}function Vo(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((f)=>{if(!f||typeof f!=="object")return!1;let o=f;if(o.type==="text")return typeof o.text==="string";if(o.type==="image")return typeof o.data==="string"&&typeof o.mediaType==="string";return!1})}function dn(n,f){if(n==null||typeof n!=="object")return n;if(Array.isArray(n)){let $=[];for(let R of n){if(R&&typeof R==="object"){let E=R;if(E.type==="image"&&typeof E.data==="string"&&typeof E.mediaType==="string"){f.push({type:"image",data:E.data,mediaType:E.mediaType});continue}if(E.type==="text"&&typeof E.text==="string"){$.push(E.text);continue}}$.push(dn(R,f))}return $}let o=n,w={};for(let[$,R]of Object.entries(o))w[$]=dn(R,f);return w}function i(n){if(typeof n==="string")return X(n);if(Array.isArray(n))return n.map((f)=>i(f));if(n!==null&&typeof n==="object"){let f=n,o={};for(let[w,$]of Object.entries(f))o[w]=i($);return o}return n}function pn(n,f=!1){if(typeof n==="string")return{type:f?"error-text":"text",value:X(n)};if(!f&&Vo(n))return{type:"content",value:n.map((o)=>o.type==="image"?{type:"image-data",data:o.data,mediaType:o.mediaType}:{type:"text",text:X(o.text)})};if(!f&&n!==null&&typeof n==="object"){let o=[],w=dn(n,o);if(o.length>0)return{type:"content",value:[{type:"text",text:typeof w==="string"?X(w):JSON.stringify(i(w))},...o.map((R)=>({type:"image-data",data:R.data,mediaType:R.mediaType}))]}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:f?"error-json":"json",value:i(n)};return{type:f?"error-text":"text",value:X(String(n))}}function Po(n,f,o){let w=o?.assistantToolCallArgKey??"input",$=[];if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)$.push({role:"system",content:typeof n==="string"?X(n):n});for(let R of f){let E=R.content;if(typeof E==="string"){if(E.trim().length===0){$.push({role:R.role,content:[{type:"text",text:rn}]});continue}$.push({role:R.role,content:X(E)});continue}let Y=[],G=[];if(E.length===0){$.push({role:R.role,content:[{type:"text",text:rn}]});continue}for(let I of E)switch(I.type){case"text":Y.push({type:"text",text:X(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"reasoning":Y.push({type:"reasoning",text:X(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"image":Y.push({type:"image",image:I.image,mediaType:I.mediaType});break;case"file":Y.push({type:"text",text:gn(I.path,X(I.content))});break;case"tool-call":if(R.role==="assistant")Y.push({type:"tool-call",toolCallId:I.toolCallId,toolName:I.toolName,[w]:I.input,...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"tool-result":{G.push({type:"tool-result",toolCallId:I.toolCallId,toolName:I.toolName,output:pn(I.output,I.isError??!1)});break}}if(Y.length>0)mn($,{role:R.role,content:Y});if(G.length>0)mn($,{role:"tool",content:G})}return $}var S={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},Wo=void 0;function jo(n,f){if(typeof n==="string"&&n.toLowerCase()in S)return n.toLowerCase();return f?void 0:void 0}function tn(n,f){let o=typeof n==="string"?n.toLowerCase():void 0;if(o&&o in S)return S[o];if(f?.fallbackEffort)return S[f.fallbackEffort];return}function lo(n){let f=tn(n.effort,{fallbackEffort:n.fallbackEffort});if(f===void 0)return;if(f<=0)return 0;let o=n.minimumBudget??1;if(n.maxBudget<o)return;let w=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(w*f),o),n.maxBudget)}var bo={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"};function Ko(n){return n instanceof Error?{name:n.name,message:n.message}:n}function To(n){return Math.max(1,Math.ceil(n/3))}var No={debug:()=>{},log:()=>{},error:()=>{}};class P extends Error{constructor(n,f){super(`${n} at position ${f}`);this.position=f}}function en(n){return/^[0-9A-Fa-f]$/.test(n)}function j(n){return n>="0"&&n<="9"}function an(n){return n>=" "}function h(n){return`,:[]/{}()
3
+ </file_content>`}function Bo(n,f="act"){return`<user_input mode="${f}">${n}</user_input>`}function so(n,f){return`<user_command slash="${f}">${n}</user_command>`}function Vo(n,f){let o=n.trim(),w=new RegExp(`^<${f}\\b([^>]*)>([\\s\\S]*?)<\\/${f}>$`,"i").exec(o);if(!w)return;return{attrs:w[1]??"",content:w[2]??""}}function Po(n,f){return new RegExp(`${f}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function mn(n){if(!n?.trim())return;let f=Vo(n,"user_command");if(!f)return;let o=Po(f.attrs,"slash");if(!o)return;return{slash:o,content:f.content.trim()}}function un(n){if(!n?.trim())return"";let f=n.trim();for(let o of["user_input","user_command"]){let w=vn(f,o);f=(w!==f?w:f.replace(new RegExp(`<${o}[^>]*>`,"g"),"")).trim()}return f}function Wo(n){let f=un(n),o=mn(n);if(!o)return f;if(o.slash.toLowerCase()==="team"){let $=f.toLowerCase().startsWith("spawn a team of agents for the following task:")?f.slice(46).trim():f;return $?`/team ${$}`:"/team"}return f?`/${o.slash} ${f}`:`/${o.slash}`}function vn(n,f){if(!n?.trim())return"";if(!f)return n;let o=new RegExp(`<${f}\\b[^>]*>([\\s\\S]*?)</${f}>`,"g");return n.replace(o,"$1")}function X(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var dn="ERROR: EMPTY CONTENT";function pn(n,f){let o=n[n.length-1];if(f.role==="tool"&&o?.role==="tool"&&Array.isArray(o.content)&&Array.isArray(f.content)){o.content.push(...f.content);return}n.push(f)}function jo(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((f)=>{if(!f||typeof f!=="object")return!1;let o=f;if(o.type==="text")return typeof o.text==="string";if(o.type==="image")return typeof o.data==="string"&&typeof o.mediaType==="string";return!1})}function gn(n,f){if(n==null||typeof n!=="object")return n;if(Array.isArray(n)){let $=[];for(let R of n){if(R&&typeof R==="object"){let E=R;if(E.type==="image"&&typeof E.data==="string"&&typeof E.mediaType==="string"){f.push({type:"image",data:E.data,mediaType:E.mediaType});continue}if(E.type==="text"&&typeof E.text==="string"){$.push(E.text);continue}}$.push(gn(R,f))}return $}let o=n,w={};for(let[$,R]of Object.entries(o))w[$]=gn(R,f);return w}function i(n){if(typeof n==="string")return X(n);if(Array.isArray(n))return n.map((f)=>i(f));if(n!==null&&typeof n==="object"){let f=n,o={};for(let[w,$]of Object.entries(f))o[w]=i($);return o}return n}function tn(n,f=!1){if(typeof n==="string")return{type:f?"error-text":"text",value:X(n)};if(!f&&jo(n))return{type:"content",value:n.map((o)=>o.type==="image"?{type:"image-data",data:o.data,mediaType:o.mediaType}:{type:"text",text:X(o.text)})};if(!f&&n!==null&&typeof n==="object"){let o=[],w=gn(n,o);if(o.length>0)return{type:"content",value:[{type:"text",text:typeof w==="string"?X(w):JSON.stringify(i(w))},...o.map((R)=>({type:"image-data",data:R.data,mediaType:R.mediaType}))]}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:f?"error-json":"json",value:i(n)};return{type:f?"error-text":"text",value:X(String(n))}}function bo(n,f,o){let w=o?.assistantToolCallArgKey??"input",$=[];if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)$.push({role:"system",content:typeof n==="string"?X(n):n});for(let R of f){let E=R.content;if(typeof E==="string"){if(E.trim().length===0){$.push({role:R.role,content:[{type:"text",text:dn}]});continue}$.push({role:R.role,content:X(E)});continue}let Y=[],G=[];if(E.length===0){$.push({role:R.role,content:[{type:"text",text:dn}]});continue}for(let q of E)switch(q.type){case"text":Y.push({type:"text",text:X(q.text),...q.providerOptions?{providerOptions:q.providerOptions}:{}});break;case"reasoning":Y.push({type:"reasoning",text:X(q.text),...q.providerOptions?{providerOptions:q.providerOptions}:{}});break;case"image":Y.push({type:"image",image:q.image,mediaType:q.mediaType});break;case"file":Y.push({type:"text",text:rn(q.path,X(q.content))});break;case"tool-call":if(R.role==="assistant")Y.push({type:"tool-call",toolCallId:q.toolCallId,toolName:q.toolName,[w]:q.input,...q.providerOptions?{providerOptions:q.providerOptions}:{}});break;case"tool-result":{G.push({type:"tool-result",toolCallId:q.toolCallId,toolName:q.toolName,output:tn(q.output,q.isError??!1)});break}}if(Y.length>0)pn($,{role:R.role,content:Y});if(G.length>0)pn($,{role:"tool",content:G})}return $}var S={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},Ko=void 0;function lo(n,f){if(typeof n==="string"&&n.toLowerCase()in S)return n.toLowerCase();return f?void 0:void 0}function en(n,f){let o=typeof n==="string"?n.toLowerCase():void 0;if(o&&o in S)return S[o];if(f?.fallbackEffort)return S[f.fallbackEffort];return}function To(n){let f=en(n.effort,{fallbackEffort:n.fallbackEffort});if(f===void 0)return;if(f<=0)return 0;let o=n.minimumBudget??1;if(n.maxBudget<o)return;let w=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(w*f),o),n.maxBudget)}var Oo={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"};function No(n){return n instanceof Error?{name:n.name,message:n.message}:n}function Co(n){return Math.max(1,Math.ceil(n/3))}var Mo={debug:()=>{},log:()=>{},error:()=>{}};class P extends Error{constructor(n,f){super(`${n} at position ${f}`);this.position=f}}function an(n){return/^[0-9A-Fa-f]$/.test(n)}function j(n){return n>="0"&&n<="9"}function zn(n){return n>=" "}function h(n){return`,:[]/{}()
4
4
  +`.includes(n)}function wn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"}function $n(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"||n>="0"&&n<="9"}var Rn=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,yn=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function _n(n){return`,[]/{}
5
- +`.includes(n)}function En(n){return c(n)||Co.test(n)}var Co=/^[[{\w-]$/;function zn(n){return n===`
6
- `||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function W(n,f){let o=n.charCodeAt(f);return o===32||o===10||o===9||o===13}function nf(n,f){let o=n.charCodeAt(f);return o===32||o===9||o===13}function ff(n,f){let o=n.charCodeAt(f);return o===160||o===6158||o>=8192&&o<=8203||o===8239||o===8287||o===12288||o===65279}function c(n){return qn(n)||t(n)}function qn(n){return n==='"'||n==="“"||n==="”"}function Hn(n){return n==='"'}function t(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function In(n){return n==="'"}function C(n,f){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,w=n.lastIndexOf(f);return w!==-1?n.substring(0,w)+(o?"":n.substring(w+1)):n}function Z(n,f){let o=n.length;if(!W(n,o-1))return n+f;while(W(n,o-1))o--;return n.substring(0,o)+f+n.substring(o)}function of(n,f,o){return n.substring(0,f)+n.substring(f+o)}function gf(n){return/[,\n][ \t\r]*$/.test(n)}var Mo={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},Oo={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
7
- `,r:"\r",t:"\t"};function kn(n){let f=0,o="";if(I(["```","[```","{```"]),!R())mf();I(["```","```]","```}"]);let $=K(",");if($)E();if(En(n[f])&&gf(o)){if(!$)o=Z(o,",");hf()}else if($)o=C(o,",");while(n[f]==="}"||n[f]==="]")f++,E();if(f>=n.length)return o;vf();function R(){E();let _=Of()||Sf()||T()||D()||cf()||Jn(!1)||xf();return E(),_}function E(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,H=f,k=Y(_);do if(k=G(),k)k=Y(_);while(k);return f>H}function Y(_){let H=_?W:nf,k="";while(!0)if(H(n,f))k+=n[f],f++;else if(ff(n,f))k+=" ",f++;else break;if(k.length>0)return o+=k,!0;return!1}function G(){if(n[f]==="/"&&n[f+1]==="*"){while(f<n.length&&!So(n,f))f++;return f+=2,!0}if(n[f]==="/"&&n[f+1]==="/"){while(f<n.length&&n[f]!==`
8
- `)f++;return!0}return!1}function I(_){if(x(_)){if(wn(n[f]))while(f<n.length&&$n(n[f]))f++;return E(),!0}return!1}function x(_){Y(!0);for(let H of _){let k=f+H.length;if(n.slice(f,k)===H)return f=k,!0}return!1}function K(_){if(n[f]===_)return o+=n[f],f++,!0;return!1}function s(_){if(n[f]===_)return f++,!0;return!1}function Mf(){return s("\\")}function Zn(){if(E(),n[f]==="."&&n[f+1]==="."&&n[f+2]===".")return f+=3,E(),s(","),!0;return!1}function Of(){if(n[f]==="{"){if(o+="{",f++,E(),s(","))E();let _=!0;while(f<n.length&&n[f]!=="}"){let H;if(!_){if(H=K(","),!H)o=Z(o,",");E()}else H=!0,_=!1;if(Zn(),!(T()||Jn(!0))){if(n[f]==="}"||n[f]==="{"||n[f]==="]"||n[f]==="["||n[f]===void 0)o=C(o,",");else pf();break}E();let v=K(":"),l=f>=n.length;if(!v)if(En(n[f])||l)o=Z(o,":");else Bn();if(!R())if(v||l)o+="null";else Bn()}if(n[f]==="}")o+="}",f++;else o=Z(o,"}");return!0}return!1}function Sf(){if(n[f]==="["){if(o+="[",f++,E(),s(","))E();let _=!0;while(f<n.length&&n[f]!=="]"){if(!_){if(!K(","))o=Z(o,",")}else _=!1;if(Zn(),!R()){o=C(o,",");break}}if(n[f]==="]")o+="]",f++;else o=Z(o,"]");return!0}return!1}function hf(){let _=!0,H=!0;while(H){if(!_){if(!K(","))o=Z(o,",")}else _=!1;H=R()}if(!H)o=C(o,",");o=`[
5
+ +`.includes(n)}function En(n){return c(n)||So.test(n)}var So=/^[[{\w-]$/;function nf(n){return n===`
6
+ `||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function W(n,f){let o=n.charCodeAt(f);return o===32||o===10||o===9||o===13}function ff(n,f){let o=n.charCodeAt(f);return o===32||o===9||o===13}function of(n,f){let o=n.charCodeAt(f);return o===160||o===6158||o>=8192&&o<=8203||o===8239||o===8287||o===12288||o===65279}function c(n){return Hn(n)||t(n)}function Hn(n){return n==='"'||n==="“"||n==="”"}function In(n){return n==='"'}function t(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function qn(n){return n==="'"}function N(n,f){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,w=n.lastIndexOf(f);return w!==-1?n.substring(0,w)+(o?"":n.substring(w+1)):n}function Z(n,f){let o=n.length;if(!W(n,o-1))return n+f;while(W(n,o-1))o--;return n.substring(0,o)+f+n.substring(o)}function rf(n,f,o){return n.substring(0,f)+n.substring(f+o)}function df(n){return/[,\n][ \t\r]*$/.test(n)}var ho={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},co={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
7
+ `,r:"\r",t:"\t"};function kn(n){let f=0,o="";if(q(["```","[```","{```"]),!R())tf();q(["```","```]","```}"]);let $=l(",");if($)E();if(En(n[f])&&df(o)){if(!$)o=Z(o,",");xf()}else if($)o=N(o,",");while(n[f]==="}"||n[f]==="]")f++,E();if(f>=n.length)return o;pf();function R(){E();let _=hf()||cf()||T()||A()||mf()||Jn(!1)||uf();return E(),_}function E(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,I=f,k=Y(_);do if(k=G(),k)k=Y(_);while(k);return f>I}function Y(_){let I=_?W:ff,k="";while(!0)if(I(n,f))k+=n[f],f++;else if(of(n,f))k+=" ",f++;else break;if(k.length>0)return o+=k,!0;return!1}function G(){if(n[f]==="/"&&n[f+1]==="*"){while(f<n.length&&!xo(n,f))f++;return f+=2,!0}if(n[f]==="/"&&n[f+1]==="/"){while(f<n.length&&n[f]!==`
8
+ `)f++;return!0}return!1}function q(_){if(x(_)){if(wn(n[f]))while(f<n.length&&$n(n[f]))f++;return E(),!0}return!1}function x(_){Y(!0);for(let I of _){let k=f+I.length;if(n.slice(f,k)===I)return f=k,!0}return!1}function l(_){if(n[f]===_)return o+=n[f],f++,!0;return!1}function s(_){if(n[f]===_)return f++,!0;return!1}function Sf(){return s("\\")}function Zn(){if(E(),n[f]==="."&&n[f+1]==="."&&n[f+2]===".")return f+=3,E(),s(","),!0;return!1}function hf(){if(n[f]==="{"){if(o+="{",f++,E(),s(","))E();let _=!0;while(f<n.length&&n[f]!=="}"){let I;if(!_){if(I=l(","),!I)o=Z(o,",");E()}else I=!0,_=!1;if(Zn(),!(T()||Jn(!0))){if(n[f]==="}"||n[f]==="{"||n[f]==="]"||n[f]==="["||n[f]===void 0)o=N(o,",");else ef();break}E();let u=l(":"),b=f>=n.length;if(!u)if(En(n[f])||b)o=Z(o,":");else Bn();if(!R())if(u||b)o+="null";else Bn()}if(n[f]==="}")o+="}",f++;else o=Z(o,"}");return!0}return!1}function cf(){if(n[f]==="["){if(o+="[",f++,E(),s(","))E();let _=!0;while(f<n.length&&n[f]!=="]"){if(!_){if(!l(","))o=Z(o,",")}else _=!1;if(Zn(),!R()){o=N(o,",");break}}if(n[f]==="]")o+="]",f++;else o=Z(o,"]");return!0}return!1}function xf(){let _=!0,I=!0;while(I){if(!_){if(!l(","))o=Z(o,",")}else _=!1;I=R()}if(!I)o=N(o,",");o=`[
9
9
  ${o}
10
- ]`}function T(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,H=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,k=n[f]==="\\";if(k)f++,k=!0;if(c(n[f])){let v=Hn(n[f])?Hn:In(n[f])?In:t(n[f])?t:qn,l=f,O=o.length,L='"';f++;while(!0){if(f>=n.length){let A=Qn(f-1);if(!_&&h(n.charAt(A)))return f=l,o=o.substring(0,O),T(!0);return L=Z(L,'"'),o+=L,!0}if(f===H)return L=Z(L,'"'),o+=L,!0;if(v(n[f])){let A=f,nn=L.length;if(L+='"',f++,o+=L,E(!1),_||f>=n.length||h(n[f])||c(n[f])||j(n[f]))return Xn(),!0;let V=Qn(A-1),sn=n.charAt(V);if(sn===",")return f=l,o=o.substring(0,O),T(!1,V);if(h(sn))return f=l,o=o.substring(0,O),T(!0);o=o.substring(0,O),f=A+1,L=`${L.substring(0,nn)}\\${L.substring(nn)}`}else if(_&&_n(n[f])){if(n[f-1]===":"&&Rn.test(n.substring(l+1,f+2)))while(f<n.length&&yn.test(n[f]))L+=n[f],f++;return L=Z(L,'"'),o+=L,Xn(),!0}else if(n[f]==="\\"){let A=n.charAt(f+1);if(Oo[A]!==void 0)L+=n.slice(f,f+2),f+=2;else if(A==="u"){let V=2;while(V<6&&en(n[f+V]))V++;if(V===6)L+=n.slice(f,f+6),f+=6;else if(f+V>=n.length)f=n.length;else tf()}else if(A===`
11
- `)L+="\\n",f+=2;else L+=A,f+=2}else{let A=n.charAt(f);if(A==='"'&&n[f-1]!=="\\")L+=`\\${A}`,f++;else if(zn(A))L+=Mo[A],f++;else{if(!an(A))uf(A);L+=A,f++}}if(k)Mf()}}return!1}function Xn(){let _=!1;E();while(n[f]==="+"){_=!0,f++,E(),o=C(o,'"',!0);let H=o.length;if(T())o=of(o,H,1);else o=Z(o,'"')}return _}function D(){let _=f;if(n[f]==="-"){if(f++,u())return z(_),!0;if(!j(n[f]))return f=_,!1}while(j(n[f]))f++;if(n[f]==="."){if(f++,u())return z(_),!0;if(!j(n[f]))return f=_,!1;while(j(n[f]))f++}if(n[f]==="e"||n[f]==="E"){if(f++,n[f]==="-"||n[f]==="+")f++;if(u())return z(_),!0;if(!j(n[f]))return f=_,!1;while(j(n[f]))f++}if(!u())return f=_,!1;if(f>_){let H=n.slice(_,f),k=/^0\d/.test(H);return o+=k?`"${H}"`:H,!0}return!1}function cf(){return N("true","true")||N("false","false")||N("null","null")||N("True","true")||N("False","false")||N("None","null")}function N(_,H){if(n.slice(f,f+_.length)===_)return o+=H,f+=_.length,!0;return!1}function Jn(_){let H=f;if(wn(n[f])){while(f<n.length&&$n(n[f]))f++;let k=f;while(W(n,k))k++;if(n[k]==="("){if(f=k+1,R(),n[f]===")"){if(f++,n[f]===";")f++}return!0}}while(f<n.length&&!_n(n[f])&&!c(n[f])&&(!_||n[f]!==":"))f++;if(n[f-1]===":"&&Rn.test(n.substring(H,f+2)))while(f<n.length&&yn.test(n[f]))f++;if(f>H){while(W(n,f-1)&&f>0)f--;let k=n.slice(H,f);if(o+=k==="undefined"?"null":JSON.stringify(k),n[f]==='"')f++;return!0}}function xf(){if(n[f]==="/"){let _=f;f++;while(f<n.length&&(n[f]!=="/"||n[f-1]==="\\"))f++;return f++,o+=JSON.stringify(n.substring(_,f)),!0}}function Qn(_){let H=_;while(H>0&&W(n,H))H--;return H}function u(){return f>=n.length||h(n[f])||W(n,f)}function z(_){o+=`${n.slice(_,f)}0`}function uf(_){throw new P(`Invalid character ${JSON.stringify(_)}`,f)}function vf(){throw new P(`Unexpected character ${JSON.stringify(n[f])}`,f)}function mf(){throw new P("Unexpected end of json string",n.length)}function pf(){throw new P("Object key expected",f)}function Bn(){throw new P("Colon expected",f)}function tf(){let _=n.slice(f,f+6);throw new P(`Invalid unicode character "${_}"`,f)}}function So(n,f){return n[f]==="*"&&n[f+1]==="/"}var ho=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function co(n){let f=n.match(ho);if(!f)return;let[,o,w]=f,$=w.trim();if(!$)return;let R=$[0];if(R==='"'||R==="{"||R==="["||$==="true"||$==="false"||$==="null"||Number.isFinite(Number($)))return;return JSON.parse(`{"${o}":${JSON.stringify($)}}`)}var xo=[(n)=>JSON.parse(n),(n)=>JSON.parse(kn(n)),co];function uo(n){if(typeof n!=="string")return n;let f=n.trimStart();if(f[0]!=="{"&&f[0]!=="[")return n;for(let o of xo)try{let w=o(f);if(w!==void 0)return w}catch{}return n}function vo(n){let f=new WeakSet;try{return JSON.stringify(n,(w,$)=>{if(typeof $==="bigint")return $.toString();if($&&typeof $==="object"){if(f.has($))return"[Circular]";f.add($)}return $})??"null"}catch{return String(n)}}function mo(n){try{return JSON.parse(n)}catch{return}}function po(n){let f=n.replaceAll("\\","/"),o=f.lastIndexOf("/");return(o>=0?f.slice(o+1):f).toLowerCase()}function io(n){return n==="win32"?"powershell":"/bin/bash"}function to(n,f){let o=po(n);if(o==="powershell"||o==="powershell.exe"||o==="pwsh"||o==="pwsh.exe")return["-NoProfile","-NonInteractive","-Command",f];if(o==="cmd"||o==="cmd.exe")return["/d","/s","/c",f];return["-c",f]}function eo(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function rf(n,f){if(n.length<=f)return n;return`${n.slice(0,f-1)}…`}function ao(n,f="/",o=100){if(!n||n.length<=o)return n||"";let w=n.split(f)?.shift()?.trim()?.slice(0,o-1);return w?`${w}…`:rf(n,o)}function zo(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function ng(n){if(!n)return"(unknown-date)";let f=new Date(n);if(Number.isNaN(f.getTime()))return n;return f.toLocaleString("en-US",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0})}function fg(n){let f=Math.max(0,Math.floor(n/1000)),o=Math.floor(f/86400),w=Math.floor(f%86400/3600),$=Math.floor(f%3600/60),R=f%60;if(o>0)return`${o}d ${w}h`;if(w>0)return`${w}h ${$}m`;if($>0)return`${$}m ${R}s`;return`${R}s`}import{z as df}from"zod";function og(n,f){let o=n.safeParse(f);if(!o.success)throw Error(df.prettifyError(o.error));return o.data}function Un(n){return df.toJSONSchema(n)}var wf=`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.
10
+ ]`}function T(){let _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,k=n[f]==="\\";if(k)f++,k=!0;if(c(n[f])){let u=In(n[f])?In:qn(n[f])?qn:t(n[f])?t:Hn,b=f,M=o.length,F='"';f++;while(!0){if(f>=n.length){let D=Qn(f-1);if(!_&&h(n.charAt(D)))return f=b,o=o.substring(0,M),T(!0);return F=Z(F,'"'),o+=F,!0}if(f===I)return F=Z(F,'"'),o+=F,!0;if(u(n[f])){let D=f,nn=F.length;if(F+='"',f++,o+=F,E(!1),_||f>=n.length||h(n[f])||c(n[f])||j(n[f]))return Xn(),!0;let V=Qn(D-1),sn=n.charAt(V);if(sn===",")return f=b,o=o.substring(0,M),T(!1,V);if(h(sn))return f=b,o=o.substring(0,M),T(!0);o=o.substring(0,M),f=D+1,F=`${F.substring(0,nn)}\\${F.substring(nn)}`}else if(_&&_n(n[f])){if(n[f-1]===":"&&Rn.test(n.substring(b+1,f+2)))while(f<n.length&&yn.test(n[f]))F+=n[f],f++;return F=Z(F,'"'),o+=F,Xn(),!0}else if(n[f]==="\\"){let D=n.charAt(f+1);if(co[D]!==void 0)F+=n.slice(f,f+2),f+=2;else if(D==="u"){let V=2;while(V<6&&an(n[f+V]))V++;if(V===6)F+=n.slice(f,f+6),f+=6;else if(f+V>=n.length)f=n.length;else af()}else if(D===`
11
+ `)F+="\\n",f+=2;else F+=D,f+=2}else{let D=n.charAt(f);if(D==='"'&&n[f-1]!=="\\")F+=`\\${D}`,f++;else if(nf(D))F+=ho[D],f++;else{if(!zn(D))vf(D);F+=D,f++}}if(k)Sf()}}return!1}function Xn(){let _=!1;E();while(n[f]==="+"){_=!0,f++,E(),o=N(o,'"',!0);let I=o.length;if(T())o=rf(o,I,1);else o=Z(o,'"')}return _}function A(){let _=f;if(n[f]==="-"){if(f++,m())return z(_),!0;if(!j(n[f]))return f=_,!1}while(j(n[f]))f++;if(n[f]==="."){if(f++,m())return z(_),!0;if(!j(n[f]))return f=_,!1;while(j(n[f]))f++}if(n[f]==="e"||n[f]==="E"){if(f++,n[f]==="-"||n[f]==="+")f++;if(m())return z(_),!0;if(!j(n[f]))return f=_,!1;while(j(n[f]))f++}if(!m())return f=_,!1;if(f>_){let I=n.slice(_,f),k=/^0\d/.test(I);return o+=k?`"${I}"`:I,!0}return!1}function mf(){return O("true","true")||O("false","false")||O("null","null")||O("True","true")||O("False","false")||O("None","null")}function O(_,I){if(n.slice(f,f+_.length)===_)return o+=I,f+=_.length,!0;return!1}function Jn(_){let I=f;if(wn(n[f])){while(f<n.length&&$n(n[f]))f++;let k=f;while(W(n,k))k++;if(n[k]==="("){if(f=k+1,R(),n[f]===")"){if(f++,n[f]===";")f++}return!0}}while(f<n.length&&!_n(n[f])&&!c(n[f])&&(!_||n[f]!==":"))f++;if(n[f-1]===":"&&Rn.test(n.substring(I,f+2)))while(f<n.length&&yn.test(n[f]))f++;if(f>I){while(W(n,f-1)&&f>0)f--;let k=n.slice(I,f);if(o+=k==="undefined"?"null":JSON.stringify(k),n[f]==='"')f++;return!0}}function uf(){if(n[f]==="/"){let _=f;f++;while(f<n.length&&(n[f]!=="/"||n[f-1]==="\\"))f++;return f++,o+=JSON.stringify(n.substring(_,f)),!0}}function Qn(_){let I=_;while(I>0&&W(n,I))I--;return I}function m(){return f>=n.length||h(n[f])||W(n,f)}function z(_){o+=`${n.slice(_,f)}0`}function vf(_){throw new P(`Invalid character ${JSON.stringify(_)}`,f)}function pf(){throw new P(`Unexpected character ${JSON.stringify(n[f])}`,f)}function tf(){throw new P("Unexpected end of json string",n.length)}function ef(){throw new P("Object key expected",f)}function Bn(){throw new P("Colon expected",f)}function af(){let _=n.slice(f,f+6);throw new P(`Invalid unicode character "${_}"`,f)}}function xo(n,f){return n[f]==="*"&&n[f+1]==="/"}var mo=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function uo(n){let f=n.match(mo);if(!f)return;let[,o,w]=f,$=w.trim();if(!$)return;let R=$[0];if(R==='"'||R==="{"||R==="["||$==="true"||$==="false"||$==="null"||Number.isFinite(Number($)))return;return JSON.parse(`{"${o}":${JSON.stringify($)}}`)}var vo=[(n)=>JSON.parse(n),(n)=>JSON.parse(kn(n)),uo];function po(n){if(typeof n!=="string")return n;let f=n.trimStart();if(f[0]!=="{"&&f[0]!=="[")return n;for(let o of vo)try{let w=o(f);if(w!==void 0)return w}catch{}return n}function io(n){let f=new WeakSet;try{return JSON.stringify(n,(w,$)=>{if(typeof $==="bigint")return $.toString();if($&&typeof $==="object"){if(f.has($))return"[Circular]";f.add($)}return $})??"null"}catch{return String(n)}}function to(n){try{return JSON.parse(n)}catch{return}}function eo(n){let f=n.replaceAll("\\","/"),o=f.lastIndexOf("/");return(o>=0?f.slice(o+1):f).toLowerCase()}function ao(n){return n==="win32"?"powershell":"/bin/bash"}function zo(n,f){let o=eo(n);if(o==="powershell"||o==="powershell.exe"||o==="pwsh"||o==="pwsh.exe")return["-NoProfile","-NonInteractive","-Command",f];if(o==="cmd"||o==="cmd.exe")return["/d","/s","/c",f];return["-c",f]}function nr(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function gf(n,f){if(n.length<=f)return n;return`${n.slice(0,f-1)}…`}function fr(n,f="/",o=100){if(!n||n.length<=o)return n||"";let w=n.split(f)?.shift()?.trim()?.slice(0,o-1);return w?`${w}…`:gf(n,o)}function or(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function rr(n){if(!n)return"(unknown-date)";let f=new Date(n);if(Number.isNaN(f.getTime()))return n;return f.toLocaleString("en-US",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0})}function dr(n){let f=Math.max(0,Math.floor(n/1000)),o=Math.floor(f/86400),w=Math.floor(f%86400/3600),$=Math.floor(f%3600/60),R=f%60;if(o>0)return`${o}d ${w}h`;if(w>0)return`${w}h ${$}m`;if($>0)return`${$}m ${R}s`;return`${R}s`}import{z as wf}from"zod";function gr(n,f){let o=n.safeParse(f);if(!o.success)throw Error(wf.prettifyError(o.error));return o.data}function Un(n){return wf.toJSONSchema(n)}var $f=`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.
@@ -41,7 +41,7 @@ When you have completed the task, please provide a summary of what you did and a
41
41
 
42
42
  If user asked a simple question without any coding context, answer it directly without using any tools.
43
43
  {{CLINE_RULES}}
44
- {{CLINE_METADATA}}`,$f=`You are Cline, a careful and helpful coding agent that works in the background.
44
+ {{CLINE_METADATA}}`,Rf=`You are Cline, a careful and helpful coding agent that works in the background.
45
45
  You are tasked to solve an issue reported by the user who you cannot communicate with directly.
46
46
  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.
47
47
 
@@ -69,8 +69,8 @@ IMPORTANT:
69
69
  - 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.
70
70
  - Response without the submit_and_exit tool call will considered not completed and the task will continue.
71
71
  {{CLINE_RULES}}
72
- {{CLINE_METADATA}}`;var Yn="# Workspace Configuration";function Rf(n,f,o){if(o?.trim()?.includes(Yn))return o.trim();let w=o||JSON.stringify({workspaces:{[n]:{hint:f||n.split("/").at(-1)||n}}},null,2);return`
72
+ {{CLINE_METADATA}}`;var Yn="# Workspace Configuration";function yf(n,f,o){if(o?.trim()?.includes(Yn))return o.trim();let w=o||JSON.stringify({workspaces:{[n]:{hint:f||n.split("/").at(-1)||n}}},null,2);return`
73
73
  ${Yn}
74
- ${w}`}function gg(n){let{ide:f="Terminal Shell",mode:o,platform:w="unknown",workspaceName:$,metadata:R,rules:E,overridePrompt:Y,providerId:G}=n,I=n.workspaceRoot??n.rootPath??"",x=G==="cline";if(Y?.trim()){let s=Y.trim();if(x&&R?.trim()&&!s.includes(Yn))return`${s}
74
+ ${w}`}function wr(n){let{ide:f="Terminal Shell",mode:o,platform:w="unknown",workspaceName:$,metadata:R,rules:E,overridePrompt:Y,providerId:G}=n,q=n.workspaceRoot??n.rootPath??"",x=G==="cline";if(Y?.trim()){let s=Y.trim();if(x&&R?.trim()&&!s.includes(Yn))return`${s}
75
75
 
76
- ${Rf(I,$,R)}`.trim();return s}return(o==="yolo"?$f:wf).replace("{{PLATFORM_NAME}}",w).replace("{{CWD}}",I).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",f).replace("{{CLINE_METADATA}}",x?Rf(I,$,R):"").replace("{{CLINE_RULES}}",E||"").trim()}var rg="remote://";import{z as r}from"zod";var yf=r.object({id:r.string(),temperature:r.number().optional(),isR1FormatRequired:r.boolean().optional(),maxTokens:r.number().optional(),contextWindow:r.number().optional(),inputPrice:r.number().optional(),outputPrice:r.number().optional(),supportsImages:r.boolean().optional()}),_f=r.object({models:r.array(yf).optional(),openAiBaseUrl:r.string().optional(),openAiHeaders:r.record(r.string(),r.string()).optional(),azureApiVersion:r.string().optional(),azureIdentity:r.boolean().optional()}),Ef=r.object({id:r.string(),thinkingBudgetTokens:r.number().optional()}),qf=r.object({name:r.string(),baseModelId:r.string(),thinkingBudgetTokens:r.number().optional()}),Hf=r.object({models:r.array(Ef).optional(),customModels:r.array(qf).optional(),awsRegion:r.string().optional(),awsUseCrossRegionInference:r.boolean().optional(),awsUseGlobalInference:r.boolean().optional(),awsBedrockUsePromptCache:r.boolean().optional(),awsBedrockEndpoint:r.string().optional()}),If=r.object({id:r.string()}),kf=r.object({models:r.array(If).optional()}),Uf=r.object({id:r.string(),thinkingBudgetTokens:r.number().optional()}),Yf=r.object({models:r.array(Uf).optional(),vertexProjectId:r.string().optional(),vertexRegion:r.string().optional()}),Ff=r.object({id:r.string(),thinkingBudgetTokens:r.number().optional(),promptCachingEnabled:r.boolean().optional()}),Lf=r.object({models:r.array(Ff).optional(),baseUrl:r.string().optional()}),Df=r.object({id:r.string(),thinkingBudgetTokens:r.number().optional()}),Af=r.object({models:r.array(Df).optional(),baseUrl:r.string().optional()}),dg=r.object({OpenAiCompatible:_f.optional(),AwsBedrock:Hf.optional(),Cline:kf.optional(),Vertex:Yf.optional(),LiteLLM:Lf.optional(),Anthropic:Af.optional()}),Gf=r.object({id:r.string()}),Zf=r.object({name:r.string(),url:r.string(),alwaysEnabled:r.boolean().optional(),headers:r.record(r.string(),r.string()).optional()}),Fn=r.object({alwaysEnabled:r.boolean(),name:r.string(),contents:r.string()}),e=r.object({bucket:r.string(),accessKeyId:r.string(),secretAccessKey:r.string(),region:r.string().optional(),endpoint:r.string().optional(),accountId:r.string().optional()}),Xf=r.object({enabled:r.boolean().optional(),type:r.union([r.literal("s3_access_keys"),r.literal("r2_access_keys"),r.literal("azure_access_keys")]).optional(),s3AccessSettings:e.optional(),r2AccessSettings:e.optional(),azureAccessSettings:e.optional()}),Jf=r.object({promptUploading:Xf.optional()}),wg=r.object({version:r.string(),providerSettings:dg.optional(),telemetryEnabled:r.boolean().optional(),kanbanEnabled:r.boolean().optional(),mcpMarketplaceEnabled:r.boolean().optional(),allowedMCPServers:r.array(Gf).optional(),remoteMCPServers:r.array(Zf).optional(),blockPersonalRemoteMCPServers:r.boolean().optional(),yoloModeAllowed:r.boolean().optional(),openTelemetryEnabled:r.boolean().optional(),openTelemetryMetricsExporter:r.string().optional(),openTelemetryLogsExporter:r.string().optional(),openTelemetryOtlpProtocol:r.string().optional(),openTelemetryOtlpEndpoint:r.string().optional(),openTelemetryOtlpHeaders:r.record(r.string(),r.string()).optional(),openTelemetryOtlpMetricsProtocol:r.string().optional(),openTelemetryOtlpMetricsEndpoint:r.string().optional(),openTelemetryOtlpMetricsHeaders:r.record(r.string(),r.string()).optional(),openTelemetryOtlpLogsProtocol:r.string().optional(),openTelemetryOtlpLogsEndpoint:r.string().optional(),openTelemetryOtlpLogsHeaders:r.record(r.string(),r.string()).optional(),openTelemetryMetricExportInterval:r.number().optional(),openTelemetryOtlpInsecure:r.boolean().optional(),openTelemetryLogBatchSize:r.number().optional(),openTelemetryLogBatchTimeout:r.number().optional(),openTelemetryLogMaxQueueSize:r.number().optional(),enterpriseTelemetry:Jf.optional(),globalRules:r.array(Fn).optional(),globalWorkflows:r.array(Fn).optional()}),$g=r.record(r.string(),r.string());var Rg=4317;var yg="127.0.0.1:4317";import Ln from"zod";var _g=Ln.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),Eg=Ln.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),qg=Ln.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var Hg="runtime.team.progress.v1",Ig="runtime.team.lifecycle.v1";var kg="CLINE_ENVIRONMENT",Ug="CLINE_ENVIRONMENT_OVERRIDE",Dn={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"}},Yg="production";function Qf(n){let f=n?.trim().toLowerCase();if(f==="production"||f==="staging"||f==="local")return f;return}function Fg(){if(typeof process>"u"||!process?.env)return{};return process.env}function Bf(n={}){let f=n.env??Fg();return Qf(f.CLINE_ENVIRONMENT_OVERRIDE)??Qf(f.CLINE_ENVIRONMENT)??"production"}function Lg(n){if(typeof n==="string")return Dn[n];return Dn[Bf(n)]}var Dg="sdk.error";function Ag(n,f){if(!n)return;n.capture({event:f.event??"sdk.error",properties:Vf(f)})}function Vf(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...Pf(n.error,n.messageLimit)}}function Pf(n,f=500){let o=Xg(n)?n:void 0,w=n instanceof Error?n:void 0,$=w?.message??sf(o?.message)??(typeof n==="string"?n:String(n)),R=Jg(o?.code),E=An(o?.status)??An(o?.statusCode)??An(o?.responseStatus);return{error_type:w?.name?.trim()||sf(o?.name)||w?.constructor?.name||"Error",error_message:Zg(Gg($),f),...R!==void 0?{error_code:R}:{},...E!==void 0?{error_status:E}:{}}}function Gg(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 Zg(n,f){let o=Math.max(1,Math.floor(f));return n.length>o?n.substring(0,o):n}function Xg(n){return typeof n==="object"&&n!==null}function sf(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function Jg(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function An(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function Wf(n){let f={};if(!n)return f;try{n.split(",").forEach((o)=>{let w=o.indexOf("=");if(w<=0)return;let $=decodeURIComponent(o.substring(0,w).trim()),R=decodeURIComponent(o.substring(w+1).trim());if(!$||!R)return;f[$]=R})}catch{}return f}function Qg(){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?Wf(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function jf(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 Bg(n={}){return{...Qg(),...n,metadata:jf(n.metadata)}}function lf(n){let f=n?.trim();return f?f:void 0}function sg(n,f){if(!n)return;let o=typeof n==="function"?n(f):n;if(!o)return;let w=lf(o.rootSessionId);if(!w)return;return{rootSessionId:w}}function Vg(n){return lf(n?.rootSessionId)}var Pg=(n)=>crypto.getRandomValues(new Uint8Array(n)),Wg=(n,f,o)=>{let w=256-256%n.length;if(w===256){let R=n.length-1;return(E=f)=>{if(!E)return"";let Y="";while(!0){let G=o(E),I=E;while(I--)if(Y+=n[G[I]&R],Y.length>=E)return Y}}}let $=Math.ceil(409.6*f/w);return(R=f)=>{if(!R)return"";let E="";while(!0){let Y=o($),G=$;while(G--)if(Y[G]<w){if(E+=n[Y[G]%n.length],E.length>=R)return E}}}},bf=(n,f=21)=>Wg(n,f|0,Pg);function jg(n="",f=""){let o=bf("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${o(5)}${f}`}var lg=["idle","running","pending","completed","failed","cancelled"];var Gn=["rules","skills","workflows","plugins"],Kf=Gn,bg=new Set(Gn);function Tf(n){return typeof n==="string"&&bg.has(n)}function Kg(n){if(!Array.isArray(n))return;let f=n.map((o)=>typeof o==="string"?o.trim():"").filter(Tf);return[...new Set(f)]}function Tg(n,f){return new Set(n??Kf).has(f)}import{z as J}from"zod";var Ng=J.object({rootPath:J.string().min(1),hint:J.string().min(1).optional(),associatedRemoteUrls:J.array(J.string().min(1)).optional(),latestGitCommitHash:J.string().min(1).optional(),latestGitBranchName:J.string().min(1).optional()}),Cg=J.object({currentWorkspacePath:J.string().min(1).optional(),workspaces:J.record(J.string().min(1),Ng)});function Dd(){return{workspaces:{}}}function Ad(n,f){let o={...n,workspaces:{...n.workspaces,[f.rootPath]:f}};if(!o.currentWorkspacePath)o.currentWorkspacePath=f.rootPath;return Cg.parse(o)}import{z as g}from"zod";var Mg=["current_state","boundary_analysis","interface_proposal"],Xd=3600000,Jd=240,Qd=400,Q=g.preprocess((n)=>n instanceof Date?n.toISOString():n,g.string().datetime()),M=g.enum(["pending","in_progress","blocked","completed"]),Nf=g.enum(["queued","running","completed","failed","cancelled","interrupted"]),a=g.enum(["draft","in_review","finalized"]),Og=g.object({agentId:g.string(),role:g.enum(["lead","teammate"]),description:g.string().optional(),status:g.enum(["idle","running","stopped"])}),Bd=g.object({agentId:g.string(),rolePrompt:g.string(),modelId:g.string().optional(),maxIterations:g.number().optional()});function F(n){return g.preprocess((f)=>f===null?void 0:f,n.optional())}var sd=g.object({agentId:g.string().min(1).describe("Teammate identifier"),rolePrompt:g.string().min(1).describe("System prompt describing teammate role")}).strict(),Vd=g.object({agentId:g.string().min(1).describe("Teammate identifier"),reason:F(g.string().min(1)).describe("Optional shutdown reason")}),Pd=g.object({}),Sg={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},Wd={create:["status","taskId","summary","reason"]},jd=g.object({action:g.enum(["create","list","claim","complete","block"]),title:F(g.string().min(1)).describe("Task title"),description:F(g.string().min(1)).describe("Task details"),dependsOn:F(g.array(g.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:F(g.string().min(1)).describe("Optional assignee"),status:F(g.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:F(g.string()).describe("Task ID"),summary:F(g.string().min(1)).describe("Completion summary"),reason:F(g.string().min(1)).describe("Blocking reason")}).superRefine((n,f)=>{for(let o of Sg[n.action]){if(n[o]!==void 0)continue;f.addIssue({code:"custom",path:[o],message:`Field "${o}" is required when action=${n.action}`})}}),ld=g.object({agentId:g.string().describe("Teammate agent ID"),task:g.string().min(1).describe("Task instructions for the teammate"),taskId:F(g.string()).describe("Optional shared task list ID"),runMode:F(g.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:F(g.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),bd=g.object({status:F(g.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:F(g.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:F(g.boolean()).describe("Include completed/failed runs (default true)")}),Kd=g.object({runId:g.string().min(1).describe("Run ID"),reason:F(g.string().min(1)).describe("Optional cancellation reason")}),Td=g.object({runId:F(g.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),Nd=g.object({toAgentId:g.string().min(1).describe("Recipient agent ID"),subject:g.string().min(1).describe("Message subject"),body:g.string().min(1).describe("Message body"),taskId:F(g.string().min(1)).describe("Optional task ID context")}),Cd=g.object({subject:g.string().min(1).describe("Message subject"),body:g.string().min(1).describe("Message body"),taskId:F(g.string().min(1)).describe("Optional task ID context")}),Md=g.object({unreadOnly:F(g.boolean()).describe("Only unread messages for read action (default true)")}),Od=g.object({kind:g.enum(["progress","handoff","blocked","decision","done","error"]),summary:g.string().min(1).describe("Update summary"),taskId:F(g.string().min(1)).describe("Optional task ID context"),evidence:F(g.array(g.string().min(1))).describe("Optional evidence links/snippets"),nextAction:F(g.string().min(1)).describe("Planned next step")}),Sd=g.object({}),hd=g.object({title:g.string().describe("Outcome title"),requiredSections:g.array(g.string()).default(Mg).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),cd=g.object({outcomeId:g.string().describe("Outcome ID"),section:g.string().describe("Section name"),sourceRunId:F(g.string()).describe("Optional source run ID"),content:g.string().describe("Section fragment content")}),xd=g.object({fragmentId:g.string().describe("Fragment ID"),approved:g.boolean().describe("Review decision")}),ud=g.object({outcomeId:g.string().describe("Outcome ID")}),vd=g.object({}),md=g.object({teamId:g.string(),teamName:g.string(),members:g.array(Og),taskCounts:g.record(M,g.number()),unreadMessages:g.number(),missionLogEntries:g.number(),activeRuns:g.number(),queuedRuns:g.number(),outcomeCounts:g.record(a,g.number())}),hg=g.object({id:g.string(),title:g.string(),description:g.string(),status:M,createdAt:Q,updatedAt:Q,createdBy:g.string(),assignee:g.string().optional(),dependsOn:g.array(g.string()),summary:g.string().optional(),isReady:g.boolean(),blockedBy:g.array(g.string())}),pd=g.discriminatedUnion("action",[g.object({action:g.literal("create"),taskId:g.string(),status:M,ignoredFields:g.array(g.string()).optional(),note:g.string().optional()}),g.object({action:g.literal("list"),tasks:g.array(hg)}),g.object({action:g.literal("claim"),taskId:g.string(),status:M,nextStep:g.string()}),g.object({action:g.literal("complete"),taskId:g.string(),status:M}),g.object({action:g.literal("block"),taskId:g.string(),status:M})]),id=g.object({agentId:g.string(),mode:g.enum(["sync","async"]),status:g.enum(["dispatched","running","queued","joined"]),dispatched:g.boolean(),message:g.string(),deduped:g.boolean().optional(),runId:g.string().optional(),text:g.string().optional(),iterations:g.number().optional()}),cg=g.object({textPreview:g.string(),iterations:g.number(),finishReason:g.string(),durationMs:g.number(),usage:g.object({inputTokens:g.number(),outputTokens:g.number(),cacheReadTokens:g.number().optional(),cacheWriteTokens:g.number().optional(),totalCost:g.number().optional()})}),td=g.object({id:g.string(),agentId:g.string(),taskId:g.string().optional(),status:Nf,messagePreview:g.string(),priority:g.number(),retryCount:g.number(),maxRetries:g.number(),nextAttemptAt:Q.optional(),continueConversation:g.boolean().optional(),startedAt:Q,endedAt:Q.optional(),leaseOwner:g.string().optional(),heartbeatAt:Q.optional(),lastProgressAt:Q.optional(),lastProgressMessage:g.string().optional(),currentActivity:g.string().optional(),error:g.string().optional(),resultSummary:cg.optional()}),ed=g.object({id:g.string(),teamId:g.string(),fromAgentId:g.string(),toAgentId:g.string(),subject:g.string(),body:g.string(),taskId:g.string().optional(),sentAt:Q,readAt:Q.optional()}),ad=g.object({id:g.string(),teamId:g.string(),title:g.string(),status:a,requiredSections:g.array(g.string()),createdBy:g.string(),createdAt:Q,finalizedAt:Q.optional()}),zd=g.object({outcomeId:g.string(),status:a,requiredSections:g.array(g.string())}),nw=g.object({agentId:g.string(),status:g.string()}),fw=g.object({runId:g.string(),status:Nf}),ow=g.object({id:g.string(),toAgentId:g.string()}),gw=g.object({delivered:g.number()}),rw=g.object({id:g.string()}),dw=g.object({status:g.string()}),ww=g.object({fragmentId:g.string(),status:g.string()}),$w=g.object({outcomeId:g.string(),status:a});var xg;((D)=>{D.TaskStart="task_start";D.TaskEnd="task_end";D.AgentEvent="agent_event";D.TeammateSpawned="teammate_spawned";D.TeammateShutdown="teammate_shutdown";D.TeamTaskUpdated="team_task_updated";D.TeamMessage="team_message";D.TeamMissionLog="team_mission_log";D.TeamTaskCompleted="team_task_completed";D.RunStarted="run_started";D.RunQueued="run_queued";D.RunProgress="run_progress";D.RunCompleted="run_completed";D.RunFailed="run_failed";D.RunCancelled="run_cancelled";D.RunInterrupted="run_interrupted";D.OutcomeCreated="outcome_created";D.OutcomeFragmentAttached="outcome_fragment_attached";D.OutcomeFragmentReviewed="outcome_fragment_reviewed";D.OutcomeFinalized="outcome_finalized"})(xg||={});import{z as ug}from"zod";function vg(n){let{$schema:f,...o}=n;if(typeof o.type==="string")return o;if("properties"in o||"required"in o||"additionalProperties"in o)return{type:"object",...o};for(let w of["oneOf","anyOf","allOf"]){let $=o[w];if(!Array.isArray($)||$.length===0)continue;if(w==="allOf"){if($.some((Y)=>Y&&typeof Y==="object"&&Y.type==="object"))return{type:"object",...o};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($.every((E)=>E&&typeof E==="object"&&E.type==="object"))return{type:"object",...o};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${w}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return o}function mg(n){let f=vg(n.inputSchema instanceof ug.ZodType?Un(n.inputSchema):n.inputSchema);return{name:n.name,description:n.description,inputSchema:f,lifecycle:n.lifecycle,timeoutMs:n.timeoutMs??30000,retryable:n.retryable??!0,maxRetries:n.maxRetries??3,execute:n.execute}}var Cf=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function pg(n){let f=n instanceof Error?n.message.toLowerCase():String(n);return Cf.some((o)=>f.includes(o))}export{Un as zodToJsonSchema,vn as xmlTagsRemoval,og as validateWithZod,Ad as upsertWorkspaceInfo,rf as truncateStr,ao as truncateSplit,pn as toAiSdkToolResultOutput,Ko as serializeAbortReason,X as sanitizeSurrogates,eo as sanitizeFileName,vo as safeJsonStringify,mo as safeJsonParse,Vg as resolveRootSessionId,tn as resolveReasoningEffortRatio,lo as resolveReasoningBudgetFromRatio,Lr as resolveHubCommandTimeoutMs,sg as resolveHookSessionContext,jo as resolveEffectiveReasoningEffort,Bf as resolveClineEnvironment,xn as parseUserCommandEnvelope,Kg as parseRuntimeConfigExtensions,uo as parseJsonStream,Lo as parseHookEventPayload,un as normalizeUserInput,Pf as normalizeSdkError,Sn as normalizePluginManifest,No as noopBasicLogger,zo as maskSecret,Tf as isRuntimeConfigExtensionKind,pg as isLikelyAuthError,Dr as isHubToolExecutorName,Yr as isHubProtocolCompatible,Tg as hasRuntimeConfigExtension,to as getShellArgs,io as getDefaultShell,Ao as getDefaultHubCommandTimeoutMs,Lg as getClineEnvironmentConfig,Xo as formatUserInputBlock,Jo as formatUserCommandBlock,fg as formatUptime,Po as formatMessagesForAiSdk,ng as formatHumanReadableDate,gn as formatFileContentBlock,so as formatDisplayUserInput,To as estimateTokens,Dd as emptyWorkspaceManifest,mg as createTool,jg as createSessionId,yo as createContributionRegistry,jf as createClineTelemetryServiceMetadata,Bg as createClineTelemetryServiceConfig,Ag as captureSdkError,Vf as buildSdkErrorProperties,gg as buildClineSystemPrompt,Cg as WorkspaceManifestSchema,Ng as WorkspaceInfoSchema,Yf as VertexSettingsSchema,Uf as VertexModelSchema,fn as ToolCallRecordSchema,ln as ThinkingConfigSchema,Bd as TeamTeammateSpecSchema,pd as TeamTaskToolResultSchema,hg as TeamTaskListItemToolResultSchema,jd as TeamTaskInputSchema,md as TeamStatusToolResultSchema,Pd as TeamStatusInputSchema,sd as TeamSpawnTeammateInputSchema,nw as TeamSimpleAgentStatusToolResultSchema,Vd as TeamShutdownTeammateInputSchema,ow as TeamSendMessageToolResultSchema,Nd as TeamSendMessageInputSchema,td as TeamRunToolSummarySchema,id as TeamRunTaskToolResultSchema,ld as TeamRunTaskInputSchema,cg as TeamRunResultSummarySchema,xd as TeamReviewOutcomeFragmentInputSchema,Md as TeamReadMailboxInputSchema,ad as TeamOutcomeToolResultSchema,ww as TeamOutcomeFragmentToolResultSchema,rw as TeamMissionLogToolResultSchema,Od as TeamMissionLogInputSchema,xg as TeamMessageType,ed as TeamMailboxMessageToolResultSchema,bd as TeamListRunsInputSchema,vd as TeamListOutcomesInputSchema,$w as TeamFinalizeOutcomeToolResultSchema,ud as TeamFinalizeOutcomeInputSchema,zd as TeamCreateOutcomeToolResultSchema,hd as TeamCreateOutcomeInputSchema,dw as TeamCleanupToolResultSchema,Sd as TeamCleanupInputSchema,fw as TeamCancelRunToolResultSchema,Kd as TeamCancelRunInputSchema,gw as TeamBroadcastToolResultSchema,Cd as TeamBroadcastInputSchema,Td as TeamAwaitRunsInputSchema,cd as TeamAttachOutcomeFragmentInputSchema,Wd as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,Qd as TEAM_RUN_TEXT_PREVIEW_LIMIT,Jd as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,Hg as TEAM_PROGRESS_EVENT_TYPE,Ig as TEAM_LIFECYCLE_EVENT_TYPE,Xd as TEAM_AWAIT_TIMEOUT_MS,lg as SESSION_STATUS_VALUES,Dg as SDK_ERROR_TELEMETRY_EVENT,e as S3AccessKeySettingsSchema,Zf as RemoteMCPServerSchema,wg as RemoteConfigSchema,no as ReasoningEffortSchema,Gn as RUNTIME_CONFIG_EXTENSION_KINDS,rg as REMOTE_URI_SCHEME,S as REASONING_EFFORT_RATIOS,Eg as ProviderProtocolSchema,qg as ProviderClientSchema,_g as ProviderCapabilitySchema,Xf as PromptUploadingSchema,_o as PLUGIN_FILE_EXTENSIONS,_f as OpenAiCompatibleSchema,yf as OpenAiCompatibleModelSchema,Wn as ModelStatusSchema,jn as ModelPricingSchema,bn as ModelMetadataSchema,m as ModelInfoSchema,Pn as ModelCapabilitySchema,Ir as MIN_CLIENT_HUB_PROTOCOL_VERSION,kr as MAX_CLIENT_HUB_PROTOCOL_VERSION,Lf as LiteLLMSchema,Ff as LiteLLMModelSchema,cn as HookEventPayloadSchema,hn as HookEventNameSchema,Br as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,Go as HUB_TOOL_EXECUTOR_NAMES,Ar as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,Qr as HUB_MISTAKE_LIMIT_CAPABILITY,Zr as HUB_HOOK_CAPABILITY_PREFIX,Do as HUB_DEFAULT_COMMAND_TIMEOUT_MS,Gr as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,Xr as HUB_COMPACTION_CAPABILITY,Fr as HUB_COMMAND_SLOW_LOG_MS,Jr as HUB_CHECKPOINT_CAPABILITY,Ur as HUB_CAPABILITIES,Fn as GlobalInstructionsFileSchema,Jf as EnterpriseTelemetrySchema,rn as EMPTY_CONTENT_TEXT,Kf as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,bo as DEFAULT_REQUEST_HEADERS,Wo as DEFAULT_REASONING_EFFORT,Mg as DEFAULT_OUTCOME_REQUIRED_SECTIONS,Yg as DEFAULT_CLINE_ENVIRONMENT,on as ContributionRegistry,go as ConnectorHookEventSchema,Kn as ConnectorHookEventNameSchema,Nn as ConnectorEventContextSchema,Tn as ConnectorEventActorSchema,fo as ConnectorAuthorizationRequestSchema,oo as ConnectorAuthorizationDecisionSchema,kf as ClineSettingsSchema,If as ClineModelSchema,Hr as CURRENT_HUB_PROTOCOL_VERSION,Ug as CLINE_ENVIRONMENT_OVERRIDE_ENV,kg as CLINE_ENVIRONMENT_ENV,Dn as CLINE_ENVIRONMENTS,Rg as CLINE_DEFAULT_RPC_PORT,yg as CLINE_DEFAULT_RPC_ADDRESS,Hf as AwsBedrockSettingsSchema,Ef as AwsBedrockModelSchema,qf as AwsBedrockCustomModelSchema,Vn as ApiFormatSchema,ef as ApiFormat,Af as AnthropicSchema,Df as AnthropicModelSchema,Gf as AllowedMCPServerSchema,zf as AgentUsageSchema,or as AgentResultSchema,af as AgentFinishReasonSchema,gr as AgentConfigSchema,Cf as AUTH_ERROR_PATTERNS,$g as APIKeySchema};
76
+ ${yf(q,$,R)}`.trim();return s}return(o==="yolo"?Rf:$f).replace("{{PLATFORM_NAME}}",w).replace("{{CWD}}",q).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",f).replace("{{CLINE_METADATA}}",x?yf(q,$,R):"").replace("{{CLINE_RULES}}",E||"").trim()}var $r="remote://";import{z as d}from"zod";var _f=d.object({id:d.string(),temperature:d.number().optional(),isR1FormatRequired:d.boolean().optional(),maxTokens:d.number().optional(),contextWindow:d.number().optional(),inputPrice:d.number().optional(),outputPrice:d.number().optional(),supportsImages:d.boolean().optional()}),Ef=d.object({models:d.array(_f).optional(),openAiBaseUrl:d.string().optional(),openAiHeaders:d.record(d.string(),d.string()).optional(),azureApiVersion:d.string().optional(),azureIdentity:d.boolean().optional()}),Hf=d.object({id:d.string(),thinkingBudgetTokens:d.number().optional()}),If=d.object({name:d.string(),baseModelId:d.string(),thinkingBudgetTokens:d.number().optional()}),qf=d.object({models:d.array(Hf).optional(),customModels:d.array(If).optional(),awsRegion:d.string().optional(),awsUseCrossRegionInference:d.boolean().optional(),awsUseGlobalInference:d.boolean().optional(),awsBedrockUsePromptCache:d.boolean().optional(),awsBedrockEndpoint:d.string().optional()}),kf=d.object({id:d.string()}),Uf=d.object({models:d.array(kf).optional()}),Yf=d.object({id:d.string(),thinkingBudgetTokens:d.number().optional()}),Lf=d.object({models:d.array(Yf).optional(),vertexProjectId:d.string().optional(),vertexRegion:d.string().optional()}),Ff=d.object({id:d.string(),thinkingBudgetTokens:d.number().optional(),promptCachingEnabled:d.boolean().optional()}),Af=d.object({models:d.array(Ff).optional(),baseUrl:d.string().optional()}),Df=d.object({id:d.string(),thinkingBudgetTokens:d.number().optional()}),Gf=d.object({models:d.array(Df).optional(),baseUrl:d.string().optional()}),Rr=d.object({OpenAiCompatible:Ef.optional(),AwsBedrock:qf.optional(),Cline:Uf.optional(),Vertex:Lf.optional(),LiteLLM:Af.optional(),Anthropic:Gf.optional()}),Zf=d.object({id:d.string()}),Xf=d.object({name:d.string(),url:d.string(),alwaysEnabled:d.boolean().optional(),headers:d.record(d.string(),d.string()).optional()}),Ln=d.object({alwaysEnabled:d.boolean(),name:d.string(),contents:d.string()}),e=d.object({bucket:d.string(),accessKeyId:d.string(),secretAccessKey:d.string(),region:d.string().optional(),endpoint:d.string().optional(),accountId:d.string().optional()}),Jf=d.object({enabled:d.boolean().optional(),type:d.union([d.literal("s3_access_keys"),d.literal("r2_access_keys"),d.literal("azure_access_keys")]).optional(),s3AccessSettings:e.optional(),r2AccessSettings:e.optional(),azureAccessSettings:e.optional()}),Qf=d.object({promptUploading:Jf.optional()}),yr=d.object({version:d.string(),providerSettings:Rr.optional(),telemetryEnabled:d.boolean().optional(),kanbanEnabled:d.boolean().optional(),mcpMarketplaceEnabled:d.boolean().optional(),allowedMCPServers:d.array(Zf).optional(),remoteMCPServers:d.array(Xf).optional(),blockPersonalRemoteMCPServers:d.boolean().optional(),yoloModeAllowed:d.boolean().optional(),openTelemetryEnabled:d.boolean().optional(),openTelemetryMetricsExporter:d.string().optional(),openTelemetryLogsExporter:d.string().optional(),openTelemetryOtlpProtocol:d.string().optional(),openTelemetryOtlpEndpoint:d.string().optional(),openTelemetryOtlpHeaders:d.record(d.string(),d.string()).optional(),openTelemetryOtlpMetricsProtocol:d.string().optional(),openTelemetryOtlpMetricsEndpoint:d.string().optional(),openTelemetryOtlpMetricsHeaders:d.record(d.string(),d.string()).optional(),openTelemetryOtlpLogsProtocol:d.string().optional(),openTelemetryOtlpLogsEndpoint:d.string().optional(),openTelemetryOtlpLogsHeaders:d.record(d.string(),d.string()).optional(),openTelemetryMetricExportInterval:d.number().optional(),openTelemetryOtlpInsecure:d.boolean().optional(),openTelemetryLogBatchSize:d.number().optional(),openTelemetryLogBatchTimeout:d.number().optional(),openTelemetryLogMaxQueueSize:d.number().optional(),enterpriseTelemetry:Qf.optional(),globalRules:d.array(Ln).optional(),globalWorkflows:d.array(Ln).optional()}),_r=d.record(d.string(),d.string());var Er=4317;var Hr="127.0.0.1:4317";import Fn from"zod";var Ir=Fn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),qr=Fn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),kr=Fn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var Ur="runtime.team.progress.v1",Yr="runtime.team.lifecycle.v1";var Lr="CLINE_ENVIRONMENT",Fr="CLINE_ENVIRONMENT_OVERRIDE",An={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"}},Ar="production";function Bf(n){let f=n?.trim().toLowerCase();if(f==="production"||f==="staging"||f==="local")return f;return}function sf(){if(typeof process>"u"||!process?.env)return{};return process.env}function Vf(){let n=sf();return Bf(n.CLINE_ENVIRONMENT_OVERRIDE)??Bf(n.CLINE_ENVIRONMENT)??"production"}function Dr(n){if(typeof n==="string")return An[n];return An[Vf()]}function Gr(n,f){if(f.CLINE_API_BASE_URL)n={...n,apiBaseUrl:f.CLINE_API_BASE_URL,mcpBaseUrl:`${f.CLINE_API_BASE_URL}/v1/mcp`};return n}function Zr(n){let f=Dr(n);return Gr(f,sf())}var Xr="sdk.error";function Jr(n,f){if(!n)return;n.capture({event:f.event??"sdk.error",properties:Wf(f)})}function Wf(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...jf(n.error,n.messageLimit)}}function jf(n,f=500){let o=sr(n)?n:void 0,w=n instanceof Error?n:void 0,$=w?.message??Pf(o?.message)??(typeof n==="string"?n:String(n)),R=Vr(o?.code),E=Dn(o?.status)??Dn(o?.statusCode)??Dn(o?.responseStatus);return{error_type:w?.name?.trim()||Pf(o?.name)||w?.constructor?.name||"Error",error_message:Br(Qr($),f),...R!==void 0?{error_code:R}:{},...E!==void 0?{error_status:E}:{}}}function Qr(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 Br(n,f){let o=Math.max(1,Math.floor(f));return n.length>o?n.substring(0,o):n}function sr(n){return typeof n==="object"&&n!==null}function Pf(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function Vr(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function Dn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function bf(n){let f={};if(!n)return f;try{n.split(",").forEach((o)=>{let w=o.indexOf("=");if(w<=0)return;let $=decodeURIComponent(o.substring(0,w).trim()),R=decodeURIComponent(o.substring(w+1).trim());if(!$||!R)return;f[$]=R})}catch{}return f}function Pr(){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?bf(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function Kf(n={}){return{extension_version:"unknown",cline_type:"unknown",platform:"terminal",platform_version:process?.version||"unknown",os_type:process?.platform||"unknown",os_version:process?.platform==="win32"?process?.env?.OS??"unknown":"unknown",...n}}function Wr(n={}){return{...Pr(),...n,metadata:Kf(n.metadata)}}function lf(n){let f=n?.trim();return f?f:void 0}function jr(n,f){if(!n)return;let o=typeof n==="function"?n(f):n;if(!o)return;let w=lf(o.rootSessionId);if(!w)return;return{rootSessionId:w}}function br(n){return lf(n?.rootSessionId)}var Kr=(n)=>crypto.getRandomValues(new Uint8Array(n)),lr=(n,f,o)=>{let w=256-256%n.length;if(w===256){let R=n.length-1;return(E=f)=>{if(!E)return"";let Y="";while(!0){let G=o(E),q=E;while(q--)if(Y+=n[G[q]&R],Y.length>=E)return Y}}}let $=Math.ceil(409.6*f/w);return(R=f)=>{if(!R)return"";let E="";while(!0){let Y=o($),G=$;while(G--)if(Y[G]<w){if(E+=n[Y[G]%n.length],E.length>=R)return E}}}},Tf=(n,f=21)=>lr(n,f|0,Kr);function Tr(n="",f=""){let o=Tf("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${o(5)}${f}`}var Or=["idle","running","pending","completed","failed","cancelled"];var Gn=["rules","skills","workflows","plugins"],Of=Gn,Nr=new Set(Gn);function Nf(n){return typeof n==="string"&&Nr.has(n)}function Cr(n){if(!Array.isArray(n))return;let f=n.map((o)=>typeof o==="string"?o.trim():"").filter(Nf);return[...new Set(f)]}function Mr(n,f){return new Set(n??Of).has(f)}import{z as J}from"zod";var Sr=J.object({rootPath:J.string().min(1),hint:J.string().min(1).optional(),associatedRemoteUrls:J.array(J.string().min(1)).optional(),latestGitCommitHash:J.string().min(1).optional(),latestGitBranchName:J.string().min(1).optional()}),hr=J.object({currentWorkspacePath:J.string().min(1).optional(),workspaces:J.record(J.string().min(1),Sr)});function Jg(){return{workspaces:{}}}function Qg(n,f){let o={...n,workspaces:{...n.workspaces,[f.rootPath]:f}};if(!o.currentWorkspacePath)o.currentWorkspacePath=f.rootPath;return hr.parse(o)}import{z as r}from"zod";var cr=["current_state","boundary_analysis","interface_proposal"],Vg=3600000,Pg=240,Wg=400,Q=r.preprocess((n)=>n instanceof Date?n.toISOString():n,r.string().datetime()),C=r.enum(["pending","in_progress","blocked","completed"]),Cf=r.enum(["queued","running","completed","failed","cancelled","interrupted"]),a=r.enum(["draft","in_review","finalized"]),xr=r.object({agentId:r.string(),role:r.enum(["lead","teammate"]),description:r.string().optional(),status:r.enum(["idle","running","stopped"])}),jg=r.object({agentId:r.string(),rolePrompt:r.string(),modelId:r.string().optional(),maxIterations:r.number().optional()});function L(n){return r.preprocess((f)=>f===null?void 0:f,n.optional())}var bg=r.object({agentId:r.string().min(1).describe("Teammate identifier"),rolePrompt:r.string().min(1).describe("System prompt describing teammate role")}).strict(),Kg=r.object({agentId:r.string().min(1).describe("Teammate identifier"),reason:L(r.string().min(1)).describe("Optional shutdown reason")}),lg=r.object({}),mr={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},Tg={create:["status","taskId","summary","reason"]},Og=r.object({action:r.enum(["create","list","claim","complete","block"]),title:L(r.string().min(1)).describe("Task title"),description:L(r.string().min(1)).describe("Task details"),dependsOn:L(r.array(r.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:L(r.string().min(1)).describe("Optional assignee"),status:L(r.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:L(r.string()).describe("Task ID"),summary:L(r.string().min(1)).describe("Completion summary"),reason:L(r.string().min(1)).describe("Blocking reason")}).superRefine((n,f)=>{for(let o of mr[n.action]){if(n[o]!==void 0)continue;f.addIssue({code:"custom",path:[o],message:`Field "${o}" is required when action=${n.action}`})}}),Ng=r.object({agentId:r.string().describe("Teammate agent ID"),task:r.string().min(1).describe("Task instructions for the teammate"),taskId:L(r.string()).describe("Optional shared task list ID"),runMode:L(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:L(r.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),Cg=r.object({status:L(r.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:L(r.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:L(r.boolean()).describe("Include completed/failed runs (default true)")}),Mg=r.object({runId:r.string().min(1).describe("Run ID"),reason:L(r.string().min(1)).describe("Optional cancellation reason")}),Sg=r.object({runId:L(r.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),hg=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:L(r.string().min(1)).describe("Optional task ID context")}),cg=r.object({subject:r.string().min(1).describe("Message subject"),body:r.string().min(1).describe("Message body"),taskId:L(r.string().min(1)).describe("Optional task ID context")}),xg=r.object({unreadOnly:L(r.boolean()).describe("Only unread messages for read action (default true)")}),mg=r.object({kind:r.enum(["progress","handoff","blocked","decision","done","error"]),summary:r.string().min(1).describe("Update summary"),taskId:L(r.string().min(1)).describe("Optional task ID context"),evidence:L(r.array(r.string().min(1))).describe("Optional evidence links/snippets"),nextAction:L(r.string().min(1)).describe("Planned next step")}),ug=r.object({}),vg=r.object({title:r.string().describe("Outcome title"),requiredSections:r.array(r.string()).default(cr).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),pg=r.object({outcomeId:r.string().describe("Outcome ID"),section:r.string().describe("Section name"),sourceRunId:L(r.string()).describe("Optional source run ID"),content:r.string().describe("Section fragment content")}),ig=r.object({fragmentId:r.string().describe("Fragment ID"),approved:r.boolean().describe("Review decision")}),tg=r.object({outcomeId:r.string().describe("Outcome ID")}),eg=r.object({}),ag=r.object({teamId:r.string(),teamName:r.string(),members:r.array(xr),taskCounts:r.record(C,r.number()),unreadMessages:r.number(),missionLogEntries:r.number(),activeRuns:r.number(),queuedRuns:r.number(),outcomeCounts:r.record(a,r.number())}),ur=r.object({id:r.string(),title:r.string(),description:r.string(),status:C,createdAt:Q,updatedAt:Q,createdBy:r.string(),assignee:r.string().optional(),dependsOn:r.array(r.string()),summary:r.string().optional(),isReady:r.boolean(),blockedBy:r.array(r.string())}),zg=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(ur)}),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})]),nw=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()}),vr=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()})}),fw=r.object({id:r.string(),agentId:r.string(),taskId:r.string().optional(),status:Cf,messagePreview:r.string(),priority:r.number(),retryCount:r.number(),maxRetries:r.number(),nextAttemptAt:Q.optional(),continueConversation:r.boolean().optional(),startedAt:Q,endedAt:Q.optional(),leaseOwner:r.string().optional(),heartbeatAt:Q.optional(),lastProgressAt:Q.optional(),lastProgressMessage:r.string().optional(),currentActivity:r.string().optional(),error:r.string().optional(),resultSummary:vr.optional()}),ow=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:Q,readAt:Q.optional()}),rw=r.object({id:r.string(),teamId:r.string(),title:r.string(),status:a,requiredSections:r.array(r.string()),createdBy:r.string(),createdAt:Q,finalizedAt:Q.optional()}),dw=r.object({outcomeId:r.string(),status:a,requiredSections:r.array(r.string())}),gw=r.object({agentId:r.string(),status:r.string()}),ww=r.object({runId:r.string(),status:Cf}),$w=r.object({id:r.string(),toAgentId:r.string()}),Rw=r.object({delivered:r.number()}),yw=r.object({id:r.string()}),_w=r.object({status:r.string()}),Ew=r.object({fragmentId:r.string(),status:r.string()}),Hw=r.object({outcomeId:r.string(),status:a});var pr;((A)=>{A.TaskStart="task_start";A.TaskEnd="task_end";A.AgentEvent="agent_event";A.TeammateSpawned="teammate_spawned";A.TeammateShutdown="teammate_shutdown";A.TeamTaskUpdated="team_task_updated";A.TeamMessage="team_message";A.TeamMissionLog="team_mission_log";A.TeamTaskCompleted="team_task_completed";A.RunStarted="run_started";A.RunQueued="run_queued";A.RunProgress="run_progress";A.RunCompleted="run_completed";A.RunFailed="run_failed";A.RunCancelled="run_cancelled";A.RunInterrupted="run_interrupted";A.OutcomeCreated="outcome_created";A.OutcomeFragmentAttached="outcome_fragment_attached";A.OutcomeFragmentReviewed="outcome_fragment_reviewed";A.OutcomeFinalized="outcome_finalized"})(pr||={});import{z as ir}from"zod";function tr(n){let{$schema:f,...o}=n;if(typeof o.type==="string")return o;if("properties"in o||"required"in o||"additionalProperties"in o)return{type:"object",...o};for(let w of["oneOf","anyOf","allOf"]){let $=o[w];if(!Array.isArray($)||$.length===0)continue;if(w==="allOf"){if($.some((Y)=>Y&&typeof Y==="object"&&Y.type==="object"))return{type:"object",...o};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($.every((E)=>E&&typeof E==="object"&&E.type==="object"))return{type:"object",...o};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${w}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return o}function er(n){let f=tr(n.inputSchema instanceof ir.ZodType?Un(n.inputSchema):n.inputSchema);return{name:n.name,description:n.description,inputSchema:f,lifecycle:n.lifecycle,timeoutMs:n.timeoutMs??30000,retryable:n.retryable??!0,maxRetries:n.maxRetries??3,execute:n.execute}}var Mf=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function ar(n){let f=n instanceof Error?n.message.toLowerCase():String(n);return Mf.some((o)=>f.includes(o))}export{Un as zodToJsonSchema,vn as xmlTagsRemoval,gr as validateWithZod,Qg as upsertWorkspaceInfo,gf as truncateStr,fr as truncateSplit,tn as toAiSdkToolResultOutput,No as serializeAbortReason,X as sanitizeSurrogates,nr as sanitizeFileName,io as safeJsonStringify,to as safeJsonParse,br as resolveRootSessionId,en as resolveReasoningEffortRatio,To as resolveReasoningBudgetFromRatio,Xd as resolveHubCommandTimeoutMs,jr as resolveHookSessionContext,lo as resolveEffectiveReasoningEffort,Vf as resolveClineEnvironment,mn as parseUserCommandEnvelope,Cr as parseRuntimeConfigExtensions,po as parseJsonStream,Go as parseHookEventPayload,un as normalizeUserInput,jf as normalizeSdkError,Sn as normalizePluginManifest,Mo as noopBasicLogger,or as maskSecret,Nf as isRuntimeConfigExtensionKind,ar as isLikelyAuthError,Jd as isHubToolExecutorName,Gd as isHubProtocolCompatible,Mr as hasRuntimeConfigExtension,zo as getShellArgs,ao as getDefaultShell,Xo as getDefaultHubCommandTimeoutMs,Zr as getClineEnvironmentConfig,Bo as formatUserInputBlock,so as formatUserCommandBlock,dr as formatUptime,bo as formatMessagesForAiSdk,rr as formatHumanReadableDate,rn as formatFileContentBlock,Wo as formatDisplayUserInput,Co as estimateTokens,Jg as emptyWorkspaceManifest,er as createTool,Tr as createSessionId,Eo as createContributionRegistry,Kf as createClineTelemetryServiceMetadata,Wr as createClineTelemetryServiceConfig,Jr as captureSdkError,Wf as buildSdkErrorProperties,wr as buildClineSystemPrompt,hr as WorkspaceManifestSchema,Sr as WorkspaceInfoSchema,Lf as VertexSettingsSchema,Yf as VertexModelSchema,fn as ToolCallRecordSchema,bn as ThinkingConfigSchema,jg as TeamTeammateSpecSchema,zg as TeamTaskToolResultSchema,ur as TeamTaskListItemToolResultSchema,Og as TeamTaskInputSchema,ag as TeamStatusToolResultSchema,lg as TeamStatusInputSchema,bg as TeamSpawnTeammateInputSchema,gw as TeamSimpleAgentStatusToolResultSchema,Kg as TeamShutdownTeammateInputSchema,$w as TeamSendMessageToolResultSchema,hg as TeamSendMessageInputSchema,fw as TeamRunToolSummarySchema,nw as TeamRunTaskToolResultSchema,Ng as TeamRunTaskInputSchema,vr as TeamRunResultSummarySchema,ig as TeamReviewOutcomeFragmentInputSchema,xg as TeamReadMailboxInputSchema,rw as TeamOutcomeToolResultSchema,Ew as TeamOutcomeFragmentToolResultSchema,yw as TeamMissionLogToolResultSchema,mg as TeamMissionLogInputSchema,pr as TeamMessageType,ow as TeamMailboxMessageToolResultSchema,Cg as TeamListRunsInputSchema,eg as TeamListOutcomesInputSchema,Hw as TeamFinalizeOutcomeToolResultSchema,tg as TeamFinalizeOutcomeInputSchema,dw as TeamCreateOutcomeToolResultSchema,vg as TeamCreateOutcomeInputSchema,_w as TeamCleanupToolResultSchema,ug as TeamCleanupInputSchema,ww as TeamCancelRunToolResultSchema,Mg as TeamCancelRunInputSchema,Rw as TeamBroadcastToolResultSchema,cg as TeamBroadcastInputSchema,Sg as TeamAwaitRunsInputSchema,pg as TeamAttachOutcomeFragmentInputSchema,Tg as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,Wg as TEAM_RUN_TEXT_PREVIEW_LIMIT,Pg as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,Ur as TEAM_PROGRESS_EVENT_TYPE,Yr as TEAM_LIFECYCLE_EVENT_TYPE,Vg as TEAM_AWAIT_TIMEOUT_MS,Or as SESSION_STATUS_VALUES,Xr as SDK_ERROR_TELEMETRY_EVENT,e as S3AccessKeySettingsSchema,Xf as RemoteMCPServerSchema,yr as RemoteConfigSchema,oo as ReasoningEffortSchema,Gn as RUNTIME_CONFIG_EXTENSION_KINDS,$r as REMOTE_URI_SCHEME,S as REASONING_EFFORT_RATIOS,qr as ProviderProtocolSchema,kr as ProviderClientSchema,Ir as ProviderCapabilitySchema,Jf as PromptUploadingSchema,Ho as PLUGIN_FILE_EXTENSIONS,Ef as OpenAiCompatibleSchema,_f as OpenAiCompatibleModelSchema,Wn as ModelStatusSchema,jn as ModelPricingSchema,Kn as ModelMetadataSchema,v as ModelInfoSchema,Pn as ModelCapabilitySchema,Fd as MIN_CLIENT_HUB_PROTOCOL_VERSION,Ad as MAX_CLIENT_HUB_PROTOCOL_VERSION,Af as LiteLLMSchema,Ff as LiteLLMModelSchema,xn as HookEventPayloadSchema,cn as HookEventNameSchema,jd as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,Jo as HUB_TOOL_EXECUTOR_NAMES,Qd as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,Wd as HUB_MISTAKE_LIMIT_CAPABILITY,sd as HUB_HOOK_CAPABILITY_PREFIX,Zo as HUB_DEFAULT_COMMAND_TIMEOUT_MS,Bd as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,Vd as HUB_COMPACTION_CAPABILITY,Zd as HUB_COMMAND_SLOW_LOG_MS,Pd as HUB_CHECKPOINT_CAPABILITY,Dd as HUB_CAPABILITIES,Ln as GlobalInstructionsFileSchema,hn as FeatureFlagDefaultValue,Io as FEATURE_FLAGS,Qf as EnterpriseTelemetrySchema,dn as EMPTY_CONTENT_TEXT,Of as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,Oo as DEFAULT_REQUEST_HEADERS,Ko as DEFAULT_REASONING_EFFORT,cr as DEFAULT_OUTCOME_REQUIRED_SECTIONS,Ar as DEFAULT_CLINE_ENVIRONMENT,on as ContributionRegistry,wo as ConnectorHookEventSchema,ln as ConnectorHookEventNameSchema,On as ConnectorEventContextSchema,Tn as ConnectorEventActorSchema,ro as ConnectorAuthorizationRequestSchema,go as ConnectorAuthorizationDecisionSchema,Uf as ClineSettingsSchema,kf as ClineModelSchema,Ld as CURRENT_HUB_PROTOCOL_VERSION,Fr as CLINE_ENVIRONMENT_OVERRIDE_ENV,Lr as CLINE_ENVIRONMENT_ENV,An as CLINE_ENVIRONMENTS,Er as CLINE_DEFAULT_RPC_PORT,Hr as CLINE_DEFAULT_RPC_ADDRESS,qf as AwsBedrockSettingsSchema,Hf as AwsBedrockModelSchema,If as AwsBedrockCustomModelSchema,Vn as ApiFormatSchema,zf as ApiFormat,Gf as AnthropicSchema,Df as AnthropicModelSchema,Zf as AllowedMCPServerSchema,fo as AgentUsageSchema,wd as AgentResultSchema,no as AgentFinishReasonSchema,$d as AgentConfigSchema,Mf as AUTH_ERROR_PATTERNS,_r as APIKeySchema};
package/dist/index.d.ts CHANGED
@@ -7,9 +7,10 @@ export type { AutomationEventEnvelope, CronEventSpec, CronOneOffSpec, CronSchedu
7
7
  export type { Disposable } from "./dispose";
8
8
  export { disposeAll, registerDisposable } from "./dispose";
9
9
  export type { ClientContext, ClientName, ExtensionContext, UserContext, WorkspaceContext, } from "./extensions/context";
10
- export type { AgentExtensionApi, AgentExtensionAutomationContext, AgentExtensionAutomationEventType, AgentExtensionCapability, AgentExtensionCommand, AgentExtensionHooks, AgentExtensionMessageBuilder, AgentExtensionProvider, AgentExtensionRegistry, AgentExtensionRule, AgentExtensionSessionContext, ContributionRegistryExtension, ContributionRegistryOptions, PluginManifest, PluginSetupContext, } from "./extensions/contribution-registry";
10
+ export type { AgentExtensionApi, AgentExtensionAutomationContext, AgentExtensionAutomationEventType, AgentExtensionCapability, AgentExtensionCommand, AgentExtensionCommandResult, AgentExtensionHooks, AgentExtensionMessageBuilder, AgentExtensionProvider, AgentExtensionRegistry, AgentExtensionRule, AgentExtensionSessionContext, ContributionRegistryExtension, ContributionRegistryOptions, PluginManifest, PluginSetupContext, } from "./extensions/contribution-registry";
11
11
  export { ContributionRegistry, createContributionRegistry, normalizePluginManifest, } from "./extensions/contribution-registry";
12
12
  export { PLUGIN_FILE_EXTENSIONS } from "./extensions/plugin";
13
+ export { FEATURE_FLAGS, type FeatureFlag, FeatureFlagDefaultValue, type FeatureFlagPayload, type FeatureFlagsAndPayloads, type FeatureFlagsContext, type FeatureFlagsSettings, type IFeatureFlagsProvider, } from "./feature-flags";
13
14
  export type { HookControl } from "./hooks/contracts";
14
15
  export type { AgentAbortHookPayload, AgentEndHookPayload, AgentErrorHookPayload, AgentResumeHookPayload, AgentStartHookPayload, HookEventName, HookEventPayload, HookEventPayloadBase, PostToolUseData, PreCompactData, PreCompactHookPayload, PreToolUseData, PromptSubmitHookPayload, SessionShutdownHookPayload, TaskCancelData, TaskCompleteData, TaskResumeData, TaskStartData, ToolCallHookPayload, ToolResultHookPayload, UserPromptSubmitData, } from "./hooks/events";
15
16
  export { HookEventNameSchema, HookEventPayloadSchema, parseHookEventPayload, } from "./hooks/events";