@cline/shared 0.0.46 → 0.0.47-nightly.1781493618
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 +5 -1
- package/dist/feature-flags.d.ts +47 -0
- package/dist/hub.d.ts +18 -0
- 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/prompt/system.d.ts +2 -2
- package/dist/providers/utils.d.ts +1 -0
- package/dist/runtime/cline-environment.d.ts +2 -2
- package/package.json +1 -1
|
@@ -7,8 +7,12 @@ import type { ClientContext, UserContext } from "./context";
|
|
|
7
7
|
export interface AgentExtensionCommand {
|
|
8
8
|
name: string;
|
|
9
9
|
description?: string;
|
|
10
|
-
handler?: (input: string) => Promise<
|
|
10
|
+
handler?: (input: string) => Promise<AgentExtensionCommandResult> | AgentExtensionCommandResult;
|
|
11
11
|
}
|
|
12
|
+
export type AgentExtensionCommandResult = string | {
|
|
13
|
+
reply?: string;
|
|
14
|
+
submitPrompt?: string;
|
|
15
|
+
};
|
|
12
16
|
export interface AgentExtensionRule {
|
|
13
17
|
id: string;
|
|
14
18
|
content: string | (() => string | Promise<string>);
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export declare const FeatureFlag: {
|
|
2
|
+
/** Enables Cline Pass 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 & {});
|
|
7
|
+
export type FeatureFlagJsonValue = string | number | boolean | null | {
|
|
8
|
+
[key: string]: FeatureFlagJsonValue;
|
|
9
|
+
} | FeatureFlagJsonValue[];
|
|
10
|
+
export type FeatureFlagPayload = FeatureFlagJsonValue;
|
|
11
|
+
export type FeatureFlagsAndPayloads = {
|
|
12
|
+
featureFlags?: Record<string, FeatureFlagPayload>;
|
|
13
|
+
featureFlagPayloads?: Record<string, FeatureFlagPayload>;
|
|
14
|
+
};
|
|
15
|
+
export interface FeatureFlagsContext {
|
|
16
|
+
/** Stable SDK/client/user identifier used by providers that evaluate per identity. */
|
|
17
|
+
distinctId?: string;
|
|
18
|
+
/** Authenticated Cline account/user ID, when available. */
|
|
19
|
+
userId?: string | null;
|
|
20
|
+
/** Optional SDK consumer name, e.g. `my-production-app`. */
|
|
21
|
+
clientName?: string;
|
|
22
|
+
}
|
|
23
|
+
type AssertTrue<T extends true> = T;
|
|
24
|
+
type Primitive = string | number | boolean | bigint | symbol | null | undefined;
|
|
25
|
+
type HasNonPrimitiveFieldNames<T> = {
|
|
26
|
+
[K in keyof T]-?: Exclude<T[K], Primitive> extends never ? never : K;
|
|
27
|
+
}[keyof T];
|
|
28
|
+
type HasOnlyPrimitiveFields<T> = HasNonPrimitiveFieldNames<T> extends never ? true : false;
|
|
29
|
+
export type FeatureFlagsContextPrimitiveValued = AssertTrue<HasOnlyPrimitiveFields<FeatureFlagsContext>>;
|
|
30
|
+
export interface FeatureFlagsSettings {
|
|
31
|
+
/** Whether the provider is enabled. */
|
|
32
|
+
enabled: boolean;
|
|
33
|
+
/** Optional timeout in ms for feature flag requests. */
|
|
34
|
+
timeoutMs?: number;
|
|
35
|
+
}
|
|
36
|
+
export interface IFeatureFlagsProvider {
|
|
37
|
+
getAllFlagsAndPayloads(options: {
|
|
38
|
+
flagKeys?: readonly string[];
|
|
39
|
+
context: FeatureFlagsContext;
|
|
40
|
+
}): Promise<FeatureFlagsAndPayloads | undefined>;
|
|
41
|
+
readonly enabled: boolean;
|
|
42
|
+
getSettings(): FeatureFlagsSettings;
|
|
43
|
+
dispose(): Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
export declare const FeatureFlagDefaultValue: Partial<Record<FeatureFlag, FeatureFlagPayload | undefined>>;
|
|
46
|
+
export declare const FEATURE_FLAGS: readonly FeatureFlag[];
|
|
47
|
+
export {};
|
package/dist/hub.d.ts
CHANGED
|
@@ -3,6 +3,24 @@ import type { ReasoningEffort } from "./agents/types";
|
|
|
3
3
|
import type { GatewayModelSelection, JsonValue } from "./llms/gateway";
|
|
4
4
|
import type { RuntimeConfigExtensionKind } from "./session/runtime-config";
|
|
5
5
|
export type HubProtocolVersion = "v1";
|
|
6
|
+
export declare const CURRENT_HUB_PROTOCOL_VERSION: HubProtocolVersion;
|
|
7
|
+
export declare const MIN_CLIENT_HUB_PROTOCOL_VERSION: HubProtocolVersion;
|
|
8
|
+
export declare const MAX_CLIENT_HUB_PROTOCOL_VERSION: HubProtocolVersion;
|
|
9
|
+
export type HubCapabilityName = "client.register" | "client.list" | "session.create" | "session.list" | "session.get" | "session.run" | "session.abort" | "schedule.create" | "schedule.list" | "settings.get" | "settings.set";
|
|
10
|
+
export declare const HUB_CAPABILITIES: readonly HubCapabilityName[];
|
|
11
|
+
export interface HubProtocolMetadata {
|
|
12
|
+
protocolVersion: string;
|
|
13
|
+
minClientProtocolVersion?: string;
|
|
14
|
+
maxClientProtocolVersion?: string;
|
|
15
|
+
capabilities?: readonly string[];
|
|
16
|
+
}
|
|
17
|
+
export type HubCompatibilityResult = {
|
|
18
|
+
compatible: true;
|
|
19
|
+
} | {
|
|
20
|
+
compatible: false;
|
|
21
|
+
reason: "missing_protocol" | "unsupported_protocol";
|
|
22
|
+
};
|
|
23
|
+
export declare function isHubProtocolCompatible(hub: HubProtocolMetadata, clientProtocolVersion?: HubProtocolVersion): HubCompatibilityResult;
|
|
6
24
|
export type HubActorKind = "client" | "peerHub";
|
|
7
25
|
export type HubTransportKind = "native" | "browser" | "remote" | "native-grpc" | "browser-ws" | "browser-grpc-web" | "peer-grpc";
|
|
8
26
|
export type HubRuntimeStatus = "idle" | "running" | "pending" | "completed" | "aborted" | "failed";
|
package/dist/index.browser.d.ts
CHANGED
|
@@ -5,9 +5,10 @@ export { ConnectorAuthorizationDecisionSchema, ConnectorAuthorizationRequestSche
|
|
|
5
5
|
export type * from "./connectors/options";
|
|
6
6
|
export type { AutomationEventEnvelope } from "./cron";
|
|
7
7
|
export type { ClientContext, ClientName, ExtensionContext, UserContext, WorkspaceContext, } from "./extensions/context";
|
|
8
|
-
export type { AgentExtensionApi, AgentExtensionAutomationContext, AgentExtensionAutomationEventType, AgentExtensionCapability, AgentExtensionCommand, AgentExtensionHooks, AgentExtensionMessageBuilder, AgentExtensionProvider, AgentExtensionRegistry, AgentExtensionRule, AgentExtensionSessionContext, ContributionRegistryExtension, ContributionRegistryOptions, PluginManifest, PluginSetupContext, } from "./extensions/contribution-registry";
|
|
8
|
+
export type { AgentExtensionApi, AgentExtensionAutomationContext, AgentExtensionAutomationEventType, AgentExtensionCapability, AgentExtensionCommand, AgentExtensionCommandResult, AgentExtensionHooks, AgentExtensionMessageBuilder, AgentExtensionProvider, AgentExtensionRegistry, AgentExtensionRule, AgentExtensionSessionContext, ContributionRegistryExtension, ContributionRegistryOptions, PluginManifest, PluginSetupContext, } from "./extensions/contribution-registry";
|
|
9
9
|
export { ContributionRegistry, createContributionRegistry, normalizePluginManifest, } from "./extensions/contribution-registry";
|
|
10
10
|
export { PLUGIN_FILE_EXTENSIONS } from "./extensions/plugin";
|
|
11
|
+
export { FEATURE_FLAGS, type FeatureFlag, FeatureFlagDefaultValue, type FeatureFlagPayload, type FeatureFlagsAndPayloads, type FeatureFlagsContext, type FeatureFlagsSettings, type IFeatureFlagsProvider, } from "./feature-flags";
|
|
11
12
|
export type { HookControl } from "./hooks/contracts";
|
|
12
13
|
export type { AgentAbortHookPayload, AgentEndHookPayload, AgentErrorHookPayload, AgentResumeHookPayload, AgentStartHookPayload, HookEventName, HookEventPayload, HookEventPayloadBase, PostToolUseData, PreCompactData, PreCompactHookPayload, PreToolUseData, PromptSubmitHookPayload, SessionShutdownHookPayload, TaskCancelData, TaskCompleteData, TaskResumeData, TaskStartData, ToolCallHookPayload, ToolResultHookPayload, UserPromptSubmitData, } from "./hooks/events";
|
|
13
14
|
export { HookEventNameSchema, HookEventPayloadSchema, parseHookEventPayload, } from "./hooks/events";
|
|
@@ -15,6 +16,7 @@ export * from "./hub";
|
|
|
15
16
|
export type { AiSdkFormatterMessage, AiSdkFormatterMessageRole, AiSdkFormatterPart, AiSdkMessage, AiSdkMessagePart, } from "./llms/ai-sdk-format";
|
|
16
17
|
export { EMPTY_CONTENT_TEXT, formatMessagesForAiSdk, sanitizeSurrogates, toAiSdkToolResultOutput, } from "./llms/ai-sdk-format";
|
|
17
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";
|
|
18
20
|
export type { ContentBlock, FileContent, ImageContent, Message, MessageRole, MessageWithMetadata, RedactedThinkingContent, TextContent, ThinkingContent, ToolDefinition, ToolResultContent, ToolUseContent, } from "./llms/messages";
|
|
19
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";
|
|
20
22
|
export { DEFAULT_REASONING_EFFORT, REASONING_EFFORT_RATIOS, resolveEffectiveReasoningEffort, resolveReasoningBudgetFromRatio, resolveReasoningEffortRatio, } from "./llms/reasoning-effort";
|
|
@@ -31,6 +33,7 @@ export { validateWithZod, zodToJsonSchema } from "./parse/zod";
|
|
|
31
33
|
export type { ClineSystemPromptOptions } from "./prompt/cline";
|
|
32
34
|
export { buildClineSystemPrompt } from "./prompt/cline";
|
|
33
35
|
export { formatDisplayUserInput, formatFileContentBlock, formatUserCommandBlock, formatUserInputBlock, normalizeUserInput, parseUserCommandEnvelope, xmlTagsRemoval, } from "./prompt/format";
|
|
36
|
+
export { isClineProvider } from "./providers/utils";
|
|
34
37
|
export { REMOTE_URI_SCHEME } from "./remote-config/constants";
|
|
35
38
|
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";
|
|
36
39
|
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 d}from"zod";import{z as k}from"zod";var bn=k.enum(["default","openai-responses","r1"]),tf={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},Jn=k.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),Bn=k.enum(["active","preview","deprecated","legacy"]),Qn=k.object({input:k.number().optional(),output:k.number().optional(),cacheWrite:k.number().optional(),cacheRead:k.number().optional()}),Vn=k.object({maxBudget:k.number().optional(),outputPrice:k.number().optional(),thinkingLevel:k.enum(["low","high"]).optional()}),Wn=k.object({reasoningDefaultOn:k.boolean().optional()}).catchall(k.unknown()),m=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(Jn).optional(),apiFormat:bn.optional(),systemRole:k.enum(["system","developer"]).optional(),temperature:k.number().optional(),pricing:Qn.optional(),thinkingConfig:Vn.optional(),status:Bn.optional(),deprecationNotice:k.string().optional(),replacedBy:k.string().optional(),releaseDate:k.string().optional(),deprecationDate:k.string().optional(),family:k.string().optional(),metadata:Wn.optional()});import{z as X}from"zod";var nn=X.object({id:X.string(),name:X.string(),input:X.unknown(),output:X.unknown(),error:X.string().optional(),durationMs:X.number(),startedAt:X.date(),endedAt:X.date()});var ef=d.enum(["completed","max_iterations","aborted","mistake_limit","error"]),af=d.object({inputTokens:d.number(),outputTokens:d.number(),cacheReadTokens:d.number().optional(),cacheWriteTokens:d.number().optional(),totalCost:d.number().optional()}),ng=d.object({text:d.string(),usage:af,messages:d.array(d.custom()),toolCalls:d.array(nn),iterations:d.number(),finishReason:ef,model:d.object({id:d.string(),provider:d.string(),info:m.optional()}),startedAt:d.date(),endedAt:d.date(),durationMs:d.number()}),zf=d.enum(["low","medium","high","xhigh"]),fg=d.object({sessionId:d.string().optional(),providerId:d.string(),modelId:d.string(),apiKey:d.string().optional(),baseUrl:d.string().url().optional(),headers:d.record(d.string(),d.string()).optional(),knownModels:d.record(d.string(),m).optional(),providerConfig:d.unknown().optional(),initialMessages:d.array(d.custom()).optional(),systemPrompt:d.string(),tools:d.array(d.custom()),maxIterations:d.number().positive().optional(),maxParallelToolCalls:d.number().int().positive().default(8),maxTokensPerTurn:d.number().positive().optional(),apiTimeoutMs:d.number().positive().default(180000),userFileContentLoader:d.function().input([d.string()]).output(d.promise(d.string())).optional(),toolContextMetadata:d.record(d.string(),d.unknown()).optional(),execution:d.object({maxConsecutiveMistakes:d.number().int().positive().optional(),reminderAfterIterations:d.number().nonnegative().optional(),reminderText:d.string().optional(),loopDetection:d.union([d.literal(!1),d.object({softThreshold:d.number().int().positive().optional(),hardThreshold:d.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:zf.optional(),thinkingBudgetTokens:d.number().positive().optional(),thinking:d.boolean().optional(),onEvent:d.function().input([d.custom()]).output(d.void()).optional(),hooks:d.custom().optional(),parentAgentId:d.string().optional(),extensions:d.array(d.custom()).optional(),hookErrorMode:d.enum(["ignore","throw"]).default("ignore"),toolPolicies:d.record(d.string(),d.object({enabled:d.boolean().optional(),autoApprove:d.boolean().optional()})).optional(),requestToolApproval:d.function().input([d.object({sessionId:d.string(),agentId:d.string(),conversationId:d.string(),iteration:d.number(),toolCallId:d.string(),toolName:d.string(),input:d.unknown(),policy:d.object({enabled:d.boolean().optional(),autoApprove:d.boolean().optional()}).default({})})]).output(d.union([d.object({approved:d.boolean(),reason:d.string().optional()}),d.promise(d.object({approved:d.boolean(),reason:d.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:d.function().input([d.object({iteration:d.number().int().positive(),consecutiveMistakes:d.number().int().positive(),maxConsecutiveMistakes:d.number().int().positive(),reason:d.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:d.string().optional()})]).output(d.union([d.object({action:d.literal("continue"),guidance:d.string().optional()}),d.object({action:d.literal("stop"),reason:d.string().optional()}),d.promise(d.union([d.object({action:d.literal("continue"),guidance:d.string().optional()}),d.object({action:d.literal("stop"),reason:d.string().optional()})]))])).optional(),logger:d.custom().optional(),extensionContext:d.custom().optional(),abortSignal:d.custom().optional()});import{z as H}from"zod";var jn=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"]),Kn=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()}),Tn=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()}),no=H.object({actor:Kn,context:Tn,payload:H.record(H.string(),H.unknown()).optional()}),fo=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()}),oo=H.object({adapter:H.string(),botUserName:H.string().optional(),event:jn,payload:H.record(H.string(),H.unknown()),ts:H.string()});var ro=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents"],go=new Set(ro);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 On(n){let f=Cn(n.providerIds),o=Cn(n.modelIds);return{...n,...f?{providerIds:f}:{},...o?{modelIds:o}:{}}}function wo(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 F of w.capabilities){if(!go.has(F))throw Error(`Invalid manifest for extension "${o}": unsupported capability "${String(F)}"`);$.add(F)}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:On(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 fn{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:wo(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 Ro(n={}){return new fn(n)}var _o=[".js",".ts"];import{z as _}from"zod";var cn=_.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),j=_.record(_.string(),_.string()),yo=_.object({toolName:_.string(),parameters:j}),Eo=_.object({toolName:_.string(),parameters:j,result:_.string(),success:_.boolean(),executionTimeMs:_.number()}),Ho=_.object({prompt:_.string(),attachments:_.array(_.string())}),Io=_.object({taskMetadata:j}),qo=_.object({taskMetadata:j,previousState:j}),Uo=_.object({taskMetadata:j}),ko=_.object({taskMetadata:j}),Fo=_.object({taskId:_.string(),ulid:_.string(),contextSize:_.number(),compactionStrategy:_.string(),previousApiReqIndex:_.number(),tokensIn:_.number(),tokensOut:_.number(),tokensInCache:_.number(),tokensOutCache:_.number(),deletedRangeStart:_.number(),deletedRangeEnd:_.number(),contextJsonPath:_.string(),contextRawPath:_.string()}),hn=_.object({clineVersion:_.string(),hookName:cn,timestamp:_.string(),taskId:_.string(),sessionContext:_.object({rootSessionId:_.string().optional(),hookLogPath:_.string().optional()}).optional(),workspaceRoots:_.array(_.string()),workspaceInfo:_.custom().optional(),userId:_.string(),agent_id:_.string(),parent_agent_id:_.string().nullable(),iteration:_.number().optional(),reason:_.string().optional(),tool_call:_.object({id:_.string(),name:_.string(),input:_.unknown()}).optional(),tool_result:_.custom().optional(),turn:_.unknown().optional(),error:_.object({name:_.string(),message:_.string(),stack:_.string().optional()}).optional(),preToolUse:yo.optional(),postToolUse:Eo.optional(),userPromptSubmit:Ho.optional(),taskStart:Io.optional(),taskResume:qo.optional(),taskCancel:Uo.optional(),taskComplete:ko.optional(),preCompact:Fo.optional()}).passthrough();function Lo(n){let f=hn.safeParse(n);if(!f.success)return;return f.data}var Eg=30000,Hg=5000;function Yo(n){switch(n){case"run.start":case"session.send_input":return null;default:return 30000}}function Ig(n,f){return f===void 0?Yo(n):f}var Do=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],Ao=new Set(Do);function qg(n){return typeof n==="string"&&Ao.has(n)}var Ug="tool_executor.",kg="custom_tool.",Fg="hook.",Lg="compaction.compact",Yg="checkpoint.create",Dg="mistake_limit.decide",Ag="user_instructions.snapshot";function on(n,f){return`<file_content path="${n}">
|
|
2
|
-
${f}
|
|
3
|
-
</file_content>`}function lo(n,f="act"){return`<user_input mode="${f}">${n}</user_input>`}function Po(n,f){return`<user_command slash="${f}">${n}</user_command>`}function Go(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 Zo(n,f){return new RegExp(`${f}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function Sn(n){if(!n?.trim())return;let f=Go(n,"user_command");if(!f)return;let o=Zo(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=xn(f,o);f=(w!==f?w:f.replace(new RegExp(`<${o}[^>]*>`,"g"),"")).trim()}return f}function so(n){let f=un(n),o=Sn(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 xn(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 G(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var rn="ERROR: EMPTY CONTENT";function vn(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 Xo(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 p(n){if(typeof n==="string")return G(n);if(Array.isArray(n))return n.map((f)=>p(f));if(n!==null&&typeof n==="object"){let f=n,o={};for(let[w,$]of Object.entries(f))o[w]=p($);return o}return n}function mn(n,f=!1){if(typeof n==="string")return{type:f?"error-text":"text",value:G(n)};if(!f&&Xo(n))return{type:"content",value:n.map((o)=>o.type==="image"?{type:"image-data",data:o.data,mediaType:o.mediaType}:{type:"text",text:G(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"?G(w):JSON.stringify(p(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:p(n)};return{type:f?"error-text":"text",value:G(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"?G(n):n});for(let R of f){let E=R.content;if(typeof E==="string"){if(E.trim().length===0){$.push({role:R.role,content:[{type:"text",text:rn}]});continue}$.push({role:R.role,content:G(E)});continue}let F=[],l=[];if(E.length===0){$.push({role:R.role,content:[{type:"text",text:rn}]});continue}for(let q of E)switch(q.type){case"text":F.push({type:"text",text:G(q.text),...q.providerOptions?{providerOptions:q.providerOptions}:{}});break;case"reasoning":F.push({type:"reasoning",text:G(q.text),...q.providerOptions?{providerOptions:q.providerOptions}:{}});break;case"image":F.push({type:"image",image:q.image,mediaType:q.mediaType});break;case"file":F.push({type:"text",text:on(q.path,G(q.content))});break;case"tool-call":if(R.role==="assistant")F.push({type:"tool-call",toolCallId:q.toolCallId,toolName:q.toolName,[w]:q.input,...q.providerOptions?{providerOptions:q.providerOptions}:{}});break;case"tool-result":{l.push({type:"tool-result",toolCallId:q.toolCallId,toolName:q.toolName,output:mn(q.output,q.isError??!1)});break}}if(F.length>0)vn($,{role:R.role,content:F});if(l.length>0)vn($,{role:"tool",content:l})}return $}var c={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},Jo=void 0;function Bo(n,f){if(typeof n==="string"&&n.toLowerCase()in c)return n.toLowerCase();return f?void 0:void 0}function pn(n,f){let o=typeof n==="string"?n.toLowerCase():void 0;if(o&&o in c)return c[o];if(f?.fallbackEffort)return c[f.fallbackEffort];return}function Qo(n){let f=pn(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 Vo={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"};function Wo(n){return n instanceof Error?{name:n.name,message:n.message}:n}function jo(n){return Math.max(1,Math.ceil(n/3))}var Ko={debug:()=>{},log:()=>{},error:()=>{}};class B extends Error{constructor(n,f){super(`${n} at position ${f}`);this.position=f}}function tn(n){return/^[0-9A-Fa-f]$/.test(n)}function V(n){return n>="0"&&n<="9"}function en(n){return n>=" "}function h(n){return`,:[]/{}()
|
|
4
|
-
+`.includes(n)}function dn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"}function wn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"||n>="0"&&n<="9"}var $n=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,Rn=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function _n(n){return`,[]/{}
|
|
5
|
-
+`.includes(n)}function yn(n){return S(n)||To.test(n)}var To=/^[[{\w-]$/;function an(n){return n===`
|
|
6
|
-
`||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function Q(n,f){let o=n.charCodeAt(f);return o===32||o===10||o===9||o===13}function zn(n,f){let o=n.charCodeAt(f);return o===32||o===9||o===13}function nf(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 S(n){return En(n)||i(n)}function En(n){return n==='"'||n==="“"||n==="”"}function Hn(n){return n==='"'}function i(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function In(n){return n==="'"}function C(n,f){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,w=n.lastIndexOf(f);return w!==-1?n.substring(0,w)+(o?"":n.substring(w+1)):n}function P(n,f){let o=n.length;if(!Q(n,o-1))return n+f;while(Q(n,o-1))o--;return n.substring(0,o)+f+n.substring(o)}function ff(n,f,o){return n.substring(0,f)+n.substring(f+o)}function of(n){return/[,\n][ \t\r]*$/.test(n)}var No={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},Co={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
7
|
-
`,r:"\r",t:"\t"};function qn(n){let f=0,o="";if(q(["```","[```","{```"]),!R())vf();q(["```","```]","```}"]);let $=K(",");if($)E();if(yn(n[f])&&of(o)){if(!$)o=P(o,",");cf()}else if($)o=C(o,",");while(n[f]==="}"||n[f]==="]")f++,E();if(f>=n.length)return o;xf();function R(){E();let y=Mf()||Of()||T()||D()||hf()||Gn(!1)||Sf();return E(),y}function E(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,I=f,U=F(y);do if(U=l(),U)U=F(y);while(U);return f>I}function F(y){let I=y?Q:zn,U="";while(!0)if(I(n,f))U+=n[f],f++;else if(nf(n,f))U+=" ",f++;else break;if(U.length>0)return o+=U,!0;return!1}function l(){if(n[f]==="/"&&n[f+1]==="*"){while(f<n.length&&!Mo(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(y){if(u(y)){if(dn(n[f]))while(f<n.length&&wn(n[f]))f++;return E(),!0}return!1}function u(y){F(!0);for(let I of y){let U=f+I.length;if(n.slice(f,U)===I)return f=U,!0}return!1}function K(y){if(n[f]===y)return o+=n[f],f++,!0;return!1}function b(y){if(n[f]===y)return f++,!0;return!1}function Cf(){return b("\\")}function ln(){if(E(),n[f]==="."&&n[f+1]==="."&&n[f+2]===".")return f+=3,E(),b(","),!0;return!1}function Mf(){if(n[f]==="{"){if(o+="{",f++,E(),b(","))E();let y=!0;while(f<n.length&&n[f]!=="}"){let I;if(!y){if(I=K(","),!I)o=P(o,",");E()}else I=!0,y=!1;if(ln(),!(T()||Gn(!0))){if(n[f]==="}"||n[f]==="{"||n[f]==="]"||n[f]==="["||n[f]===void 0)o=C(o,",");else mf();break}E();let v=K(":"),W=f>=n.length;if(!v)if(yn(n[f])||W)o=P(o,":");else sn();if(!R())if(v||W)o+="null";else sn()}if(n[f]==="}")o+="}",f++;else o=P(o,"}");return!0}return!1}function Of(){if(n[f]==="["){if(o+="[",f++,E(),b(","))E();let y=!0;while(f<n.length&&n[f]!=="]"){if(!y){if(!K(","))o=P(o,",")}else y=!1;if(ln(),!R()){o=C(o,",");break}}if(n[f]==="]")o+="]",f++;else o=P(o,"]");return!0}return!1}function cf(){let y=!0,I=!0;while(I){if(!y){if(!K(","))o=P(o,",")}else y=!1;I=R()}if(!I)o=C(o,",");o=`[
|
|
1
|
+
import{z as e}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"]),Sn=k.object({input:k.number().optional(),output:k.number().optional(),cacheWrite:k.number().optional(),cacheRead:k.number().optional()}),hn=k.object({maxBudget:k.number().optional(),outputPrice:k.number().optional(),thinkingLevel:k.enum(["low","high"]).optional()}),xn=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:Sn.optional(),thinkingConfig:hn.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:xn.optional()});import{z as T}from"zod";var Bn=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 $r=e.enum(["completed","max_iterations","aborted","mistake_limit","error"]),kr=e.object({inputTokens:e.number(),outputTokens:e.number(),cacheReadTokens:e.number().optional(),cacheWriteTokens:e.number().optional(),totalCost:e.number().optional()}),Zf=e.object({text:e.string(),usage:kr,messages:e.array(e.custom()),toolCalls:e.array(Bn),iterations:e.number(),finishReason:$r,model:e.object({id:e.string(),provider:e.string(),info:dn.optional()}),startedAt:e.date(),endedAt:e.date(),durationMs:e.number()}),Rr=e.enum(["low","medium","high","xhigh"]),mf=e.object({sessionId:e.string().optional(),providerId:e.string(),modelId:e.string(),apiKey:e.string().optional(),baseUrl:e.string().url().optional(),headers:e.record(e.string(),e.string()).optional(),knownModels:e.record(e.string(),dn).optional(),providerConfig:e.unknown().optional(),initialMessages:e.array(e.custom()).optional(),systemPrompt:e.string(),tools:e.array(e.custom()),maxIterations:e.number().positive().optional(),maxParallelToolCalls:e.number().int().positive().default(8),maxTokensPerTurn:e.number().positive().optional(),apiTimeoutMs:e.number().positive().default(180000),userFileContentLoader:e.function().input([e.string()]).output(e.promise(e.string())).optional(),toolContextMetadata:e.record(e.string(),e.unknown()).optional(),execution:e.object({maxConsecutiveMistakes:e.number().int().positive().optional(),reminderAfterIterations:e.number().nonnegative().optional(),reminderText:e.string().optional(),loopDetection:e.union([e.literal(!1),e.object({softThreshold:e.number().int().positive().optional(),hardThreshold:e.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:Rr.optional(),thinkingBudgetTokens:e.number().positive().optional(),thinking:e.boolean().optional(),onEvent:e.function().input([e.custom()]).output(e.void()).optional(),hooks:e.custom().optional(),parentAgentId:e.string().optional(),extensions:e.array(e.custom()).optional(),hookErrorMode:e.enum(["ignore","throw"]).default("ignore"),toolPolicies:e.record(e.string(),e.object({enabled:e.boolean().optional(),autoApprove:e.boolean().optional()})).optional(),requestToolApproval:e.function().input([e.object({sessionId:e.string(),agentId:e.string(),conversationId:e.string(),iteration:e.number(),toolCallId:e.string(),toolName:e.string(),input:e.unknown(),policy:e.object({enabled:e.boolean().optional(),autoApprove:e.boolean().optional()}).default({})})]).output(e.union([e.object({approved:e.boolean(),reason:e.string().optional()}),e.promise(e.object({approved:e.boolean(),reason:e.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:e.function().input([e.object({iteration:e.number().int().positive(),consecutiveMistakes:e.number().int().positive(),maxConsecutiveMistakes:e.number().int().positive(),reason:e.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:e.string().optional()})]).output(e.union([e.object({action:e.literal("continue"),guidance:e.string().optional()}),e.object({action:e.literal("stop"),reason:e.string().optional()}),e.promise(e.union([e.object({action:e.literal("continue"),guidance:e.string().optional()}),e.object({action:e.literal("stop"),reason:e.string().optional()})]))])).optional(),logger:e.custom().optional(),extensionContext:e.custom().optional(),abortSignal:e.custom().optional()});import{z as c}from"zod";var an=c.enum(["connector.started","connector.stopping","session.authorize","message.received","message.denied","message.completed","message.failed","session.started","session.reused","session.reset","schedule.delivery.started","schedule.delivery.sent","schedule.delivery.failed"]),pn=c.object({id:c.string().optional(),label:c.string().optional(),role:c.string().optional(),participantKey:c.string().optional(),participantLabel:c.string().optional(),platformUserId:c.string().optional(),metadata:c.record(c.string(),c.unknown()).optional()}),vn=c.object({source:c.string(),sourceEvent:c.string(),threadId:c.string(),channelId:c.string(),isDM:c.boolean(),sessionId:c.string().optional(),workspaceRoot:c.string().optional(),metadata:c.record(c.string(),c.unknown()).optional()}),tr=c.object({actor:pn,context:vn,payload:c.record(c.string(),c.unknown()).optional()}),br=c.object({action:c.enum(["allow","deny"]).default("allow"),message:c.string().optional(),reason:c.string().optional(),metadata:c.record(c.string(),c.unknown()).optional()}),Lr=c.object({adapter:c.string(),botUserName:c.string().optional(),event:an,payload:c.record(c.string(),c.unknown()),ts:c.string()});var Mr=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents"],Fr=new Set(Mr);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),s=n.manifest;if(!s||typeof s!=="object")throw Error(`Invalid manifest for extension "${r}": manifest is required`);if(!Array.isArray(s.capabilities)||s.capabilities.length===0)throw Error(`Invalid manifest for extension "${r}": capabilities must be a non-empty array`);let g=new Set;for(let w of s.capabilities){if(!Fr.has(w))throw Error(`Invalid manifest for extension "${r}": unsupported capability "${String(w)}"`);g.add(w)}if(Object.hasOwn(s,"providerIds")&&!zn(s.providerIds))throw Error(`Invalid manifest for extension "${r}": providerIds must be a string array when provided`);if(Object.hasOwn(s,"modelIds")&&!zn(s.modelIds))throw Error(`Invalid manifest for extension "${r}": modelIds must be a string array when provided`);let l=g.has("hooks");if(n.hooks!==void 0&&!l)throw Error(`Invalid manifest for extension "${r}": runtime hooks require the "hooks" capability`);return{capabilities:g,raw:ro(s)}}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():"",s=typeof n.source==="string"?n.source.trim():"";if(!r)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!s)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:r,source:s,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class cn{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,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(){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:o}=n;if(o.disabled)continue;let r=oo(o,n.order),s={registerTool:(l)=>this.registry.tools.push(l),registerCommand:(l)=>this.registry.commands.push(l),registerRule:(l)=>{if(!n.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${r}": registerRule requires the "rules" capability`);this.registry.rules.push(l)},registerMessageBuilder:(l)=>this.registry.messageBuilder.push(l),registerProvider:(l)=>this.registry.providers.push(l),registerAutomationEventType:(l)=>{if(!n.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${r}": registerAutomationEventType requires the "automationEvents" capability`);this.registry.automationEventTypes.push(ur(l,r))}},g=n.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};await o.setup?.(s,g)}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,o)=>n.order-o.order).map(({extension:n})=>n)}}function Ur(n={}){return new cn(n)}var qr=[".js",".ts"];var fo={CLINE_PASS:"ext-cline-pass"},Hr={[fo.CLINE_PASS]:!1},Tr=Object.values(fo);import{z as _}from"zod";var eo=_.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),Q=_.record(_.string(),_.string()),Gr=_.object({toolName:_.string(),parameters:Q}),Xr=_.object({toolName:_.string(),parameters:Q,result:_.string(),success:_.boolean(),executionTimeMs:_.number()}),Vr=_.object({prompt:_.string(),attachments:_.array(_.string())}),Zr=_.object({taskMetadata:Q}),mr=_.object({taskMetadata:Q,previousState:Q}),Jr=_.object({taskMetadata:Q}),Qr=_.object({taskMetadata:Q}),Wr=_.object({taskId:_.string(),ulid:_.string(),contextSize:_.number(),compactionStrategy:_.string(),previousApiReqIndex:_.number(),tokensIn:_.number(),tokensOut:_.number(),tokensInCache:_.number(),tokensOutCache:_.number(),deletedRangeStart:_.number(),deletedRangeEnd:_.number(),contextJsonPath:_.string(),contextRawPath:_.string()}),so=_.object({clineVersion:_.string(),hookName:eo,timestamp:_.string(),taskId:_.string(),sessionContext:_.object({rootSessionId:_.string().optional(),hookLogPath:_.string().optional()}).optional(),workspaceRoots:_.array(_.string()),workspaceInfo:_.custom().optional(),userId:_.string(),agent_id:_.string(),parent_agent_id:_.string().nullable(),iteration:_.number().optional(),reason:_.string().optional(),tool_call:_.object({id:_.string(),name:_.string(),input:_.unknown()}).optional(),tool_result:_.custom().optional(),turn:_.unknown().optional(),error:_.object({name:_.string(),message:_.string(),stack:_.string().optional()}).optional(),preToolUse:Gr.optional(),postToolUse:Xr.optional(),userPromptSubmit:Vr.optional(),taskStart:Zr.optional(),taskResume:mr.optional(),taskCancel:Jr.optional(),taskComplete:Qr.optional(),preCompact:Wr.optional()}).passthrough();function Pr(n){let o=so.safeParse(n);if(!o.success)return;return o.data}var hf="v1",xf="v1",af="v1",pf=["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 vf(n,o="v1"){let r=fn(n.protocolVersion),s=fn(o);if(r===void 0||s===void 0)return{compatible:!1,reason:"missing_protocol"};let g=fn(n.minClientProtocolVersion)??r,l=fn(n.maxClientProtocolVersion)??r;return s>=g&&s<=l?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var Or=30000,zf=5000;function Kr(n){switch(n){case"run.start":case"session.send_input":return null;default:return Or}}function ne(n,o){return o===void 0?Kr(n):o}var jr=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],Cr=new Set(jr);function oe(n){return typeof n==="string"&&Cr.has(n)}var re="tool_executor.",de="custom_tool.",fe="hook.",ee="compaction.compact",se="checkpoint.create",ge="mistake_limit.decide",le="user_instructions.snapshot";function In(n,o){return`<file_content path="${n}">
|
|
9
2
|
${o}
|
|
10
|
-
]`}function T(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,U=n[f]==="\\";if(U)f++,U=!0;if(S(n[f])){let v=Hn(n[f])?Hn:In(n[f])?In:i(n[f])?i:En,W=f,O=o.length,Y='"';f++;while(!0){if(f>=n.length){let A=Zn(f-1);if(!y&&h(n.charAt(A)))return f=W,o=o.substring(0,O),T(!0);return Y=P(Y,'"'),o+=Y,!0}if(f===I)return Y=P(Y,'"'),o+=Y,!0;if(v(n[f])){let A=f,z=Y.length;if(Y+='"',f++,o+=Y,E(!1),y||f>=n.length||h(n[f])||S(n[f])||V(n[f]))return Pn(),!0;let J=Zn(A-1),Xn=n.charAt(J);if(Xn===",")return f=W,o=o.substring(0,O),T(!1,J);if(h(Xn))return f=W,o=o.substring(0,O),T(!0);o=o.substring(0,O),f=A+1,Y=`${Y.substring(0,z)}\\${Y.substring(z)}`}else if(y&&_n(n[f])){if(n[f-1]===":"&&$n.test(n.substring(W+1,f+2)))while(f<n.length&&Rn.test(n[f]))Y+=n[f],f++;return Y=P(Y,'"'),o+=Y,Pn(),!0}else if(n[f]==="\\"){let A=n.charAt(f+1);if(Co[A]!==void 0)Y+=n.slice(f,f+2),f+=2;else if(A==="u"){let J=2;while(J<6&&tn(n[f+J]))J++;if(J===6)Y+=n.slice(f,f+6),f+=6;else if(f+J>=n.length)f=n.length;else pf()}else if(A===`
|
|
11
|
-
|
|
3
|
+
</file_content>`}function Nr(n,o="act"){return`<user_input mode="${o}">${n}</user_input>`}function Sr(n,o){return`<user_command slash="${o}">${n}</user_command>`}function ir(n,o){let r=n.trim(),s=new RegExp(`^<${o}\\b([^>]*)>([\\s\\S]*?)<\\/${o}>$`,"i").exec(r);if(!s)return;return{attrs:s[1]??"",content:s[2]??""}}function hr(n,o){return new RegExp(`${o}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function go(n){if(!n?.trim())return;let o=ir(n,"user_command");if(!o)return;let r=hr(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 s=Eo(o,r);o=(s!==o?s:o.replace(new RegExp(`<${r}[^>]*>`,"g"),"")).trim()}return o}function xr(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 Eo(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"],ar=5242880,X=5242880,P=6291456,pr=8388608;function vr(n){return n.length}function _o(n){let o=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-o}function zr(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 h(n,o,r,s){let g=yo(r);if(n>g.maxImageEncodedBytes){let l={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${g.maxImageEncodedBytes} byte encoded limit`};return en(s,l.reason),l}if(o>g.maxImageDecodedBytes){let l={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${g.maxImageDecodedBytes} byte decoded limit`};return en(s,l.reason),l}if(s.totalEncodedBytes+n>g.maxTotalMediaBytes){let l={ok:!1,reason:"total_limit",message:`Image media exceeds the ${g.maxTotalMediaBytes} byte total media limit`};return en(s,l.reason),l}return s.totalEncodedBytes+=n,s.keptImages+=1,null}function wo(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function nd(n){return n.length>0&&Bo(n,0,n.length)}function Bo(n,o,r){let s=r-o;if(s%4!==0)return!1;let g=r;if(s>=2&&n.charCodeAt(r-2)===61&&n.charCodeAt(r-1)===61)g-=2;else if(s>=1&&n.charCodeAt(r-1)===61)g-=1;for(let l=o;l<g;l++)if(!wo(n.charCodeAt(l)))return!1;for(let l=g;l<r;l++)if(n.charCodeAt(l)!==61)return!1;return!0}function od(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 rd(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 dd(n,o,r){if(!od(n,o,r))return;let s=o+5,g=n.indexOf(",",s);if(g===-1||g>=r)return;if(g-s>128)return;let l=n.slice(s,g).toLowerCase(),E=";base64";if(!l.endsWith(E))return;let w=l.slice(0,-E.length);if(!w||w.includes(";"))return;return{mediaType:w,base64Start:g+1,base64End:r}}function co(n,o,r={}){let s=r.maxEncodedBytes??5242880,g=r.maxDecodedBytes??6291456,l=new Set(r.supportedMediaTypes??sn),E=n?.toLowerCase(),w=rd(o),I=w.start,D=w.end,B=dd(o,w.start,w.end);if(B){if(E&&E!==B.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${B.mediaType}`};E=B.mediaType,I=B.base64Start,D=B.base64End}if(!E||!l.has(E))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let M=D-I;if(M===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(M>s)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${s} byte encoded limit`};if(!Bo(o,I,D))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let F=o.slice(I,D),Y=_o(F);if(Y>g)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${g} byte decoded limit`};return{ok:!0,mediaType:E,base64:F,encodedBytes:M,decodedBytes:Y}}function x(n,o,r,s){let g=co(n,o,{maxEncodedBytes:r.maxImageEncodedBytes,maxDecodedBytes:r.maxImageDecodedBytes});if(!g.ok)return en(s,g.reason),g;let l=h(g.encodedBytes,g.decodedBytes,r,s);if(l)return l;return g}function U(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var Dn="ERROR: EMPTY CONTENT",fd="[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 ed(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 O(){return{type:"text",text:W}}function Ao(n){return h(X,0,{maxImageEncodedBytes:X,maxImageDecodedBytes:P},n)===null}function sd(n){try{return new URL(n).protocol}catch{return}}function $n(n,o){let r=x(n.mediaType,n.data,{maxImageEncodedBytes:X,maxImageDecodedBytes:P},o);if(!r.ok)return O();return{type:"image-data",data:r.base64,mediaType:r.mediaType}}function gd(n,o){if(n.image instanceof URL){if(n.image.protocol==="data:"){let E=x(n.mediaType,n.image.href,{maxImageEncodedBytes:X,maxImageDecodedBytes:P},o);if(!E.ok)return O();return{type:"image",image:`data:${E.mediaType};base64,${E.base64}`,mediaType:E.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return O();if(!Ao(o))return O();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let E=sd(n.image);if(E==="http:"||E==="https:"){if(!Ao(o))return O();return{type:"image",image:n.image,mediaType:n.mediaType}}let w=E==="data:",I=x(n.mediaType??(w?void 0:"image/png"),n.image,{maxImageEncodedBytes:X,maxImageDecodedBytes:P},o);if(!I.ok)return O();return{type:"image",image:w?`data:${I.mediaType};base64,${I.base64}`:I.base64,mediaType:I.mediaType}}let r=n.image.byteLength,s=An(r),g=n.mediaType?.toLowerCase()??"image/png";if(!sn.includes(g)||h(s,r,{maxImageEncodedBytes:X,maxImageDecodedBytes:P},o))return O();return{type:"image",image:n.image,mediaType:g}}function kn(n,o,r,s=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let I=[],D=!1,B=!1;for(let M of n){if(M&&typeof M==="object"){let Y=M;if(Y.type==="image"&&typeof Y.data==="string"&&typeof Y.mediaType==="string"){if(!s){I.push(W),D=!0,B=!0;continue}let nn={type:"image",data:Y.data,mediaType:Y.mediaType},K=$n(nn,r);if(K.type==="image-data")o.push({type:"image",data:K.data,mediaType:K.mediaType});else I.push(K.text);D=!0,B=!0;continue}if(Y.type==="image"){I.push(W),D=!0,B=!0;continue}if(Y.type==="text"&&typeof Y.text==="string"){I.push(Y.text),D=!0;continue}}let F=kn(M,o,r,s);I.push(F.value),D||=F.changed,B||=F.mediaChanged}return{value:D?I:n,changed:D,mediaChanged:B}}let g=n;if(g.type==="image"){if(typeof g.data==="string"&&typeof g.mediaType==="string"){if(!s)return{value:W,changed:!0,mediaChanged:!0};let I={type:"image",data:g.data,mediaType:g.mediaType},D=$n(I,r);if(D.type==="image-data")return o.push({type:"image",data:D.data,mediaType:D.mediaType}),{value:fd,changed:!0,mediaChanged:!0};return{value:D.text,changed:!0,mediaChanged:!0}}return{value:W,changed:!0,mediaChanged:!0}}let l={},E=!1,w=!1;for(let[I,D]of Object.entries(g)){let B=kn(D,o,r,s);l[I]=B.value,E||=B.changed,w||=B.mediaChanged}return{value:E?l:n,changed:E,mediaChanged:w}}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[s,g]of Object.entries(o))r[s]=a(g);return r}return n}function Do(n,o=!1,r=gn()){if(typeof n==="string")return{type:o?"error-text":"text",value:U(n)};if(!o&&ed(n))return{type:"content",value:n.map((s)=>s.type==="image"?$n(s,r):{type:"text",text:U(s.text)})};if(n!==null&&typeof n==="object"){let s=[],g=kn(n,s,r,!o);if(!o&&s.length>0)return{type:"content",value:[{type:"text",text:typeof g.value==="string"?U(g.value):JSON.stringify(a(g.value))},...s.map((E)=>({type:"image-data",data:E.data,mediaType:E.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 ld(n,o,r){let s=r?.assistantToolCallArgKey??"input",g=[],l=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 E of o){let w=E.content;if(typeof w==="string"){if(w.trim().length===0){g.push({role:E.role,content:[{type:"text",text:Dn}]});continue}g.push({role:E.role,content:U(w)});continue}let I=[],D=[];if(w.length===0){g.push({role:E.role,content:[{type:"text",text:Dn}]});continue}for(let B of w)switch(B.type){case"text":I.push({type:"text",text:U(B.text),...B.providerOptions?{providerOptions:B.providerOptions}:{}});break;case"reasoning":I.push({type:"reasoning",text:U(B.text),...B.providerOptions?{providerOptions:B.providerOptions}:{}});break;case"image":I.push(gd(B,l));break;case"file":I.push({type:"text",text:In(B.path,U(B.content))});break;case"tool-call":if(E.role==="assistant")I.push({type:"tool-call",toolCallId:B.toolCallId,toolName:B.toolName,[s]:B.input,...B.providerOptions?{providerOptions:B.providerOptions}:{}});break;case"tool-result":{D.push({type:"tool-result",toolCallId:B.toolCallId,toolName:B.toolName,output:Do(B.output,B.isError??!1,l)});break}}if(I.length>0)Io(g,{role:E.role,content:I});if(D.length>0)Io(g,{role:"tool",content:D})}return g}var p={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},Ed=void 0;function _d(n,o){if(typeof n==="string"&&n.toLowerCase()in p)return n.toLowerCase();return o?void 0:void 0}function $o(n,o){let r=typeof n==="string"?n.toLowerCase():void 0;if(r&&r in p)return p[r];if(o?.fallbackEffort)return p[o.fallbackEffort];return}function yd(n){let o=$o(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 s=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(s*o),r),n.maxBudget)}var wd={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"};function Bd(n){return n instanceof Error?{name:n.name,message:n.message}:n}function cd(n){return Math.max(1,Math.ceil(n/3))}var Id={debug:()=>{},log:()=>{},error:()=>{}};class V extends Error{constructor(n,o){super(`${n} at position ${o}`);this.position=o}}function ko(n){return/^[0-9A-Fa-f]$/.test(n)}function m(n){return n>="0"&&n<="9"}function Ro(n){return n>=" "}function v(n){return`,:[]/{}()
|
|
4
|
+
+`.includes(n)}function Rn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"}function tn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"||n>="0"&&n<="9"}var bn=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,Ln=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function Mn(n){return`,[]/{}
|
|
5
|
+
+`.includes(n)}function Fn(n){return z(n)||Ad.test(n)}var Ad=/^[[{\w-]$/;function to(n){return n===`
|
|
6
|
+
`||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function Z(n,o){let r=n.charCodeAt(o);return r===32||r===10||r===9||r===13}function bo(n,o){let r=n.charCodeAt(o);return r===32||r===9||r===13}function Lo(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 Yn(n)||ln(n)}function Yn(n){return n==='"'||n==="“"||n==="”"}function un(n){return n==='"'}function ln(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function Un(n){return n==="'"}function N(n,o){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=n.lastIndexOf(o);return s!==-1?n.substring(0,s)+(r?"":n.substring(s+1)):n}function u(n,o){let r=n.length;if(!Z(n,r-1))return n+o;while(Z(n,r-1))r--;return n.substring(0,r)+o+n.substring(r)}function Mo(n,o,r){return n.substring(0,o)+n.substring(o+r)}function Fo(n){return/[,\n][ \t\r]*$/.test(n)}var Dd={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},$d={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
7
|
+
`,r:"\r",t:"\t"};function qn(n){let o=0,r="";if(D(["```","[```","{```"]),!l())cr();D(["```","```]","```}"]);let g=M(",");if(g)E();if(Fn(n[o])&&Fo(r)){if(!g)r=u(r,",");Er()}else if(g)r=N(r,",");while(n[o]==="}"||n[o]==="]")o++,E();if(o>=n.length)return r;Br();function l(){E();let y=K()||lr()||j()||b()||_r()||Wn(!1)||yr();return E(),y}function E(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,A=o,$=w(y);do if($=I(),$)$=w(y);while($);return o>A}function w(y){let A=y?Z:bo,$="";while(!0)if(A(n,o))$+=n[o],o++;else if(Lo(n,o))$+=" ",o++;else break;if($.length>0)return r+=$,!0;return!1}function I(){if(n[o]==="/"&&n[o+1]==="*"){while(o<n.length&&!kd(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 D(y){if(B(y)){if(Rn(n[o]))while(o<n.length&&tn(n[o]))o++;return E(),!0}return!1}function B(y){w(!0);for(let A of y){let $=o+A.length;if(n.slice(o,$)===A)return o=$,!0}return!1}function M(y){if(n[o]===y)return r+=n[o],o++,!0;return!1}function F(y){if(n[o]===y)return o++,!0;return!1}function Y(){return F("\\")}function nn(){if(E(),n[o]==="."&&n[o+1]==="."&&n[o+2]===".")return o+=3,E(),F(","),!0;return!1}function K(){if(n[o]==="{"){if(r+="{",o++,E(),F(","))E();let y=!0;while(o<n.length&&n[o]!=="}"){let A;if(!y){if(A=M(","),!A)r=u(r,",");E()}else A=!0,y=!1;if(nn(),!(j()||Wn(!0))){if(n[o]==="}"||n[o]==="{"||n[o]==="]"||n[o]==="["||n[o]===void 0)r=N(r,",");else Ir();break}E();let rn=M(":"),J=o>=n.length;if(!rn)if(Fn(n[o])||J)r=u(r,":");else On();if(!l())if(rn||J)r+="null";else On()}if(n[o]==="}")r+="}",o++;else r=u(r,"}");return!0}return!1}function lr(){if(n[o]==="["){if(r+="[",o++,E(),F(","))E();let y=!0;while(o<n.length&&n[o]!=="]"){if(!y){if(!M(","))r=u(r,",")}else y=!1;if(nn(),!l()){r=N(r,",");break}}if(n[o]==="]")r+="]",o++;else r=u(r,"]");return!0}return!1}function Er(){let y=!0,A=!0;while(A){if(!y){if(!M(","))r=u(r,",")}else y=!1;A=l()}if(!A)r=N(r,",");r=`[
|
|
9
|
+
${r}
|
|
10
|
+
]`}function j(){let y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,$=n[o]==="\\";if($)o++,$=!0;if(z(n[o])){let rn=un(n[o])?un:Un(n[o])?Un:ln(n[o])?ln:Yn,J=o,i=r.length,t='"';o++;while(!0){if(o>=n.length){let L=Pn(o-1);if(!y&&v(n.charAt(L)))return o=J,r=r.substring(0,i),j(!0);return t=u(t,'"'),r+=t,!0}if(o===A)return t=u(t,'"'),r+=t,!0;if(rn(n[o])){let L=o,wn=t.length;if(t+='"',o++,r+=t,E(!1),y||o>=n.length||v(n[o])||z(n[o])||m(n[o]))return Qn(),!0;let G=Pn(L-1),Kn=n.charAt(G);if(Kn===",")return o=J,r=r.substring(0,i),j(!1,G);if(v(Kn))return o=J,r=r.substring(0,i),j(!0);r=r.substring(0,i),o=L+1,t=`${t.substring(0,wn)}\\${t.substring(wn)}`}else if(y&&Mn(n[o])){if(n[o-1]===":"&&bn.test(n.substring(J+1,o+2)))while(o<n.length&&Ln.test(n[o]))t+=n[o],o++;return t=u(t,'"'),r+=t,Qn(),!0}else if(n[o]==="\\"){let L=n.charAt(o+1);if($d[L]!==void 0)t+=n.slice(o,o+2),o+=2;else if(L==="u"){let G=2;while(G<6&&ko(n[o+G]))G++;if(G===6)t+=n.slice(o,o+6),o+=6;else if(o+G>=n.length)o=n.length;else Ar()}else if(L===`
|
|
11
|
+
`)t+="\\n",o+=2;else t+=L,o+=2}else{let L=n.charAt(o);if(L==='"'&&n[o-1]!=="\\")t+=`\\${L}`,o++;else if(to(L))t+=Dd[L],o++;else{if(!Ro(L))wr(L);t+=L,o++}}if($)Y()}}return!1}function Qn(){let y=!1;E();while(n[o]==="+"){y=!0,o++,E(),r=N(r,'"',!0);let A=r.length;if(j())r=Mo(r,A,1);else r=u(r,'"')}return y}function b(){let y=o;if(n[o]==="-"){if(o++,on())return yn(y),!0;if(!m(n[o]))return o=y,!1}while(m(n[o]))o++;if(n[o]==="."){if(o++,on())return yn(y),!0;if(!m(n[o]))return o=y,!1;while(m(n[o]))o++}if(n[o]==="e"||n[o]==="E"){if(o++,n[o]==="-"||n[o]==="+")o++;if(on())return yn(y),!0;if(!m(n[o]))return o=y,!1;while(m(n[o]))o++}if(!on())return o=y,!1;if(o>y){let A=n.slice(y,o),$=/^0\d/.test(A);return r+=$?`"${A}"`:A,!0}return!1}function _r(){return C("true","true")||C("false","false")||C("null","null")||C("True","true")||C("False","false")||C("None","null")}function C(y,A){if(n.slice(o,o+y.length)===y)return r+=A,o+=y.length,!0;return!1}function Wn(y){let A=o;if(Rn(n[o])){while(o<n.length&&tn(n[o]))o++;let $=o;while(Z(n,$))$++;if(n[$]==="("){if(o=$+1,l(),n[o]===")"){if(o++,n[o]===";")o++}return!0}}while(o<n.length&&!Mn(n[o])&&!z(n[o])&&(!y||n[o]!==":"))o++;if(n[o-1]===":"&&bn.test(n.substring(A,o+2)))while(o<n.length&&Ln.test(n[o]))o++;if(o>A){while(Z(n,o-1)&&o>0)o--;let $=n.slice(A,o);if(r+=$==="undefined"?"null":JSON.stringify($),n[o]==='"')o++;return!0}}function yr(){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 Pn(y){let A=y;while(A>0&&Z(n,A))A--;return A}function on(){return o>=n.length||v(n[o])||Z(n,o)}function yn(y){r+=`${n.slice(y,o)}0`}function wr(y){throw new V(`Invalid character ${JSON.stringify(y)}`,o)}function Br(){throw new V(`Unexpected character ${JSON.stringify(n[o])}`,o)}function cr(){throw new V("Unexpected end of json string",n.length)}function Ir(){throw new V("Object key expected",o)}function On(){throw new V("Colon expected",o)}function Ar(){let y=n.slice(o,o+6);throw new V(`Invalid unicode character "${y}"`,o)}}function kd(n,o){return n[o]==="*"&&n[o+1]==="/"}var Rd=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function td(n){let o=n.match(Rd);if(!o)return;let[,r,s]=o,g=s.trim();if(!g)return;let l=g[0];if(l==='"'||l==="{"||l==="["||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)),td];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 s=r(o);if(s!==void 0)return s}catch{}return n}function Md(n){let o=new WeakSet;try{return JSON.stringify(n,(s,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 Fd(n){try{return JSON.parse(n)}catch{return}}function Yd(n){let o=n.replaceAll("\\","/"),r=o.lastIndexOf("/");return(r>=0?o.slice(r+1):o).toLowerCase()}function ud(n){return n==="win32"?"powershell":"/bin/bash"}function Ud(n,o){let r=Yd(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 qd(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function Yo(n,o){if(n.length<=o)return n;return`${n.slice(0,o-1)}…`}function Hd(n,o="/",r=100){if(!n||n.length<=r)return n||"";let s=n.split(o)?.shift()?.trim()?.slice(0,r-1);return s?`${s}…`:Yo(n,r)}function Td(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function Gd(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 Xd(n){let o=Math.max(0,Math.floor(n/1000)),r=Math.floor(o/86400),s=Math.floor(o%86400/3600),g=Math.floor(o%3600/60),l=o%60;if(r>0)return`${r}d ${s}h`;if(s>0)return`${s}h ${g}m`;if(g>0)return`${g}m ${l}s`;return`${l}s`}import{z as uo}from"zod";function Vd(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 Uo=`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}}`,qo=`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 Ho(n,o,r){if(r?.trim()?.includes(Gn))return r.trim();let s=r||JSON.stringify({workspaces:{[n]:{hint:o||n.split("/").at(-1)||n}}},null,2);return`
|
|
75
|
+
${Gn}
|
|
76
|
+
${s}`}function Zd(n){let{ide:o="Terminal Shell",mode:r,platform:s="unknown",workspaceName:g,metadata:l,rules:E,overridePrompt:w,providerId:I}=n,D=n.workspaceRoot??n.rootPath??"",B=Tn(I||"");if(w?.trim()){let F=w.trim();if(B&&l?.trim()&&!F.includes(Gn))return`${F}
|
|
75
77
|
|
|
76
|
-
${$f(q,$,R)}`.trim();return b}return(o==="yolo"?wf:df).replace("{{PLATFORM_NAME}}",w).replace("{{CWD}}",q).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",f).replace("{{CLINE_METADATA}}",u?$f(q,$,R):"").replace("{{CLINE_RULES}}",E||"").trim()}var or="remote://";import{z as g}from"zod";var Rf=g.object({id:g.string(),temperature:g.number().optional(),isR1FormatRequired:g.boolean().optional(),maxTokens:g.number().optional(),contextWindow:g.number().optional(),inputPrice:g.number().optional(),outputPrice:g.number().optional(),supportsImages:g.boolean().optional()}),_f=g.object({models:g.array(Rf).optional(),openAiBaseUrl:g.string().optional(),openAiHeaders:g.record(g.string(),g.string()).optional(),azureApiVersion:g.string().optional(),azureIdentity:g.boolean().optional()}),yf=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional()}),Ef=g.object({name:g.string(),baseModelId:g.string(),thinkingBudgetTokens:g.number().optional()}),Hf=g.object({models:g.array(yf).optional(),customModels:g.array(Ef).optional(),awsRegion:g.string().optional(),awsUseCrossRegionInference:g.boolean().optional(),awsUseGlobalInference:g.boolean().optional(),awsBedrockUsePromptCache:g.boolean().optional(),awsBedrockEndpoint:g.string().optional()}),If=g.object({id:g.string()}),qf=g.object({models:g.array(If).optional()}),Uf=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional()}),kf=g.object({models:g.array(Uf).optional(),vertexProjectId:g.string().optional(),vertexRegion:g.string().optional()}),Ff=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional(),promptCachingEnabled:g.boolean().optional()}),Lf=g.object({models:g.array(Ff).optional(),baseUrl:g.string().optional()}),Yf=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional()}),Df=g.object({models:g.array(Yf).optional(),baseUrl:g.string().optional()}),rr=g.object({OpenAiCompatible:_f.optional(),AwsBedrock:Hf.optional(),Cline:qf.optional(),Vertex:kf.optional(),LiteLLM:Lf.optional(),Anthropic:Df.optional()}),Af=g.object({id:g.string()}),lf=g.object({name:g.string(),url:g.string(),alwaysEnabled:g.boolean().optional(),headers:g.record(g.string(),g.string()).optional()}),Fn=g.object({alwaysEnabled:g.boolean(),name:g.string(),contents:g.string()}),t=g.object({bucket:g.string(),accessKeyId:g.string(),secretAccessKey:g.string(),region:g.string().optional(),endpoint:g.string().optional(),accountId:g.string().optional()}),Pf=g.object({enabled:g.boolean().optional(),type:g.union([g.literal("s3_access_keys"),g.literal("r2_access_keys"),g.literal("azure_access_keys")]).optional(),s3AccessSettings:t.optional(),r2AccessSettings:t.optional(),azureAccessSettings:t.optional()}),Gf=g.object({promptUploading:Pf.optional()}),gr=g.object({version:g.string(),providerSettings:rr.optional(),telemetryEnabled:g.boolean().optional(),kanbanEnabled:g.boolean().optional(),mcpMarketplaceEnabled:g.boolean().optional(),allowedMCPServers:g.array(Af).optional(),remoteMCPServers:g.array(lf).optional(),blockPersonalRemoteMCPServers:g.boolean().optional(),yoloModeAllowed:g.boolean().optional(),openTelemetryEnabled:g.boolean().optional(),openTelemetryMetricsExporter:g.string().optional(),openTelemetryLogsExporter:g.string().optional(),openTelemetryOtlpProtocol:g.string().optional(),openTelemetryOtlpEndpoint:g.string().optional(),openTelemetryOtlpHeaders:g.record(g.string(),g.string()).optional(),openTelemetryOtlpMetricsProtocol:g.string().optional(),openTelemetryOtlpMetricsEndpoint:g.string().optional(),openTelemetryOtlpMetricsHeaders:g.record(g.string(),g.string()).optional(),openTelemetryOtlpLogsProtocol:g.string().optional(),openTelemetryOtlpLogsEndpoint:g.string().optional(),openTelemetryOtlpLogsHeaders:g.record(g.string(),g.string()).optional(),openTelemetryMetricExportInterval:g.number().optional(),openTelemetryOtlpInsecure:g.boolean().optional(),openTelemetryLogBatchSize:g.number().optional(),openTelemetryLogBatchTimeout:g.number().optional(),openTelemetryLogMaxQueueSize:g.number().optional(),enterpriseTelemetry:Gf.optional(),globalRules:g.array(Fn).optional(),globalWorkflows:g.array(Fn).optional()}),dr=g.record(g.string(),g.string());var wr=4317;var $r="127.0.0.1:4317";import Ln from"zod";var Rr=Ln.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),_r=Ln.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),yr=Ln.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var Er="runtime.team.progress.v1",Hr="runtime.team.lifecycle.v1";var Ir="CLINE_ENVIRONMENT",qr="CLINE_ENVIRONMENT_OVERRIDE",Yn={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"}},Ur="production";function Zf(n){let f=n?.trim().toLowerCase();if(f==="production"||f==="staging"||f==="local")return f;return}function kr(){if(typeof process>"u"||!process?.env)return{};return process.env}function sf(n={}){let f=n.env??kr();return Zf(f.CLINE_ENVIRONMENT_OVERRIDE)??Zf(f.CLINE_ENVIRONMENT)??"production"}function Fr(n){if(typeof n==="string")return Yn[n];return Yn[sf(n)]}var Lr="sdk.error";function Yr(n,f){if(!n)return;n.capture({event:f.event??"sdk.error",properties:bf(f)})}function bf(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=lr(n)?n:void 0,w=n instanceof Error?n:void 0,$=w?.message??Xf(o?.message)??(typeof n==="string"?n:String(n)),R=Pr(o?.code),E=Dn(o?.status)??Dn(o?.statusCode)??Dn(o?.responseStatus);return{error_type:w?.name?.trim()||Xf(o?.name)||w?.constructor?.name||"Error",error_message:Ar(Dr($),f),...R!==void 0?{error_code:R}:{},...E!==void 0?{error_status:E}:{}}}function Dr(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 Ar(n,f){let o=Math.max(1,Math.floor(f));return n.length>o?n.substring(0,o):n}function lr(n){return typeof n==="object"&&n!==null}function Xf(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function Pr(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 Gr(){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 Qf(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 Zr(n={}){return{...Gr(),...n,metadata:Qf(n.metadata)}}function Vf(n){let f=n?.trim();return f?f:void 0}function sr(n,f){if(!n)return;let o=typeof n==="function"?n(f):n;if(!o)return;let w=Vf(o.rootSessionId);if(!w)return;return{rootSessionId:w}}function Xr(n){return Vf(n?.rootSessionId)}var br=(n)=>crypto.getRandomValues(new Uint8Array(n)),Jr=(n,f,o)=>{let w=256-256%n.length;if(w===256){let R=n.length-1;return(E=f)=>{if(!E)return"";let F="";while(!0){let l=o(E),q=E;while(q--)if(F+=n[l[q]&R],F.length>=E)return F}}}let $=Math.ceil(409.6*f/w);return(R=f)=>{if(!R)return"";let E="";while(!0){let F=o($),l=$;while(l--)if(F[l]<w){if(E+=n[F[l]%n.length],E.length>=R)return E}}}},Wf=(n,f=21)=>Jr(n,f|0,br);function Br(n="",f=""){let o=Wf("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${o(5)}${f}`}var Qr=["idle","running","pending","completed","failed","cancelled"];var An=["rules","skills","workflows","plugins"],jf=An,Vr=new Set(An);function Kf(n){return typeof n==="string"&&Vr.has(n)}function Wr(n){if(!Array.isArray(n))return;let f=n.map((o)=>typeof o==="string"?o.trim():"").filter(Kf);return[...new Set(f)]}function jr(n,f){return new Set(n??jf).has(f)}import{z as Z}from"zod";var Kr=Z.object({rootPath:Z.string().min(1),hint:Z.string().min(1).optional(),associatedRemoteUrls:Z.array(Z.string().min(1)).optional(),latestGitCommitHash:Z.string().min(1).optional(),latestGitBranchName:Z.string().min(1).optional()}),Tr=Z.object({currentWorkspacePath:Z.string().min(1).optional(),workspaces:Z.record(Z.string().min(1),Kr)});function qd(){return{workspaces:{}}}function Ud(n,f){let o={...n,workspaces:{...n.workspaces,[f.rootPath]:f}};if(!o.currentWorkspacePath)o.currentWorkspacePath=f.rootPath;return Tr.parse(o)}import{z as r}from"zod";var Nr=["current_state","boundary_analysis","interface_proposal"],Ld=3600000,Yd=240,Dd=400,s=r.preprocess((n)=>n instanceof Date?n.toISOString():n,r.string().datetime()),M=r.enum(["pending","in_progress","blocked","completed"]),Tf=r.enum(["queued","running","completed","failed","cancelled","interrupted"]),e=r.enum(["draft","in_review","finalized"]),Cr=r.object({agentId:r.string(),role:r.enum(["lead","teammate"]),description:r.string().optional(),status:r.enum(["idle","running","stopped"])}),Ad=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 ld=r.object({agentId:r.string().min(1).describe("Teammate identifier"),rolePrompt:r.string().min(1).describe("System prompt describing teammate role")}).strict(),Pd=r.object({agentId:r.string().min(1).describe("Teammate identifier"),reason:L(r.string().min(1)).describe("Optional shutdown reason")}),Gd=r.object({}),Mr={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},Zd={create:["status","taskId","summary","reason"]},sd=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}`})}}),Xd=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")}),bd=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)")}),Jd=r.object({runId:r.string().min(1).describe("Run ID"),reason:L(r.string().min(1)).describe("Optional cancellation reason")}),Bd=r.object({runId:L(r.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),Qd=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")}),Vd=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")}),Wd=r.object({unreadOnly:L(r.boolean()).describe("Only unread messages for read action (default true)")}),jd=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")}),Kd=r.object({}),Td=r.object({title:r.string().describe("Outcome title"),requiredSections:r.array(r.string()).default(Nr).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),Nd=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")}),Cd=r.object({fragmentId:r.string().describe("Fragment ID"),approved:r.boolean().describe("Review decision")}),Md=r.object({outcomeId:r.string().describe("Outcome ID")}),Od=r.object({}),cd=r.object({teamId:r.string(),teamName:r.string(),members:r.array(Cr),taskCounts:r.record(M,r.number()),unreadMessages:r.number(),missionLogEntries:r.number(),activeRuns:r.number(),queuedRuns:r.number(),outcomeCounts:r.record(e,r.number())}),Or=r.object({id:r.string(),title:r.string(),description:r.string(),status:M,createdAt:s,updatedAt:s,createdBy:r.string(),assignee:r.string().optional(),dependsOn:r.array(r.string()),summary:r.string().optional(),isReady:r.boolean(),blockedBy:r.array(r.string())}),hd=r.discriminatedUnion("action",[r.object({action:r.literal("create"),taskId:r.string(),status:M,ignoredFields:r.array(r.string()).optional(),note:r.string().optional()}),r.object({action:r.literal("list"),tasks:r.array(Or)}),r.object({action:r.literal("claim"),taskId:r.string(),status:M,nextStep:r.string()}),r.object({action:r.literal("complete"),taskId:r.string(),status:M}),r.object({action:r.literal("block"),taskId:r.string(),status:M})]),Sd=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()}),cr=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()})}),ud=r.object({id:r.string(),agentId:r.string(),taskId:r.string().optional(),status:Tf,messagePreview:r.string(),priority:r.number(),retryCount:r.number(),maxRetries:r.number(),nextAttemptAt:s.optional(),continueConversation:r.boolean().optional(),startedAt:s,endedAt:s.optional(),leaseOwner:r.string().optional(),heartbeatAt:s.optional(),lastProgressAt:s.optional(),lastProgressMessage:r.string().optional(),currentActivity:r.string().optional(),error:r.string().optional(),resultSummary:cr.optional()}),xd=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:s,readAt:s.optional()}),vd=r.object({id:r.string(),teamId:r.string(),title:r.string(),status:e,requiredSections:r.array(r.string()),createdBy:r.string(),createdAt:s,finalizedAt:s.optional()}),md=r.object({outcomeId:r.string(),status:e,requiredSections:r.array(r.string())}),pd=r.object({agentId:r.string(),status:r.string()}),id=r.object({runId:r.string(),status:Tf}),td=r.object({id:r.string(),toAgentId:r.string()}),ed=r.object({delivered:r.number()}),ad=r.object({id:r.string()}),zd=r.object({status:r.string()}),nw=r.object({fragmentId:r.string(),status:r.string()}),fw=r.object({outcomeId:r.string(),status:e});var hr;((D)=>{D.TaskStart="task_start";D.TaskEnd="task_end";D.AgentEvent="agent_event";D.TeammateSpawned="teammate_spawned";D.TeammateShutdown="teammate_shutdown";D.TeamTaskUpdated="team_task_updated";D.TeamMessage="team_message";D.TeamMissionLog="team_mission_log";D.TeamTaskCompleted="team_task_completed";D.RunStarted="run_started";D.RunQueued="run_queued";D.RunProgress="run_progress";D.RunCompleted="run_completed";D.RunFailed="run_failed";D.RunCancelled="run_cancelled";D.RunInterrupted="run_interrupted";D.OutcomeCreated="outcome_created";D.OutcomeFragmentAttached="outcome_fragment_attached";D.OutcomeFragmentReviewed="outcome_fragment_reviewed";D.OutcomeFinalized="outcome_finalized"})(hr||={});import{z as Sr}from"zod";function ur(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((F)=>F&&typeof F==="object"&&F.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 xr(n){let f=ur(n.inputSchema instanceof Sr.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 Nf=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function vr(n){let f=n instanceof Error?n.message.toLowerCase():String(n);return Nf.some((o)=>f.includes(o))}export{Un as zodToJsonSchema,xn as xmlTagsRemoval,nr as validateWithZod,Ud as upsertWorkspaceInfo,rf as truncateStr,to as truncateSplit,mn as toAiSdkToolResultOutput,Wo as serializeAbortReason,G as sanitizeSurrogates,io as sanitizeFileName,uo as safeJsonStringify,xo as safeJsonParse,Xr as resolveRootSessionId,pn as resolveReasoningEffortRatio,Qo as resolveReasoningBudgetFromRatio,Ig as resolveHubCommandTimeoutMs,sr as resolveHookSessionContext,Bo as resolveEffectiveReasoningEffort,sf as resolveClineEnvironment,Sn as parseUserCommandEnvelope,Wr as parseRuntimeConfigExtensions,So as parseJsonStream,Lo as parseHookEventPayload,un as normalizeUserInput,Jf as normalizeSdkError,On as normalizePluginManifest,Ko as noopBasicLogger,eo as maskSecret,Kf as isRuntimeConfigExtensionKind,vr as isLikelyAuthError,qg as isHubToolExecutorName,jr as hasRuntimeConfigExtension,po as getShellArgs,mo as getDefaultShell,Yo as getDefaultHubCommandTimeoutMs,Fr as getClineEnvironmentConfig,lo as formatUserInputBlock,Po as formatUserCommandBlock,zo as formatUptime,bo as formatMessagesForAiSdk,ao as formatHumanReadableDate,on as formatFileContentBlock,so as formatDisplayUserInput,jo as estimateTokens,qd as emptyWorkspaceManifest,xr as createTool,Br as createSessionId,Ro as createContributionRegistry,Qf as createClineTelemetryServiceMetadata,Zr as createClineTelemetryServiceConfig,Yr as captureSdkError,bf as buildSdkErrorProperties,fr as buildClineSystemPrompt,Tr as WorkspaceManifestSchema,Kr as WorkspaceInfoSchema,kf as VertexSettingsSchema,Uf as VertexModelSchema,nn as ToolCallRecordSchema,Vn as ThinkingConfigSchema,Ad as TeamTeammateSpecSchema,hd as TeamTaskToolResultSchema,Or as TeamTaskListItemToolResultSchema,sd as TeamTaskInputSchema,cd as TeamStatusToolResultSchema,Gd as TeamStatusInputSchema,ld as TeamSpawnTeammateInputSchema,pd as TeamSimpleAgentStatusToolResultSchema,Pd as TeamShutdownTeammateInputSchema,td as TeamSendMessageToolResultSchema,Qd as TeamSendMessageInputSchema,ud as TeamRunToolSummarySchema,Sd as TeamRunTaskToolResultSchema,Xd as TeamRunTaskInputSchema,cr as TeamRunResultSummarySchema,Cd as TeamReviewOutcomeFragmentInputSchema,Wd as TeamReadMailboxInputSchema,vd as TeamOutcomeToolResultSchema,nw as TeamOutcomeFragmentToolResultSchema,ad as TeamMissionLogToolResultSchema,jd as TeamMissionLogInputSchema,hr as TeamMessageType,xd as TeamMailboxMessageToolResultSchema,bd as TeamListRunsInputSchema,Od as TeamListOutcomesInputSchema,fw as TeamFinalizeOutcomeToolResultSchema,Md as TeamFinalizeOutcomeInputSchema,md as TeamCreateOutcomeToolResultSchema,Td as TeamCreateOutcomeInputSchema,zd as TeamCleanupToolResultSchema,Kd as TeamCleanupInputSchema,id as TeamCancelRunToolResultSchema,Jd as TeamCancelRunInputSchema,ed as TeamBroadcastToolResultSchema,Vd as TeamBroadcastInputSchema,Bd as TeamAwaitRunsInputSchema,Nd as TeamAttachOutcomeFragmentInputSchema,Zd as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,Dd as TEAM_RUN_TEXT_PREVIEW_LIMIT,Yd as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,Er as TEAM_PROGRESS_EVENT_TYPE,Hr as TEAM_LIFECYCLE_EVENT_TYPE,Ld as TEAM_AWAIT_TIMEOUT_MS,Qr as SESSION_STATUS_VALUES,Lr as SDK_ERROR_TELEMETRY_EVENT,t as S3AccessKeySettingsSchema,lf as RemoteMCPServerSchema,gr as RemoteConfigSchema,zf as ReasoningEffortSchema,An as RUNTIME_CONFIG_EXTENSION_KINDS,or as REMOTE_URI_SCHEME,c as REASONING_EFFORT_RATIOS,_r as ProviderProtocolSchema,yr as ProviderClientSchema,Rr as ProviderCapabilitySchema,Pf as PromptUploadingSchema,_o as PLUGIN_FILE_EXTENSIONS,_f as OpenAiCompatibleSchema,Rf as OpenAiCompatibleModelSchema,Bn as ModelStatusSchema,Qn as ModelPricingSchema,Wn as ModelMetadataSchema,m as ModelInfoSchema,Jn as ModelCapabilitySchema,Lf as LiteLLMSchema,Ff as LiteLLMModelSchema,hn as HookEventPayloadSchema,cn as HookEventNameSchema,Ag as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,Do as HUB_TOOL_EXECUTOR_NAMES,Ug as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,Dg as HUB_MISTAKE_LIMIT_CAPABILITY,Fg as HUB_HOOK_CAPABILITY_PREFIX,Eg as HUB_DEFAULT_COMMAND_TIMEOUT_MS,kg as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,Lg as HUB_COMPACTION_CAPABILITY,Hg as HUB_COMMAND_SLOW_LOG_MS,Yg as HUB_CHECKPOINT_CAPABILITY,Fn as GlobalInstructionsFileSchema,Gf as EnterpriseTelemetrySchema,rn as EMPTY_CONTENT_TEXT,jf as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,Vo as DEFAULT_REQUEST_HEADERS,Jo as DEFAULT_REASONING_EFFORT,Nr as DEFAULT_OUTCOME_REQUIRED_SECTIONS,Ur as DEFAULT_CLINE_ENVIRONMENT,fn as ContributionRegistry,oo as ConnectorHookEventSchema,jn as ConnectorHookEventNameSchema,Tn as ConnectorEventContextSchema,Kn as ConnectorEventActorSchema,no as ConnectorAuthorizationRequestSchema,fo as ConnectorAuthorizationDecisionSchema,qf as ClineSettingsSchema,If as ClineModelSchema,qr as CLINE_ENVIRONMENT_OVERRIDE_ENV,Ir as CLINE_ENVIRONMENT_ENV,Yn as CLINE_ENVIRONMENTS,wr as CLINE_DEFAULT_RPC_PORT,$r as CLINE_DEFAULT_RPC_ADDRESS,Hf as AwsBedrockSettingsSchema,yf as AwsBedrockModelSchema,Ef as AwsBedrockCustomModelSchema,bn as ApiFormatSchema,tf as ApiFormat,Df as AnthropicSchema,Yf as AnthropicModelSchema,Af as AllowedMCPServerSchema,af as AgentUsageSchema,ng as AgentResultSchema,ef as AgentFinishReasonSchema,fg as AgentConfigSchema,Nf as AUTH_ERROR_PATTERNS,dr as APIKeySchema};
|
|
78
|
+
${Ho(D,g,l)}`.trim();return F}return(r==="yolo"?qo:Uo).replace("{{PLATFORM_NAME}}",s).replace("{{CWD}}",D).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",B?Ho(D,g,l):"").replace("{{CLINE_RULES}}",E||"").trim()}var md="remote://";import{z as f}from"zod";var To=f.object({id:f.string(),temperature:f.number().optional(),isR1FormatRequired:f.boolean().optional(),maxTokens:f.number().optional(),contextWindow:f.number().optional(),inputPrice:f.number().optional(),outputPrice:f.number().optional(),supportsImages:f.boolean().optional()}),Go=f.object({models:f.array(To).optional(),openAiBaseUrl:f.string().optional(),openAiHeaders:f.record(f.string(),f.string()).optional(),azureApiVersion:f.string().optional(),azureIdentity:f.boolean().optional()}),Xo=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),Vo=f.object({name:f.string(),baseModelId:f.string(),thinkingBudgetTokens:f.number().optional()}),Zo=f.object({models:f.array(Xo).optional(),customModels:f.array(Vo).optional(),awsRegion:f.string().optional(),awsUseCrossRegionInference:f.boolean().optional(),awsUseGlobalInference:f.boolean().optional(),awsBedrockUsePromptCache:f.boolean().optional(),awsBedrockEndpoint:f.string().optional()}),mo=f.object({id:f.string()}),Jo=f.object({models:f.array(mo).optional()}),Qo=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),Wo=f.object({models:f.array(Qo).optional(),vertexProjectId:f.string().optional(),vertexRegion:f.string().optional()}),Po=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional(),promptCachingEnabled:f.boolean().optional()}),Oo=f.object({models:f.array(Po).optional(),baseUrl:f.string().optional()}),Ko=f.object({id:f.string(),thinkingBudgetTokens:f.number().optional()}),jo=f.object({models:f.array(Ko).optional(),baseUrl:f.string().optional()}),Jd=f.object({OpenAiCompatible:Go.optional(),AwsBedrock:Zo.optional(),Cline:Jo.optional(),Vertex:Wo.optional(),LiteLLM:Oo.optional(),Anthropic:jo.optional()}),Co=f.object({id:f.string()}),No=f.object({name:f.string(),url:f.string(),alwaysEnabled:f.boolean().optional(),headers:f.record(f.string(),f.string()).optional()}),Xn=f.object({alwaysEnabled:f.boolean(),name:f.string(),contents:f.string()}),En=f.object({bucket:f.string(),accessKeyId:f.string(),secretAccessKey:f.string(),region:f.string().optional(),endpoint:f.string().optional(),accountId:f.string().optional()}),So=f.object({enabled:f.boolean().optional(),type:f.union([f.literal("s3_access_keys"),f.literal("r2_access_keys"),f.literal("azure_access_keys")]).optional(),s3AccessSettings:En.optional(),r2AccessSettings:En.optional(),azureAccessSettings:En.optional()}),io=f.object({promptUploading:So.optional()}),Qd=f.object({version:f.string(),providerSettings:Jd.optional(),telemetryEnabled:f.boolean().optional(),kanbanEnabled:f.boolean().optional(),mcpMarketplaceEnabled:f.boolean().optional(),allowedMCPServers:f.array(Co).optional(),remoteMCPServers:f.array(No).optional(),blockPersonalRemoteMCPServers:f.boolean().optional(),yoloModeAllowed:f.boolean().optional(),openTelemetryEnabled:f.boolean().optional(),openTelemetryMetricsExporter:f.string().optional(),openTelemetryLogsExporter:f.string().optional(),openTelemetryOtlpProtocol:f.string().optional(),openTelemetryOtlpEndpoint:f.string().optional(),openTelemetryOtlpHeaders:f.record(f.string(),f.string()).optional(),openTelemetryOtlpMetricsProtocol:f.string().optional(),openTelemetryOtlpMetricsEndpoint:f.string().optional(),openTelemetryOtlpMetricsHeaders:f.record(f.string(),f.string()).optional(),openTelemetryOtlpLogsProtocol:f.string().optional(),openTelemetryOtlpLogsEndpoint:f.string().optional(),openTelemetryOtlpLogsHeaders:f.record(f.string(),f.string()).optional(),openTelemetryMetricExportInterval:f.number().optional(),openTelemetryOtlpInsecure:f.boolean().optional(),openTelemetryLogBatchSize:f.number().optional(),openTelemetryLogBatchTimeout:f.number().optional(),openTelemetryLogMaxQueueSize:f.number().optional(),enterpriseTelemetry:io.optional(),globalRules:f.array(Xn).optional(),globalWorkflows:f.array(Xn).optional()}),Wd=f.record(f.string(),f.string());var Pd=4317;var Od="127.0.0.1:4317";import Vn from"zod";var Kd=Vn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),jd=Vn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),Cd=Vn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var Nd="runtime.team.progress.v1",Sd="runtime.team.lifecycle.v1";var id="CLINE_ENVIRONMENT",hd="CLINE_ENVIRONMENT_OVERRIDE",Zn={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"}},xd="production";function ho(n){let o=n?.trim().toLowerCase();if(o==="production"||o==="staging"||o==="local")return o;return}function xo(){if(typeof process>"u"||!process?.env)return{};return process.env}function ao(){let n=xo();return ho(n.CLINE_ENVIRONMENT_OVERRIDE)??ho(n.CLINE_ENVIRONMENT)??"production"}function ad(n){if(typeof n==="string")return Zn[n];return Zn[ao()]}function pd(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 vd(n){let o=ad(n);return pd(o,xo())}var zd="sdk.error";function nf(n,o){if(!n)return;n.capture({event:o.event??"sdk.error",properties:vo(o)})}function vo(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...zo(n.error,n.messageLimit)}}function zo(n,o=500){let r=df(n)?n:void 0,s=n instanceof Error?n:void 0,g=s?.message??po(r?.message)??(typeof n==="string"?n:String(n)),l=ff(r?.code),E=mn(r?.status)??mn(r?.statusCode)??mn(r?.responseStatus);return{error_type:s?.name?.trim()||po(r?.name)||s?.constructor?.name||"Error",error_message:rf(of(g),o),...l!==void 0?{error_code:l}:{},...E!==void 0?{error_status:E}:{}}}function of(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 rf(n,o){let r=Math.max(1,Math.floor(o));return n.length>r?n.substring(0,r):n}function df(n){return typeof n==="object"&&n!==null}function po(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function ff(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function mn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function nr(n){let o={};if(!n)return o;try{n.split(",").forEach((r)=>{let s=r.indexOf("=");if(s<=0)return;let g=decodeURIComponent(r.substring(0,s).trim()),l=decodeURIComponent(r.substring(s+1).trim());if(!g||!l)return;o[g]=l})}catch{}return o}function ef(){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?nr(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function or(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 sf(n={}){return{...ef(),...n,metadata:or(n.metadata)}}function rr(n){let o=n?.trim();return o?o:void 0}function gf(n,o){if(!n)return;let r=typeof n==="function"?n(o):n;if(!r)return;let s=rr(r.rootSessionId);if(!s)return;return{rootSessionId:s}}function lf(n){return rr(n?.rootSessionId)}var Ef=(n)=>crypto.getRandomValues(new Uint8Array(n)),_f=(n,o,r)=>{let s=256-256%n.length;if(s===256){let l=n.length-1;return(E=o)=>{if(!E)return"";let w="";while(!0){let I=r(E),D=E;while(D--)if(w+=n[I[D]&l],w.length>=E)return w}}}let g=Math.ceil(409.6*o/s);return(l=o)=>{if(!l)return"";let E="";while(!0){let w=r(g),I=g;while(I--)if(w[I]<s){if(E+=n[w[I]%n.length],E.length>=l)return E}}}},dr=(n,o=21)=>_f(n,o|0,Ef);function yf(n="",o=""){let r=dr("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${r(5)}${o}`}var wf=["idle","running","pending","completed","failed","cancelled"];var Jn=["rules","skills","workflows","plugins"],fr=Jn,Bf=new Set(Jn);function er(n){return typeof n==="string"&&Bf.has(n)}function cf(n){if(!Array.isArray(n))return;let o=n.map((r)=>typeof r==="string"?r.trim():"").filter(er);return[...new Set(o)]}function If(n,o){return new Set(n??fr).has(o)}import{z as q}from"zod";var Af=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()}),Df=q.object({currentWorkspacePath:q.string().min(1).optional(),workspaces:q.record(q.string().min(1),Af)});function es(){return{workspaces:{}}}function ss(n,o){let r={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!r.currentWorkspacePath)r.currentWorkspacePath=o.rootPath;return Df.parse(r)}import{z as d}from"zod";var $f=["current_state","boundary_analysis","interface_proposal"],Es=3600000,_s=240,ys=400,H=d.preprocess((n)=>n instanceof Date?n.toISOString():n,d.string().datetime()),S=d.enum(["pending","in_progress","blocked","completed"]),sr=d.enum(["queued","running","completed","failed","cancelled","interrupted"]),_n=d.enum(["draft","in_review","finalized"]),kf=d.object({agentId:d.string(),role:d.enum(["lead","teammate"]),description:d.string().optional(),status:d.enum(["idle","running","stopped"])}),ws=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 Bs=d.object({agentId:d.string().min(1).describe("Teammate identifier"),rolePrompt:d.string().min(1).describe("System prompt describing teammate role")}).strict(),cs=d.object({agentId:d.string().min(1).describe("Teammate identifier"),reason:R(d.string().min(1)).describe("Optional shutdown reason")}),Is=d.object({}),Rf={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},As={create:["status","taskId","summary","reason"]},Ds=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 Rf[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")}),ks=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)")}),Rs=d.object({runId:d.string().min(1).describe("Run ID"),reason:R(d.string().min(1)).describe("Optional cancellation reason")}),ts=d.object({runId:R(d.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),bs=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")}),Ls=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")}),Ms=d.object({unreadOnly:R(d.boolean()).describe("Only unread messages for read action (default true)")}),Fs=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")}),Ys=d.object({}),us=d.object({title:d.string().describe("Outcome title"),requiredSections:d.array(d.string()).default($f).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),Us=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")}),qs=d.object({fragmentId:d.string().describe("Fragment ID"),approved:d.boolean().describe("Review decision")}),Hs=d.object({outcomeId:d.string().describe("Outcome ID")}),Ts=d.object({}),Gs=d.object({teamId:d.string(),teamName:d.string(),members:d.array(kf),taskCounts:d.record(S,d.number()),unreadMessages:d.number(),missionLogEntries:d.number(),activeRuns:d.number(),queuedRuns:d.number(),outcomeCounts:d.record(_n,d.number())}),tf=d.object({id:d.string(),title:d.string(),description:d.string(),status:S,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())}),Xs=d.discriminatedUnion("action",[d.object({action:d.literal("create"),taskId:d.string(),status:S,ignoredFields:d.array(d.string()).optional(),note:d.string().optional()}),d.object({action:d.literal("list"),tasks:d.array(tf)}),d.object({action:d.literal("claim"),taskId:d.string(),status:S,nextStep:d.string()}),d.object({action:d.literal("complete"),taskId:d.string(),status:S}),d.object({action:d.literal("block"),taskId:d.string(),status:S})]),Vs=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()})}),Zs=d.object({id:d.string(),agentId:d.string(),taskId:d.string().optional(),status:sr,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()}),ms=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()}),Js=d.object({id:d.string(),teamId:d.string(),title:d.string(),status:_n,requiredSections:d.array(d.string()),createdBy:d.string(),createdAt:H,finalizedAt:H.optional()}),Qs=d.object({outcomeId:d.string(),status:_n,requiredSections:d.array(d.string())}),Ws=d.object({agentId:d.string(),status:d.string()}),Ps=d.object({runId:d.string(),status:sr}),Os=d.object({id:d.string(),toAgentId:d.string()}),Ks=d.object({delivered:d.number()}),js=d.object({id:d.string()}),Cs=d.object({status:d.string()}),Ns=d.object({fragmentId:d.string(),status:d.string()}),Ss=d.object({outcomeId:d.string(),status:_n});var Lf;((b)=>{b.TaskStart="task_start";b.TaskEnd="task_end";b.AgentEvent="agent_event";b.TeammateSpawned="teammate_spawned";b.TeammateShutdown="teammate_shutdown";b.TeamTaskUpdated="team_task_updated";b.TeamMessage="team_message";b.TeamMissionLog="team_mission_log";b.TeamTaskCompleted="team_task_completed";b.RunStarted="run_started";b.RunQueued="run_queued";b.RunProgress="run_progress";b.RunCompleted="run_completed";b.RunFailed="run_failed";b.RunCancelled="run_cancelled";b.RunInterrupted="run_interrupted";b.OutcomeCreated="outcome_created";b.OutcomeFragmentAttached="outcome_fragment_attached";b.OutcomeFragmentReviewed="outcome_fragment_reviewed";b.OutcomeFinalized="outcome_finalized"})(Lf||={});import{z as Mf}from"zod";function Ff(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 s of["oneOf","anyOf","allOf"]){let g=r[s];if(!Array.isArray(g)||g.length===0)continue;if(s==="allOf"){if(g.some((w)=>w&&typeof w==="object"&&w.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((E)=>E&&typeof E==="object"&&E.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 "${s}" 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 Yf(n){let o=Ff(n.inputSchema instanceof Mf.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 gr=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function uf(n){let o=n instanceof Error?n.message.toLowerCase():String(n);return gr.some((r)=>o.includes(r))}export{Hn as zodToJsonSchema,Eo as xmlTagsRemoval,Vd as validateWithZod,co as validateImageMedia,x as validateAndReserveImageMedia,ss as upsertWorkspaceInfo,Yo as truncateStr,Hd as truncateSplit,Do as toAiSdkToolResultOutput,Bd as serializeAbortReason,U as sanitizeSurrogates,qd as sanitizeFileName,Md as safeJsonStringify,Fd as safeJsonParse,lf as resolveRootSessionId,$o as resolveReasoningEffortRatio,yd as resolveReasoningBudgetFromRatio,yo as resolveMediaBudget,ne as resolveHubCommandTimeoutMs,gf as resolveHookSessionContext,_d as resolveEffectiveReasoningEffort,ao as resolveClineEnvironment,h as reserveImageMediaBytes,go as parseUserCommandEnvelope,cf as parseRuntimeConfigExtensions,Ld as parseJsonStream,Pr as parseHookEventPayload,lo as normalizeUserInput,zo as normalizeSdkError,ro as normalizePluginManifest,Id as noopBasicLogger,Td as maskSecret,er as isRuntimeConfigExtensionKind,uf as isLikelyAuthError,oe as isHubToolExecutorName,vf as isHubProtocolCompatible,Tn as isClineProvider,nd as isCanonicalBase64,wo as isBase64Char,zr as imageFileMaxDecodedBytesForBase64Limit,An as imageBase64LengthForDecodedBytes,vr as imageBase64EncodedByteLength,_o as imageBase64DecodedByteLength,If as hasRuntimeConfigExtension,Ud as getShellArgs,ud as getDefaultShell,Kr as getDefaultHubCommandTimeoutMs,vd as getClineEnvironmentConfig,Nr as formatUserInputBlock,Sr as formatUserCommandBlock,Xd as formatUptime,ld as formatMessagesForAiSdk,Gd as formatHumanReadableDate,In as formatFileContentBlock,xr as formatDisplayUserInput,cd as estimateTokens,es as emptyWorkspaceManifest,Yf as createTool,yf as createSessionId,gn as createMediaBudgetState,Ur as createContributionRegistry,or as createClineTelemetryServiceMetadata,sf as createClineTelemetryServiceConfig,nf as captureSdkError,vo as buildSdkErrorProperties,Zd as buildClineSystemPrompt,Df as WorkspaceManifestSchema,Af as WorkspaceInfoSchema,Wo as VertexSettingsSchema,Qo as VertexModelSchema,Bn as ToolCallRecordSchema,hn as ThinkingConfigSchema,ws as TeamTeammateSpecSchema,Xs as TeamTaskToolResultSchema,tf as TeamTaskListItemToolResultSchema,Ds as TeamTaskInputSchema,Gs as TeamStatusToolResultSchema,Is as TeamStatusInputSchema,Bs as TeamSpawnTeammateInputSchema,Ws as TeamSimpleAgentStatusToolResultSchema,cs as TeamShutdownTeammateInputSchema,Os as TeamSendMessageToolResultSchema,bs as TeamSendMessageInputSchema,Zs as TeamRunToolSummarySchema,Vs as TeamRunTaskToolResultSchema,$s as TeamRunTaskInputSchema,bf as TeamRunResultSummarySchema,qs as TeamReviewOutcomeFragmentInputSchema,Ms as TeamReadMailboxInputSchema,Js as TeamOutcomeToolResultSchema,Ns as TeamOutcomeFragmentToolResultSchema,js as TeamMissionLogToolResultSchema,Fs as TeamMissionLogInputSchema,Lf as TeamMessageType,ms as TeamMailboxMessageToolResultSchema,ks as TeamListRunsInputSchema,Ts as TeamListOutcomesInputSchema,Ss as TeamFinalizeOutcomeToolResultSchema,Hs as TeamFinalizeOutcomeInputSchema,Qs as TeamCreateOutcomeToolResultSchema,us as TeamCreateOutcomeInputSchema,Cs as TeamCleanupToolResultSchema,Ys as TeamCleanupInputSchema,Ps as TeamCancelRunToolResultSchema,Rs as TeamCancelRunInputSchema,Ks as TeamBroadcastToolResultSchema,Ls as TeamBroadcastInputSchema,ts as TeamAwaitRunsInputSchema,Us as TeamAttachOutcomeFragmentInputSchema,As as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,ys as TEAM_RUN_TEXT_PREVIEW_LIMIT,_s as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,Nd as TEAM_PROGRESS_EVENT_TYPE,Sd as TEAM_LIFECYCLE_EVENT_TYPE,Es as TEAM_AWAIT_TIMEOUT_MS,sn as SUPPORTED_IMAGE_MEDIA_TYPES,wf as SESSION_STATUS_VALUES,zd as SDK_ERROR_TELEMETRY_EVENT,En as S3AccessKeySettingsSchema,No as RemoteMCPServerSchema,Qd as RemoteConfigSchema,Rr as ReasoningEffortSchema,Jn as RUNTIME_CONFIG_EXTENSION_KINDS,md as REMOTE_URI_SCHEME,p as REASONING_EFFORT_RATIOS,jd as ProviderProtocolSchema,Cd as ProviderClientSchema,Kd as ProviderCapabilitySchema,So as PromptUploadingSchema,qr as PLUGIN_FILE_EXTENSIONS,Go as OpenAiCompatibleSchema,To as OpenAiCompatibleModelSchema,Nn as ModelStatusSchema,Sn as ModelPricingSchema,xn as ModelMetadataSchema,dn as ModelInfoSchema,Cn as ModelCapabilitySchema,xf as MIN_CLIENT_HUB_PROTOCOL_VERSION,af as MAX_CLIENT_HUB_PROTOCOL_VERSION,Oo as LiteLLMSchema,Po as LiteLLMModelSchema,W as IMAGE_OMITTED_PLACEHOLDER,so as HookEventPayloadSchema,eo as HookEventNameSchema,le as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,jr as HUB_TOOL_EXECUTOR_NAMES,re as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,ge as HUB_MISTAKE_LIMIT_CAPABILITY,fe as HUB_HOOK_CAPABILITY_PREFIX,Or as HUB_DEFAULT_COMMAND_TIMEOUT_MS,de as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,ee as HUB_COMPACTION_CAPABILITY,zf as HUB_COMMAND_SLOW_LOG_MS,se as HUB_CHECKPOINT_CAPABILITY,pf as HUB_CAPABILITIES,Xn as GlobalInstructionsFileSchema,Hr as FeatureFlagDefaultValue,Tr as FEATURE_FLAGS,io as EnterpriseTelemetrySchema,Dn as EMPTY_CONTENT_TEXT,fr as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,wd as DEFAULT_REQUEST_HEADERS,Ed as DEFAULT_REASONING_EFFORT,$f as DEFAULT_OUTCOME_REQUIRED_SECTIONS,pr as DEFAULT_MAX_TOTAL_MEDIA_BYTES,X as DEFAULT_MAX_IMAGE_ENCODED_BYTES,P as DEFAULT_MAX_IMAGE_DECODED_BYTES,ar as DEFAULT_MAX_IMAGE_BASE64_BYTES,xd as DEFAULT_CLINE_ENVIRONMENT,cn as ContributionRegistry,Lr as ConnectorHookEventSchema,an as ConnectorHookEventNameSchema,vn as ConnectorEventContextSchema,pn as ConnectorEventActorSchema,tr as ConnectorAuthorizationRequestSchema,br as ConnectorAuthorizationDecisionSchema,Jo as ClineSettingsSchema,mo as ClineModelSchema,hf as CURRENT_HUB_PROTOCOL_VERSION,hd as CLINE_ENVIRONMENT_OVERRIDE_ENV,id as CLINE_ENVIRONMENT_ENV,Zn as CLINE_ENVIRONMENTS,Pd as CLINE_DEFAULT_RPC_PORT,Od as CLINE_DEFAULT_RPC_ADDRESS,Zo as AwsBedrockSettingsSchema,Xo as AwsBedrockModelSchema,Vo as AwsBedrockCustomModelSchema,jn as ApiFormatSchema,Dr as ApiFormat,jo as AnthropicSchema,Ko as AnthropicModelSchema,Co as AllowedMCPServerSchema,kr as AgentUsageSchema,Zf as AgentResultSchema,$r as AgentFinishReasonSchema,mf as AgentConfigSchema,gr as AUTH_ERROR_PATTERNS,Wd as APIKeySchema};
|
package/dist/index.d.ts
CHANGED
|
@@ -7,9 +7,10 @@ export type { AutomationEventEnvelope, CronEventSpec, CronOneOffSpec, CronSchedu
|
|
|
7
7
|
export type { Disposable } from "./dispose";
|
|
8
8
|
export { disposeAll, registerDisposable } from "./dispose";
|
|
9
9
|
export type { ClientContext, ClientName, ExtensionContext, UserContext, WorkspaceContext, } from "./extensions/context";
|
|
10
|
-
export type { AgentExtensionApi, AgentExtensionAutomationContext, AgentExtensionAutomationEventType, AgentExtensionCapability, AgentExtensionCommand, AgentExtensionHooks, AgentExtensionMessageBuilder, AgentExtensionProvider, AgentExtensionRegistry, AgentExtensionRule, AgentExtensionSessionContext, ContributionRegistryExtension, ContributionRegistryOptions, PluginManifest, PluginSetupContext, } from "./extensions/contribution-registry";
|
|
10
|
+
export type { AgentExtensionApi, AgentExtensionAutomationContext, AgentExtensionAutomationEventType, AgentExtensionCapability, AgentExtensionCommand, AgentExtensionCommandResult, AgentExtensionHooks, AgentExtensionMessageBuilder, AgentExtensionProvider, AgentExtensionRegistry, AgentExtensionRule, AgentExtensionSessionContext, ContributionRegistryExtension, ContributionRegistryOptions, PluginManifest, PluginSetupContext, } from "./extensions/contribution-registry";
|
|
11
11
|
export { ContributionRegistry, createContributionRegistry, normalizePluginManifest, } from "./extensions/contribution-registry";
|
|
12
12
|
export { PLUGIN_FILE_EXTENSIONS } from "./extensions/plugin";
|
|
13
|
+
export { FEATURE_FLAGS, type FeatureFlag, FeatureFlagDefaultValue, type FeatureFlagPayload, type FeatureFlagsAndPayloads, type FeatureFlagsContext, type FeatureFlagsSettings, type IFeatureFlagsProvider, } from "./feature-flags";
|
|
13
14
|
export type { HookControl } from "./hooks/contracts";
|
|
14
15
|
export type { AgentAbortHookPayload, AgentEndHookPayload, AgentErrorHookPayload, AgentResumeHookPayload, AgentStartHookPayload, HookEventName, HookEventPayload, HookEventPayloadBase, PostToolUseData, PreCompactData, PreCompactHookPayload, PreToolUseData, PromptSubmitHookPayload, SessionShutdownHookPayload, TaskCancelData, TaskCompleteData, TaskResumeData, TaskStartData, ToolCallHookPayload, ToolResultHookPayload, UserPromptSubmitData, } from "./hooks/events";
|
|
15
16
|
export { HookEventNameSchema, HookEventPayloadSchema, parseHookEventPayload, } from "./hooks/events";
|
|
@@ -17,6 +18,7 @@ export * from "./hub";
|
|
|
17
18
|
export type { AiSdkFormatterMessage, AiSdkFormatterMessageRole, AiSdkFormatterPart, AiSdkMessage, AiSdkMessagePart, } from "./llms/ai-sdk-format";
|
|
18
19
|
export { EMPTY_CONTENT_TEXT, formatMessagesForAiSdk, sanitizeSurrogates, toAiSdkToolResultOutput, } from "./llms/ai-sdk-format";
|
|
19
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";
|
|
20
22
|
export type { ContentBlock, FileContent, ImageContent, Message, MessageRole, MessageWithMetadata, RedactedThinkingContent, TextContent, ThinkingContent, ToolDefinition, ToolResultContent, ToolUseContent, } from "./llms/messages";
|
|
21
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";
|
|
22
24
|
export { DEFAULT_REASONING_EFFORT, REASONING_EFFORT_RATIOS, resolveEffectiveReasoningEffort, resolveReasoningBudgetFromRatio, resolveReasoningEffortRatio, } from "./llms/reasoning-effort";
|
|
@@ -33,6 +35,7 @@ export { validateWithZod, zodToJsonSchema } from "./parse/zod";
|
|
|
33
35
|
export type { ClineSystemPromptOptions } from "./prompt/cline";
|
|
34
36
|
export { buildClineSystemPrompt, processWorkspaceInfo } from "./prompt/cline";
|
|
35
37
|
export { formatDisplayUserInput, formatFileContentBlock, formatUserCommandBlock, formatUserInputBlock, normalizeUserInput, parseUserCommandEnvelope, xmlTagsRemoval, } from "./prompt/format";
|
|
38
|
+
export { isClineProvider } from "./providers/utils";
|
|
36
39
|
export { buildRemoteConfigSessionBlobUploadMetadata, clearRemoteConfigSessionBlobUpload, createRemoteConfigSessionMessagesArtifactUploader, prepareRemoteConfigRuntime, REMOTE_CONFIG_SESSION_BLOB_UPLOAD_METADATA_KEY, readRemoteConfigSessionBlobUploadMetadata, registerRemoteConfigSessionBlobUpload, } from "./remote-config";
|
|
37
40
|
export type { PreparedRemoteConfigRuntime, PrepareRemoteConfigRuntimeOptions, RemoteConfigBundle, } from "./remote-config/bundle";
|
|
38
41
|
export { REMOTE_URI_SCHEME } from "./remote-config/constants";
|