@cline/shared 0.0.39 → 0.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.d.ts +2 -11
- package/dist/agents/types.d.ts +2 -0
- package/dist/index.browser.d.ts +6 -4
- package/dist/index.browser.js +15 -15
- package/dist/index.d.ts +4 -2
- package/dist/index.js +31 -31
- package/dist/llms/ai-sdk-format.d.ts +13 -0
- package/dist/llms/gateway.d.ts +30 -2
- package/dist/llms/model-info.d.ts +1 -0
- package/dist/llms/tokens.d.ts +7 -0
- package/dist/rpc/runtime.d.ts +2 -0
- package/dist/services/telemetry.d.ts +16 -0
- package/dist/storage/index.js +1 -1
- package/dist/vcr.d.ts +3 -3
- package/package.json +3 -4
package/dist/agent.d.ts
CHANGED
|
@@ -7,16 +7,7 @@
|
|
|
7
7
|
import type { ModelInfo } from "./llms/model-info";
|
|
8
8
|
import type { ToolApprovalRequest, ToolApprovalResult, ToolPolicy } from "./llms/tools";
|
|
9
9
|
import type { BasicLogger } from "./logging/logger";
|
|
10
|
-
|
|
11
|
-
* Minimal telemetry interface consumed by the new `AgentRuntime`.
|
|
12
|
-
*
|
|
13
|
-
* This is intentionally smaller than `ITelemetryService` (see
|
|
14
|
-
* `./services/telemetry`); hosts that wish to forward runtime telemetry
|
|
15
|
-
* to the full service should adapt via a simple shim.
|
|
16
|
-
*/
|
|
17
|
-
export interface AgentTelemetry {
|
|
18
|
-
capture?: (event: string, properties?: Record<string, unknown>) => void | Promise<void>;
|
|
19
|
-
}
|
|
10
|
+
import type { ITelemetryService } from "./services/telemetry";
|
|
20
11
|
export interface AgentTextPart {
|
|
21
12
|
type: "text";
|
|
22
13
|
text: string;
|
|
@@ -294,7 +285,7 @@ export interface AgentRuntimeConfig {
|
|
|
294
285
|
hooks?: Partial<AgentRuntimeHooks>;
|
|
295
286
|
plugins?: readonly AgentRuntimePlugin[];
|
|
296
287
|
logger?: BasicLogger;
|
|
297
|
-
telemetry?:
|
|
288
|
+
telemetry?: ITelemetryService;
|
|
298
289
|
initialMessages?: readonly AgentMessage[];
|
|
299
290
|
maxIterations?: number;
|
|
300
291
|
completionPolicy?: {
|
package/dist/agents/types.d.ts
CHANGED
|
@@ -542,6 +542,7 @@ export declare const AgentResultSchema: z.ZodObject<{
|
|
|
542
542
|
description: z.ZodOptional<z.ZodString>;
|
|
543
543
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
544
544
|
contextWindow: z.ZodOptional<z.ZodNumber>;
|
|
545
|
+
maxInputTokens: z.ZodOptional<z.ZodNumber>;
|
|
545
546
|
capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
546
547
|
images: "images";
|
|
547
548
|
tools: "tools";
|
|
@@ -783,6 +784,7 @@ export declare const AgentConfigSchema: z.ZodObject<{
|
|
|
783
784
|
description: z.ZodOptional<z.ZodString>;
|
|
784
785
|
maxTokens: z.ZodOptional<z.ZodNumber>;
|
|
785
786
|
contextWindow: z.ZodOptional<z.ZodNumber>;
|
|
787
|
+
maxInputTokens: z.ZodOptional<z.ZodNumber>;
|
|
786
788
|
capabilities: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
787
789
|
images: "images";
|
|
788
790
|
tools: "tools";
|
package/dist/index.browser.d.ts
CHANGED
|
@@ -13,17 +13,16 @@ export type { AgentAbortHookPayload, AgentEndHookPayload, AgentErrorHookPayload,
|
|
|
13
13
|
export { HookEventNameSchema, HookEventPayloadSchema, parseHookEventPayload, } from "./hooks/events";
|
|
14
14
|
export * from "./hub";
|
|
15
15
|
export type { AiSdkFormatterMessage, AiSdkFormatterMessageRole, AiSdkFormatterPart, AiSdkMessage, AiSdkMessagePart, } from "./llms/ai-sdk-format";
|
|
16
|
-
export { formatMessagesForAiSdk, toAiSdkToolResultOutput, } from "./llms/ai-sdk-format";
|
|
16
|
+
export { formatMessagesForAiSdk, sanitizeSurrogates, toAiSdkToolResultOutput, } from "./llms/ai-sdk-format";
|
|
17
17
|
export type * from "./llms/gateway";
|
|
18
18
|
export type { ContentBlock, FileContent, ImageContent, Message, MessageRole, MessageWithMetadata, RedactedThinkingContent, TextContent, ThinkingContent, ToolDefinition, ToolResultContent, ToolUseContent, } from "./llms/messages";
|
|
19
19
|
export { ApiFormat, ApiFormatSchema, type ModelCapability, ModelCapabilitySchema, type ModelInfo, ModelInfoSchema, type ModelPricing, ModelPricingSchema, type ModelStatus, ModelStatusSchema, type ThinkingConfig, ThinkingConfigSchema, } from "./llms/model-info";
|
|
20
20
|
export { DEFAULT_REASONING_EFFORT, REASONING_EFFORT_RATIOS, resolveEffectiveReasoningEffort, resolveReasoningBudgetFromRatio, resolveReasoningEffortRatio, } from "./llms/reasoning-effort";
|
|
21
21
|
export { DEFAULT_REQUEST_HEADERS, serializeAbortReason } from "./llms/requests";
|
|
22
|
+
export { estimateTokens } from "./llms/tokens";
|
|
22
23
|
export type { ToolApprovalRequest, ToolApprovalResult, ToolCallRecord, ToolPolicy, } from "./llms/tools";
|
|
23
24
|
export { ToolCallRecordSchema } from "./llms/tools";
|
|
24
25
|
export { type BasicLogger, type BasicLogMetadata, noopBasicLogger, } from "./logging/logger";
|
|
25
|
-
export type { ClineEnvironment, ClineEnvironmentConfig, ResolveClineEnvironmentOptions, } from "./runtime/cline-environment";
|
|
26
|
-
export { CLINE_ENVIRONMENT_ENV, CLINE_ENVIRONMENT_OVERRIDE_ENV, CLINE_ENVIRONMENTS, DEFAULT_CLINE_ENVIRONMENT, getClineEnvironmentConfig, resolveClineEnvironment, } from "./runtime/cline-environment";
|
|
27
26
|
export { parseJsonStream, safeJsonParse, safeJsonStringify, } from "./parse/json";
|
|
28
27
|
export { getDefaultShell, getShellArgs } from "./parse/shell";
|
|
29
28
|
export { maskSecret, sanitizeFileName, truncateSplit, truncateStr, } from "./parse/string";
|
|
@@ -40,7 +39,10 @@ export type { AddProviderActionRequest, ChatAttachmentFile, ChatAttachments, Cha
|
|
|
40
39
|
export { ProviderCapabilitySchema, ProviderClientSchema, ProviderProtocolSchema, } from "./rpc/runtime";
|
|
41
40
|
export type { TeamProgressCounts, TeamProgressLifecycleEvent, TeamProgressMemberRole, TeamProgressMemberStatus, TeamProgressOutcomeFragmentStatus, TeamProgressOutcomeStatus, TeamProgressProjectionEvent, TeamProgressRunStatus, TeamProgressSummary, TeamProgressTaskStatus, } from "./rpc/team-progress";
|
|
42
41
|
export { TEAM_LIFECYCLE_EVENT_TYPE, TEAM_PROGRESS_EVENT_TYPE, } from "./rpc/team-progress";
|
|
43
|
-
export type {
|
|
42
|
+
export type { ClineEnvironment, ClineEnvironmentConfig, ResolveClineEnvironmentOptions, } from "./runtime/cline-environment";
|
|
43
|
+
export { CLINE_ENVIRONMENT_ENV, CLINE_ENVIRONMENT_OVERRIDE_ENV, CLINE_ENVIRONMENTS, DEFAULT_CLINE_ENVIRONMENT, getClineEnvironmentConfig, resolveClineEnvironment, } from "./runtime/cline-environment";
|
|
44
|
+
export type { CaptureSdkErrorInput, ITelemetryService, OpenTelemetryClientConfig, SdkTelemetryErrorComponent, SdkTelemetryErrorSeverity, TelemetryArray, TelemetryMetadata, TelemetryObject, TelemetryPrimitive, TelemetryProperties, TelemetryValue, } from "./services/telemetry";
|
|
45
|
+
export { buildSdkErrorProperties, captureSdkError, normalizeSdkError, SDK_ERROR_TELEMETRY_EVENT, } from "./services/telemetry";
|
|
44
46
|
export type { ClineTelemetryServiceConfig } from "./services/telemetry-config";
|
|
45
47
|
export { createClineTelemetryServiceConfig, createClineTelemetryServiceMetadata, } from "./services/telemetry-config";
|
|
46
48
|
export type { HookSessionContext, HookSessionContextLookup, HookSessionContextProvider, } from "./session/hook-context";
|
package/dist/index.browser.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import{z as l}from"zod";import{z as R}from"zod";var Pn=R.enum(["default","openai-responses","r1"]),io={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},Un=R.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),Dn=R.enum(["active","preview","deprecated","legacy"]),Yn=R.object({input:R.number().optional(),output:R.number().optional(),cacheWrite:R.number().optional(),cacheRead:R.number().optional()}),tn=R.object({maxBudget:R.number().optional(),outputPrice:R.number().optional(),thinkingLevel:R.enum(["low","high"]).optional()}),m=R.object({id:R.string(),name:R.string().optional(),description:R.string().optional(),maxTokens:R.number().optional(),contextWindow:R.number().optional(),capabilities:R.array(Un).optional(),apiFormat:Pn.optional(),systemRole:R.enum(["system","developer"]).optional(),temperature:R.number().optional(),pricing:Yn.optional(),thinkingConfig:tn.optional(),status:Dn.optional(),deprecationNotice:R.string().optional(),replacedBy:R.string().optional(),releaseDate:R.string().optional(),deprecationDate:R.string().optional(),family:R.string().optional()});import{z as D}from"zod";var x=D.object({id:D.string(),name:D.string(),input:D.unknown(),output:D.unknown(),error:D.string().optional(),durationMs:D.number(),startedAt:D.date(),endedAt:D.date()});var No=l.enum(["completed","max_iterations","aborted","mistake_limit","error"]),mo=l.object({inputTokens:l.number(),outputTokens:l.number(),cacheReadTokens:l.number().optional(),cacheWriteTokens:l.number().optional(),totalCost:l.number().optional()}),Mf=l.object({text:l.string(),usage:mo,messages:l.array(l.custom()),toolCalls:l.array(x),iterations:l.number(),finishReason:No,model:l.object({id:l.string(),provider:l.string(),info:m.optional()}),startedAt:l.date(),endedAt:l.date(),durationMs:l.number()}),Oo=l.enum(["low","medium","high","xhigh"]),Sf=l.object({sessionId:l.string().optional(),providerId:l.string(),modelId:l.string(),apiKey:l.string().optional(),baseUrl:l.string().url().optional(),headers:l.record(l.string(),l.string()).optional(),knownModels:l.record(l.string(),m).optional(),providerConfig:l.unknown().optional(),initialMessages:l.array(l.custom()).optional(),systemPrompt:l.string(),tools:l.array(l.custom()),maxIterations:l.number().positive().optional(),maxParallelToolCalls:l.number().int().positive().default(8),maxTokensPerTurn:l.number().positive().optional(),apiTimeoutMs:l.number().positive().default(180000),userFileContentLoader:l.function().input([l.string()]).output(l.promise(l.string())).optional(),toolContextMetadata:l.record(l.string(),l.unknown()).optional(),execution:l.object({maxConsecutiveMistakes:l.number().int().positive().optional(),reminderAfterIterations:l.number().nonnegative().optional(),reminderText:l.string().optional(),loopDetection:l.union([l.literal(!1),l.object({softThreshold:l.number().int().positive().optional(),hardThreshold:l.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:Oo.optional(),thinkingBudgetTokens:l.number().positive().optional(),thinking:l.boolean().optional(),onEvent:l.function().input([l.custom()]).output(l.void()).optional(),hooks:l.custom().optional(),parentAgentId:l.string().optional(),extensions:l.array(l.custom()).optional(),hookErrorMode:l.enum(["ignore","throw"]).default("ignore"),toolPolicies:l.record(l.string(),l.object({enabled:l.boolean().optional(),autoApprove:l.boolean().optional()})).optional(),requestToolApproval:l.function().input([l.object({sessionId:l.string(),agentId:l.string(),conversationId:l.string(),iteration:l.number(),toolCallId:l.string(),toolName:l.string(),input:l.unknown(),policy:l.object({enabled:l.boolean().optional(),autoApprove:l.boolean().optional()}).default({})})]).output(l.union([l.object({approved:l.boolean(),reason:l.string().optional()}),l.promise(l.object({approved:l.boolean(),reason:l.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:l.function().input([l.object({iteration:l.number().int().positive(),consecutiveMistakes:l.number().int().positive(),maxConsecutiveMistakes:l.number().int().positive(),reason:l.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:l.string().optional()})]).output(l.union([l.object({action:l.literal("continue"),guidance:l.string().optional()}),l.object({action:l.literal("stop"),reason:l.string().optional()}),l.promise(l.union([l.object({action:l.literal("continue"),guidance:l.string().optional()}),l.object({action:l.literal("stop"),reason:l.string().optional()})]))])).optional(),logger:l.custom().optional(),extensionContext:l.custom().optional(),abortSignal:l.custom().optional()});import{z as E}from"zod";var An=E.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"]),Gn=E.object({id:E.string().optional(),label:E.string().optional(),role:E.string().optional(),participantKey:E.string().optional(),participantLabel:E.string().optional(),platformUserId:E.string().optional(),metadata:E.record(E.string(),E.unknown()).optional()}),Xn=E.object({source:E.string(),sourceEvent:E.string(),threadId:E.string(),channelId:E.string(),isDM:E.boolean(),sessionId:E.string().optional(),workspaceRoot:E.string().optional(),metadata:E.record(E.string(),E.unknown()).optional()}),ho=E.object({actor:Gn,context:Xn,payload:E.record(E.string(),E.unknown()).optional()}),vo=E.object({action:E.enum(["allow","deny"]).default("allow"),message:E.string().optional(),reason:E.string().optional(),metadata:E.record(E.string(),E.unknown()).optional()}),po=E.object({adapter:E.string(),botUserName:E.string().optional(),event:An,payload:E.record(E.string(),E.unknown()),ts:E.string()});var ao=["hooks","tools","commands","rules","messageBuilders","providers","automationEvents"],xo=new Set(ao);function Bn(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 Vn(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 Jn(n){let o=Vn(n.providerIds),r=Vn(n.modelIds);return{...n,...o?{providerIds:o}:{},...r?{modelIds:r}:{}}}function zo(n,o){let r=Bn(n,o),d=n.manifest;if(!d||typeof d!=="object")throw Error(`Invalid manifest for extension "${r}": manifest is required`);if(!Array.isArray(d.capabilities)||d.capabilities.length===0)throw Error(`Invalid manifest for extension "${r}": capabilities must be a non-empty array`);let s=new Set;for(let _ of d.capabilities){if(!xo.has(_))throw Error(`Invalid manifest for extension "${r}": unsupported capability "${String(_)}"`);s.add(_)}if(Object.hasOwn(d,"providerIds")&&!Zn(d.providerIds))throw Error(`Invalid manifest for extension "${r}": providerIds must be a string array when provided`);if(Object.hasOwn(d,"modelIds")&&!Zn(d.modelIds))throw Error(`Invalid manifest for extension "${r}": modelIds must be a string array when provided`);let y=s.has("hooks");if(n.hooks!==void 0&&!y)throw Error(`Invalid manifest for extension "${r}": runtime hooks require the "hooks" capability`);return{capabilities:s,raw:Jn(d)}}function nr(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():"",d=typeof n.source==="string"?n.source.trim():"";if(!r)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!d)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:r,source:d,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class z{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:zo(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=Bn(o,n.order),d={registerTool:(y)=>this.registry.tools.push(y),registerCommand:(y)=>this.registry.commands.push(y),registerRule:(y)=>{if(!n.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${r}": registerRule requires the "rules" capability`);this.registry.rules.push(y)},registerMessageBuilder:(y)=>this.registry.messageBuilder.push(y),registerProvider:(y)=>this.registry.providers.push(y),registerAutomationEventType:(y)=>{if(!n.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${r}": registerAutomationEventType requires the "automationEvents" capability`);this.registry.automationEventTypes.push(nr(y,r))}},s=n.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};await o.setup?.(d,s)}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 or(n={}){return new z(n)}var rr=[".js",".ts"];import{z as e}from"zod";var Qn=e.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),V=e.record(e.string(),e.string()),fr=e.object({toolName:e.string(),parameters:V}),gr=e.object({toolName:e.string(),parameters:V,result:e.string(),success:e.boolean(),executionTimeMs:e.number()}),lr=e.object({prompt:e.string(),attachments:e.array(e.string())}),dr=e.object({taskMetadata:V}),sr=e.object({taskMetadata:V,previousState:V}),er=e.object({taskMetadata:V}),wr=e.object({taskMetadata:V}),yr=e.object({taskId:e.string(),ulid:e.string(),contextSize:e.number(),compactionStrategy:e.string(),previousApiReqIndex:e.number(),tokensIn:e.number(),tokensOut:e.number(),tokensInCache:e.number(),tokensOutCache:e.number(),deletedRangeStart:e.number(),deletedRangeEnd:e.number(),contextJsonPath:e.string(),contextRawPath:e.string()}),Tn=e.object({clineVersion:e.string(),hookName:Qn,timestamp:e.string(),taskId:e.string(),sessionContext:e.object({rootSessionId:e.string().optional(),hookLogPath:e.string().optional()}).optional(),workspaceRoots:e.array(e.string()),workspaceInfo:e.custom().optional(),userId:e.string(),agent_id:e.string(),parent_agent_id:e.string().nullable(),iteration:e.number().optional(),reason:e.string().optional(),tool_call:e.object({id:e.string(),name:e.string(),input:e.unknown()}).optional(),tool_result:e.custom().optional(),turn:e.unknown().optional(),error:e.object({name:e.string(),message:e.string(),stack:e.string().optional()}).optional(),preToolUse:fr.optional(),postToolUse:gr.optional(),userPromptSubmit:lr.optional(),taskStart:dr.optional(),taskResume:sr.optional(),taskCancel:er.optional(),taskComplete:wr.optional(),preCompact:yr.optional()}).passthrough();function $r(n){let o=Tn.safeParse(n);if(!o.success)return;return o.data}var xf=30000,zf=5000;function Er(n){switch(n){case"run.start":case"session.send_input":return null;default:return 30000}}function ng(n,o){return o===void 0?Er(n):o}var cr=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],ur=new Set(cr);function og(n){return typeof n==="string"&&ur.has(n)}var rg="tool_executor.",fg="custom_tool.",gg="hook.",lg="compaction.compact",dg="checkpoint.create",sg="mistake_limit.decide",eg="user_instructions.snapshot";function nn(n,o){return`<file_content path="${n}">
|
|
1
|
+
import{z as d}from"zod";import{z as H}from"zod";var Gn=H.enum(["default","openai-responses","r1"]),po={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},Xn=H.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),Zn=H.enum(["active","preview","deprecated","legacy"]),Bn=H.object({input:H.number().optional(),output:H.number().optional(),cacheWrite:H.number().optional(),cacheRead:H.number().optional()}),Jn=H.object({maxBudget:H.number().optional(),outputPrice:H.number().optional(),thinkingLevel:H.enum(["low","high"]).optional()}),e=H.object({id:H.string(),name:H.string().optional(),description:H.string().optional(),maxTokens:H.number().optional(),contextWindow:H.number().optional(),maxInputTokens:H.number().optional(),capabilities:H.array(Xn).optional(),apiFormat:Gn.optional(),systemRole:H.enum(["system","developer"]).optional(),temperature:H.number().optional(),pricing:Bn.optional(),thinkingConfig:Jn.optional(),status:Zn.optional(),deprecationNotice:H.string().optional(),replacedBy:H.string().optional(),releaseDate:H.string().optional(),deprecationDate:H.string().optional(),family:H.string().optional()});import{z as G}from"zod";var nn=G.object({id:G.string(),name:G.string(),input:G.unknown(),output:G.unknown(),error:G.string().optional(),durationMs:G.number(),startedAt:G.date(),endedAt:G.date()});var vo=d.enum(["completed","max_iterations","aborted","mistake_limit","error"]),ao=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:ao,messages:d.array(d.custom()),toolCalls:d.array(nn),iterations:d.number(),finishReason:vo,model:d.object({id:d.string(),provider:d.string(),info:e.optional()}),startedAt:d.date(),endedAt:d.date(),durationMs:d.number()}),zo=d.enum(["low","medium","high","xhigh"]),og=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(),e).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:zo.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 _}from"zod";var Qn=_.enum(["connector.started","connector.stopping","session.authorize","message.received","message.denied","message.completed","message.failed","session.started","session.reused","session.reset","schedule.delivery.started","schedule.delivery.sent","schedule.delivery.failed"]),Tn=_.object({id:_.string().optional(),label:_.string().optional(),role:_.string().optional(),participantKey:_.string().optional(),participantLabel:_.string().optional(),platformUserId:_.string().optional(),metadata:_.record(_.string(),_.unknown()).optional()}),Vn=_.object({source:_.string(),sourceEvent:_.string(),threadId:_.string(),channelId:_.string(),isDM:_.boolean(),sessionId:_.string().optional(),workspaceRoot:_.string().optional(),metadata:_.record(_.string(),_.unknown()).optional()}),nf=_.object({actor:Tn,context:Vn,payload:_.record(_.string(),_.unknown()).optional()}),of=_.object({action:_.enum(["allow","deny"]).default("allow"),message:_.string().optional(),reason:_.string().optional(),metadata:_.record(_.string(),_.unknown()).optional()}),ff=_.object({adapter:_.string(),botUserName:_.string().optional(),event:Qn,payload:_.record(_.string(),_.unknown()),ts:_.string()});var rf=["hooks","tools","commands","rules","messageBuilders","providers","automationEvents"],gf=new Set(rf);function Mn(n,o){return n.name||`extension_${String(o).padStart(4,"0")}`}function Wn(n){return Array.isArray(n)&&n.every((o)=>typeof o==="string")}function jn(n){if(!Array.isArray(n))return;let o=n.filter((f)=>typeof f==="string").map((f)=>f.trim()).filter((f)=>f.length>0);return o.length>0?o:void 0}function Kn(n){let o=jn(n.providerIds),f=jn(n.modelIds);return{...n,...o?{providerIds:o}:{},...f?{modelIds:f}:{}}}function df(n,o){let f=Mn(n,o),l=n.manifest;if(!l||typeof l!=="object")throw Error(`Invalid manifest for extension "${f}": manifest is required`);if(!Array.isArray(l.capabilities)||l.capabilities.length===0)throw Error(`Invalid manifest for extension "${f}": capabilities must be a non-empty array`);let w=new Set;for(let b of l.capabilities){if(!gf.has(b))throw Error(`Invalid manifest for extension "${f}": unsupported capability "${String(b)}"`);w.add(b)}if(Object.hasOwn(l,"providerIds")&&!Wn(l.providerIds))throw Error(`Invalid manifest for extension "${f}": providerIds must be a string array when provided`);if(Object.hasOwn(l,"modelIds")&&!Wn(l.modelIds))throw Error(`Invalid manifest for extension "${f}": modelIds must be a string array when provided`);let y=w.has("hooks");if(n.hooks!==void 0&&!y)throw Error(`Invalid manifest for extension "${f}": runtime hooks require the "hooks" capability`);return{capabilities:w,raw:Kn(l)}}function lf(n,o){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${o}": expected object`);let f=typeof n.eventType==="string"?n.eventType.trim():"",l=typeof n.source==="string"?n.source.trim():"";if(!f)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!l)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:f,source:l,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class on{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,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:df(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 f=Mn(o,n.order),l={registerTool:(y)=>this.registry.tools.push(y),registerCommand:(y)=>this.registry.commands.push(y),registerRule:(y)=>{if(!n.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${f}": registerRule requires the "rules" capability`);this.registry.rules.push(y)},registerMessageBuilder:(y)=>this.registry.messageBuilder.push(y),registerProvider:(y)=>this.registry.providers.push(y),registerAutomationEventType:(y)=>{if(!n.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${f}": registerAutomationEventType requires the "automationEvents" capability`);this.registry.automationEventTypes.push(lf(y,f))}},w=n.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};await o.setup?.(l,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,o)=>n.order-o.order).map(({extension:n})=>n)}}function wf(n={}){return new on(n)}var sf=[".js",".ts"];import{z as s}from"zod";var Cn=s.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),V=s.record(s.string(),s.string()),yf=s.object({toolName:s.string(),parameters:V}),$f=s.object({toolName:s.string(),parameters:V,result:s.string(),success:s.boolean(),executionTimeMs:s.number()}),Ef=s.object({prompt:s.string(),attachments:s.array(s.string())}),_f=s.object({taskMetadata:V}),Rf=s.object({taskMetadata:V,previousState:V}),cf=s.object({taskMetadata:V}),kf=s.object({taskMetadata:V}),bf=s.object({taskId:s.string(),ulid:s.string(),contextSize:s.number(),compactionStrategy:s.string(),previousApiReqIndex:s.number(),tokensIn:s.number(),tokensOut:s.number(),tokensInCache:s.number(),tokensOutCache:s.number(),deletedRangeStart:s.number(),deletedRangeEnd:s.number(),contextJsonPath:s.string(),contextRawPath:s.string()}),Nn=s.object({clineVersion:s.string(),hookName:Cn,timestamp:s.string(),taskId:s.string(),sessionContext:s.object({rootSessionId:s.string().optional(),hookLogPath:s.string().optional()}).optional(),workspaceRoots:s.array(s.string()),workspaceInfo:s.custom().optional(),userId:s.string(),agent_id:s.string(),parent_agent_id:s.string().nullable(),iteration:s.number().optional(),reason:s.string().optional(),tool_call:s.object({id:s.string(),name:s.string(),input:s.unknown()}).optional(),tool_result:s.custom().optional(),turn:s.unknown().optional(),error:s.object({name:s.string(),message:s.string(),stack:s.string().optional()}).optional(),preToolUse:yf.optional(),postToolUse:$f.optional(),userPromptSubmit:Ef.optional(),taskStart:_f.optional(),taskResume:Rf.optional(),taskCancel:cf.optional(),taskComplete:kf.optional(),preCompact:bf.optional()}).passthrough();function Hf(n){let o=Nn.safeParse(n);if(!o.success)return;return o.data}var Eg=30000,_g=5000;function Ff(n){switch(n){case"run.start":case"session.send_input":return null;default:return 30000}}function Rg(n,o){return o===void 0?Ff(n):o}var If=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],qf=new Set(If);function cg(n){return typeof n==="string"&&qf.has(n)}var kg="tool_executor.",bg="custom_tool.",Hg="hook.",Fg="compaction.compact",Ig="checkpoint.create",qg="mistake_limit.decide",Pg="user_instructions.snapshot";function fn(n,o){return`<file_content path="${n}">
|
|
2
2
|
${o}
|
|
3
|
-
</file_content>`}function
|
|
4
|
-
+`.includes(n)}function
|
|
5
|
-
+`.includes(n)}function
|
|
6
|
-
`||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function
|
|
7
|
-
`,r:"\r",t:"\t"};function
|
|
8
|
-
`)o++;return!0}return!1}function
|
|
9
|
-
${
|
|
10
|
-
]`}function
|
|
11
|
-
`)
|
|
3
|
+
</file_content>`}function Pf(n,o="act"){return`<user_input mode="${o}">${n}</user_input>`}function Uf(n,o){return`<user_command slash="${o}">${n}</user_command>`}function Lf(n,o){let f=n.trim(),l=new RegExp(`^<${o}\\b([^>]*)>([\\s\\S]*?)<\\/${o}>$`,"i").exec(f);if(!l)return;return{attrs:l[1]??"",content:l[2]??""}}function Yf(n,o){return new RegExp(`${o}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function hn(n){if(!n?.trim())return;let o=Lf(n,"user_command");if(!o)return;let f=Yf(o.attrs,"slash");if(!f)return;return{slash:f,content:o.content.trim()}}function Sn(n){if(!n?.trim())return"";let o=n.trim();for(let f of["user_input","user_command"]){let l=On(o,f);o=(l!==o?l:o.replace(new RegExp(`<${f}[^>]*>`,"g"),"")).trim()}return o}function Af(n){let o=Sn(n),f=hn(n);if(!f)return o;if(f.slash.toLowerCase()==="team"){let w=o.toLowerCase().startsWith("spawn a team of agents for the following task:")?o.slice(46).trim():o;return w?`/team ${w}`:"/team"}return o?`/${f.slash} ${o}`:`/${f.slash}`}function On(n,o){if(!n?.trim())return"";if(!o)return n;let f=new RegExp(`<${o}\\b[^>]*>([\\s\\S]*?)</${o}>`,"g");return n.replace(f,"$1")}function Y(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}function mn(n,o){let f=n[n.length-1];if(o.role==="tool"&&f?.role==="tool"&&Array.isArray(f.content)&&Array.isArray(o.content)){f.content.push(...o.content);return}n.push(o)}function Df(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((o)=>{if(!o||typeof o!=="object")return!1;let f=o;if(f.type==="text")return typeof f.text==="string";if(f.type==="image")return typeof f.data==="string"&&typeof f.mediaType==="string";return!1})}function rn(n,o){if(n==null||typeof n!=="object")return n;if(Array.isArray(n)){let w=[];for(let y of n){if(y&&typeof y==="object"){let E=y;if(E.type==="image"&&typeof E.data==="string"&&typeof E.mediaType==="string"){o.push({type:"image",data:E.data,mediaType:E.mediaType});continue}if(E.type==="text"&&typeof E.text==="string"){w.push(E.text);continue}}w.push(rn(y,o))}return w}let f=n,l={};for(let[w,y]of Object.entries(f))l[w]=rn(y,o);return l}function i(n){if(typeof n==="string")return Y(n);if(Array.isArray(n))return n.map((o)=>i(o));if(n!==null&&typeof n==="object"){let o=n,f={};for(let[l,w]of Object.entries(o))f[l]=i(w);return f}return n}function un(n,o=!1){if(typeof n==="string")return{type:o?"error-text":"text",value:Y(n)};if(!o&&Df(n))return{type:"content",value:n.map((f)=>f.type==="image"?{type:"image-data",data:f.data,mediaType:f.mediaType}:{type:"text",text:Y(f.text)})};if(!o&&n!==null&&typeof n==="object"){let f=[],l=rn(n,f);if(f.length>0)return{type:"content",value:[{type:"text",text:typeof l==="string"?Y(l):JSON.stringify(i(l))},...f.map((y)=>({type:"image-data",data:y.data,mediaType:y.mediaType}))]}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:o?"error-json":"json",value:i(n)};return{type:o?"error-text":"text",value:Y(String(n))}}function Gf(n,o,f){let l=f?.assistantToolCallArgKey??"input",w=[];if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)w.push({role:"system",content:typeof n==="string"?Y(n):n});for(let y of o){let E=y.content;if(typeof E==="string"){w.push({role:y.role,content:Y(E)});continue}let b=[],U=[];for(let c of E)switch(c.type){case"text":b.push({type:"text",text:Y(c.text),...c.providerOptions?{providerOptions:c.providerOptions}:{}});break;case"reasoning":b.push({type:"reasoning",text:Y(c.text),...c.providerOptions?{providerOptions:c.providerOptions}:{}});break;case"image":b.push({type:"image",image:c.image,mediaType:c.mediaType});break;case"file":b.push({type:"text",text:fn(c.path,Y(c.content))});break;case"tool-call":if(y.role==="assistant")b.push({type:"tool-call",toolCallId:c.toolCallId,toolName:c.toolName,[l]:c.input,...c.providerOptions?{providerOptions:c.providerOptions}:{}});break;case"tool-result":U.push({type:"tool-result",toolCallId:c.toolCallId,toolName:c.toolName,output:un(c.output,c.isError??!1)});break}if(b.length>0)mn(w,{role:y.role,content:b});if(U.length>0)mn(w,{role:"tool",content:U})}return w}var h={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},Xf=void 0;function Zf(n,o){if(typeof n==="string"&&n.toLowerCase()in h)return n.toLowerCase();return o?void 0:void 0}function tn(n,o){let f=typeof n==="string"?n.toLowerCase():void 0;if(f&&f in h)return h[f];if(o?.fallbackEffort)return h[o.fallbackEffort];return}function Bf(n){let o=tn(n.effort,{fallbackEffort:n.fallbackEffort});if(o===void 0)return;if(o<=0)return 0;let f=n.minimumBudget??1;if(n.maxBudget<f)return;let l=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(l*o),f),n.maxBudget)}var Jf={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","X-IS-MULTIROOT":"false","X-CLIENT-TYPE":"cline-sdk"};function Qf(n){return n instanceof Error?{name:n.name,message:n.message}:n}function Tf(n){return Math.max(1,Math.ceil(n/3))}var Vf={debug:()=>{},log:()=>{},error:()=>{}};class B extends Error{constructor(n,o){super(`${n} at position ${o}`);this.position=o}}function en(n){return/^[0-9A-Fa-f]$/.test(n)}function Q(n){return n>="0"&&n<="9"}function xn(n){return n>=" "}function S(n){return`,:[]/{}()
|
|
4
|
+
+`.includes(n)}function gn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"}function dn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"||n>="0"&&n<="9"}var ln=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,wn=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function sn(n){return`,[]/{}
|
|
5
|
+
+`.includes(n)}function yn(n){return O(n)||Wf.test(n)}var Wf=/^[[{\w-]$/;function pn(n){return n===`
|
|
6
|
+
`||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function J(n,o){let f=n.charCodeAt(o);return f===32||f===10||f===9||f===13}function vn(n,o){let f=n.charCodeAt(o);return f===32||f===9||f===13}function an(n,o){let f=n.charCodeAt(o);return f===160||f===6158||f>=8192&&f<=8203||f===8239||f===8287||f===12288||f===65279}function O(n){return $n(n)||x(n)}function $n(n){return n==='"'||n==="“"||n==="”"}function En(n){return n==='"'}function x(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function _n(n){return n==="'"}function K(n,o){let f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,l=n.lastIndexOf(o);return l!==-1?n.substring(0,l)+(f?"":n.substring(l+1)):n}function L(n,o){let f=n.length;if(!J(n,f-1))return n+o;while(J(n,f-1))f--;return n.substring(0,f)+o+n.substring(f)}function zn(n,o,f){return n.substring(0,o)+n.substring(o+f)}function no(n){return/[,\n][ \t\r]*$/.test(n)}var jf={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},Mf={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
7
|
+
`,r:"\r",t:"\t"};function Rn(n){let o=0,f="";if(c(["```","[```","{```"]),!y())eo();c(["```","```]","```}"]);let w=W(",");if(w)E();if(yn(n[o])&&no(f)){if(!w)f=L(f,",");So()}else if(w)f=K(f,",");while(n[o]==="}"||n[o]==="]")o++,E();if(o>=n.length)return f;to();function y(){E();let $=No()||ho()||j()||q()||Oo()||Ln(!1)||mo();return E(),$}function E(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,R=o,k=b($);do if(k=U(),k)k=b($);while(k);return o>R}function b($){let R=$?J:vn,k="";while(!0)if(R(n,o))k+=n[o],o++;else if(an(n,o))k+=" ",o++;else break;if(k.length>0)return f+=k,!0;return!1}function U(){if(n[o]==="/"&&n[o+1]==="*"){while(o<n.length&&!Kf(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 c($){if(m($)){if(gn(n[o]))while(o<n.length&&dn(n[o]))o++;return E(),!0}return!1}function m($){b(!0);for(let R of $){let k=o+R.length;if(n.slice(o,k)===R)return o=k,!0}return!1}function W($){if(n[o]===$)return f+=n[o],o++,!0;return!1}function X($){if(n[o]===$)return o++,!0;return!1}function Co(){return X("\\")}function Pn(){if(E(),n[o]==="."&&n[o+1]==="."&&n[o+2]===".")return o+=3,E(),X(","),!0;return!1}function No(){if(n[o]==="{"){if(f+="{",o++,E(),X(","))E();let $=!0;while(o<n.length&&n[o]!=="}"){let R;if(!$){if(R=W(","),!R)f=L(f,",");E()}else R=!0,$=!1;if(Pn(),!(j()||Ln(!0))){if(n[o]==="}"||n[o]==="{"||n[o]==="]"||n[o]==="["||n[o]===void 0)f=K(f,",");else io();break}E();let t=W(":"),T=o>=n.length;if(!t)if(yn(n[o])||T)f=L(f,":");else An();if(!y())if(t||T)f+="null";else An()}if(n[o]==="}")f+="}",o++;else f=L(f,"}");return!0}return!1}function ho(){if(n[o]==="["){if(f+="[",o++,E(),X(","))E();let $=!0;while(o<n.length&&n[o]!=="]"){if(!$){if(!W(","))f=L(f,",")}else $=!1;if(Pn(),!y()){f=K(f,",");break}}if(n[o]==="]")f+="]",o++;else f=L(f,"]");return!0}return!1}function So(){let $=!0,R=!0;while(R){if(!$){if(!W(","))f=L(f,",")}else $=!1;R=y()}if(!R)f=K(f,",");f=`[
|
|
9
|
+
${f}
|
|
10
|
+
]`}function j(){let $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,k=n[o]==="\\";if(k)o++,k=!0;if(O(n[o])){let t=En(n[o])?En:_n(n[o])?_n:x(n[o])?x:$n,T=o,N=f.length,I='"';o++;while(!0){if(o>=n.length){let P=Yn(o-1);if(!$&&S(n.charAt(P)))return o=T,f=f.substring(0,N),j(!0);return I=L(I,'"'),f+=I,!0}if(o===R)return I=L(I,'"'),f+=I,!0;if(t(n[o])){let P=o,z=I.length;if(I+='"',o++,f+=I,E(!1),$||o>=n.length||S(n[o])||O(n[o])||Q(n[o]))return Un(),!0;let Z=Yn(P-1),Dn=n.charAt(Z);if(Dn===",")return o=T,f=f.substring(0,N),j(!1,Z);if(S(Dn))return o=T,f=f.substring(0,N),j(!0);f=f.substring(0,N),o=P+1,I=`${I.substring(0,z)}\\${I.substring(z)}`}else if($&&sn(n[o])){if(n[o-1]===":"&&ln.test(n.substring(T+1,o+2)))while(o<n.length&&wn.test(n[o]))I+=n[o],o++;return I=L(I,'"'),f+=I,Un(),!0}else if(n[o]==="\\"){let P=n.charAt(o+1);if(Mf[P]!==void 0)I+=n.slice(o,o+2),o+=2;else if(P==="u"){let Z=2;while(Z<6&&en(n[o+Z]))Z++;if(Z===6)I+=n.slice(o,o+6),o+=6;else if(o+Z>=n.length)o=n.length;else xo()}else if(P===`
|
|
11
|
+
`)I+="\\n",o+=2;else I+=P,o+=2}else{let P=n.charAt(o);if(P==='"'&&n[o-1]!=="\\")I+=`\\${P}`,o++;else if(pn(P))I+=jf[P],o++;else{if(!xn(P))uo(P);I+=P,o++}}if(k)Co()}}return!1}function Un(){let $=!1;E();while(n[o]==="+"){$=!0,o++,E(),f=K(f,'"',!0);let R=f.length;if(j())f=zn(f,R,1);else f=L(f,'"')}return $}function q(){let $=o;if(n[o]==="-"){if(o++,u())return a($),!0;if(!Q(n[o]))return o=$,!1}while(Q(n[o]))o++;if(n[o]==="."){if(o++,u())return a($),!0;if(!Q(n[o]))return o=$,!1;while(Q(n[o]))o++}if(n[o]==="e"||n[o]==="E"){if(o++,n[o]==="-"||n[o]==="+")o++;if(u())return a($),!0;if(!Q(n[o]))return o=$,!1;while(Q(n[o]))o++}if(!u())return o=$,!1;if(o>$){let R=n.slice($,o),k=/^0\d/.test(R);return f+=k?`"${R}"`:R,!0}return!1}function Oo(){return M("true","true")||M("false","false")||M("null","null")||M("True","true")||M("False","false")||M("None","null")}function M($,R){if(n.slice(o,o+$.length)===$)return f+=R,o+=$.length,!0;return!1}function Ln($){let R=o;if(gn(n[o])){while(o<n.length&&dn(n[o]))o++;let k=o;while(J(n,k))k++;if(n[k]==="("){if(o=k+1,y(),n[o]===")"){if(o++,n[o]===";")o++}return!0}}while(o<n.length&&!sn(n[o])&&!O(n[o])&&(!$||n[o]!==":"))o++;if(n[o-1]===":"&&ln.test(n.substring(R,o+2)))while(o<n.length&&wn.test(n[o]))o++;if(o>R){while(J(n,o-1)&&o>0)o--;let k=n.slice(R,o);if(f+=k==="undefined"?"null":JSON.stringify(k),n[o]==='"')o++;return!0}}function mo(){if(n[o]==="/"){let $=o;o++;while(o<n.length&&(n[o]!=="/"||n[o-1]==="\\"))o++;return o++,f+=JSON.stringify(n.substring($,o)),!0}}function Yn($){let R=$;while(R>0&&J(n,R))R--;return R}function u(){return o>=n.length||S(n[o])||J(n,o)}function a($){f+=`${n.slice($,o)}0`}function uo($){throw new B(`Invalid character ${JSON.stringify($)}`,o)}function to(){throw new B(`Unexpected character ${JSON.stringify(n[o])}`,o)}function eo(){throw new B("Unexpected end of json string",n.length)}function io(){throw new B("Object key expected",o)}function An(){throw new B("Colon expected",o)}function xo(){let $=n.slice(o,o+6);throw new B(`Invalid unicode character "${$}"`,o)}}function Kf(n,o){return n[o]==="*"&&n[o+1]==="/"}var Cf=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function Nf(n){let o=n.match(Cf);if(!o)return;let[,f,l]=o,w=l.trim();if(!w)return;let y=w[0];if(y==='"'||y==="{"||y==="["||w==="true"||w==="false"||w==="null"||Number.isFinite(Number(w)))return;return JSON.parse(`{"${f}":${JSON.stringify(w)}}`)}var hf=[(n)=>JSON.parse(n),(n)=>JSON.parse(Rn(n)),Nf];function Sf(n){if(typeof n!=="string")return n;let o=n.trimStart();if(o[0]!=="{"&&o[0]!=="[")return n;for(let f of hf)try{let l=f(o);if(l!==void 0)return l}catch{}return n}function Of(n){let o=new WeakSet;try{return JSON.stringify(n,(l,w)=>{if(typeof w==="bigint")return w.toString();if(w&&typeof w==="object"){if(o.has(w))return"[Circular]";o.add(w)}return w})??"null"}catch{return String(n)}}function mf(n){try{return JSON.parse(n)}catch{return}}function uf(n){let o=n.replaceAll("\\","/"),f=o.lastIndexOf("/");return(f>=0?o.slice(f+1):o).toLowerCase()}function tf(n){return n==="win32"?"powershell":"/bin/bash"}function ef(n,o){let f=uf(n);if(f==="powershell"||f==="powershell.exe"||f==="pwsh"||f==="pwsh.exe")return["-NoProfile","-NonInteractive","-Command",o];if(f==="cmd"||f==="cmd.exe")return["/d","/s","/c",o];return["-c",o]}function xf(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function oo(n,o){if(n.length<=o)return n;return`${n.slice(0,o-1)}…`}function pf(n,o="/",f=100){if(!n||n.length<=f)return n||"";let l=n.split(o)?.shift()?.trim()?.slice(0,f-1);return l?`${l}…`:oo(n,f)}function vf(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function af(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 zf(n){let o=Math.max(0,Math.floor(n/1000)),f=Math.floor(o/86400),l=Math.floor(o%86400/3600),w=Math.floor(o%3600/60),y=o%60;if(f>0)return`${f}d ${l}h`;if(l>0)return`${l}h ${w}m`;if(w>0)return`${w}m ${y}s`;return`${y}s`}import{z as fo}from"zod";function nr(n,o){let f=n.safeParse(o);if(!f.success)throw Error(fo.prettifyError(f.error));return f.data}function cn(n){return fo.toJSONSchema(n)}var ro=`You are Cline, an AI coding agent. Your primary goal is to assist users with various coding tasks by leveraging your knowledge and the tools at your disposal. Given the user's prompt, you should use the tools available to you to answer user's question.
|
|
12
12
|
|
|
13
13
|
Always gather all the necessary context before starting to work on a task. For example, if you are generating a unit test or new code, make sure you understand the requirement, the naming conventions, frameworks and libraries used and aligned in the current codebase, and the environment and commands used to run and test the code etc. Always validate the new unit test at the end including running the code if possible for live feedback.
|
|
14
14
|
Review each question carefully and answer it with detailed, accurate information.
|
|
@@ -41,7 +41,7 @@ When you have completed the task, please provide a summary of what you did and a
|
|
|
41
41
|
|
|
42
42
|
If user asked a simple question without any coding context, answer it directly without using any tools.
|
|
43
43
|
{{CLINE_RULES}}
|
|
44
|
-
{{CLINE_METADATA}}`,
|
|
44
|
+
{{CLINE_METADATA}}`,go=`You are Cline, a careful and helpful coding agent that works in the background.
|
|
45
45
|
You are tasked to solve an issue reported by the user who you cannot communicate with directly.
|
|
46
46
|
Your goal is to utilize the tools at your disposal to investigate and answer the question according to user's instructions with the aim to verify that the issue is resolved.
|
|
47
47
|
|
|
@@ -69,8 +69,8 @@ Do not consider the task complete until tests pass.
|
|
|
69
69
|
Always includes tool calls in your response until the task is completed. You should only end the task when all the requirements are met by calling the 'submit_and_exit' tool.
|
|
70
70
|
Response without the submit_and_exit tool call will considered not completed and the task will continue.
|
|
71
71
|
{{CLINE_RULES}}
|
|
72
|
-
{{CLINE_METADATA}}`;var
|
|
73
|
-
${
|
|
74
|
-
${
|
|
72
|
+
{{CLINE_METADATA}}`;var kn="# Workspace Configuration";function lo(n,o,f){if(f?.trim()?.includes(kn))return f.trim();let l=f||JSON.stringify({workspaces:{[n]:{hint:o||n.split("/").at(-1)||n}}},null,2);return`
|
|
73
|
+
${kn}
|
|
74
|
+
${l}`}function or(n){let{ide:o="Terminal Shell",mode:f,platform:l="unknown",workspaceName:w,metadata:y,rules:E,overridePrompt:b,providerId:U}=n,c=n.workspaceRoot??n.rootPath??"",m=U==="cline";if(b?.trim()){let X=b.trim();if(m&&y?.trim()&&!X.includes(kn))return`${X}
|
|
75
75
|
|
|
76
|
-
${go(b,s,y)}`.trim();return Y}return(r==="yolo"?fo:ro).replace("{{PLATFORM_NAME}}",d).replace("{{CWD}}",b).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",C?go(b,s,y):"").replace("{{CLINE_RULES}}",$||"").trim()}var zr="remote://";import{z as g}from"zod";var lo=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()}),so=g.object({models:g.array(lo).optional(),openAiBaseUrl:g.string().optional(),openAiHeaders:g.record(g.string(),g.string()).optional(),azureApiVersion:g.string().optional(),azureIdentity:g.boolean().optional()}),eo=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional()}),wo=g.object({name:g.string(),baseModelId:g.string(),thinkingBudgetTokens:g.number().optional()}),yo=g.object({models:g.array(eo).optional(),customModels:g.array(wo).optional(),awsRegion:g.string().optional(),awsUseCrossRegionInference:g.boolean().optional(),awsUseGlobalInference:g.boolean().optional(),awsBedrockUsePromptCache:g.boolean().optional(),awsBedrockEndpoint:g.string().optional()}),$o=g.object({id:g.string()}),Eo=g.object({models:g.array($o).optional()}),co=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional()}),uo=g.object({models:g.array(co).optional(),vertexProjectId:g.string().optional(),vertexRegion:g.string().optional()}),_o=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional(),promptCachingEnabled:g.boolean().optional()}),bo=g.object({models:g.array(_o).optional(),baseUrl:g.string().optional()}),Ro=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional()}),ko=g.object({models:g.array(Ro).optional(),baseUrl:g.string().optional()}),nf=g.object({OpenAiCompatible:so.optional(),AwsBedrock:yo.optional(),Cline:Eo.optional(),Vertex:uo.optional(),LiteLLM:bo.optional(),Anthropic:ko.optional()}),Ho=g.object({id:g.string()}),Fo=g.object({name:g.string(),url:g.string(),alwaysEnabled:g.boolean().optional(),headers:g.record(g.string(),g.string()).optional()}),_n=g.object({alwaysEnabled:g.boolean(),name:g.string(),contents:g.string()}),h=g.object({bucket:g.string(),accessKeyId:g.string(),secretAccessKey:g.string(),region:g.string().optional(),endpoint:g.string().optional(),accountId:g.string().optional()}),qo=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:h.optional(),r2AccessSettings:h.optional(),azureAccessSettings:h.optional()}),Io=g.object({promptUploading:qo.optional()}),of=g.object({version:g.string(),providerSettings:nf.optional(),telemetryEnabled:g.boolean().optional(),kanbanEnabled:g.boolean().optional(),mcpMarketplaceEnabled:g.boolean().optional(),allowedMCPServers:g.array(Ho).optional(),remoteMCPServers:g.array(Fo).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:Io.optional(),globalRules:g.array(_n).optional(),globalWorkflows:g.array(_n).optional()}),rf=g.record(g.string(),g.string());var ff=4317;var gf="127.0.0.1:4317";import bn from"zod";var lf=bn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth"]),df=bn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),sf=bn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var ef="runtime.team.progress.v1",wf="runtime.team.lifecycle.v1";function Lo(n){let o={};if(!n)return o;try{n.split(",").forEach((r)=>{let d=r.indexOf("=");if(d<=0)return;let s=decodeURIComponent(r.substring(0,d).trim()),y=decodeURIComponent(r.substring(d+1).trim());if(!s||!y)return;o[s]=y})}catch{}return o}function yf(){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?Lo(process?.env?.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function Po(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 $f(n={}){return{...yf(),...n,metadata:Po(n.metadata)}}function Uo(n){let o=n?.trim();return o?o:void 0}function Ef(n,o){if(!n)return;let r=typeof n==="function"?n(o):n;if(!r)return;let d=Uo(r.rootSessionId);if(!d)return;return{rootSessionId:d}}function cf(n){return Uo(n?.rootSessionId)}var uf=(n)=>crypto.getRandomValues(new Uint8Array(n)),_f=(n,o,r)=>{let d=256-256%n.length;if(d===256){let y=n.length-1;return($=o)=>{if(!$)return"";let _="";while(!0){let I=r($),b=$;while(b--)if(_+=n[I[b]&y],_.length>=$)return _}}}let s=Math.ceil(409.6*o/d);return(y=o)=>{if(!y)return"";let $="";while(!0){let _=r(s),I=s;while(I--)if(_[I]<d){if($+=n[_[I]%n.length],$.length>=y)return $}}}},Do=(n,o=21)=>_f(n,o|0,uf);function bf(n="",o=""){let r=Do("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${r(5)}${o}`}var Rf=["running","completed","failed","cancelled"];var Rn=["rules","skills","workflows","plugins"],Yo=Rn,kf=new Set(Rn);function to(n){return typeof n==="string"&&kf.has(n)}function Hf(n){if(!Array.isArray(n))return;let o=n.map((r)=>typeof r==="string"?r.trim():"").filter(to);return[...new Set(o)]}function Ff(n,o){return new Set(n??Yo).has(o)}import{z as P}from"zod";var qf=P.object({rootPath:P.string().min(1),hint:P.string().min(1).optional(),associatedRemoteUrls:P.array(P.string().min(1)).optional(),latestGitCommitHash:P.string().min(1).optional(),latestGitBranchName:P.string().min(1).optional()}),If=P.object({currentWorkspacePath:P.string().min(1).optional(),workspaces:P.record(P.string().min(1),qf)});function zg(){return{workspaces:{}}}function nl(n,o){let r={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!r.currentWorkspacePath)r.currentWorkspacePath=o.rootPath;return If.parse(r)}import{z as f}from"zod";var Lf=["current_state","boundary_analysis","interface_proposal"],fl=3600000,gl=240,ll=400,U=f.preprocess((n)=>n instanceof Date?n.toISOString():n,f.string().datetime()),j=f.enum(["pending","in_progress","blocked","completed"]),Ao=f.enum(["queued","running","completed","failed","cancelled","interrupted"]),v=f.enum(["draft","in_review","finalized"]),Pf=f.object({agentId:f.string(),role:f.enum(["lead","teammate"]),description:f.string().optional(),status:f.enum(["idle","running","stopped"])}),dl=f.object({agentId:f.string(),rolePrompt:f.string(),modelId:f.string().optional(),maxIterations:f.number().optional()});function k(n){return f.preprocess((o)=>o===null?void 0:o,n.optional())}var sl=f.object({agentId:f.string().min(1).describe("Teammate identifier"),rolePrompt:f.string().min(1).describe("System prompt describing teammate role")}).strict(),el=f.object({agentId:f.string().min(1).describe("Teammate identifier"),reason:k(f.string().min(1)).describe("Optional shutdown reason")}),wl=f.object({}),Uf={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},yl={create:["status","taskId","summary","reason"]},$l=f.object({action:f.enum(["create","list","claim","complete","block"]),title:k(f.string().min(1)).describe("Task title"),description:k(f.string().min(1)).describe("Task details"),dependsOn:k(f.array(f.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:k(f.string().min(1)).describe("Optional assignee"),status:k(f.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:k(f.string()).describe("Task ID"),summary:k(f.string().min(1)).describe("Completion summary"),reason:k(f.string().min(1)).describe("Blocking reason")}).superRefine((n,o)=>{for(let r of Uf[n.action]){if(n[r]!==void 0)continue;o.addIssue({code:"custom",path:[r],message:`Field "${r}" is required when action=${n.action}`})}}),El=f.object({agentId:f.string().describe("Teammate agent ID"),task:f.string().min(1).describe("Task instructions for the teammate"),taskId:k(f.string()).describe("Optional shared task list ID"),runMode:k(f.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:k(f.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),cl=f.object({status:k(f.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:k(f.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:k(f.boolean()).describe("Include completed/failed runs (default true)")}),ul=f.object({runId:f.string().min(1).describe("Run ID"),reason:k(f.string().min(1)).describe("Optional cancellation reason")}),_l=f.object({runId:k(f.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),bl=f.object({toAgentId:f.string().min(1).describe("Recipient agent ID"),subject:f.string().min(1).describe("Message subject"),body:f.string().min(1).describe("Message body"),taskId:k(f.string().min(1)).describe("Optional task ID context")}),Rl=f.object({subject:f.string().min(1).describe("Message subject"),body:f.string().min(1).describe("Message body"),taskId:k(f.string().min(1)).describe("Optional task ID context")}),kl=f.object({unreadOnly:k(f.boolean()).describe("Only unread messages for read action (default true)")}),Hl=f.object({kind:f.enum(["progress","handoff","blocked","decision","done","error"]),summary:f.string().min(1).describe("Update summary"),taskId:k(f.string().min(1)).describe("Optional task ID context"),evidence:k(f.array(f.string().min(1))).describe("Optional evidence links/snippets"),nextAction:k(f.string().min(1)).describe("Planned next step")}),Fl=f.object({}),ql=f.object({title:f.string().describe("Outcome title"),requiredSections:f.array(f.string()).default(Lf).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),Il=f.object({outcomeId:f.string().describe("Outcome ID"),section:f.string().describe("Section name"),sourceRunId:k(f.string()).describe("Optional source run ID"),content:f.string().describe("Section fragment content")}),Ll=f.object({fragmentId:f.string().describe("Fragment ID"),approved:f.boolean().describe("Review decision")}),Pl=f.object({outcomeId:f.string().describe("Outcome ID")}),Ul=f.object({}),Dl=f.object({teamId:f.string(),teamName:f.string(),members:f.array(Pf),taskCounts:f.record(j,f.number()),unreadMessages:f.number(),missionLogEntries:f.number(),activeRuns:f.number(),queuedRuns:f.number(),outcomeCounts:f.record(v,f.number())}),Df=f.object({id:f.string(),title:f.string(),description:f.string(),status:j,createdAt:U,updatedAt:U,createdBy:f.string(),assignee:f.string().optional(),dependsOn:f.array(f.string()),summary:f.string().optional(),isReady:f.boolean(),blockedBy:f.array(f.string())}),Yl=f.discriminatedUnion("action",[f.object({action:f.literal("create"),taskId:f.string(),status:j,ignoredFields:f.array(f.string()).optional(),note:f.string().optional()}),f.object({action:f.literal("list"),tasks:f.array(Df)}),f.object({action:f.literal("claim"),taskId:f.string(),status:j,nextStep:f.string()}),f.object({action:f.literal("complete"),taskId:f.string(),status:j}),f.object({action:f.literal("block"),taskId:f.string(),status:j})]),tl=f.object({agentId:f.string(),mode:f.enum(["sync","async"]),status:f.enum(["dispatched","running","queued","joined"]),dispatched:f.boolean(),message:f.string(),deduped:f.boolean().optional(),runId:f.string().optional(),text:f.string().optional(),iterations:f.number().optional()}),Yf=f.object({textPreview:f.string(),iterations:f.number(),finishReason:f.string(),durationMs:f.number(),usage:f.object({inputTokens:f.number(),outputTokens:f.number(),cacheReadTokens:f.number().optional(),cacheWriteTokens:f.number().optional(),totalCost:f.number().optional()})}),Al=f.object({id:f.string(),agentId:f.string(),taskId:f.string().optional(),status:Ao,messagePreview:f.string(),priority:f.number(),retryCount:f.number(),maxRetries:f.number(),nextAttemptAt:U.optional(),continueConversation:f.boolean().optional(),startedAt:U,endedAt:U.optional(),leaseOwner:f.string().optional(),heartbeatAt:U.optional(),lastProgressAt:U.optional(),lastProgressMessage:f.string().optional(),currentActivity:f.string().optional(),error:f.string().optional(),resultSummary:Yf.optional()}),Gl=f.object({id:f.string(),teamId:f.string(),fromAgentId:f.string(),toAgentId:f.string(),subject:f.string(),body:f.string(),taskId:f.string().optional(),sentAt:U,readAt:U.optional()}),Xl=f.object({id:f.string(),teamId:f.string(),title:f.string(),status:v,requiredSections:f.array(f.string()),createdBy:f.string(),createdAt:U,finalizedAt:U.optional()}),Zl=f.object({outcomeId:f.string(),status:v,requiredSections:f.array(f.string())}),Vl=f.object({agentId:f.string(),status:f.string()}),Bl=f.object({runId:f.string(),status:Ao}),Jl=f.object({id:f.string(),toAgentId:f.string()}),Ql=f.object({delivered:f.number()}),Tl=f.object({id:f.string()}),jl=f.object({status:f.string()}),Wl=f.object({fragmentId:f.string(),status:f.string()}),Ml=f.object({outcomeId:f.string(),status:v});var tf;((F)=>{F.TaskStart="task_start";F.TaskEnd="task_end";F.AgentEvent="agent_event";F.TeammateSpawned="teammate_spawned";F.TeammateShutdown="teammate_shutdown";F.TeamTaskUpdated="team_task_updated";F.TeamMessage="team_message";F.TeamMissionLog="team_mission_log";F.TeamTaskCompleted="team_task_completed";F.RunStarted="run_started";F.RunQueued="run_queued";F.RunProgress="run_progress";F.RunCompleted="run_completed";F.RunFailed="run_failed";F.RunCancelled="run_cancelled";F.RunInterrupted="run_interrupted";F.OutcomeCreated="outcome_created";F.OutcomeFragmentAttached="outcome_fragment_attached";F.OutcomeFragmentReviewed="outcome_fragment_reviewed";F.OutcomeFinalized="outcome_finalized"})(tf||={});import{z as Af}from"zod";function Gf(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 d of["oneOf","anyOf","allOf"]){let s=r[d];if(!Array.isArray(s)||s.length===0)continue;if(d==="allOf"){if(s.some((_)=>_&&typeof _==="object"&&_.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(s.every(($)=>$&&typeof $==="object"&&$.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 "${d}" 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 Xf(n){let o=Gf(n.inputSchema instanceof Af.ZodType?cn(n.inputSchema):n.inputSchema);return{name:n.name,description:n.description,inputSchema:o,lifecycle:n.lifecycle,timeoutMs:n.timeoutMs??30000,retryable:n.retryable??!0,maxRetries:n.maxRetries??3,execute:n.execute}}var Go=["cline","oca","openai-codex"];function Xo(n){return Go.includes(n)}var Zo=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function Zf(n,o){if(!Xo(o))return!1;let r=n instanceof Error?n.message.toLowerCase():String(n);return Zo.some((d)=>r.includes(d))}export{cn as zodToJsonSchema,Mn as xmlTagsRemoval,ar as validateWithZod,nl as upsertWorkspaceInfo,no as truncateStr,Or as truncateSplit,Kn as toAiSdkToolResultOutput,Dr as serializeAbortReason,mr as sanitizeFileName,Sr as safeJsonStringify,Kr as safeJsonParse,cf as resolveRootSessionId,Cn as resolveReasoningEffortRatio,Pr as resolveReasoningBudgetFromRatio,ng as resolveHubCommandTimeoutMs,Ef as resolveHookSessionContext,Lr as resolveEffectiveReasoningEffort,mn as resolveClineEnvironment,jn as parseUserCommandEnvelope,Hf as parseRuntimeConfigExtensions,Mr as parseJsonStream,$r as parseHookEventPayload,Wn as normalizeUserInput,Jn as normalizePluginManifest,Yr as noopBasicLogger,hr as maskSecret,to as isRuntimeConfigExtensionKind,Xo as isOAuthProviderId,Zf as isLikelyAuthError,og as isHubToolExecutorName,Ff as hasRuntimeConfigExtension,Nr as getShellArgs,ir as getDefaultShell,Er as getDefaultHubCommandTimeoutMs,Zr as getClineEnvironmentConfig,_r as formatUserInputBlock,br as formatUserCommandBlock,pr as formatUptime,qr as formatMessagesForAiSdk,vr as formatHumanReadableDate,nn as formatFileContentBlock,Hr as formatDisplayUserInput,zg as emptyWorkspaceManifest,Xf as createTool,bf as createSessionId,or as createContributionRegistry,Po as createClineTelemetryServiceMetadata,$f as createClineTelemetryServiceConfig,xr as buildClineSystemPrompt,If as WorkspaceManifestSchema,qf as WorkspaceInfoSchema,uo as VertexSettingsSchema,co as VertexModelSchema,x as ToolCallRecordSchema,tn as ThinkingConfigSchema,dl as TeamTeammateSpecSchema,Yl as TeamTaskToolResultSchema,Df as TeamTaskListItemToolResultSchema,$l as TeamTaskInputSchema,Dl as TeamStatusToolResultSchema,wl as TeamStatusInputSchema,sl as TeamSpawnTeammateInputSchema,Vl as TeamSimpleAgentStatusToolResultSchema,el as TeamShutdownTeammateInputSchema,Jl as TeamSendMessageToolResultSchema,bl as TeamSendMessageInputSchema,Al as TeamRunToolSummarySchema,tl as TeamRunTaskToolResultSchema,El as TeamRunTaskInputSchema,Yf as TeamRunResultSummarySchema,Ll as TeamReviewOutcomeFragmentInputSchema,kl as TeamReadMailboxInputSchema,Xl as TeamOutcomeToolResultSchema,Wl as TeamOutcomeFragmentToolResultSchema,Tl as TeamMissionLogToolResultSchema,Hl as TeamMissionLogInputSchema,tf as TeamMessageType,Gl as TeamMailboxMessageToolResultSchema,cl as TeamListRunsInputSchema,Ul as TeamListOutcomesInputSchema,Ml as TeamFinalizeOutcomeToolResultSchema,Pl as TeamFinalizeOutcomeInputSchema,Zl as TeamCreateOutcomeToolResultSchema,ql as TeamCreateOutcomeInputSchema,jl as TeamCleanupToolResultSchema,Fl as TeamCleanupInputSchema,Bl as TeamCancelRunToolResultSchema,ul as TeamCancelRunInputSchema,Ql as TeamBroadcastToolResultSchema,Rl as TeamBroadcastInputSchema,_l as TeamAwaitRunsInputSchema,Il as TeamAttachOutcomeFragmentInputSchema,yl as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,ll as TEAM_RUN_TEXT_PREVIEW_LIMIT,gl as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,ef as TEAM_PROGRESS_EVENT_TYPE,wf as TEAM_LIFECYCLE_EVENT_TYPE,fl as TEAM_AWAIT_TIMEOUT_MS,Rf as SESSION_STATUS_VALUES,h as S3AccessKeySettingsSchema,Fo as RemoteMCPServerSchema,of as RemoteConfigSchema,Oo as ReasoningEffortSchema,Rn as RUNTIME_CONFIG_EXTENSION_KINDS,zr as REMOTE_URI_SCHEME,M as REASONING_EFFORT_RATIOS,df as ProviderProtocolSchema,sf as ProviderClientSchema,lf as ProviderCapabilitySchema,qo as PromptUploadingSchema,rr as PLUGIN_FILE_EXTENSIONS,so as OpenAiCompatibleSchema,lo as OpenAiCompatibleModelSchema,Go as OAUTH_PROVIDER_IDS,Dn as ModelStatusSchema,Yn as ModelPricingSchema,m as ModelInfoSchema,Un as ModelCapabilitySchema,bo as LiteLLMSchema,_o as LiteLLMModelSchema,Tn as HookEventPayloadSchema,Qn as HookEventNameSchema,eg as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,cr as HUB_TOOL_EXECUTOR_NAMES,rg as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,sg as HUB_MISTAKE_LIMIT_CAPABILITY,gg as HUB_HOOK_CAPABILITY_PREFIX,xf as HUB_DEFAULT_COMMAND_TIMEOUT_MS,fg as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,lg as HUB_COMPACTION_CAPABILITY,zf as HUB_COMMAND_SLOW_LOG_MS,dg as HUB_CHECKPOINT_CAPABILITY,_n as GlobalInstructionsFileSchema,Io as EnterpriseTelemetrySchema,Yo as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,Ur as DEFAULT_REQUEST_HEADERS,Ir as DEFAULT_REASONING_EFFORT,Lf as DEFAULT_OUTCOME_REQUIRED_SECTIONS,Gr as DEFAULT_CLINE_ENVIRONMENT,z as ContributionRegistry,po as ConnectorHookEventSchema,An as ConnectorHookEventNameSchema,Xn as ConnectorEventContextSchema,Gn as ConnectorEventActorSchema,ho as ConnectorAuthorizationRequestSchema,vo as ConnectorAuthorizationDecisionSchema,Eo as ClineSettingsSchema,$o as ClineModelSchema,Ar as CLINE_ENVIRONMENT_OVERRIDE_ENV,tr as CLINE_ENVIRONMENT_ENV,rn as CLINE_ENVIRONMENTS,ff as CLINE_DEFAULT_RPC_PORT,gf as CLINE_DEFAULT_RPC_ADDRESS,yo as AwsBedrockSettingsSchema,eo as AwsBedrockModelSchema,wo as AwsBedrockCustomModelSchema,Pn as ApiFormatSchema,io as ApiFormat,ko as AnthropicSchema,Ro as AnthropicModelSchema,Ho as AllowedMCPServerSchema,mo as AgentUsageSchema,Mf as AgentResultSchema,No as AgentFinishReasonSchema,Sf as AgentConfigSchema,Zo as AUTH_ERROR_PATTERNS,rf as APIKeySchema};
|
|
76
|
+
${lo(c,w,y)}`.trim();return X}return(f==="yolo"?go:ro).replace("{{PLATFORM_NAME}}",l).replace("{{CWD}}",c).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",m?lo(c,w,y):"").replace("{{CLINE_RULES}}",E||"").trim()}var fr="remote://";import{z as g}from"zod";var wo=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()}),so=g.object({models:g.array(wo).optional(),openAiBaseUrl:g.string().optional(),openAiHeaders:g.record(g.string(),g.string()).optional(),azureApiVersion:g.string().optional(),azureIdentity:g.boolean().optional()}),yo=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional()}),$o=g.object({name:g.string(),baseModelId:g.string(),thinkingBudgetTokens:g.number().optional()}),Eo=g.object({models:g.array(yo).optional(),customModels:g.array($o).optional(),awsRegion:g.string().optional(),awsUseCrossRegionInference:g.boolean().optional(),awsUseGlobalInference:g.boolean().optional(),awsBedrockUsePromptCache:g.boolean().optional(),awsBedrockEndpoint:g.string().optional()}),_o=g.object({id:g.string()}),Ro=g.object({models:g.array(_o).optional()}),co=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional()}),ko=g.object({models:g.array(co).optional(),vertexProjectId:g.string().optional(),vertexRegion:g.string().optional()}),bo=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional(),promptCachingEnabled:g.boolean().optional()}),Ho=g.object({models:g.array(bo).optional(),baseUrl:g.string().optional()}),Fo=g.object({id:g.string(),thinkingBudgetTokens:g.number().optional()}),Io=g.object({models:g.array(Fo).optional(),baseUrl:g.string().optional()}),rr=g.object({OpenAiCompatible:so.optional(),AwsBedrock:Eo.optional(),Cline:Ro.optional(),Vertex:ko.optional(),LiteLLM:Ho.optional(),Anthropic:Io.optional()}),qo=g.object({id:g.string()}),Po=g.object({name:g.string(),url:g.string(),alwaysEnabled:g.boolean().optional(),headers:g.record(g.string(),g.string()).optional()}),bn=g.object({alwaysEnabled:g.boolean(),name:g.string(),contents:g.string()}),p=g.object({bucket:g.string(),accessKeyId:g.string(),secretAccessKey:g.string(),region:g.string().optional(),endpoint:g.string().optional(),accountId:g.string().optional()}),Uo=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:p.optional(),r2AccessSettings:p.optional(),azureAccessSettings:p.optional()}),Lo=g.object({promptUploading:Uo.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(qo).optional(),remoteMCPServers:g.array(Po).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:Lo.optional(),globalRules:g.array(bn).optional(),globalWorkflows:g.array(bn).optional()}),dr=g.record(g.string(),g.string());var lr=4317;var wr="127.0.0.1:4317";import Hn from"zod";var sr=Hn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),yr=Hn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),$r=Hn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var Er="runtime.team.progress.v1",_r="runtime.team.lifecycle.v1";var Rr="CLINE_ENVIRONMENT",cr="CLINE_ENVIRONMENT_OVERRIDE",Fn={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"}},kr="production";function Yo(n){let o=n?.trim().toLowerCase();if(o==="production"||o==="staging"||o==="local")return o;return}function br(){if(typeof process>"u"||!process?.env)return{};return process.env}function Ao(n={}){let o=n.env??br();return Yo(o.CLINE_ENVIRONMENT_OVERRIDE)??Yo(o.CLINE_ENVIRONMENT)??"production"}function Hr(n){if(typeof n==="string")return Fn[n];return Fn[Ao(n)]}var Fr="sdk.error";function Ir(n,o){if(!n)return;n.capture({event:o.event??"sdk.error",properties:Go(o)})}function Go(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...Xo(n.error,n.messageLimit)}}function Xo(n,o=500){let f=Ur(n)?n:void 0,l=n instanceof Error?n:void 0,w=l?.message??Do(f?.message)??(typeof n==="string"?n:String(n)),y=Lr(f?.code),E=In(f?.status)??In(f?.statusCode)??In(f?.responseStatus);return{error_type:l?.name?.trim()||Do(f?.name)||l?.constructor?.name||"Error",error_message:Pr(qr(w),o),...y!==void 0?{error_code:y}:{},...E!==void 0?{error_status:E}:{}}}function qr(n){return n.replace(/(authorization=Bearer\s+)[^&\s]+/gi,"$1[redacted]").replace(/(api[_-]?key|access[_-]?token|refresh[_-]?token|authorization|password|secret)=([^&\s]+)/gi,"$1=[redacted]").replace(/(Bearer\s+)[A-Za-z0-9._~+/-]+=*/gi,"$1[redacted]").replace(/\/Users\/[^/\s]+/g,"/Users/[redacted]").replace(/\/home\/[^/\s]+/g,"/home/[redacted]").replace(/([A-Za-z]:[\\/]+Users[\\/]+)[^\\/\s]+/g,"$1[redacted]")}function Pr(n,o){let f=Math.max(1,Math.floor(o));return n.length>f?n.substring(0,f):n}function Ur(n){return typeof n==="object"&&n!==null}function Do(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function Lr(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function In(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function Zo(n){let o={};if(!n)return o;try{n.split(",").forEach((f)=>{let l=f.indexOf("=");if(l<=0)return;let w=decodeURIComponent(f.substring(0,l).trim()),y=decodeURIComponent(f.substring(l+1).trim());if(!w||!y)return;o[w]=y})}catch{}return o}function Yr(){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?Zo(process?.env?.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function Bo(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 Ar(n={}){return{...Yr(),...n,metadata:Bo(n.metadata)}}function Jo(n){let o=n?.trim();return o?o:void 0}function Dr(n,o){if(!n)return;let f=typeof n==="function"?n(o):n;if(!f)return;let l=Jo(f.rootSessionId);if(!l)return;return{rootSessionId:l}}function Gr(n){return Jo(n?.rootSessionId)}var Xr=(n)=>crypto.getRandomValues(new Uint8Array(n)),Zr=(n,o,f)=>{let l=256-256%n.length;if(l===256){let y=n.length-1;return(E=o)=>{if(!E)return"";let b="";while(!0){let U=f(E),c=E;while(c--)if(b+=n[U[c]&y],b.length>=E)return b}}}let w=Math.ceil(409.6*o/l);return(y=o)=>{if(!y)return"";let E="";while(!0){let b=f(w),U=w;while(U--)if(b[U]<l){if(E+=n[b[U]%n.length],E.length>=y)return E}}}},Qo=(n,o=21)=>Zr(n,o|0,Xr);function Br(n="",o=""){let f=Qo("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${f(5)}${o}`}var Jr=["running","completed","failed","cancelled"];var qn=["rules","skills","workflows","plugins"],To=qn,Qr=new Set(qn);function Vo(n){return typeof n==="string"&&Qr.has(n)}function Tr(n){if(!Array.isArray(n))return;let o=n.map((f)=>typeof f==="string"?f.trim():"").filter(Vo);return[...new Set(o)]}function Vr(n,o){return new Set(n??To).has(o)}import{z as A}from"zod";var Wr=A.object({rootPath:A.string().min(1),hint:A.string().min(1).optional(),associatedRemoteUrls:A.array(A.string().min(1)).optional(),latestGitCommitHash:A.string().min(1).optional(),latestGitBranchName:A.string().min(1).optional()}),jr=A.object({currentWorkspacePath:A.string().min(1).optional(),workspaces:A.record(A.string().min(1),Wr)});function cd(){return{workspaces:{}}}function kd(n,o){let f={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!f.currentWorkspacePath)f.currentWorkspacePath=o.rootPath;return jr.parse(f)}import{z as r}from"zod";var Mr=["current_state","boundary_analysis","interface_proposal"],Fd=3600000,Id=240,qd=400,D=r.preprocess((n)=>n instanceof Date?n.toISOString():n,r.string().datetime()),C=r.enum(["pending","in_progress","blocked","completed"]),Wo=r.enum(["queued","running","completed","failed","cancelled","interrupted"]),v=r.enum(["draft","in_review","finalized"]),Kr=r.object({agentId:r.string(),role:r.enum(["lead","teammate"]),description:r.string().optional(),status:r.enum(["idle","running","stopped"])}),Pd=r.object({agentId:r.string(),rolePrompt:r.string(),modelId:r.string().optional(),maxIterations:r.number().optional()});function F(n){return r.preprocess((o)=>o===null?void 0:o,n.optional())}var Ud=r.object({agentId:r.string().min(1).describe("Teammate identifier"),rolePrompt:r.string().min(1).describe("System prompt describing teammate role")}).strict(),Ld=r.object({agentId:r.string().min(1).describe("Teammate identifier"),reason:F(r.string().min(1)).describe("Optional shutdown reason")}),Yd=r.object({}),Cr={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},Ad={create:["status","taskId","summary","reason"]},Dd=r.object({action:r.enum(["create","list","claim","complete","block"]),title:F(r.string().min(1)).describe("Task title"),description:F(r.string().min(1)).describe("Task details"),dependsOn:F(r.array(r.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:F(r.string().min(1)).describe("Optional assignee"),status:F(r.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:F(r.string()).describe("Task ID"),summary:F(r.string().min(1)).describe("Completion summary"),reason:F(r.string().min(1)).describe("Blocking reason")}).superRefine((n,o)=>{for(let f of Cr[n.action]){if(n[f]!==void 0)continue;o.addIssue({code:"custom",path:[f],message:`Field "${f}" is required when action=${n.action}`})}}),Gd=r.object({agentId:r.string().describe("Teammate agent ID"),task:r.string().min(1).describe("Task instructions for the teammate"),taskId:F(r.string()).describe("Optional shared task list ID"),runMode:F(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:F(r.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),Xd=r.object({status:F(r.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:F(r.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:F(r.boolean()).describe("Include completed/failed runs (default true)")}),Zd=r.object({runId:r.string().min(1).describe("Run ID"),reason:F(r.string().min(1)).describe("Optional cancellation reason")}),Bd=r.object({runId:F(r.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),Jd=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:F(r.string().min(1)).describe("Optional task ID context")}),Qd=r.object({subject:r.string().min(1).describe("Message subject"),body:r.string().min(1).describe("Message body"),taskId:F(r.string().min(1)).describe("Optional task ID context")}),Td=r.object({unreadOnly:F(r.boolean()).describe("Only unread messages for read action (default true)")}),Vd=r.object({kind:r.enum(["progress","handoff","blocked","decision","done","error"]),summary:r.string().min(1).describe("Update summary"),taskId:F(r.string().min(1)).describe("Optional task ID context"),evidence:F(r.array(r.string().min(1))).describe("Optional evidence links/snippets"),nextAction:F(r.string().min(1)).describe("Planned next step")}),Wd=r.object({}),jd=r.object({title:r.string().describe("Outcome title"),requiredSections:r.array(r.string()).default(Mr).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),Md=r.object({outcomeId:r.string().describe("Outcome ID"),section:r.string().describe("Section name"),sourceRunId:F(r.string()).describe("Optional source run ID"),content:r.string().describe("Section fragment content")}),Kd=r.object({fragmentId:r.string().describe("Fragment ID"),approved:r.boolean().describe("Review decision")}),Cd=r.object({outcomeId:r.string().describe("Outcome ID")}),Nd=r.object({}),hd=r.object({teamId:r.string(),teamName:r.string(),members:r.array(Kr),taskCounts:r.record(C,r.number()),unreadMessages:r.number(),missionLogEntries:r.number(),activeRuns:r.number(),queuedRuns:r.number(),outcomeCounts:r.record(v,r.number())}),Nr=r.object({id:r.string(),title:r.string(),description:r.string(),status:C,createdAt:D,updatedAt:D,createdBy:r.string(),assignee:r.string().optional(),dependsOn:r.array(r.string()),summary:r.string().optional(),isReady:r.boolean(),blockedBy:r.array(r.string())}),Sd=r.discriminatedUnion("action",[r.object({action:r.literal("create"),taskId:r.string(),status:C,ignoredFields:r.array(r.string()).optional(),note:r.string().optional()}),r.object({action:r.literal("list"),tasks:r.array(Nr)}),r.object({action:r.literal("claim"),taskId:r.string(),status:C,nextStep:r.string()}),r.object({action:r.literal("complete"),taskId:r.string(),status:C}),r.object({action:r.literal("block"),taskId:r.string(),status:C})]),Od=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()}),hr=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()})}),md=r.object({id:r.string(),agentId:r.string(),taskId:r.string().optional(),status:Wo,messagePreview:r.string(),priority:r.number(),retryCount:r.number(),maxRetries:r.number(),nextAttemptAt:D.optional(),continueConversation:r.boolean().optional(),startedAt:D,endedAt:D.optional(),leaseOwner:r.string().optional(),heartbeatAt:D.optional(),lastProgressAt:D.optional(),lastProgressMessage:r.string().optional(),currentActivity:r.string().optional(),error:r.string().optional(),resultSummary:hr.optional()}),ud=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:D,readAt:D.optional()}),td=r.object({id:r.string(),teamId:r.string(),title:r.string(),status:v,requiredSections:r.array(r.string()),createdBy:r.string(),createdAt:D,finalizedAt:D.optional()}),ed=r.object({outcomeId:r.string(),status:v,requiredSections:r.array(r.string())}),id=r.object({agentId:r.string(),status:r.string()}),xd=r.object({runId:r.string(),status:Wo}),pd=r.object({id:r.string(),toAgentId:r.string()}),vd=r.object({delivered:r.number()}),ad=r.object({id:r.string()}),zd=r.object({status:r.string()}),nl=r.object({fragmentId:r.string(),status:r.string()}),ol=r.object({outcomeId:r.string(),status:v});var Sr;((q)=>{q.TaskStart="task_start";q.TaskEnd="task_end";q.AgentEvent="agent_event";q.TeammateSpawned="teammate_spawned";q.TeammateShutdown="teammate_shutdown";q.TeamTaskUpdated="team_task_updated";q.TeamMessage="team_message";q.TeamMissionLog="team_mission_log";q.TeamTaskCompleted="team_task_completed";q.RunStarted="run_started";q.RunQueued="run_queued";q.RunProgress="run_progress";q.RunCompleted="run_completed";q.RunFailed="run_failed";q.RunCancelled="run_cancelled";q.RunInterrupted="run_interrupted";q.OutcomeCreated="outcome_created";q.OutcomeFragmentAttached="outcome_fragment_attached";q.OutcomeFragmentReviewed="outcome_fragment_reviewed";q.OutcomeFinalized="outcome_finalized"})(Sr||={});import{z as Or}from"zod";function mr(n){let{$schema:o,...f}=n;if(typeof f.type==="string")return f;if("properties"in f||"required"in f||"additionalProperties"in f)return{type:"object",...f};for(let l of["oneOf","anyOf","allOf"]){let w=f[l];if(!Array.isArray(w)||w.length===0)continue;if(l==="allOf"){if(w.some((b)=>b&&typeof b==="object"&&b.type==="object"))return{type:"object",...f};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(w.every((E)=>E&&typeof E==="object"&&E.type==="object"))return{type:"object",...f};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${l}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return f}function ur(n){let o=mr(n.inputSchema instanceof Or.ZodType?cn(n.inputSchema):n.inputSchema);return{name:n.name,description:n.description,inputSchema:o,lifecycle:n.lifecycle,timeoutMs:n.timeoutMs??30000,retryable:n.retryable??!0,maxRetries:n.maxRetries??3,execute:n.execute}}var jo=["cline","oca","openai-codex"];function Mo(n){return jo.includes(n)}var Ko=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function tr(n,o){if(!Mo(o))return!1;let f=n instanceof Error?n.message.toLowerCase():String(n);return Ko.some((l)=>f.includes(l))}export{cn as zodToJsonSchema,On as xmlTagsRemoval,nr as validateWithZod,kd as upsertWorkspaceInfo,oo as truncateStr,pf as truncateSplit,un as toAiSdkToolResultOutput,Qf as serializeAbortReason,Y as sanitizeSurrogates,xf as sanitizeFileName,Of as safeJsonStringify,mf as safeJsonParse,Gr as resolveRootSessionId,tn as resolveReasoningEffortRatio,Bf as resolveReasoningBudgetFromRatio,Rg as resolveHubCommandTimeoutMs,Dr as resolveHookSessionContext,Zf as resolveEffectiveReasoningEffort,Ao as resolveClineEnvironment,hn as parseUserCommandEnvelope,Tr as parseRuntimeConfigExtensions,Sf as parseJsonStream,Hf as parseHookEventPayload,Sn as normalizeUserInput,Xo as normalizeSdkError,Kn as normalizePluginManifest,Vf as noopBasicLogger,vf as maskSecret,Vo as isRuntimeConfigExtensionKind,Mo as isOAuthProviderId,tr as isLikelyAuthError,cg as isHubToolExecutorName,Vr as hasRuntimeConfigExtension,ef as getShellArgs,tf as getDefaultShell,Ff as getDefaultHubCommandTimeoutMs,Hr as getClineEnvironmentConfig,Pf as formatUserInputBlock,Uf as formatUserCommandBlock,zf as formatUptime,Gf as formatMessagesForAiSdk,af as formatHumanReadableDate,fn as formatFileContentBlock,Af as formatDisplayUserInput,Tf as estimateTokens,cd as emptyWorkspaceManifest,ur as createTool,Br as createSessionId,wf as createContributionRegistry,Bo as createClineTelemetryServiceMetadata,Ar as createClineTelemetryServiceConfig,Ir as captureSdkError,Go as buildSdkErrorProperties,or as buildClineSystemPrompt,jr as WorkspaceManifestSchema,Wr as WorkspaceInfoSchema,ko as VertexSettingsSchema,co as VertexModelSchema,nn as ToolCallRecordSchema,Jn as ThinkingConfigSchema,Pd as TeamTeammateSpecSchema,Sd as TeamTaskToolResultSchema,Nr as TeamTaskListItemToolResultSchema,Dd as TeamTaskInputSchema,hd as TeamStatusToolResultSchema,Yd as TeamStatusInputSchema,Ud as TeamSpawnTeammateInputSchema,id as TeamSimpleAgentStatusToolResultSchema,Ld as TeamShutdownTeammateInputSchema,pd as TeamSendMessageToolResultSchema,Jd as TeamSendMessageInputSchema,md as TeamRunToolSummarySchema,Od as TeamRunTaskToolResultSchema,Gd as TeamRunTaskInputSchema,hr as TeamRunResultSummarySchema,Kd as TeamReviewOutcomeFragmentInputSchema,Td as TeamReadMailboxInputSchema,td as TeamOutcomeToolResultSchema,nl as TeamOutcomeFragmentToolResultSchema,ad as TeamMissionLogToolResultSchema,Vd as TeamMissionLogInputSchema,Sr as TeamMessageType,ud as TeamMailboxMessageToolResultSchema,Xd as TeamListRunsInputSchema,Nd as TeamListOutcomesInputSchema,ol as TeamFinalizeOutcomeToolResultSchema,Cd as TeamFinalizeOutcomeInputSchema,ed as TeamCreateOutcomeToolResultSchema,jd as TeamCreateOutcomeInputSchema,zd as TeamCleanupToolResultSchema,Wd as TeamCleanupInputSchema,xd as TeamCancelRunToolResultSchema,Zd as TeamCancelRunInputSchema,vd as TeamBroadcastToolResultSchema,Qd as TeamBroadcastInputSchema,Bd as TeamAwaitRunsInputSchema,Md as TeamAttachOutcomeFragmentInputSchema,Ad as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,qd as TEAM_RUN_TEXT_PREVIEW_LIMIT,Id as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,Er as TEAM_PROGRESS_EVENT_TYPE,_r as TEAM_LIFECYCLE_EVENT_TYPE,Fd as TEAM_AWAIT_TIMEOUT_MS,Jr as SESSION_STATUS_VALUES,Fr as SDK_ERROR_TELEMETRY_EVENT,p as S3AccessKeySettingsSchema,Po as RemoteMCPServerSchema,gr as RemoteConfigSchema,zo as ReasoningEffortSchema,qn as RUNTIME_CONFIG_EXTENSION_KINDS,fr as REMOTE_URI_SCHEME,h as REASONING_EFFORT_RATIOS,yr as ProviderProtocolSchema,$r as ProviderClientSchema,sr as ProviderCapabilitySchema,Uo as PromptUploadingSchema,sf as PLUGIN_FILE_EXTENSIONS,so as OpenAiCompatibleSchema,wo as OpenAiCompatibleModelSchema,jo as OAUTH_PROVIDER_IDS,Zn as ModelStatusSchema,Bn as ModelPricingSchema,e as ModelInfoSchema,Xn as ModelCapabilitySchema,Ho as LiteLLMSchema,bo as LiteLLMModelSchema,Nn as HookEventPayloadSchema,Cn as HookEventNameSchema,Pg as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,If as HUB_TOOL_EXECUTOR_NAMES,kg as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,qg as HUB_MISTAKE_LIMIT_CAPABILITY,Hg as HUB_HOOK_CAPABILITY_PREFIX,Eg as HUB_DEFAULT_COMMAND_TIMEOUT_MS,bg as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,Fg as HUB_COMPACTION_CAPABILITY,_g as HUB_COMMAND_SLOW_LOG_MS,Ig as HUB_CHECKPOINT_CAPABILITY,bn as GlobalInstructionsFileSchema,Lo as EnterpriseTelemetrySchema,To as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,Jf as DEFAULT_REQUEST_HEADERS,Xf as DEFAULT_REASONING_EFFORT,Mr as DEFAULT_OUTCOME_REQUIRED_SECTIONS,kr as DEFAULT_CLINE_ENVIRONMENT,on as ContributionRegistry,ff as ConnectorHookEventSchema,Qn as ConnectorHookEventNameSchema,Vn as ConnectorEventContextSchema,Tn as ConnectorEventActorSchema,nf as ConnectorAuthorizationRequestSchema,of as ConnectorAuthorizationDecisionSchema,Ro as ClineSettingsSchema,_o as ClineModelSchema,cr as CLINE_ENVIRONMENT_OVERRIDE_ENV,Rr as CLINE_ENVIRONMENT_ENV,Fn as CLINE_ENVIRONMENTS,lr as CLINE_DEFAULT_RPC_PORT,wr as CLINE_DEFAULT_RPC_ADDRESS,Eo as AwsBedrockSettingsSchema,yo as AwsBedrockModelSchema,$o as AwsBedrockCustomModelSchema,Gn as ApiFormatSchema,po as ApiFormat,Io as AnthropicSchema,Fo as AnthropicModelSchema,qo as AllowedMCPServerSchema,ao as AgentUsageSchema,ng as AgentResultSchema,vo as AgentFinishReasonSchema,og as AgentConfigSchema,Ko as AUTH_ERROR_PATTERNS,dr as APIKeySchema};
|
package/dist/index.d.ts
CHANGED
|
@@ -15,12 +15,13 @@ export type { AgentAbortHookPayload, AgentEndHookPayload, AgentErrorHookPayload,
|
|
|
15
15
|
export { HookEventNameSchema, HookEventPayloadSchema, parseHookEventPayload, } from "./hooks/events";
|
|
16
16
|
export * from "./hub";
|
|
17
17
|
export type { AiSdkFormatterMessage, AiSdkFormatterMessageRole, AiSdkFormatterPart, AiSdkMessage, AiSdkMessagePart, } from "./llms/ai-sdk-format";
|
|
18
|
-
export { formatMessagesForAiSdk, toAiSdkToolResultOutput, } from "./llms/ai-sdk-format";
|
|
18
|
+
export { formatMessagesForAiSdk, sanitizeSurrogates, toAiSdkToolResultOutput, } from "./llms/ai-sdk-format";
|
|
19
19
|
export type * from "./llms/gateway";
|
|
20
20
|
export type { ContentBlock, FileContent, ImageContent, Message, MessageRole, MessageWithMetadata, RedactedThinkingContent, TextContent, ThinkingContent, ToolDefinition, ToolResultContent, ToolUseContent, } from "./llms/messages";
|
|
21
21
|
export { ApiFormat, ApiFormatSchema, type ModelCapability, ModelCapabilitySchema, type ModelInfo, ModelInfoSchema, type ModelPricing, ModelPricingSchema, type ModelStatus, ModelStatusSchema, type ThinkingConfig, ThinkingConfigSchema, } from "./llms/model-info";
|
|
22
22
|
export { DEFAULT_REASONING_EFFORT, REASONING_EFFORT_RATIOS, resolveEffectiveReasoningEffort, resolveReasoningBudgetFromRatio, resolveReasoningEffortRatio, } from "./llms/reasoning-effort";
|
|
23
23
|
export { DEFAULT_REQUEST_HEADERS, serializeAbortReason } from "./llms/requests";
|
|
24
|
+
export { estimateTokens } from "./llms/tokens";
|
|
24
25
|
export type { ToolApprovalRequest, ToolApprovalResult, ToolCallRecord, ToolPolicy, } from "./llms/tools";
|
|
25
26
|
export { ToolCallRecordSchema } from "./llms/tools";
|
|
26
27
|
export { type BasicLogger, type BasicLogMetadata, noopBasicLogger, } from "./logging/logger";
|
|
@@ -47,7 +48,8 @@ export { augmentNodeCommandForDebug, CLINE_BUILD_ENV_ENV, CLINE_DEBUG_HOST_ENV,
|
|
|
47
48
|
export type { ClineEnvironment, ClineEnvironmentConfig, ResolveClineEnvironmentOptions, } from "./runtime/cline-environment";
|
|
48
49
|
export { CLINE_ENVIRONMENT_ENV, CLINE_ENVIRONMENT_OVERRIDE_ENV, CLINE_ENVIRONMENTS, DEFAULT_CLINE_ENVIRONMENT, getClineEnvironmentConfig, resolveClineEnvironment, } from "./runtime/cline-environment";
|
|
49
50
|
export { CLINE_RUN_AS_HUB_DAEMON_ENV, isHubDaemonProcess, } from "./runtime/hub-daemon-env";
|
|
50
|
-
export type { ITelemetryService, OpenTelemetryClientConfig, TelemetryArray, TelemetryMetadata, TelemetryObject, TelemetryPrimitive, TelemetryProperties, TelemetryValue, } from "./services/telemetry";
|
|
51
|
+
export type { CaptureSdkErrorInput, ITelemetryService, OpenTelemetryClientConfig, SdkTelemetryErrorComponent, SdkTelemetryErrorSeverity, TelemetryArray, TelemetryMetadata, TelemetryObject, TelemetryPrimitive, TelemetryProperties, TelemetryValue, } from "./services/telemetry";
|
|
52
|
+
export { buildSdkErrorProperties, captureSdkError, normalizeSdkError, SDK_ERROR_TELEMETRY_EVENT, } from "./services/telemetry";
|
|
51
53
|
export type { ClineTelemetryServiceConfig } from "./services/telemetry-config";
|
|
52
54
|
export { createClineTelemetryServiceConfig, createClineTelemetryServiceMetadata, } from "./services/telemetry-config";
|
|
53
55
|
export type { HookSessionContext, HookSessionContextLookup, HookSessionContextProvider, } from "./session/hook-context";
|