@cline/shared 0.0.47 → 0.0.48-nightly.1781666345
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/extensions/contribution-registry.d.ts +39 -3
- package/dist/feature-flags.d.ts +7 -2
- package/dist/index.browser.d.ts +4 -1
- package/dist/index.browser.js +17 -15
- package/dist/index.d.ts +4 -1
- package/dist/index.js +67 -65
- package/dist/llms/ai-sdk-format.d.ts +2 -1
- package/dist/llms/media.d.ts +51 -0
- package/dist/llms/model-options.d.ts +2 -0
- package/dist/prompt/system.d.ts +2 -2
- package/dist/providers/utils.d.ts +1 -0
- package/package.json +1 -1
|
@@ -38,6 +38,36 @@ export interface AgentExtensionAutomationEventType {
|
|
|
38
38
|
examples?: AutomationEventEnvelope[];
|
|
39
39
|
metadata?: Record<string, unknown>;
|
|
40
40
|
}
|
|
41
|
+
export interface AgentExtensionMcpEnvValue {
|
|
42
|
+
fromEnv?: string;
|
|
43
|
+
value?: string;
|
|
44
|
+
required?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export type AgentExtensionMcpEnv = Record<string, string | AgentExtensionMcpEnvValue>;
|
|
47
|
+
export interface AgentExtensionMcpStdioTransport {
|
|
48
|
+
type: "stdio";
|
|
49
|
+
command: string;
|
|
50
|
+
args?: string[];
|
|
51
|
+
cwd?: string;
|
|
52
|
+
env?: Record<string, string>;
|
|
53
|
+
}
|
|
54
|
+
export interface AgentExtensionMcpSseTransport {
|
|
55
|
+
type: "sse";
|
|
56
|
+
url: string;
|
|
57
|
+
headers?: Record<string, string>;
|
|
58
|
+
}
|
|
59
|
+
export interface AgentExtensionMcpStreamableHttpTransport {
|
|
60
|
+
type: "streamableHttp";
|
|
61
|
+
url: string;
|
|
62
|
+
headers?: Record<string, string>;
|
|
63
|
+
}
|
|
64
|
+
export type AgentExtensionMcpTransport = AgentExtensionMcpStdioTransport | AgentExtensionMcpSseTransport | AgentExtensionMcpStreamableHttpTransport;
|
|
65
|
+
export interface AgentExtensionMcpServer {
|
|
66
|
+
name: string;
|
|
67
|
+
transport: AgentExtensionMcpTransport;
|
|
68
|
+
env?: AgentExtensionMcpEnv;
|
|
69
|
+
metadata?: Record<string, unknown>;
|
|
70
|
+
}
|
|
41
71
|
export interface AgentExtensionAutomationContext {
|
|
42
72
|
/**
|
|
43
73
|
* Submit a normalized automation event to the host. Raw webhook or connector
|
|
@@ -70,6 +100,7 @@ export interface AgentExtensionApi<TTool = AgentTool, TMessage = unknown> {
|
|
|
70
100
|
registerProvider: (provider: AgentExtensionProvider) => void;
|
|
71
101
|
/** Register a normalized automation event type the plugin can emit. Requires the `automationEvents` capability. */
|
|
72
102
|
registerAutomationEventType: (eventType: AgentExtensionAutomationEventType) => void;
|
|
103
|
+
registerMcpServer: (server: AgentExtensionMcpServer) => void;
|
|
73
104
|
}
|
|
74
105
|
export type AgentExtensionHooks = Partial<AgentRuntimeHooks>;
|
|
75
106
|
/**
|
|
@@ -119,7 +150,7 @@ export interface PluginSetupContext {
|
|
|
119
150
|
*/
|
|
120
151
|
telemetry?: ITelemetryService;
|
|
121
152
|
}
|
|
122
|
-
declare const ExtensionCapabilityOptions: readonly ["hooks", "tools", "commands", "rules", "skills", "messageBuilders", "providers", "automationEvents"];
|
|
153
|
+
declare const ExtensionCapabilityOptions: readonly ["hooks", "tools", "commands", "rules", "skills", "messageBuilders", "providers", "automationEvents", "mcp"];
|
|
123
154
|
export type AgentExtensionCapability = (typeof ExtensionCapabilityOptions)[number];
|
|
124
155
|
export interface PluginManifest {
|
|
125
156
|
paths?: string[];
|
|
@@ -134,6 +165,7 @@ export interface AgentExtensionRegistry<TTool = AgentTool, TMessage = unknown> {
|
|
|
134
165
|
messageBuilder: AgentExtensionMessageBuilder<TMessage>[];
|
|
135
166
|
providers: AgentExtensionProvider[];
|
|
136
167
|
automationEventTypes: AgentExtensionAutomationEventType[];
|
|
168
|
+
mcpServers: AgentExtensionMcpServer[];
|
|
137
169
|
}
|
|
138
170
|
/**
|
|
139
171
|
* Base shape for a plugin or extension that can be loaded into a
|
|
@@ -175,6 +207,9 @@ export interface ContributionRegistryOptions<TExtension extends ContributionRegi
|
|
|
175
207
|
/** Workspace context forwarded to each extension's `setup(api, ctx)` call. */
|
|
176
208
|
setupContext?: PluginSetupContext;
|
|
177
209
|
}
|
|
210
|
+
export interface ContributionRegistryInitializeOptions {
|
|
211
|
+
tolerateSetupErrors?: boolean;
|
|
212
|
+
}
|
|
178
213
|
export declare function normalizePluginManifest(manifest: PluginManifest): PluginManifest;
|
|
179
214
|
export declare class ContributionRegistry<TExtension extends ContributionRegistryExtension<TTool, TMessage>, TTool = AgentTool, TMessage = unknown> {
|
|
180
215
|
private readonly extensions;
|
|
@@ -185,14 +220,15 @@ export declare class ContributionRegistry<TExtension extends ContributionRegistr
|
|
|
185
220
|
constructor(options?: ContributionRegistryOptions<TExtension, TTool, TMessage>);
|
|
186
221
|
resolve(): void;
|
|
187
222
|
validate(): void;
|
|
188
|
-
setup(): Promise<void>;
|
|
223
|
+
setup(options?: ContributionRegistryInitializeOptions): Promise<void>;
|
|
189
224
|
activate(): void;
|
|
190
|
-
initialize(): Promise<void>;
|
|
225
|
+
initialize(options?: ContributionRegistryInitializeOptions): Promise<void>;
|
|
191
226
|
isActivated(): boolean;
|
|
192
227
|
getRegistrySnapshot(): AgentExtensionRegistry<TTool, TMessage>;
|
|
193
228
|
getRegisteredTools(): TTool[];
|
|
194
229
|
getRegisteredRules(): AgentExtensionRule[];
|
|
195
230
|
getRegisteredAutomationEventTypes(): AgentExtensionAutomationEventType[];
|
|
231
|
+
getRegisteredMcpServers(): AgentExtensionMcpServer[];
|
|
196
232
|
getValidatedExtensions(): TExtension[];
|
|
197
233
|
}
|
|
198
234
|
export declare function createContributionRegistry<TExtension extends ContributionRegistryExtension<TTool, TMessage>, TTool = AgentTool, TMessage = unknown>(options?: ContributionRegistryOptions<TExtension, TTool, TMessage>): ContributionRegistry<TExtension, TTool, TMessage>;
|
package/dist/feature-flags.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare const FeatureFlag: {
|
|
2
|
+
/** Enables ClinePass provider/model list exposure in supported clients. */
|
|
3
|
+
readonly CLINE_PASS: "ext-cline-pass";
|
|
4
|
+
};
|
|
5
|
+
export type KnownFeatureFlag = (typeof FeatureFlag)[keyof typeof FeatureFlag];
|
|
6
|
+
export type FeatureFlag = KnownFeatureFlag | (string & {});
|
|
2
7
|
export type FeatureFlagJsonValue = string | number | boolean | null | {
|
|
3
8
|
[key: string]: FeatureFlagJsonValue;
|
|
4
9
|
} | FeatureFlagJsonValue[];
|
|
@@ -31,7 +36,7 @@ export interface FeatureFlagsSettings {
|
|
|
31
36
|
export interface IFeatureFlagsProvider {
|
|
32
37
|
getAllFlagsAndPayloads(options: {
|
|
33
38
|
flagKeys?: readonly string[];
|
|
34
|
-
context
|
|
39
|
+
context: FeatureFlagsContext;
|
|
35
40
|
}): Promise<FeatureFlagsAndPayloads | undefined>;
|
|
36
41
|
readonly enabled: boolean;
|
|
37
42
|
getSettings(): FeatureFlagsSettings;
|
package/dist/index.browser.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ 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, AgentExtensionCommandResult, AgentExtensionHooks, AgentExtensionMessageBuilder, AgentExtensionProvider, AgentExtensionRegistry, AgentExtensionRule, AgentExtensionSessionContext, ContributionRegistryExtension, ContributionRegistryOptions, PluginManifest, PluginSetupContext, } from "./extensions/contribution-registry";
|
|
8
|
+
export type { AgentExtensionApi, AgentExtensionAutomationContext, AgentExtensionAutomationEventType, AgentExtensionCapability, AgentExtensionCommand, AgentExtensionCommandResult, AgentExtensionHooks, AgentExtensionMcpEnv, AgentExtensionMcpEnvValue, AgentExtensionMcpServer, AgentExtensionMcpSseTransport, AgentExtensionMcpStdioTransport, AgentExtensionMcpStreamableHttpTransport, AgentExtensionMcpTransport, 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
11
|
export { FEATURE_FLAGS, type FeatureFlag, FeatureFlagDefaultValue, type FeatureFlagPayload, type FeatureFlagsAndPayloads, type FeatureFlagsContext, type FeatureFlagsSettings, type IFeatureFlagsProvider, } from "./feature-flags";
|
|
@@ -16,8 +16,10 @@ export * from "./hub";
|
|
|
16
16
|
export type { AiSdkFormatterMessage, AiSdkFormatterMessageRole, AiSdkFormatterPart, AiSdkMessage, AiSdkMessagePart, } from "./llms/ai-sdk-format";
|
|
17
17
|
export { EMPTY_CONTENT_TEXT, formatMessagesForAiSdk, sanitizeSurrogates, toAiSdkToolResultOutput, } from "./llms/ai-sdk-format";
|
|
18
18
|
export type * from "./llms/gateway";
|
|
19
|
+
export { createMediaBudgetState, DEFAULT_MAX_IMAGE_BASE64_BYTES, DEFAULT_MAX_IMAGE_DECODED_BYTES, DEFAULT_MAX_IMAGE_ENCODED_BYTES, DEFAULT_MAX_TOTAL_MEDIA_BYTES, IMAGE_OMITTED_PLACEHOLDER, type ImageMediaLimits, type ImageMediaValidationFailure, type ImageMediaValidationResult, type ImageMediaValidationSuccess, imageBase64DecodedByteLength, imageBase64EncodedByteLength, imageBase64LengthForDecodedBytes, imageFileMaxDecodedBytesForBase64Limit, isBase64Char, isCanonicalBase64, type MediaBudgetOptions, type MediaBudgetState, type ResolvedMediaBudget, reserveImageMediaBytes, resolveMediaBudget, SUPPORTED_IMAGE_MEDIA_TYPES, validateAndReserveImageMedia, validateImageMedia, } from "./llms/media";
|
|
19
20
|
export type { ContentBlock, FileContent, ImageContent, Message, MessageRole, MessageWithMetadata, RedactedThinkingContent, TextContent, ThinkingContent, ToolDefinition, ToolResultContent, ToolUseContent, } from "./llms/messages";
|
|
20
21
|
export { ApiFormat, ApiFormatSchema, type ModelCapability, ModelCapabilitySchema, type ModelInfo, ModelInfoSchema, type ModelMetadata, ModelMetadataSchema, type ModelPricing, ModelPricingSchema, type ModelStatus, ModelStatusSchema, type ThinkingConfig, ThinkingConfigSchema, } from "./llms/model-info";
|
|
22
|
+
export { mergeModelOptions } from "./llms/model-options";
|
|
21
23
|
export { DEFAULT_REASONING_EFFORT, REASONING_EFFORT_RATIOS, resolveEffectiveReasoningEffort, resolveReasoningBudgetFromRatio, resolveReasoningEffortRatio, } from "./llms/reasoning-effort";
|
|
22
24
|
export { DEFAULT_REQUEST_HEADERS, serializeAbortReason } from "./llms/requests";
|
|
23
25
|
export { estimateTokens } from "./llms/tokens";
|
|
@@ -32,6 +34,7 @@ export { validateWithZod, zodToJsonSchema } from "./parse/zod";
|
|
|
32
34
|
export type { ClineSystemPromptOptions } from "./prompt/cline";
|
|
33
35
|
export { buildClineSystemPrompt } from "./prompt/cline";
|
|
34
36
|
export { formatDisplayUserInput, formatFileContentBlock, formatUserCommandBlock, formatUserInputBlock, normalizeUserInput, parseUserCommandEnvelope, xmlTagsRemoval, } from "./prompt/format";
|
|
37
|
+
export { isClineProvider } from "./providers/utils";
|
|
35
38
|
export { REMOTE_URI_SCHEME } from "./remote-config/constants";
|
|
36
39
|
export type { AnthropicModel, AnthropicSettings, APIKeySettings, AwsBedrockCustomModel, AwsBedrockModel, AwsBedrockSettings, EnterpriseTelemetry, GlobalInstructionsFile, LiteLLMModel, LiteLLMSettings, MCPServer, OpenAiCompatible, OpenAiCompatibleModel, PromptUploading, ProviderSettings, RemoteConfig, RemoteMCPServer, S3AccessKeySettings, VertexModel, VertexSettings, } from "./remote-config/schema";
|
|
37
40
|
export { AllowedMCPServerSchema, AnthropicModelSchema, AnthropicSchema, APIKeySchema, AwsBedrockCustomModelSchema, AwsBedrockModelSchema, AwsBedrockSettingsSchema, ClineModelSchema, ClineSettingsSchema, EnterpriseTelemetrySchema, GlobalInstructionsFileSchema, LiteLLMModelSchema, LiteLLMSchema, OpenAiCompatibleModelSchema, OpenAiCompatibleSchema, PromptUploadingSchema, RemoteConfigSchema, RemoteMCPServerSchema, S3AccessKeySettingsSchema, VertexModelSchema, VertexSettingsSchema, } from "./remote-config/schema";
|
package/dist/index.browser.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
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
|
-
${f}
|
|
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
|
-
+`.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)||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=`[
|
|
1
|
+
import{z as s}from"zod";import{z as k}from"zod";var jn=k.enum(["default","openai-responses","r1"]),Dr={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},Cn=k.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),Nn=k.enum(["active","preview","deprecated","legacy"]),hn=k.object({input:k.number().optional(),output:k.number().optional(),cacheWrite:k.number().optional(),cacheRead:k.number().optional()}),xn=k.object({maxBudget:k.number().optional(),outputPrice:k.number().optional(),thinkingLevel:k.enum(["low","high"]).optional()}),Sn=k.object({reasoningDefaultOn:k.boolean().optional()}).catchall(k.unknown()),dn=k.object({id:k.string(),name:k.string().optional(),description:k.string().optional(),maxTokens:k.number().optional(),contextWindow:k.number().optional(),maxInputTokens:k.number().optional(),capabilities:k.array(Cn).optional(),apiFormat:jn.optional(),systemRole:k.enum(["system","developer"]).optional(),temperature:k.number().optional(),pricing:hn.optional(),thinkingConfig:xn.optional(),status:Nn.optional(),deprecationNotice:k.string().optional(),replacedBy:k.string().optional(),releaseDate:k.string().optional(),deprecationDate:k.string().optional(),family:k.string().optional(),metadata:Sn.optional()});import{z as T}from"zod";var cn=T.object({id:T.string(),name:T.string(),input:T.unknown(),output:T.unknown(),error:T.string().optional(),durationMs:T.number(),startedAt:T.date(),endedAt:T.date()});var kr=s.enum(["completed","max_iterations","aborted","mistake_limit","error"]),Rr=s.object({inputTokens:s.number(),outputTokens:s.number(),cacheReadTokens:s.number().optional(),cacheWriteTokens:s.number().optional(),totalCost:s.number().optional()}),Jf=s.object({text:s.string(),usage:Rr,messages:s.array(s.custom()),toolCalls:s.array(cn),iterations:s.number(),finishReason:kr,model:s.object({id:s.string(),provider:s.string(),info:dn.optional()}),startedAt:s.date(),endedAt:s.date(),durationMs:s.number()}),$r=s.enum(["low","medium","high","xhigh"]),Qf=s.object({sessionId:s.string().optional(),providerId:s.string(),modelId:s.string(),apiKey:s.string().optional(),baseUrl:s.string().url().optional(),headers:s.record(s.string(),s.string()).optional(),knownModels:s.record(s.string(),dn).optional(),providerConfig:s.unknown().optional(),initialMessages:s.array(s.custom()).optional(),systemPrompt:s.string(),tools:s.array(s.custom()),maxIterations:s.number().positive().optional(),maxParallelToolCalls:s.number().int().positive().default(8),maxTokensPerTurn:s.number().positive().optional(),apiTimeoutMs:s.number().positive().default(180000),userFileContentLoader:s.function().input([s.string()]).output(s.promise(s.string())).optional(),toolContextMetadata:s.record(s.string(),s.unknown()).optional(),execution:s.object({maxConsecutiveMistakes:s.number().int().positive().optional(),reminderAfterIterations:s.number().nonnegative().optional(),reminderText:s.string().optional(),loopDetection:s.union([s.literal(!1),s.object({softThreshold:s.number().int().positive().optional(),hardThreshold:s.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:$r.optional(),thinkingBudgetTokens:s.number().positive().optional(),thinking:s.boolean().optional(),onEvent:s.function().input([s.custom()]).output(s.void()).optional(),hooks:s.custom().optional(),parentAgentId:s.string().optional(),extensions:s.array(s.custom()).optional(),hookErrorMode:s.enum(["ignore","throw"]).default("ignore"),toolPolicies:s.record(s.string(),s.object({enabled:s.boolean().optional(),autoApprove:s.boolean().optional()})).optional(),requestToolApproval:s.function().input([s.object({sessionId:s.string(),agentId:s.string(),conversationId:s.string(),iteration:s.number(),toolCallId:s.string(),toolName:s.string(),input:s.unknown(),policy:s.object({enabled:s.boolean().optional(),autoApprove:s.boolean().optional()}).default({})})]).output(s.union([s.object({approved:s.boolean(),reason:s.string().optional()}),s.promise(s.object({approved:s.boolean(),reason:s.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:s.function().input([s.object({iteration:s.number().int().positive(),consecutiveMistakes:s.number().int().positive(),maxConsecutiveMistakes:s.number().int().positive(),reason:s.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:s.string().optional()})]).output(s.union([s.object({action:s.literal("continue"),guidance:s.string().optional()}),s.object({action:s.literal("stop"),reason:s.string().optional()}),s.promise(s.union([s.object({action:s.literal("continue"),guidance:s.string().optional()}),s.object({action:s.literal("stop"),reason:s.string().optional()})]))])).optional(),logger:s.custom().optional(),extensionContext:s.custom().optional(),abortSignal:s.custom().optional()});import{z as A}from"zod";var an=A.enum(["connector.started","connector.stopping","session.authorize","message.received","message.denied","message.completed","message.failed","session.started","session.reused","session.reset","schedule.delivery.started","schedule.delivery.sent","schedule.delivery.failed"]),vn=A.object({id:A.string().optional(),label:A.string().optional(),role:A.string().optional(),participantKey:A.string().optional(),participantLabel:A.string().optional(),platformUserId:A.string().optional(),metadata:A.record(A.string(),A.unknown()).optional()}),pn=A.object({source:A.string(),sourceEvent:A.string(),threadId:A.string(),channelId:A.string(),isDM:A.boolean(),sessionId:A.string().optional(),workspaceRoot:A.string().optional(),metadata:A.record(A.string(),A.unknown()).optional()}),ur=A.object({actor:vn,context:pn,payload:A.record(A.string(),A.unknown()).optional()}),Mr=A.object({action:A.enum(["allow","deny"]).default("allow"),message:A.string().optional(),reason:A.string().optional(),metadata:A.record(A.string(),A.unknown()).optional()}),br=A.object({adapter:A.string(),botUserName:A.string().optional(),event:an,payload:A.record(A.string(),A.unknown()),ts:A.string()});var Lr=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],Fr=new Set(Lr);function oo(n,o){return n.name||`extension_${String(o).padStart(4,"0")}`}function zn(n){return Array.isArray(n)&&n.every((o)=>typeof o==="string")}function no(n){if(!Array.isArray(n))return;let o=n.filter((r)=>typeof r==="string").map((r)=>r.trim()).filter((r)=>r.length>0);return o.length>0?o:void 0}function ro(n){let o=no(n.providerIds),r=no(n.modelIds);return{...n,...o?{providerIds:o}:{},...r?{modelIds:r}:{}}}function Yr(n,o){let r=oo(n,o),f=n.manifest;if(!f||typeof f!=="object")throw Error(`Invalid manifest for extension "${r}": manifest is required`);if(!Array.isArray(f.capabilities)||f.capabilities.length===0)throw Error(`Invalid manifest for extension "${r}": capabilities must be a non-empty array`);let g=new Set;for(let c of f.capabilities){if(!Fr.has(c))throw Error(`Invalid manifest for extension "${r}": unsupported capability "${String(c)}"`);g.add(c)}if(Object.hasOwn(f,"providerIds")&&!zn(f.providerIds))throw Error(`Invalid manifest for extension "${r}": providerIds must be a string array when provided`);if(Object.hasOwn(f,"modelIds")&&!zn(f.modelIds))throw Error(`Invalid manifest for extension "${r}": modelIds must be a string array when provided`);let _=g.has("hooks");if(n.hooks!==void 0&&!_)throw Error(`Invalid manifest for extension "${r}": runtime hooks require the "hooks" capability`);return{capabilities:g,raw:ro(f)}}function Ur(n,o){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${o}": expected object`);let r=typeof n.eventType==="string"?n.eventType.trim():"",f=typeof n.source==="string"?n.source.trim():"";if(!r)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!f)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:r,source:f,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class Bn{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,o)=>({extension:n,order:o,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:Yr(n.extension,n.order)})),this.phase="setup"}async setup(n={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let o,r=[];for(let f of this.normalized){let{extension:g}=f;if(g.disabled)continue;let _=oo(g,f.order),l={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},c={registerTool:(E)=>l.tools.push(E),registerCommand:(E)=>l.commands.push(E),registerRule:(E)=>{if(!f.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${_}": registerRule requires the "rules" capability`);l.rules.push(E)},registerMessageBuilder:(E)=>l.messageBuilder.push(E),registerProvider:(E)=>l.providers.push(E),registerAutomationEventType:(E)=>{if(!f.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${_}": registerAutomationEventType requires the "automationEvents" capability`);l.automationEventTypes.push(Ur(E,_))},registerMcpServer:(E)=>{if(!f.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${_}": registerMcpServer requires the "mcp" capability`);l.mcpServers.push({...E,metadata:{...E.metadata??{},source:"plugin",plugin:_}})}},B=f.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await g.setup?.(c,B),r.push(l)}catch(E){if(n.tolerateSetupErrors!==!0)throw E;o??=E}}if(o&&n.tolerateSetupErrors!==!0)throw o;for(let f of r)this.registry.tools.push(...f.tools),this.registry.commands.push(...f.commands),this.registry.rules.push(...f.rules),this.registry.messageBuilder.push(...f.messageBuilder),this.registry.providers.push(...f.providers),this.registry.automationEventTypes.push(...f.automationEventTypes),this.registry.mcpServers.push(...f.mcpServers);if(this.phase="activate",o)throw o}activate(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase==="setup")throw Error("Contribution registry setup must complete before activation");if(this.phase!=="activate")return;this.phase="run"}async initialize(n={}){this.resolve(),this.validate();try{await this.setup(n)}finally{if(this.phase==="activate")this.activate()}}isActivated(){return this.phase==="run"}getRegistrySnapshot(){return{tools:[...this.registry.tools],commands:[...this.registry.commands],rules:[...this.registry.rules],messageBuilder:[...this.registry.messageBuilder],providers:[...this.registry.providers],automationEventTypes:[...this.registry.automationEventTypes],mcpServers:[...this.registry.mcpServers]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getRegisteredMcpServers(){return[...this.registry.mcpServers]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,o)=>n.order-o.order).map(({extension:n})=>n)}}function qr(n={}){return new Bn(n)}var Hr=[".js",".ts"];var fo={CLINE_PASS:"ext-cline-pass"},Tr={[fo.CLINE_PASS]:!1},Gr=Object.values(fo);import{z as w}from"zod";var eo=w.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),Q=w.record(w.string(),w.string()),Xr=w.object({toolName:w.string(),parameters:Q}),Vr=w.object({toolName:w.string(),parameters:Q,result:w.string(),success:w.boolean(),executionTimeMs:w.number()}),mr=w.object({prompt:w.string(),attachments:w.array(w.string())}),Zr=w.object({taskMetadata:Q}),Jr=w.object({taskMetadata:Q,previousState:Q}),Qr=w.object({taskMetadata:Q}),Wr=w.object({taskMetadata:Q}),Or=w.object({taskId:w.string(),ulid:w.string(),contextSize:w.number(),compactionStrategy:w.string(),previousApiReqIndex:w.number(),tokensIn:w.number(),tokensOut:w.number(),tokensInCache:w.number(),tokensOutCache:w.number(),deletedRangeStart:w.number(),deletedRangeEnd:w.number(),contextJsonPath:w.string(),contextRawPath:w.string()}),so=w.object({clineVersion:w.string(),hookName:eo,timestamp:w.string(),taskId:w.string(),sessionContext:w.object({rootSessionId:w.string().optional(),hookLogPath:w.string().optional()}).optional(),workspaceRoots:w.array(w.string()),workspaceInfo:w.custom().optional(),userId:w.string(),agent_id:w.string(),parent_agent_id:w.string().nullable(),iteration:w.number().optional(),reason:w.string().optional(),tool_call:w.object({id:w.string(),name:w.string(),input:w.unknown()}).optional(),tool_result:w.custom().optional(),turn:w.unknown().optional(),error:w.object({name:w.string(),message:w.string(),stack:w.string().optional()}).optional(),preToolUse:Xr.optional(),postToolUse:Vr.optional(),userPromptSubmit:mr.optional(),taskStart:Zr.optional(),taskResume:Jr.optional(),taskCancel:Qr.optional(),taskComplete:Wr.optional(),preCompact:Or.optional()}).passthrough();function Pr(n){let o=so.safeParse(n);if(!o.success)return;return o.data}var af="v1",vf="v1",pf="v1",zf=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function fn(n){let o=/^v(\d+)$/.exec(n?.trim()??"");if(!o)return;return Number.parseInt(o[1]??"",10)}function ne(n,o="v1"){let r=fn(n.protocolVersion),f=fn(o);if(r===void 0||f===void 0)return{compatible:!1,reason:"missing_protocol"};let g=fn(n.minClientProtocolVersion)??r,_=fn(n.maxClientProtocolVersion)??r;return f>=g&&f<=_?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var Kr=30000,oe=5000;function jr(n){switch(n){case"run.start":case"session.send_input":return null;default:return Kr}}function re(n,o){return o===void 0?jr(n):o}var Cr=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],ir=new Set(Cr);function de(n){return typeof n==="string"&&ir.has(n)}var fe="tool_executor.",ee="custom_tool.",se="hook.",ge="compaction.compact",le="checkpoint.create",_e="mistake_limit.decide",we="user_instructions.snapshot";function In(n,o){return`<file_content path="${n}">
|
|
9
2
|
${o}
|
|
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
|
-
|
|
3
|
+
</file_content>`}function Nr(n,o="act"){return`<user_input mode="${o}">${n}</user_input>`}function hr(n,o){return`<user_command slash="${o}">${n}</user_command>`}function xr(n,o){let r=n.trim(),f=new RegExp(`^<${o}\\b([^>]*)>([\\s\\S]*?)<\\/${o}>$`,"i").exec(r);if(!f)return;return{attrs:f[1]??"",content:f[2]??""}}function Sr(n,o){return new RegExp(`${o}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function go(n){if(!n?.trim())return;let o=xr(n,"user_command");if(!o)return;let r=Sr(o.attrs,"slash");if(!r)return;return{slash:r,content:o.content.trim()}}function lo(n){if(!n?.trim())return"";let o=n.trim();for(let r of["user_input","user_command"]){let f=_o(o,r);o=(f!==o?f:o.replace(new RegExp(`<${r}[^>]*>`,"g"),"")).trim()}return o}function ar(n){let o=lo(n),r=go(n);if(!r)return o;if(r.slash.toLowerCase()==="team"){let g=o.toLowerCase().startsWith("spawn a team of agents for the following task:")?o.slice(46).trim():o;return g?`/team ${g}`:"/team"}return o?`/${r.slash} ${o}`:`/${r.slash}`}function _o(n,o){if(!n?.trim())return"";if(!o)return n;let r=new RegExp(`<${o}\\b[^>]*>([\\s\\S]*?)</${o}>`,"g");return n.replace(r,"$1")}var W="[media omitted: invalid or exceeds size limit]",sn=["image/png","image/jpeg","image/gif","image/webp"],vr=5242880,X=5242880,O=6291456,pr=8388608;function zr(n){return n.length}function wo(n){let o=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-o}function nd(n=5242880){return Math.floor(n*3/4)}function An(n){return Math.ceil(n/3)*4}function yo(n={}){return{maxImageEncodedBytes:n.maxImageEncodedBytes??5242880,maxImageDecodedBytes:n.maxImageDecodedBytes??6291456,maxTotalMediaBytes:n.maxTotalMediaBytes??8388608}}function gn(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function en(n,o){n.omittedImages+=1,n.omittedReasons[o]=(n.omittedReasons[o]??0)+1}function x(n,o,r,f){let g=yo(r);if(n>g.maxImageEncodedBytes){let _={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${g.maxImageEncodedBytes} byte encoded limit`};return en(f,_.reason),_}if(o>g.maxImageDecodedBytes){let _={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${g.maxImageDecodedBytes} byte decoded limit`};return en(f,_.reason),_}if(f.totalEncodedBytes+n>g.maxTotalMediaBytes){let _={ok:!1,reason:"total_limit",message:`Image media exceeds the ${g.maxTotalMediaBytes} byte total media limit`};return en(f,_.reason),_}return f.totalEncodedBytes+=n,f.keptImages+=1,null}function Eo(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function od(n){return n.length>0&&co(n,0,n.length)}function co(n,o,r){let f=r-o;if(f%4!==0)return!1;let g=r;if(f>=2&&n.charCodeAt(r-2)===61&&n.charCodeAt(r-1)===61)g-=2;else if(f>=1&&n.charCodeAt(r-1)===61)g-=1;for(let _=o;_<g;_++)if(!Eo(n.charCodeAt(_)))return!1;for(let _=g;_<r;_++)if(n.charCodeAt(_)!==61)return!1;return!0}function rd(n,o,r){return r-o>=5&&(n.charCodeAt(o)|32)===100&&(n.charCodeAt(o+1)|32)===97&&(n.charCodeAt(o+2)|32)===116&&(n.charCodeAt(o+3)|32)===97&&n.charCodeAt(o+4)===58}function dd(n){let o=0,r=n.length;while(o<r&&/\s/.test(n[o]??""))o+=1;while(r>o&&/\s/.test(n[r-1]??""))r-=1;return{start:o,end:r}}function fd(n,o,r){if(!rd(n,o,r))return;let f=o+5,g=n.indexOf(",",f);if(g===-1||g>=r)return;if(g-f>128)return;let _=n.slice(f,g).toLowerCase(),l=";base64";if(!_.endsWith(l))return;let c=_.slice(0,-l.length);if(!c||c.includes(";"))return;return{mediaType:c,base64Start:g+1,base64End:r}}function Bo(n,o,r={}){let f=r.maxEncodedBytes??5242880,g=r.maxDecodedBytes??6291456,_=new Set(r.supportedMediaTypes??sn),l=n?.toLowerCase(),c=dd(o),B=c.start,E=c.end,I=fd(o,c.start,c.end);if(I){if(l&&l!==I.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${I.mediaType}`};l=I.mediaType,B=I.base64Start,E=I.base64End}if(!l||!_.has(l))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let b=E-B;if(b===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(b>f)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${f} byte encoded limit`};if(!co(o,B,E))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let L=o.slice(B,E),F=wo(L);if(F>g)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${g} byte decoded limit`};return{ok:!0,mediaType:l,base64:L,encodedBytes:b,decodedBytes:F}}function S(n,o,r,f){let g=Bo(n,o,{maxEncodedBytes:r.maxImageEncodedBytes,maxDecodedBytes:r.maxImageDecodedBytes});if(!g.ok)return en(f,g.reason),g;let _=x(g.encodedBytes,g.decodedBytes,r,f);if(_)return _;return g}function U(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var tn="ERROR: EMPTY CONTENT",ed="[image attached]";function Io(n,o){let r=n[n.length-1];if(o.role==="tool"&&r?.role==="tool"&&Array.isArray(r.content)&&Array.isArray(o.content)){r.content.push(...o.content);return}n.push(o)}function sd(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((o)=>{if(!o||typeof o!=="object")return!1;let r=o;if(r.type==="text")return typeof r.text==="string";if(r.type==="image")return typeof r.data==="string"&&typeof r.mediaType==="string";return!1})}function P(){return{type:"text",text:W}}function Ao(n){return x(X,0,{maxImageEncodedBytes:X,maxImageDecodedBytes:O},n)===null}function gd(n){try{return new URL(n).protocol}catch{return}}function Dn(n,o){let r=S(n.mediaType,n.data,{maxImageEncodedBytes:X,maxImageDecodedBytes:O},o);if(!r.ok)return P();return{type:"image-data",data:r.base64,mediaType:r.mediaType}}function ld(n,o){if(n.image instanceof URL){if(n.image.protocol==="data:"){let l=S(n.mediaType,n.image.href,{maxImageEncodedBytes:X,maxImageDecodedBytes:O},o);if(!l.ok)return P();return{type:"image",image:`data:${l.mediaType};base64,${l.base64}`,mediaType:l.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return P();if(!Ao(o))return P();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let l=gd(n.image);if(l==="http:"||l==="https:"){if(!Ao(o))return P();return{type:"image",image:n.image,mediaType:n.mediaType}}let c=l==="data:",B=S(n.mediaType??(c?void 0:"image/png"),n.image,{maxImageEncodedBytes:X,maxImageDecodedBytes:O},o);if(!B.ok)return P();return{type:"image",image:c?`data:${B.mediaType};base64,${B.base64}`:B.base64,mediaType:B.mediaType}}let r=n.image.byteLength,f=An(r),g=n.mediaType?.toLowerCase()??"image/png";if(!sn.includes(g)||x(f,r,{maxImageEncodedBytes:X,maxImageDecodedBytes:O},o))return P();return{type:"image",image:n.image,mediaType:g}}function kn(n,o,r,f=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let B=[],E=!1,I=!1;for(let b of n){if(b&&typeof b==="object"){let F=b;if(F.type==="image"&&typeof F.data==="string"&&typeof F.mediaType==="string"){if(!f){B.push(W),E=!0,I=!0;continue}let nn={type:"image",data:F.data,mediaType:F.mediaType},K=Dn(nn,r);if(K.type==="image-data")o.push({type:"image",data:K.data,mediaType:K.mediaType});else B.push(K.text);E=!0,I=!0;continue}if(F.type==="image"){B.push(W),E=!0,I=!0;continue}if(F.type==="text"&&typeof F.text==="string"){B.push(F.text),E=!0;continue}}let L=kn(b,o,r,f);B.push(L.value),E||=L.changed,I||=L.mediaChanged}return{value:E?B:n,changed:E,mediaChanged:I}}let g=n;if(g.type==="image"){if(typeof g.data==="string"&&typeof g.mediaType==="string"){if(!f)return{value:W,changed:!0,mediaChanged:!0};let B={type:"image",data:g.data,mediaType:g.mediaType},E=Dn(B,r);if(E.type==="image-data")return o.push({type:"image",data:E.data,mediaType:E.mediaType}),{value:ed,changed:!0,mediaChanged:!0};return{value:E.text,changed:!0,mediaChanged:!0}}return{value:W,changed:!0,mediaChanged:!0}}let _={},l=!1,c=!1;for(let[B,E]of Object.entries(g)){let I=kn(E,o,r,f);_[B]=I.value,l||=I.changed,c||=I.mediaChanged}return{value:l?_:n,changed:l,mediaChanged:c}}function a(n){if(typeof n==="string")return U(n);if(Array.isArray(n))return n.map((o)=>a(o));if(n!==null&&typeof n==="object"){let o=n,r={};for(let[f,g]of Object.entries(o))r[f]=a(g);return r}return n}function to(n,o=!1,r=gn()){if(typeof n==="string")return{type:o?"error-text":"text",value:U(n)};if(!o&&sd(n))return{type:"content",value:n.map((f)=>f.type==="image"?Dn(f,r):{type:"text",text:U(f.text)})};if(n!==null&&typeof n==="object"){let f=[],g=kn(n,f,r,!o);if(!o&&f.length>0)return{type:"content",value:[{type:"text",text:typeof g.value==="string"?U(g.value):JSON.stringify(a(g.value))},...f.map((l)=>({type:"image-data",data:l.data,mediaType:l.mediaType}))]};if(g.mediaChanged)return{type:o?"error-json":"json",value:a(g.value)}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:o?"error-json":"json",value:a(n)};return{type:o?"error-text":"text",value:U(String(n))}}function _d(n,o,r){let f=r?.assistantToolCallArgKey??"input",g=[],_=gn();if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)g.push({role:"system",content:typeof n==="string"?U(n):n});for(let l of o){let c=l.content;if(typeof c==="string"){if(c.trim().length===0){g.push({role:l.role,content:[{type:"text",text:tn}]});continue}g.push({role:l.role,content:U(c)});continue}let B=[],E=[];if(c.length===0){g.push({role:l.role,content:[{type:"text",text:tn}]});continue}for(let I of c)switch(I.type){case"text":B.push({type:"text",text:U(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"reasoning":B.push({type:"reasoning",text:U(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"image":B.push(ld(I,_));break;case"file":B.push({type:"text",text:In(I.path,U(I.content))});break;case"tool-call":if(l.role==="assistant")B.push({type:"tool-call",toolCallId:I.toolCallId,toolName:I.toolName,[f]:I.input,...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"tool-result":{E.push({type:"tool-result",toolCallId:I.toolCallId,toolName:I.toolName,output:to(I.output,I.isError??!1,_)});break}}if(B.length>0)Io(g,{role:l.role,content:B});if(E.length>0)Io(g,{role:"tool",content:E})}return g}function Do(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function wd(n,o){if(!n&&!o)return;let r=n?.metadata,f=o?.metadata,g={...n??{},...o??{}};if(Do(r)&&Do(f))g.metadata={...r,...f};return g}var v={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},yd=void 0;function Ed(n,o){if(typeof n==="string"&&n.toLowerCase()in v)return n.toLowerCase();return o?void 0:void 0}function ko(n,o){let r=typeof n==="string"?n.toLowerCase():void 0;if(r&&r in v)return v[r];if(o?.fallbackEffort)return v[o.fallbackEffort];return}function cd(n){let o=ko(n.effort,{fallbackEffort:n.fallbackEffort});if(o===void 0)return;if(o<=0)return 0;let r=n.minimumBudget??1;if(n.maxBudget<r)return;let f=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(f*o),r),n.maxBudget)}var Bd={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"};function Id(n){return n instanceof Error?{name:n.name,message:n.message}:n}function Ad(n){return Math.max(1,Math.ceil(n/3))}var td={debug:()=>{},log:()=>{},error:()=>{}};class V extends Error{constructor(n,o){super(`${n} at position ${o}`);this.position=o}}function Ro(n){return/^[0-9A-Fa-f]$/.test(n)}function Z(n){return n>="0"&&n<="9"}function $o(n){return n>=" "}function p(n){return`,:[]/{}()
|
|
4
|
+
+`.includes(n)}function Rn(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 un=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,Mn=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function bn(n){return`,[]/{}
|
|
5
|
+
+`.includes(n)}function Ln(n){return z(n)||Dd.test(n)}var Dd=/^[[{\w-]$/;function uo(n){return n===`
|
|
6
|
+
`||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function m(n,o){let r=n.charCodeAt(o);return r===32||r===10||r===9||r===13}function Mo(n,o){let r=n.charCodeAt(o);return r===32||r===9||r===13}function bo(n,o){let r=n.charCodeAt(o);return r===160||r===6158||r>=8192&&r<=8203||r===8239||r===8287||r===12288||r===65279}function z(n){return Fn(n)||ln(n)}function Fn(n){return n==='"'||n==="“"||n==="”"}function Yn(n){return n==='"'}function ln(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function Un(n){return n==="'"}function i(n,o){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,f=n.lastIndexOf(o);return f!==-1?n.substring(0,f)+(r?"":n.substring(f+1)):n}function Y(n,o){let r=n.length;if(!m(n,r-1))return n+o;while(m(n,r-1))r--;return n.substring(0,r)+o+n.substring(r)}function Lo(n,o,r){return n.substring(0,o)+n.substring(o+r)}function Fo(n){return/[,\n][ \t\r]*$/.test(n)}var kd={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},Rd={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
7
|
+
`,r:"\r",t:"\t"};function qn(n){let o=0,r="";if(E(["```","[```","{```"]),!_())Ir();E(["```","```]","```}"]);let g=b(",");if(g)l();if(Ln(n[o])&&Fo(r)){if(!g)r=Y(r,",");wr()}else if(g)r=i(r,",");while(n[o]==="}"||n[o]==="]")o++,l();if(o>=n.length)return r;Br();function _(){l();let y=K()||_r()||j()||u()||yr()||Wn(!1)||Er();return l(),y}function l(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,t=o,D=c(y);do if(D=B(),D)D=c(y);while(D);return o>t}function c(y){let t=y?m:Mo,D="";while(!0)if(t(n,o))D+=n[o],o++;else if(bo(n,o))D+=" ",o++;else break;if(D.length>0)return r+=D,!0;return!1}function B(){if(n[o]==="/"&&n[o+1]==="*"){while(o<n.length&&!$d(n,o))o++;return o+=2,!0}if(n[o]==="/"&&n[o+1]==="/"){while(o<n.length&&n[o]!==`
|
|
8
|
+
`)o++;return!0}return!1}function E(y){if(I(y)){if(Rn(n[o]))while(o<n.length&&$n(n[o]))o++;return l(),!0}return!1}function I(y){c(!0);for(let t of y){let D=o+t.length;if(n.slice(o,D)===t)return o=D,!0}return!1}function b(y){if(n[o]===y)return r+=n[o],o++,!0;return!1}function L(y){if(n[o]===y)return o++,!0;return!1}function F(){return L("\\")}function nn(){if(l(),n[o]==="."&&n[o+1]==="."&&n[o+2]===".")return o+=3,l(),L(","),!0;return!1}function K(){if(n[o]==="{"){if(r+="{",o++,l(),L(","))l();let y=!0;while(o<n.length&&n[o]!=="}"){let t;if(!y){if(t=b(","),!t)r=Y(r,",");l()}else t=!0,y=!1;if(nn(),!(j()||Wn(!0))){if(n[o]==="}"||n[o]==="{"||n[o]==="]"||n[o]==="["||n[o]===void 0)r=i(r,",");else Ar();break}l();let rn=b(":"),J=o>=n.length;if(!rn)if(Ln(n[o])||J)r=Y(r,":");else Pn();if(!_())if(rn||J)r+="null";else Pn()}if(n[o]==="}")r+="}",o++;else r=Y(r,"}");return!0}return!1}function _r(){if(n[o]==="["){if(r+="[",o++,l(),L(","))l();let y=!0;while(o<n.length&&n[o]!=="]"){if(!y){if(!b(","))r=Y(r,",")}else y=!1;if(nn(),!_()){r=i(r,",");break}}if(n[o]==="]")r+="]",o++;else r=Y(r,"]");return!0}return!1}function wr(){let y=!0,t=!0;while(t){if(!y){if(!b(","))r=Y(r,",")}else y=!1;t=_()}if(!t)r=i(r,",");r=`[
|
|
9
|
+
${r}
|
|
10
|
+
]`}function j(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,D=n[o]==="\\";if(D)o++,D=!0;if(z(n[o])){let rn=Yn(n[o])?Yn:Un(n[o])?Un:ln(n[o])?ln:Fn,J=o,h=r.length,$='"';o++;while(!0){if(o>=n.length){let M=On(o-1);if(!y&&p(n.charAt(M)))return o=J,r=r.substring(0,h),j(!0);return $=Y($,'"'),r+=$,!0}if(o===t)return $=Y($,'"'),r+=$,!0;if(rn(n[o])){let M=o,En=$.length;if($+='"',o++,r+=$,l(!1),y||o>=n.length||p(n[o])||z(n[o])||Z(n[o]))return Qn(),!0;let G=On(M-1),Kn=n.charAt(G);if(Kn===",")return o=J,r=r.substring(0,h),j(!1,G);if(p(Kn))return o=J,r=r.substring(0,h),j(!0);r=r.substring(0,h),o=M+1,$=`${$.substring(0,En)}\\${$.substring(En)}`}else if(y&&bn(n[o])){if(n[o-1]===":"&&un.test(n.substring(J+1,o+2)))while(o<n.length&&Mn.test(n[o]))$+=n[o],o++;return $=Y($,'"'),r+=$,Qn(),!0}else if(n[o]==="\\"){let M=n.charAt(o+1);if(Rd[M]!==void 0)$+=n.slice(o,o+2),o+=2;else if(M==="u"){let G=2;while(G<6&&Ro(n[o+G]))G++;if(G===6)$+=n.slice(o,o+6),o+=6;else if(o+G>=n.length)o=n.length;else tr()}else if(M===`
|
|
11
|
+
`)$+="\\n",o+=2;else $+=M,o+=2}else{let M=n.charAt(o);if(M==='"'&&n[o-1]!=="\\")$+=`\\${M}`,o++;else if(uo(M))$+=kd[M],o++;else{if(!$o(M))cr(M);$+=M,o++}}if(D)F()}}return!1}function Qn(){let y=!1;l();while(n[o]==="+"){y=!0,o++,l(),r=i(r,'"',!0);let t=r.length;if(j())r=Lo(r,t,1);else r=Y(r,'"')}return y}function u(){let y=o;if(n[o]==="-"){if(o++,on())return yn(y),!0;if(!Z(n[o]))return o=y,!1}while(Z(n[o]))o++;if(n[o]==="."){if(o++,on())return yn(y),!0;if(!Z(n[o]))return o=y,!1;while(Z(n[o]))o++}if(n[o]==="e"||n[o]==="E"){if(o++,n[o]==="-"||n[o]==="+")o++;if(on())return yn(y),!0;if(!Z(n[o]))return o=y,!1;while(Z(n[o]))o++}if(!on())return o=y,!1;if(o>y){let t=n.slice(y,o),D=/^0\d/.test(t);return r+=D?`"${t}"`:t,!0}return!1}function yr(){return C("true","true")||C("false","false")||C("null","null")||C("True","true")||C("False","false")||C("None","null")}function C(y,t){if(n.slice(o,o+y.length)===y)return r+=t,o+=y.length,!0;return!1}function Wn(y){let t=o;if(Rn(n[o])){while(o<n.length&&$n(n[o]))o++;let D=o;while(m(n,D))D++;if(n[D]==="("){if(o=D+1,_(),n[o]===")"){if(o++,n[o]===";")o++}return!0}}while(o<n.length&&!bn(n[o])&&!z(n[o])&&(!y||n[o]!==":"))o++;if(n[o-1]===":"&&un.test(n.substring(t,o+2)))while(o<n.length&&Mn.test(n[o]))o++;if(o>t){while(m(n,o-1)&&o>0)o--;let D=n.slice(t,o);if(r+=D==="undefined"?"null":JSON.stringify(D),n[o]==='"')o++;return!0}}function Er(){if(n[o]==="/"){let y=o;o++;while(o<n.length&&(n[o]!=="/"||n[o-1]==="\\"))o++;return o++,r+=JSON.stringify(n.substring(y,o)),!0}}function On(y){let t=y;while(t>0&&m(n,t))t--;return t}function on(){return o>=n.length||p(n[o])||m(n,o)}function yn(y){r+=`${n.slice(y,o)}0`}function cr(y){throw new V(`Invalid character ${JSON.stringify(y)}`,o)}function Br(){throw new V(`Unexpected character ${JSON.stringify(n[o])}`,o)}function Ir(){throw new V("Unexpected end of json string",n.length)}function Ar(){throw new V("Object key expected",o)}function Pn(){throw new V("Colon expected",o)}function tr(){let y=n.slice(o,o+6);throw new V(`Invalid unicode character "${y}"`,o)}}function $d(n,o){return n[o]==="*"&&n[o+1]==="/"}var ud=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function Md(n){let o=n.match(ud);if(!o)return;let[,r,f]=o,g=f.trim();if(!g)return;let _=g[0];if(_==='"'||_==="{"||_==="["||g==="true"||g==="false"||g==="null"||Number.isFinite(Number(g)))return;return JSON.parse(`{"${r}":${JSON.stringify(g)}}`)}var bd=[(n)=>JSON.parse(n),(n)=>JSON.parse(qn(n)),Md];function Ld(n){if(typeof n!=="string")return n;let o=n.trimStart();if(o[0]!=="{"&&o[0]!=="[")return n;for(let r of bd)try{let f=r(o);if(f!==void 0)return f}catch{}return n}function Fd(n){let o=new WeakSet;try{return JSON.stringify(n,(f,g)=>{if(typeof g==="bigint")return g.toString();if(g&&typeof g==="object"){if(o.has(g))return"[Circular]";o.add(g)}return g})??"null"}catch{return String(n)}}function Yd(n){try{return JSON.parse(n)}catch{return}}function Ud(n){let o=n.replaceAll("\\","/"),r=o.lastIndexOf("/");return(r>=0?o.slice(r+1):o).toLowerCase()}function qd(n){return n==="win32"?"powershell":"/bin/bash"}function Hd(n,o){let r=Ud(n);if(r==="powershell"||r==="powershell.exe"||r==="pwsh"||r==="pwsh.exe")return["-NoProfile","-NonInteractive","-Command",o];if(r==="cmd"||r==="cmd.exe")return["/d","/s","/c",o];return["-c",o]}function Td(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function Yo(n,o){if(n.length<=o)return n;return`${n.slice(0,o-1)}…`}function Gd(n,o="/",r=100){if(!n||n.length<=r)return n||"";let f=n.split(o)?.shift()?.trim()?.slice(0,r-1);return f?`${f}…`:Yo(n,r)}function Xd(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function Vd(n){if(!n)return"(unknown-date)";let o=new Date(n);if(Number.isNaN(o.getTime()))return n;return o.toLocaleString("en-US",{year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0})}function md(n){let o=Math.max(0,Math.floor(n/1000)),r=Math.floor(o/86400),f=Math.floor(o%86400/3600),g=Math.floor(o%3600/60),_=o%60;if(r>0)return`${r}d ${f}h`;if(f>0)return`${f}h ${g}m`;if(g>0)return`${g}m ${_}s`;return`${_}s`}import{z as Uo}from"zod";function Zd(n,o){let r=n.safeParse(o);if(!r.success)throw Error(Uo.prettifyError(r.error));return r.data}function Hn(n){return Uo.toJSONSchema(n)}function Tn(n){return n==="cline"||n==="cline-pass"}var qo=`You are Cline, an AI coding agent. Your primary goal is to assist users with various coding tasks by leveraging your knowledge and the tools at your disposal. Given the user's prompt, you should use the tools available to you to answer user's question.
|
|
12
12
|
|
|
13
13
|
Always gather all the necessary context before starting to work on a task. For example, if you are generating a unit test or new code, make sure you understand the requirement, the naming conventions, frameworks and libraries used and aligned in the current codebase, and the environment and commands used to run and test the code etc. Always validate the new unit test at the end including running the code if possible for live feedback.
|
|
14
14
|
Review each question carefully and answer it with detailed, accurate information.
|
|
@@ -29,6 +29,7 @@ Remember:
|
|
|
29
29
|
- Be explicit about any assumptions or limitations in your solution.
|
|
30
30
|
- Always show your planning process before executing any task. This will help ensure that you have a clear understanding of the requirements and that your approach aligns with the user's needs.
|
|
31
31
|
- Always use absolute paths when referring to files.
|
|
32
|
+
- You can call multiple tools in a single response. When tool calls are independent and do not require each other's results, call them together in the same response. Do not split independent reads, searches, or checks across separate turns.
|
|
32
33
|
- Always verify the files you have edited or created at the end of the task to ensure they are completed and working as expected.
|
|
33
34
|
|
|
34
35
|
Begin by analyzing the user's input and gathering any necessary additional context. Then, present your plan at the start of your response along with tool calls before proceeding with the task. It's OK for this section to be quite long.
|
|
@@ -41,7 +42,7 @@ When you have completed the task, please provide a summary of what you did and a
|
|
|
41
42
|
|
|
42
43
|
If user asked a simple question without any coding context, answer it directly without using any tools.
|
|
43
44
|
{{CLINE_RULES}}
|
|
44
|
-
{{CLINE_METADATA}}`,
|
|
45
|
+
{{CLINE_METADATA}}`,Ho=`You are Cline, a careful and helpful coding agent that works in the background.
|
|
45
46
|
You are tasked to solve an issue reported by the user who you cannot communicate with directly.
|
|
46
47
|
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
48
|
|
|
@@ -51,6 +52,7 @@ RULES:
|
|
|
51
52
|
- Provide complete and functional code without omissions or placeholders.
|
|
52
53
|
- Always show your planning process without repeating yourself before executing any task. This will help ensure that you have a clear understanding of the requirements and that your approach aligns with the user's request.
|
|
53
54
|
- Always use absolute paths when referring to files.
|
|
55
|
+
- You can call multiple tools in a single response. When tool calls are independent and do not require each other's results, call them together in the same response. Do not split independent reads, searches, or checks across separate turns.
|
|
54
56
|
- Always verify the files you have edited or created at the end of the task to ensure they are completed and working as expected.
|
|
55
57
|
|
|
56
58
|
Environment you are running in:
|
|
@@ -69,8 +71,8 @@ IMPORTANT:
|
|
|
69
71
|
- 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
72
|
- Response without the submit_and_exit tool call will considered not completed and the task will continue.
|
|
71
73
|
{{CLINE_RULES}}
|
|
72
|
-
{{CLINE_METADATA}}`;var
|
|
73
|
-
${
|
|
74
|
-
${
|
|
74
|
+
{{CLINE_METADATA}}`;var Gn="# Workspace Configuration";function To(n,o,r){if(r?.trim()?.includes(Gn))return r.trim();let f=r||JSON.stringify({workspaces:{[n]:{hint:o||n.split("/").at(-1)||n}}},null,2);return`
|
|
75
|
+
${Gn}
|
|
76
|
+
${f}`}function Jd(n){let{ide:o="Terminal Shell",mode:r,platform:f="unknown",workspaceName:g,metadata:_,rules:l,overridePrompt:c,providerId:B}=n,E=n.workspaceRoot??n.rootPath??"",I=Tn(B||"");if(c?.trim()){let L=c.trim();if(I&&_?.trim()&&!L.includes(Gn))return`${L}
|
|
75
77
|
|
|
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};
|
|
78
|
+
${To(E,g,_)}`.trim();return L}return(r==="yolo"?Ho:qo).replace("{{PLATFORM_NAME}}",f).replace("{{CWD}}",E).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",I?To(E,g,_):"").replace("{{CLINE_RULES}}",l||"").trim()}var Qd="remote://";import{z as e}from"zod";var Go=e.object({id:e.string(),temperature:e.number().optional(),isR1FormatRequired:e.boolean().optional(),maxTokens:e.number().optional(),contextWindow:e.number().optional(),inputPrice:e.number().optional(),outputPrice:e.number().optional(),supportsImages:e.boolean().optional()}),Xo=e.object({models:e.array(Go).optional(),openAiBaseUrl:e.string().optional(),openAiHeaders:e.record(e.string(),e.string()).optional(),azureApiVersion:e.string().optional(),azureIdentity:e.boolean().optional()}),Vo=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional()}),mo=e.object({name:e.string(),baseModelId:e.string(),thinkingBudgetTokens:e.number().optional()}),Zo=e.object({models:e.array(Vo).optional(),customModels:e.array(mo).optional(),awsRegion:e.string().optional(),awsUseCrossRegionInference:e.boolean().optional(),awsUseGlobalInference:e.boolean().optional(),awsBedrockUsePromptCache:e.boolean().optional(),awsBedrockEndpoint:e.string().optional()}),Jo=e.object({id:e.string()}),Qo=e.object({models:e.array(Jo).optional()}),Wo=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional()}),Oo=e.object({models:e.array(Wo).optional(),vertexProjectId:e.string().optional(),vertexRegion:e.string().optional()}),Po=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional(),promptCachingEnabled:e.boolean().optional()}),Ko=e.object({models:e.array(Po).optional(),baseUrl:e.string().optional()}),jo=e.object({id:e.string(),thinkingBudgetTokens:e.number().optional()}),Co=e.object({models:e.array(jo).optional(),baseUrl:e.string().optional()}),Wd=e.object({OpenAiCompatible:Xo.optional(),AwsBedrock:Zo.optional(),Cline:Qo.optional(),Vertex:Oo.optional(),LiteLLM:Ko.optional(),Anthropic:Co.optional()}),io=e.object({id:e.string()}),No=e.object({name:e.string(),url:e.string(),alwaysEnabled:e.boolean().optional(),headers:e.record(e.string(),e.string()).optional()}),Xn=e.object({alwaysEnabled:e.boolean(),name:e.string(),contents:e.string()}),_n=e.object({bucket:e.string(),accessKeyId:e.string(),secretAccessKey:e.string(),region:e.string().optional(),endpoint:e.string().optional(),accountId:e.string().optional()}),ho=e.object({enabled:e.boolean().optional(),type:e.union([e.literal("s3_access_keys"),e.literal("r2_access_keys"),e.literal("azure_access_keys")]).optional(),s3AccessSettings:_n.optional(),r2AccessSettings:_n.optional(),azureAccessSettings:_n.optional()}),xo=e.object({promptUploading:ho.optional()}),Od=e.object({version:e.string(),providerSettings:Wd.optional(),telemetryEnabled:e.boolean().optional(),kanbanEnabled:e.boolean().optional(),mcpMarketplaceEnabled:e.boolean().optional(),allowedMCPServers:e.array(io).optional(),remoteMCPServers:e.array(No).optional(),blockPersonalRemoteMCPServers:e.boolean().optional(),yoloModeAllowed:e.boolean().optional(),openTelemetryEnabled:e.boolean().optional(),openTelemetryMetricsExporter:e.string().optional(),openTelemetryLogsExporter:e.string().optional(),openTelemetryOtlpProtocol:e.string().optional(),openTelemetryOtlpEndpoint:e.string().optional(),openTelemetryOtlpHeaders:e.record(e.string(),e.string()).optional(),openTelemetryOtlpMetricsProtocol:e.string().optional(),openTelemetryOtlpMetricsEndpoint:e.string().optional(),openTelemetryOtlpMetricsHeaders:e.record(e.string(),e.string()).optional(),openTelemetryOtlpLogsProtocol:e.string().optional(),openTelemetryOtlpLogsEndpoint:e.string().optional(),openTelemetryOtlpLogsHeaders:e.record(e.string(),e.string()).optional(),openTelemetryMetricExportInterval:e.number().optional(),openTelemetryOtlpInsecure:e.boolean().optional(),openTelemetryLogBatchSize:e.number().optional(),openTelemetryLogBatchTimeout:e.number().optional(),openTelemetryLogMaxQueueSize:e.number().optional(),enterpriseTelemetry:xo.optional(),globalRules:e.array(Xn).optional(),globalWorkflows:e.array(Xn).optional()}),Pd=e.record(e.string(),e.string());var Kd=4317;var jd="127.0.0.1:4317";import Vn from"zod";var Cd=Vn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),id=Vn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),Nd=Vn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var hd="runtime.team.progress.v1",xd="runtime.team.lifecycle.v1";var Sd="CLINE_ENVIRONMENT",ad="CLINE_ENVIRONMENT_OVERRIDE",mn={production:{environment:"production",appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",mcpBaseUrl:"https://api.cline.bot/v1/mcp",workOsClientId:"client_01K3A541FN8TA3EPPHTD2325AR"},staging:{environment:"staging",appBaseUrl:"https://staging-app.cline.bot",apiBaseUrl:"https://core-api.staging.int.cline.bot",mcpBaseUrl:"https://core-api.staging.int.cline.bot/v1/mcp",workOsClientId:"client_01K3A5415VF6QBQBG3XYCW91G6"},local:{environment:"local",appBaseUrl:"http://localhost:3000",apiBaseUrl:"http://localhost:7777",mcpBaseUrl:"http://localhost:7777/v1/mcp",workOsClientId:"client_01K6XQAY7JK6T5HXVSZW2S5VYK"}},vd="production";function So(n){let o=n?.trim().toLowerCase();if(o==="production"||o==="staging"||o==="local")return o;return}function ao(){if(typeof process>"u"||!process?.env)return{};return process.env}function vo(){let n=ao();return So(n.CLINE_ENVIRONMENT_OVERRIDE)??So(n.CLINE_ENVIRONMENT)??"production"}function pd(n){if(typeof n==="string")return mn[n];return mn[vo()]}function zd(n,o){if(o.CLINE_API_BASE_URL)n={...n,apiBaseUrl:o.CLINE_API_BASE_URL,mcpBaseUrl:`${o.CLINE_API_BASE_URL}/v1/mcp`};return n}function nf(n){let o=pd(n);return zd(o,ao())}var of="sdk.error";function rf(n,o){if(!n)return;n.capture({event:o.event??"sdk.error",properties:zo(o)})}function zo(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...nr(n.error,n.messageLimit)}}function nr(n,o=500){let r=ef(n)?n:void 0,f=n instanceof Error?n:void 0,g=f?.message??po(r?.message)??(typeof n==="string"?n:String(n)),_=sf(r?.code),l=Zn(r?.status)??Zn(r?.statusCode)??Zn(r?.responseStatus);return{error_type:f?.name?.trim()||po(r?.name)||f?.constructor?.name||"Error",error_message:ff(df(g),o),..._!==void 0?{error_code:_}:{},...l!==void 0?{error_status:l}:{}}}function df(n){return n.replace(/(authorization=Bearer\s+)[^&\s]+/gi,"$1[redacted]").replace(/(api[_-]?key|access[_-]?token|refresh[_-]?token|authorization|password|secret)=([^&\s]+)/gi,"$1=[redacted]").replace(/(Bearer\s+)[A-Za-z0-9._~+/-]+=*/gi,"$1[redacted]").replace(/\/Users\/[^/\s]+/g,"/Users/[redacted]").replace(/\/home\/[^/\s]+/g,"/home/[redacted]").replace(/([A-Za-z]:[\\/]+Users[\\/]+)[^\\/\s]+/g,"$1[redacted]")}function ff(n,o){let r=Math.max(1,Math.floor(o));return n.length>r?n.substring(0,r):n}function ef(n){return typeof n==="object"&&n!==null}function po(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function sf(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function Zn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function or(n){let o={};if(!n)return o;try{n.split(",").forEach((r)=>{let f=r.indexOf("=");if(f<=0)return;let g=decodeURIComponent(r.substring(0,f).trim()),_=decodeURIComponent(r.substring(f+1).trim());if(!g||!_)return;o[g]=_})}catch{}return o}function gf(){if(!process.env)return{enabled:!1};return{enabled:process.env.OTEL_TELEMETRY_ENABLED==="1"||process.env.OTEL_TELEMETRY_ENABLED==="true",metricsExporter:process.env.OTEL_METRICS_EXPORTER||"otlp",logsExporter:process.env.OTEL_LOGS_EXPORTER||"otlp",tracesExporter:process.env.OTEL_TRACES_EXPORTER,otlpProtocol:process.env.OTEL_EXPORTER_OTLP_PROTOCOL||"http/json",otlpEndpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,metricExportInterval:process.env.OTEL_METRIC_EXPORT_INTERVAL?Number.parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL,10):void 0,otlpHeaders:process.env.OTEL_EXPORTER_OTLP_HEADERS?or(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function rr(n={}){return{extension_version:"unknown",cline_type:"unknown",platform:"terminal",platform_version:process?.version||"unknown",os_type:process?.platform||"unknown",os_version:process?.platform==="win32"?process?.env?.OS??"unknown":"unknown",...n}}function lf(n={}){return{...gf(),...n,metadata:rr(n.metadata)}}function dr(n){let o=n?.trim();return o?o:void 0}function _f(n,o){if(!n)return;let r=typeof n==="function"?n(o):n;if(!r)return;let f=dr(r.rootSessionId);if(!f)return;return{rootSessionId:f}}function wf(n){return dr(n?.rootSessionId)}var yf=(n)=>crypto.getRandomValues(new Uint8Array(n)),Ef=(n,o,r)=>{let f=256-256%n.length;if(f===256){let _=n.length-1;return(l=o)=>{if(!l)return"";let c="";while(!0){let B=r(l),E=l;while(E--)if(c+=n[B[E]&_],c.length>=l)return c}}}let g=Math.ceil(409.6*o/f);return(_=o)=>{if(!_)return"";let l="";while(!0){let c=r(g),B=g;while(B--)if(c[B]<f){if(l+=n[c[B]%n.length],l.length>=_)return l}}}},fr=(n,o=21)=>Ef(n,o|0,yf);function cf(n="",o=""){let r=fr("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${r(5)}${o}`}var Bf=["idle","running","pending","completed","failed","cancelled"];var Jn=["rules","skills","workflows","plugins"],er=Jn,If=new Set(Jn);function sr(n){return typeof n==="string"&&If.has(n)}function Af(n){if(!Array.isArray(n))return;let o=n.map((r)=>typeof r==="string"?r.trim():"").filter(sr);return[...new Set(o)]}function tf(n,o){return new Set(n??er).has(o)}import{z as q}from"zod";var Df=q.object({rootPath:q.string().min(1),hint:q.string().min(1).optional(),associatedRemoteUrls:q.array(q.string().min(1)).optional(),latestGitCommitHash:q.string().min(1).optional(),latestGitBranchName:q.string().min(1).optional()}),kf=q.object({currentWorkspacePath:q.string().min(1).optional(),workspaces:q.record(q.string().min(1),Df)});function ls(){return{workspaces:{}}}function _s(n,o){let r={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!r.currentWorkspacePath)r.currentWorkspacePath=o.rootPath;return kf.parse(r)}import{z as d}from"zod";var Rf=["current_state","boundary_analysis","interface_proposal"],Es=3600000,cs=240,Bs=400,H=d.preprocess((n)=>n instanceof Date?n.toISOString():n,d.string().datetime()),N=d.enum(["pending","in_progress","blocked","completed"]),gr=d.enum(["queued","running","completed","failed","cancelled","interrupted"]),wn=d.enum(["draft","in_review","finalized"]),$f=d.object({agentId:d.string(),role:d.enum(["lead","teammate"]),description:d.string().optional(),status:d.enum(["idle","running","stopped"])}),Is=d.object({agentId:d.string(),rolePrompt:d.string(),modelId:d.string().optional(),maxIterations:d.number().optional()});function R(n){return d.preprocess((o)=>o===null?void 0:o,n.optional())}var As=d.object({agentId:d.string().min(1).describe("Teammate identifier"),rolePrompt:d.string().min(1).describe("System prompt describing teammate role")}).strict(),ts=d.object({agentId:d.string().min(1).describe("Teammate identifier"),reason:R(d.string().min(1)).describe("Optional shutdown reason")}),Ds=d.object({}),uf={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},ks={create:["status","taskId","summary","reason"]},Rs=d.object({action:d.enum(["create","list","claim","complete","block"]),title:R(d.string().min(1)).describe("Task title"),description:R(d.string().min(1)).describe("Task details"),dependsOn:R(d.array(d.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:R(d.string().min(1)).describe("Optional assignee"),status:R(d.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:R(d.string()).describe("Task ID"),summary:R(d.string().min(1)).describe("Completion summary"),reason:R(d.string().min(1)).describe("Blocking reason")}).superRefine((n,o)=>{for(let r of uf[n.action]){if(n[r]!==void 0)continue;o.addIssue({code:"custom",path:[r],message:`Field "${r}" is required when action=${n.action}`})}}),$s=d.object({agentId:d.string().describe("Teammate agent ID"),task:d.string().min(1).describe("Task instructions for the teammate"),taskId:R(d.string()).describe("Optional shared task list ID"),runMode:R(d.enum(["sync","async"])).describe("Execution mode: 'sync' blocks until the teammate finishes and returns the result (default if omitted); 'async' queues the run and returns a runId immediately — use team_await_runs to collect results later."),continueConversation:R(d.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),us=d.object({status:R(d.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:R(d.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:R(d.boolean()).describe("Include completed/failed runs (default true)")}),Ms=d.object({runId:d.string().min(1).describe("Run ID"),reason:R(d.string().min(1)).describe("Optional cancellation reason")}),bs=d.object({runId:R(d.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),Ls=d.object({toAgentId:d.string().min(1).describe("Recipient agent ID"),subject:d.string().min(1).describe("Message subject"),body:d.string().min(1).describe("Message body"),taskId:R(d.string().min(1)).describe("Optional task ID context")}),Fs=d.object({subject:d.string().min(1).describe("Message subject"),body:d.string().min(1).describe("Message body"),taskId:R(d.string().min(1)).describe("Optional task ID context")}),Ys=d.object({unreadOnly:R(d.boolean()).describe("Only unread messages for read action (default true)")}),Us=d.object({kind:d.enum(["progress","handoff","blocked","decision","done","error"]),summary:d.string().min(1).describe("Update summary"),taskId:R(d.string().min(1)).describe("Optional task ID context"),evidence:R(d.array(d.string().min(1))).describe("Optional evidence links/snippets"),nextAction:R(d.string().min(1)).describe("Planned next step")}),qs=d.object({}),Hs=d.object({title:d.string().describe("Outcome title"),requiredSections:d.array(d.string()).default(Rf).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),Ts=d.object({outcomeId:d.string().describe("Outcome ID"),section:d.string().describe("Section name"),sourceRunId:R(d.string()).describe("Optional source run ID"),content:d.string().describe("Section fragment content")}),Gs=d.object({fragmentId:d.string().describe("Fragment ID"),approved:d.boolean().describe("Review decision")}),Xs=d.object({outcomeId:d.string().describe("Outcome ID")}),Vs=d.object({}),ms=d.object({teamId:d.string(),teamName:d.string(),members:d.array($f),taskCounts:d.record(N,d.number()),unreadMessages:d.number(),missionLogEntries:d.number(),activeRuns:d.number(),queuedRuns:d.number(),outcomeCounts:d.record(wn,d.number())}),Mf=d.object({id:d.string(),title:d.string(),description:d.string(),status:N,createdAt:H,updatedAt:H,createdBy:d.string(),assignee:d.string().optional(),dependsOn:d.array(d.string()),summary:d.string().optional(),isReady:d.boolean(),blockedBy:d.array(d.string())}),Zs=d.discriminatedUnion("action",[d.object({action:d.literal("create"),taskId:d.string(),status:N,ignoredFields:d.array(d.string()).optional(),note:d.string().optional()}),d.object({action:d.literal("list"),tasks:d.array(Mf)}),d.object({action:d.literal("claim"),taskId:d.string(),status:N,nextStep:d.string()}),d.object({action:d.literal("complete"),taskId:d.string(),status:N}),d.object({action:d.literal("block"),taskId:d.string(),status:N})]),Js=d.object({agentId:d.string(),mode:d.enum(["sync","async"]),status:d.enum(["dispatched","running","queued","joined"]),dispatched:d.boolean(),message:d.string(),deduped:d.boolean().optional(),runId:d.string().optional(),text:d.string().optional(),iterations:d.number().optional()}),bf=d.object({textPreview:d.string(),iterations:d.number(),finishReason:d.string(),durationMs:d.number(),usage:d.object({inputTokens:d.number(),outputTokens:d.number(),cacheReadTokens:d.number().optional(),cacheWriteTokens:d.number().optional(),totalCost:d.number().optional()})}),Qs=d.object({id:d.string(),agentId:d.string(),taskId:d.string().optional(),status:gr,messagePreview:d.string(),priority:d.number(),retryCount:d.number(),maxRetries:d.number(),nextAttemptAt:H.optional(),continueConversation:d.boolean().optional(),startedAt:H,endedAt:H.optional(),leaseOwner:d.string().optional(),heartbeatAt:H.optional(),lastProgressAt:H.optional(),lastProgressMessage:d.string().optional(),currentActivity:d.string().optional(),error:d.string().optional(),resultSummary:bf.optional()}),Ws=d.object({id:d.string(),teamId:d.string(),fromAgentId:d.string(),toAgentId:d.string(),subject:d.string(),body:d.string(),taskId:d.string().optional(),sentAt:H,readAt:H.optional()}),Os=d.object({id:d.string(),teamId:d.string(),title:d.string(),status:wn,requiredSections:d.array(d.string()),createdBy:d.string(),createdAt:H,finalizedAt:H.optional()}),Ps=d.object({outcomeId:d.string(),status:wn,requiredSections:d.array(d.string())}),Ks=d.object({agentId:d.string(),status:d.string()}),js=d.object({runId:d.string(),status:gr}),Cs=d.object({id:d.string(),toAgentId:d.string()}),is=d.object({delivered:d.number()}),Ns=d.object({id:d.string()}),hs=d.object({status:d.string()}),xs=d.object({fragmentId:d.string(),status:d.string()}),Ss=d.object({outcomeId:d.string(),status:wn});var Lf;((u)=>{u.TaskStart="task_start";u.TaskEnd="task_end";u.AgentEvent="agent_event";u.TeammateSpawned="teammate_spawned";u.TeammateShutdown="teammate_shutdown";u.TeamTaskUpdated="team_task_updated";u.TeamMessage="team_message";u.TeamMissionLog="team_mission_log";u.TeamTaskCompleted="team_task_completed";u.RunStarted="run_started";u.RunQueued="run_queued";u.RunProgress="run_progress";u.RunCompleted="run_completed";u.RunFailed="run_failed";u.RunCancelled="run_cancelled";u.RunInterrupted="run_interrupted";u.OutcomeCreated="outcome_created";u.OutcomeFragmentAttached="outcome_fragment_attached";u.OutcomeFragmentReviewed="outcome_fragment_reviewed";u.OutcomeFinalized="outcome_finalized"})(Lf||={});import{z as Ff}from"zod";function Yf(n){let{$schema:o,...r}=n;if(typeof r.type==="string")return r;if("properties"in r||"required"in r||"additionalProperties"in r)return{type:"object",...r};for(let f of["oneOf","anyOf","allOf"]){let g=r[f];if(!Array.isArray(g)||g.length===0)continue;if(f==="allOf"){if(g.some((c)=>c&&typeof c==="object"&&c.type==="object"))return{type:"object",...r};throw Error('Tool inputSchema must describe an object at the top level, but the schema has a top-level "allOf" with no branch that asserts type: "object". Add type: "object" to at least one allOf branch to make the object constraint explicit.')}if(g.every((l)=>l&&typeof l==="object"&&l.type==="object"))return{type:"object",...r};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${f}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return r}function Uf(n){let o=Yf(n.inputSchema instanceof Ff.ZodType?Hn(n.inputSchema):n.inputSchema);return{name:n.name,description:n.description,inputSchema:o,lifecycle:n.lifecycle,timeoutMs:n.timeoutMs??30000,retryable:n.retryable??!0,maxRetries:n.maxRetries??3,execute:n.execute}}var lr=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function qf(n){let o=n instanceof Error?n.message.toLowerCase():String(n);return lr.some((r)=>o.includes(r))}export{Hn as zodToJsonSchema,_o as xmlTagsRemoval,Zd as validateWithZod,Bo as validateImageMedia,S as validateAndReserveImageMedia,_s as upsertWorkspaceInfo,Yo as truncateStr,Gd as truncateSplit,to as toAiSdkToolResultOutput,Id as serializeAbortReason,U as sanitizeSurrogates,Td as sanitizeFileName,Fd as safeJsonStringify,Yd as safeJsonParse,wf as resolveRootSessionId,ko as resolveReasoningEffortRatio,cd as resolveReasoningBudgetFromRatio,yo as resolveMediaBudget,re as resolveHubCommandTimeoutMs,_f as resolveHookSessionContext,Ed as resolveEffectiveReasoningEffort,vo as resolveClineEnvironment,x as reserveImageMediaBytes,go as parseUserCommandEnvelope,Af as parseRuntimeConfigExtensions,Ld as parseJsonStream,Pr as parseHookEventPayload,lo as normalizeUserInput,nr as normalizeSdkError,ro as normalizePluginManifest,td as noopBasicLogger,wd as mergeModelOptions,Xd as maskSecret,sr as isRuntimeConfigExtensionKind,qf as isLikelyAuthError,de as isHubToolExecutorName,ne as isHubProtocolCompatible,Tn as isClineProvider,od as isCanonicalBase64,Eo as isBase64Char,nd as imageFileMaxDecodedBytesForBase64Limit,An as imageBase64LengthForDecodedBytes,zr as imageBase64EncodedByteLength,wo as imageBase64DecodedByteLength,tf as hasRuntimeConfigExtension,Hd as getShellArgs,qd as getDefaultShell,jr as getDefaultHubCommandTimeoutMs,nf as getClineEnvironmentConfig,Nr as formatUserInputBlock,hr as formatUserCommandBlock,md as formatUptime,_d as formatMessagesForAiSdk,Vd as formatHumanReadableDate,In as formatFileContentBlock,ar as formatDisplayUserInput,Ad as estimateTokens,ls as emptyWorkspaceManifest,Uf as createTool,cf as createSessionId,gn as createMediaBudgetState,qr as createContributionRegistry,rr as createClineTelemetryServiceMetadata,lf as createClineTelemetryServiceConfig,rf as captureSdkError,zo as buildSdkErrorProperties,Jd as buildClineSystemPrompt,kf as WorkspaceManifestSchema,Df as WorkspaceInfoSchema,Oo as VertexSettingsSchema,Wo as VertexModelSchema,cn as ToolCallRecordSchema,xn as ThinkingConfigSchema,Is as TeamTeammateSpecSchema,Zs as TeamTaskToolResultSchema,Mf as TeamTaskListItemToolResultSchema,Rs as TeamTaskInputSchema,ms as TeamStatusToolResultSchema,Ds as TeamStatusInputSchema,As as TeamSpawnTeammateInputSchema,Ks as TeamSimpleAgentStatusToolResultSchema,ts as TeamShutdownTeammateInputSchema,Cs as TeamSendMessageToolResultSchema,Ls as TeamSendMessageInputSchema,Qs as TeamRunToolSummarySchema,Js as TeamRunTaskToolResultSchema,$s as TeamRunTaskInputSchema,bf as TeamRunResultSummarySchema,Gs as TeamReviewOutcomeFragmentInputSchema,Ys as TeamReadMailboxInputSchema,Os as TeamOutcomeToolResultSchema,xs as TeamOutcomeFragmentToolResultSchema,Ns as TeamMissionLogToolResultSchema,Us as TeamMissionLogInputSchema,Lf as TeamMessageType,Ws as TeamMailboxMessageToolResultSchema,us as TeamListRunsInputSchema,Vs as TeamListOutcomesInputSchema,Ss as TeamFinalizeOutcomeToolResultSchema,Xs as TeamFinalizeOutcomeInputSchema,Ps as TeamCreateOutcomeToolResultSchema,Hs as TeamCreateOutcomeInputSchema,hs as TeamCleanupToolResultSchema,qs as TeamCleanupInputSchema,js as TeamCancelRunToolResultSchema,Ms as TeamCancelRunInputSchema,is as TeamBroadcastToolResultSchema,Fs as TeamBroadcastInputSchema,bs as TeamAwaitRunsInputSchema,Ts as TeamAttachOutcomeFragmentInputSchema,ks as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,Bs as TEAM_RUN_TEXT_PREVIEW_LIMIT,cs as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,hd as TEAM_PROGRESS_EVENT_TYPE,xd as TEAM_LIFECYCLE_EVENT_TYPE,Es as TEAM_AWAIT_TIMEOUT_MS,sn as SUPPORTED_IMAGE_MEDIA_TYPES,Bf as SESSION_STATUS_VALUES,of as SDK_ERROR_TELEMETRY_EVENT,_n as S3AccessKeySettingsSchema,No as RemoteMCPServerSchema,Od as RemoteConfigSchema,$r as ReasoningEffortSchema,Jn as RUNTIME_CONFIG_EXTENSION_KINDS,Qd as REMOTE_URI_SCHEME,v as REASONING_EFFORT_RATIOS,id as ProviderProtocolSchema,Nd as ProviderClientSchema,Cd as ProviderCapabilitySchema,ho as PromptUploadingSchema,Hr as PLUGIN_FILE_EXTENSIONS,Xo as OpenAiCompatibleSchema,Go as OpenAiCompatibleModelSchema,Nn as ModelStatusSchema,hn as ModelPricingSchema,Sn as ModelMetadataSchema,dn as ModelInfoSchema,Cn as ModelCapabilitySchema,vf as MIN_CLIENT_HUB_PROTOCOL_VERSION,pf as MAX_CLIENT_HUB_PROTOCOL_VERSION,Ko as LiteLLMSchema,Po as LiteLLMModelSchema,W as IMAGE_OMITTED_PLACEHOLDER,so as HookEventPayloadSchema,eo as HookEventNameSchema,we as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,Cr as HUB_TOOL_EXECUTOR_NAMES,fe as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,_e as HUB_MISTAKE_LIMIT_CAPABILITY,se as HUB_HOOK_CAPABILITY_PREFIX,Kr as HUB_DEFAULT_COMMAND_TIMEOUT_MS,ee as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,ge as HUB_COMPACTION_CAPABILITY,oe as HUB_COMMAND_SLOW_LOG_MS,le as HUB_CHECKPOINT_CAPABILITY,zf as HUB_CAPABILITIES,Xn as GlobalInstructionsFileSchema,Tr as FeatureFlagDefaultValue,Gr as FEATURE_FLAGS,xo as EnterpriseTelemetrySchema,tn as EMPTY_CONTENT_TEXT,er as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,Bd as DEFAULT_REQUEST_HEADERS,yd as DEFAULT_REASONING_EFFORT,Rf as DEFAULT_OUTCOME_REQUIRED_SECTIONS,pr as DEFAULT_MAX_TOTAL_MEDIA_BYTES,X as DEFAULT_MAX_IMAGE_ENCODED_BYTES,O as DEFAULT_MAX_IMAGE_DECODED_BYTES,vr as DEFAULT_MAX_IMAGE_BASE64_BYTES,vd as DEFAULT_CLINE_ENVIRONMENT,Bn as ContributionRegistry,br as ConnectorHookEventSchema,an as ConnectorHookEventNameSchema,pn as ConnectorEventContextSchema,vn as ConnectorEventActorSchema,ur as ConnectorAuthorizationRequestSchema,Mr as ConnectorAuthorizationDecisionSchema,Qo as ClineSettingsSchema,Jo as ClineModelSchema,af as CURRENT_HUB_PROTOCOL_VERSION,ad as CLINE_ENVIRONMENT_OVERRIDE_ENV,Sd as CLINE_ENVIRONMENT_ENV,mn as CLINE_ENVIRONMENTS,Kd as CLINE_DEFAULT_RPC_PORT,jd as CLINE_DEFAULT_RPC_ADDRESS,Zo as AwsBedrockSettingsSchema,Vo as AwsBedrockModelSchema,mo as AwsBedrockCustomModelSchema,jn as ApiFormatSchema,Dr as ApiFormat,Co as AnthropicSchema,jo as AnthropicModelSchema,io as AllowedMCPServerSchema,Rr as AgentUsageSchema,Jf as AgentResultSchema,kr as AgentFinishReasonSchema,Qf as AgentConfigSchema,lr as AUTH_ERROR_PATTERNS,Pd as APIKeySchema};
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ 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, AgentExtensionCommandResult, AgentExtensionHooks, AgentExtensionMessageBuilder, AgentExtensionProvider, AgentExtensionRegistry, AgentExtensionRule, AgentExtensionSessionContext, ContributionRegistryExtension, ContributionRegistryOptions, PluginManifest, PluginSetupContext, } from "./extensions/contribution-registry";
|
|
10
|
+
export type { AgentExtensionApi, AgentExtensionAutomationContext, AgentExtensionAutomationEventType, AgentExtensionCapability, AgentExtensionCommand, AgentExtensionCommandResult, AgentExtensionHooks, AgentExtensionMcpEnv, AgentExtensionMcpEnvValue, AgentExtensionMcpServer, AgentExtensionMcpSseTransport, AgentExtensionMcpStdioTransport, AgentExtensionMcpStreamableHttpTransport, AgentExtensionMcpTransport, 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
13
|
export { FEATURE_FLAGS, type FeatureFlag, FeatureFlagDefaultValue, type FeatureFlagPayload, type FeatureFlagsAndPayloads, type FeatureFlagsContext, type FeatureFlagsSettings, type IFeatureFlagsProvider, } from "./feature-flags";
|
|
@@ -18,8 +18,10 @@ export * from "./hub";
|
|
|
18
18
|
export type { AiSdkFormatterMessage, AiSdkFormatterMessageRole, AiSdkFormatterPart, AiSdkMessage, AiSdkMessagePart, } from "./llms/ai-sdk-format";
|
|
19
19
|
export { EMPTY_CONTENT_TEXT, formatMessagesForAiSdk, sanitizeSurrogates, toAiSdkToolResultOutput, } from "./llms/ai-sdk-format";
|
|
20
20
|
export type * from "./llms/gateway";
|
|
21
|
+
export { createMediaBudgetState, DEFAULT_MAX_IMAGE_BASE64_BYTES, DEFAULT_MAX_IMAGE_DECODED_BYTES, DEFAULT_MAX_IMAGE_ENCODED_BYTES, DEFAULT_MAX_TOTAL_MEDIA_BYTES, IMAGE_OMITTED_PLACEHOLDER, type ImageMediaLimits, type ImageMediaValidationFailure, type ImageMediaValidationResult, type ImageMediaValidationSuccess, imageBase64DecodedByteLength, imageBase64EncodedByteLength, imageBase64LengthForDecodedBytes, imageFileMaxDecodedBytesForBase64Limit, isBase64Char, isCanonicalBase64, type MediaBudgetOptions, type MediaBudgetState, type ResolvedMediaBudget, reserveImageMediaBytes, resolveMediaBudget, SUPPORTED_IMAGE_MEDIA_TYPES, validateAndReserveImageMedia, validateImageMedia, } from "./llms/media";
|
|
21
22
|
export type { ContentBlock, FileContent, ImageContent, Message, MessageRole, MessageWithMetadata, RedactedThinkingContent, TextContent, ThinkingContent, ToolDefinition, ToolResultContent, ToolUseContent, } from "./llms/messages";
|
|
22
23
|
export { ApiFormat, ApiFormatSchema, type ModelCapability, ModelCapabilitySchema, type ModelInfo, ModelInfoSchema, type ModelMetadata, ModelMetadataSchema, type ModelPricing, ModelPricingSchema, type ModelStatus, ModelStatusSchema, type ThinkingConfig, ThinkingConfigSchema, } from "./llms/model-info";
|
|
24
|
+
export { mergeModelOptions } from "./llms/model-options";
|
|
23
25
|
export { DEFAULT_REASONING_EFFORT, REASONING_EFFORT_RATIOS, resolveEffectiveReasoningEffort, resolveReasoningBudgetFromRatio, resolveReasoningEffortRatio, } from "./llms/reasoning-effort";
|
|
24
26
|
export { DEFAULT_REQUEST_HEADERS, serializeAbortReason } from "./llms/requests";
|
|
25
27
|
export { estimateTokens } from "./llms/tokens";
|
|
@@ -34,6 +36,7 @@ export { validateWithZod, zodToJsonSchema } from "./parse/zod";
|
|
|
34
36
|
export type { ClineSystemPromptOptions } from "./prompt/cline";
|
|
35
37
|
export { buildClineSystemPrompt, processWorkspaceInfo } from "./prompt/cline";
|
|
36
38
|
export { formatDisplayUserInput, formatFileContentBlock, formatUserCommandBlock, formatUserInputBlock, normalizeUserInput, parseUserCommandEnvelope, xmlTagsRemoval, } from "./prompt/format";
|
|
39
|
+
export { isClineProvider } from "./providers/utils";
|
|
37
40
|
export { buildRemoteConfigSessionBlobUploadMetadata, clearRemoteConfigSessionBlobUpload, createRemoteConfigSessionMessagesArtifactUploader, prepareRemoteConfigRuntime, REMOTE_CONFIG_SESSION_BLOB_UPLOAD_METADATA_KEY, readRemoteConfigSessionBlobUploadMetadata, registerRemoteConfigSessionBlobUpload, } from "./remote-config";
|
|
38
41
|
export type { PreparedRemoteConfigRuntime, PrepareRemoteConfigRuntimeOptions, RemoteConfigBundle, } from "./remote-config/bundle";
|
|
39
42
|
export { REMOTE_URI_SCHEME } from "./remote-config/constants";
|