@cline/shared 0.0.64 → 0.0.65-nightly.1784776435

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.
@@ -633,6 +633,14 @@ export interface AgentConfig {
633
633
  baseUrl?: string;
634
634
  /** Additional headers for API requests */
635
635
  headers?: Record<string, string>;
636
+ /**
637
+ * Called when a run fails with an auth-like provider error (e.g. an OAuth
638
+ * access token that expired mid-run). Hosts refresh credentials and push
639
+ * the new key into the runtime via `updateConnection`; returning `true`
640
+ * makes the runtime retry the failed run once with the refreshed
641
+ * connection.
642
+ */
643
+ onAuthError?: () => Promise<boolean>;
636
644
  /** Optional provider model catalog overrides */
637
645
  knownModels?: Record<string, ModelInfo>;
638
646
  /** Optional pre-resolved provider configuration (includes provider-specific fields like aws/gcp). */
package/dist/hub.d.ts CHANGED
@@ -219,6 +219,8 @@ export interface ScheduleExecutionRecord {
219
219
  tokensUsed?: number;
220
220
  costUsd?: number;
221
221
  }
222
+ export declare const ONE_TIME_SCHEDULE_CRON_PATTERN = "0";
223
+ export declare const ONE_TIME_SCHEDULE_RUN_AT_METADATA_KEY = "__hubScheduleRunAt";
222
224
  export interface HubScheduleCreateInput {
223
225
  name: string;
224
226
  cronPattern: string;
@@ -31,7 +31,7 @@ export { type BasicLogger, type BasicLogMetadata, noopBasicLogger, } from "./log
31
31
  export { normalizeJsonLikeStringsForSchema, parseJsonStream, safeJsonParse, safeJsonStringify, } from "./parse/json";
32
32
  export { decodeJwtPayload } from "./parse/jwt";
33
33
  export { type OmitUndefinedValues, omitUndefinedValues } from "./parse/object";
34
- export { getDefaultShell, getShellArgs } from "./parse/shell";
34
+ export { getDefaultShell, getShellArgs, getShellKind, type ShellKind, } from "./parse/shell";
35
35
  export { maskSecret, sanitizeFileName, stripUtf8Bom, trimNonEmpty, truncateSplit, truncateStr, } from "./parse/string";
36
36
  export { formatHumanReadableDate, formatUptime } from "./parse/time";
37
37
  export { validateWithZod, zodToJsonSchema } from "./parse/zod";
@@ -50,8 +50,8 @@ export type { TeamProgressCounts, TeamProgressLifecycleEvent, TeamProgressMember
50
50
  export { TEAM_LIFECYCLE_EVENT_TYPE, TEAM_PROGRESS_EVENT_TYPE, } from "./rpc/team-progress";
51
51
  export type { ClineEnvironment, ClineEnvironmentConfig, ResolveClineEnvironmentOptions, } from "./runtime/cline-environment";
52
52
  export { CLINE_ENVIRONMENT_ENV, CLINE_ENVIRONMENT_OVERRIDE_ENV, CLINE_ENVIRONMENTS, DEFAULT_CLINE_ENVIRONMENT, getClineEnvironmentConfig, resolveClineEnvironment, } from "./runtime/cline-environment";
53
- export type { CaptureAgentUnexpectedReasoningTokensInput, CaptureSdkErrorInput, ITelemetryService, OpenTelemetryClientConfig, SdkTelemetryErrorComponent, SdkTelemetryErrorSeverity, TelemetryArray, TelemetryMetadata, TelemetryObject, TelemetryPrimitive, TelemetryProperties, TelemetryValue, } from "./services/telemetry";
54
- export { AGENT_UNEXPECTED_REASONING_TOKENS_EVENT, buildSdkErrorProperties, captureAgentUnexpectedReasoningTokens, captureSdkError, normalizeSdkError, SDK_ERROR_TELEMETRY_EVENT, } from "./services/telemetry";
53
+ export type { CaptureAgentUnexpectedReasoningTokensInput, CaptureSdkErrorInput, CaptureTaskLifecycleEventInput, ITelemetryService, OpenTelemetryClientConfig, SdkTelemetryErrorComponent, SdkTelemetryErrorSeverity, TelemetryArray, TelemetryMetadata, TelemetryObject, TelemetryPrimitive, TelemetryProperties, TelemetryValue, } from "./services/telemetry";
54
+ export { AGENT_UNEXPECTED_REASONING_TOKENS_EVENT, buildSdkErrorProperties, captureAgentUnexpectedReasoningTokens, captureSdkError, captureTaskLifecycleEvent, normalizeSdkError, SDK_ERROR_TELEMETRY_EVENT, TASK_CANCELLED_EVENT, TASK_FIRST_CHUNK_RECEIVED_EVENT, TASK_PROVIDER_REQUEST_STARTED_EVENT, TASK_PROVIDER_STREAM_FAILED_EVENT, TASK_PROVIDER_STREAM_STARTED_EVENT, } from "./services/telemetry";
55
55
  export type { ClineTelemetryServiceConfig } from "./services/telemetry-config";
56
56
  export { createClineTelemetryServiceConfig, createClineTelemetryServiceMetadata, } from "./services/telemetry-config";
57
57
  export type { HookSessionContext, HookSessionContextLookup, HookSessionContextProvider, } from "./session/hook-context";
@@ -1,15 +1,15 @@
1
- import{z as g}from"zod";import{z as B}from"zod";var oo=B.enum(["default","openai-responses","r1"]),Cd={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},fo=B.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),ro=B.enum(["active","preview","deprecated","legacy"]),lo=B.object({input:B.number().optional(),output:B.number().optional(),cacheWrite:B.number().optional(),cacheRead:B.number().optional()}),bo=B.object({maxBudget:B.number().optional(),outputPrice:B.number().optional(),thinkingLevel:B.enum(["low","high"]).optional()}),go=B.object({reasoningDefaultOn:B.boolean().optional()}).catchall(B.unknown()),bn=B.object({id:B.string(),name:B.string().optional(),description:B.string().optional(),maxTokens:B.number().optional(),contextWindow:B.number().optional(),maxInputTokens:B.number().optional(),capabilities:B.array(fo).optional(),apiFormat:oo.optional(),systemRole:B.enum(["system","developer"]).optional(),temperature:B.number().optional(),pricing:lo.optional(),thinkingConfig:bo.optional(),status:ro.optional(),deprecationNotice:B.string().optional(),replacedBy:B.string().optional(),releaseDate:B.string().optional(),deprecationDate:B.string().optional(),family:B.string().optional(),metadata:go.optional()});import{z as H}from"zod";var Rn=H.object({id:H.string(),name:H.string(),input:H.unknown(),output:H.unknown(),error:H.string().optional(),durationMs:H.number(),startedAt:H.date(),endedAt:H.date()});var Qd=g.enum(["completed","max_iterations","aborted","mistake_limit","error"]),jd=g.object({inputTokens:g.number(),outputTokens:g.number(),cacheReadTokens:g.number().optional(),cacheWriteTokens:g.number().optional(),totalCost:g.number().optional()}),$l=g.object({text:g.string(),usage:jd,messages:g.array(g.custom()),toolCalls:g.array(Rn),iterations:g.number(),finishReason:Qd,model:g.object({id:g.string(),provider:g.string(),info:bn.optional()}),startedAt:g.date(),endedAt:g.date(),durationMs:g.number()}),Od=g.enum(["low","medium","high","xhigh"]),Tl=g.object({sessionId:g.string().optional(),providerId:g.string(),modelId:g.string(),apiKey:g.string().optional(),baseUrl:g.string().url().optional(),headers:g.record(g.string(),g.string()).optional(),knownModels:g.record(g.string(),bn).optional(),providerConfig:g.unknown().optional(),initialMessages:g.array(g.custom()).optional(),systemPrompt:g.string(),tools:g.array(g.custom()),maxIterations:g.number().positive().optional(),maxParallelToolCalls:g.number().int().positive().default(8),maxTokensPerTurn:g.number().positive().optional(),temperature:g.number().nonnegative().optional(),apiTimeoutMs:g.number().positive().default(180000),userFileContentLoader:g.function().input([g.string()]).output(g.promise(g.string())).optional(),toolContextMetadata:g.record(g.string(),g.unknown()).optional(),execution:g.object({maxConsecutiveMistakes:g.number().int().positive().optional(),reminderAfterIterations:g.number().nonnegative().optional(),reminderText:g.string().optional(),loopDetection:g.union([g.literal(!1),g.object({softThreshold:g.number().int().positive().optional(),hardThreshold:g.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:Od.optional(),thinkingBudgetTokens:g.number().positive().optional(),thinking:g.boolean().optional(),onEvent:g.function().input([g.custom()]).output(g.void()).optional(),hooks:g.custom().optional(),parentAgentId:g.string().optional(),extensions:g.array(g.custom()).optional(),hookErrorMode:g.enum(["ignore","throw"]).default("ignore"),toolPolicies:g.record(g.string(),g.object({enabled:g.boolean().optional(),autoApprove:g.boolean().optional()})).optional(),requestToolApproval:g.function().input([g.object({sessionId:g.string(),agentId:g.string(),conversationId:g.string(),iteration:g.number(),toolCallId:g.string(),toolName:g.string(),input:g.unknown(),policy:g.object({enabled:g.boolean().optional(),autoApprove:g.boolean().optional()}).default({})})]).output(g.union([g.object({approved:g.boolean(),reason:g.string().optional()}),g.promise(g.object({approved:g.boolean(),reason:g.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:g.function().input([g.object({iteration:g.number().int().positive(),consecutiveMistakes:g.number().int().positive(),maxConsecutiveMistakes:g.number().int().positive(),reason:g.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:g.string().optional()})]).output(g.union([g.object({action:g.literal("continue"),guidance:g.string().optional()}),g.object({action:g.literal("stop"),reason:g.string().optional()}),g.promise(g.union([g.object({action:g.literal("continue"),guidance:g.string().optional()}),g.object({action:g.literal("stop"),reason:g.string().optional()})]))])).optional(),logger:g.custom().optional(),extensionContext:g.custom().optional(),abortSignal:g.custom().optional()});import{z as R}from"zod";var so=R.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"]),yo=R.object({id:R.string().optional(),label:R.string().optional(),role:R.string().optional(),participantKey:R.string().optional(),participantLabel:R.string().optional(),platformUserId:R.string().optional(),metadata:R.record(R.string(),R.unknown()).optional()}),wo=R.object({source:R.string(),sourceEvent:R.string(),threadId:R.string(),channelId:R.string(),isDM:R.boolean(),sessionId:R.string().optional(),workspaceRoot:R.string().optional(),metadata:R.record(R.string(),R.unknown()).optional()}),Nd=R.object({actor:yo,context:wo,payload:R.record(R.string(),R.unknown()).optional()}),Sd=R.object({action:R.enum(["allow","deny"]).default("allow"),message:R.string().optional(),reason:R.string().optional(),metadata:R.record(R.string(),R.unknown()).optional()}),id=R.object({adapter:R.string(),botUserName:R.string().optional(),event:so,payload:R.record(R.string(),R.unknown()),ts:R.string()});var ko=[{name:"discord",description:"Discord interactions and gateway bridge backed by RPC runtime sessions"},{name:"gchat",description:"Google Chat webhook bridge backed by RPC runtime sessions"},{name:"linear",description:"Linear webhook bridge backed by RPC runtime sessions"},{name:"slack",description:"Slack webhook/socket bridge backed by RPC runtime sessions"},{name:"telegram",description:"Bridge Telegram bot messages into RPC chat sessions"},{name:"whatsapp",description:"Bridge WhatsApp webhook messages into RPC chat sessions"}];function co(){return ko.map((n)=>({...n}))}function hd(n,o){let d=n.includeWhen;if(!d)return!0;let r=o[d.flag]??"";if(d.equals!==void 0&&r!==d.equals)return!1;if(d.notEquals!==void 0&&r===d.notEquals)return!1;return!0}function md(n=Ao){let o=new Set(co().map((d)=>d.name));return n.filter((d)=>o.has(d.id)).map((d)=>({id:d.id,name:d.name,type:d.type,hint:d.hint,fields:d.fields.map((r)=>({flag:r.flag,label:r.label,placeholder:r.placeholder,required:r.required,help:r.help,initialValue:r.initialValue,options:r.options,includeWhen:r.includeWhen})),security:d.security?{prompt:d.security.prompt,fields:d.security.fields.map((r)=>({key:r.key,label:r.label,placeholder:r.placeholder,help:r.help,requiredMessage:r.requiredMessage}))}:void 0}))}function pd(n){return/^\d+$/.test(n)?void 0:"Telegram user ID must contain digits only"}function ad(n){return/^T[A-Z0-9]+$/.test(n)?void 0:"Slack workspace ID must start with T and contain uppercase letters or digits only"}function vd(n){return/^[UW][A-Z0-9]+$/.test(n)?void 0:"Slack member ID must start with U or W and contain uppercase letters or digits only"}var Ao=[{id:"telegram",name:"Telegram",type:"polling",hint:"Easiest to set up. No public URL needed.",fields:[{flag:"-k",label:"Bot token",placeholder:"7123456789:AAH...",required:!0,help:["Open Telegram and start a chat with @BotFather","Send /newbot and follow the prompts","BotFather gives you this after creating the bot","It looks like 7123456789:AAHxxx..."]}],security:{prompt:"By default, anyone who finds your bot can message it and run tasks on your machine. Restrict access to your Telegram user ID?",fields:[{key:"userId",label:"Your Telegram user ID",placeholder:"123456789",help:["Message @userinfobot on Telegram","It will reply with your numeric user ID"],requiredMessage:"User ID is required to restrict access",validate:pd}],buildArgs:({userId:n})=>["--allowed-user-id",n??""]}},{id:"slack",name:"Slack",type:"hybrid",hint:"Public URL for webhook mode; leave blank for socket mode.",fields:[{flag:"--bot-token",label:"Bot token",placeholder:"xoxb-...",required:!0,help:["Go to api.slack.com/apps and create a new app","Add Bot Token Scopes: chat:write, app_mentions:read, channels:history, channels:read, im:history, im:read, im:write, users:read","Install to workspace and copy the Bot Token"]},{flag:"--base-url",label:"Public base URL",placeholder:"leave blank for socket mode",help:["Enter a publicly accessible URL for webhook mode","Leave blank to use Slack socket mode instead"]},{flag:"--signing-secret",label:"Signing secret",required:!0,help:["Found in your app's Basic Information page"],includeWhen:{flag:"--base-url",notEquals:""}},{flag:"--app-token",label:"App-level token",placeholder:"xapp-...",required:!0,help:["Enable Socket Mode in the Slack app","Generate an app-level token with the connections:write scope"],includeWhen:{flag:"--base-url",equals:""}}],security:{prompt:"Restrict which Slack users can interact with the bot?",fields:[{key:"teamId",label:"Allowed Slack workspace ID",placeholder:"T01ABC123",help:["Open your Slack workspace URL in a browser","The workspace ID is the segment after /client/, for example T01ABC123"],requiredMessage:"Workspace ID is required to restrict access",validate:ad},{key:"userId",label:"Allowed Slack member ID",placeholder:"U01ABC123",help:["Click a user's name in Slack, then View full profile","Click ... and Copy member ID"],requiredMessage:"Member ID is required to restrict access",validate:vd}],buildArgs:({teamId:n,userId:o})=>["--hook-command",`jq -r ".payload.actor.participantKey" | grep -qx "slack:team:${n}:user:${o}" && echo '{"action":"allow"}' || echo '{"action":"deny"}'`]}},{id:"discord",name:"Discord",type:"webhook",hint:"Requires a Discord app and public URL.",fields:[{flag:"--application-id",label:"Application ID",required:!0,help:["Go to discord.com/developers/applications","Create a new app, copy the Application ID"]},{flag:"--bot-token",label:"Bot token",required:!0,help:["Go to Bot section, create a bot, copy the token"]},{flag:"--public-key",label:"Public key",required:!0,help:["Found in General Information of your app"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0,help:["Base URL for the connector","For Discord, set the Interactions Endpoint URL to <base-url>/api/webhooks/discord"]}]},{id:"whatsapp",name:"WhatsApp",type:"webhook",hint:"Requires Meta developer account and public URL.",fields:[{flag:"--phone-number-id",label:"Phone number ID",required:!0,help:["From your WhatsApp Business account in Meta Developer portal"]},{flag:"--access-token",label:"Access token",required:!0,help:["Generate a permanent token in Meta Developer portal"]},{flag:"--app-secret",label:"App secret",required:!0,help:["Found in App Settings > Basic"]},{flag:"--verify-token",label:"Webhook verify token",placeholder:"my-verify-token",required:!0,help:["Any string you choose, used to verify webhook setup"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"gchat",name:"Google Chat",type:"webhook",hint:"Requires Google Cloud project and public URL.",fields:[{flag:"--credentials-json",label:"Service account credentials JSON",required:!0,help:["Create a service account in Google Cloud Console","Download the credentials JSON file","Paste the JSON content here"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"linear",name:"Linear",type:"webhook",hint:"React to Linear issues and comments.",fields:[{flag:"--api-key",label:"API key",required:!0,help:["Go to Linear Settings > API > Personal API keys"]},{flag:"--webhook-secret",label:"Webhook signing secret",required:!0,help:["Go to Settings > API > Webhooks, create one","Copy the signing secret"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]}];var xd=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],zd=new Set(xd);function Io(n,o){return n.name||`extension_${String(o).padStart(4,"0")}`}function eo(n){return Array.isArray(n)&&n.every((o)=>typeof o==="string")}function _o(n){if(!Array.isArray(n))return;let o=n.filter((d)=>typeof d==="string").map((d)=>d.trim()).filter((d)=>d.length>0);return o.length>0?o:void 0}function Ro(n){let o=_o(n.providerIds),d=_o(n.modelIds);return{...n,...o?{providerIds:o}:{},...d?{modelIds:d}:{}}}function td(n,o){let d=Io(n,o),r=n.manifest;if(!r||typeof r!=="object")throw Error(`Invalid manifest for extension "${d}": manifest is required`);if(!Array.isArray(r.capabilities)||r.capabilities.length===0)throw Error(`Invalid manifest for extension "${d}": capabilities must be a non-empty array`);let l=new Set;for(let k of r.capabilities){if(!zd.has(k))throw Error(`Invalid manifest for extension "${d}": unsupported capability "${String(k)}"`);l.add(k)}if(Object.hasOwn(r,"providerIds")&&!eo(r.providerIds))throw Error(`Invalid manifest for extension "${d}": providerIds must be a string array when provided`);if(Object.hasOwn(r,"modelIds")&&!eo(r.modelIds))throw Error(`Invalid manifest for extension "${d}": modelIds must be a string array when provided`);let y=l.has("hooks");if(n.hooks!==void 0&&!y)throw Error(`Invalid manifest for extension "${d}": runtime hooks require the "hooks" capability`);return{capabilities:l,raw:Ro(r)}}function nf(n,o){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${o}": expected object`);let d=typeof n.eventType==="string"?n.eventType.trim():"",r=typeof n.source==="string"?n.source.trim():"";if(!d)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!r)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:d,source:r,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class Dn{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,o)=>({extension:n,order:o,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:td(n.extension,n.order)})),this.phase="setup"}async setup(n={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let o,d=[];for(let r of this.normalized){let{extension:l}=r;if(l.disabled)continue;let y=Io(l,r.order),s={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},k={registerTool:(c)=>s.tools.push(c),registerCommand:(c)=>s.commands.push(c),registerRule:(c)=>{if(!r.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${y}": registerRule requires the "rules" capability`);s.rules.push(c)},registerMessageBuilder:(c)=>s.messageBuilder.push(c),registerProvider:(c)=>s.providers.push(c),registerAutomationEventType:(c)=>{if(!r.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${y}": registerAutomationEventType requires the "automationEvents" capability`);s.automationEventTypes.push(nf(c,y))},registerMcpServer:(c)=>{if(!r.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${y}": registerMcpServer requires the "mcp" capability`);s.mcpServers.push({...c,metadata:{...c.metadata??{},source:"plugin",plugin:y}})}},_=r.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await l.setup?.(k,_),d.push(s)}catch(c){if(n.tolerateSetupErrors!==!0)throw c;o??=c}}if(o&&n.tolerateSetupErrors!==!0)throw o;for(let r of d)this.registry.tools.push(...r.tools),this.registry.commands.push(...r.commands),this.registry.rules.push(...r.rules),this.registry.messageBuilder.push(...r.messageBuilder),this.registry.providers.push(...r.providers),this.registry.automationEventTypes.push(...r.automationEventTypes),this.registry.mcpServers.push(...r.mcpServers);if(this.phase="activate",o)throw o}activate(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase==="setup")throw Error("Contribution registry setup must complete before activation");if(this.phase!=="activate")return;this.phase="run"}async initialize(n={}){this.resolve(),this.validate();try{await this.setup(n)}finally{if(this.phase==="activate")this.activate()}}isActivated(){return this.phase==="run"}getRegistrySnapshot(){return{tools:[...this.registry.tools],commands:[...this.registry.commands],rules:[...this.registry.rules],messageBuilder:[...this.registry.messageBuilder],providers:[...this.registry.providers],automationEventTypes:[...this.registry.automationEventTypes],mcpServers:[...this.registry.mcpServers]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getRegisteredMcpServers(){return[...this.registry.mcpServers]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,o)=>n.order-o.order).map(({extension:n})=>n)}}function of(n={}){return new Dn(n)}var df=[".js",".ts"];var Do={CLINE_PASS:"ext-cline-pass"},ff={[Do.CLINE_PASS]:!1},rf=Object.values(Do);import{z as w}from"zod";var Bo=w.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),C=w.record(w.string(),w.string()),lf=w.object({toolName:w.string(),parameters:C}),bf=w.object({toolName:w.string(),parameters:C,result:w.string(),success:w.boolean(),executionTimeMs:w.number()}),gf=w.object({prompt:w.string(),attachments:w.array(w.string())}),sf=w.object({taskMetadata:C}),yf=w.object({taskMetadata:C,previousState:C}),wf=w.object({taskMetadata:C}),kf=w.object({taskMetadata:C}),cf=w.object({taskId:w.string(),ulid:w.string(),contextSize:w.number(),compactionStrategy:w.string(),previousApiReqIndex:w.number(),tokensIn:w.number(),tokensOut:w.number(),tokensInCache:w.number(),tokensOutCache:w.number(),deletedRangeStart:w.number(),deletedRangeEnd:w.number(),contextJsonPath:w.string(),contextRawPath:w.string()}),qo=w.object({clineVersion:w.string(),hookName:Bo,timestamp:w.string(),taskId:w.string(),sessionContext:w.object({rootSessionId:w.string().optional(),hookLogPath:w.string().optional()}).optional(),workspaceRoots:w.array(w.string()),workspaceInfo:w.custom().optional(),userId:w.string(),agent_id:w.string(),parent_agent_id:w.string().nullable(),iteration:w.number().optional(),reason:w.string().optional(),tool_call:w.object({id:w.string(),name:w.string(),input:w.unknown()}).optional(),tool_result:w.custom().optional(),turn:w.unknown().optional(),error:w.object({name:w.string(),message:w.string(),stack:w.string().optional()}).optional(),preToolUse:lf.optional(),postToolUse:bf.optional(),userPromptSubmit:gf.optional(),taskStart:sf.optional(),taskResume:yf.optional(),taskCancel:wf.optional(),taskComplete:kf.optional(),preCompact:cf.optional()}).passthrough();function Af(n){let o=qo.safeParse(n);if(!o.success)return;return o.data}var Wl="v1",Kl="v1",Cl="v1",Ql=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function gn(n){let o=/^v(\d+)$/.exec(n?.trim()??"");if(!o)return;return Number.parseInt(o[1]??"",10)}function jl(n,o="v1"){let d=gn(n.protocolVersion),r=gn(o);if(d===void 0||r===void 0)return{compatible:!1,reason:"missing_protocol"};let l=gn(n.minClientProtocolVersion)??d,y=gn(n.maxClientProtocolVersion)??d;return r>=l&&r<=y?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var ef=30000,Ol=5000;function _f(n){switch(n){case"run.start":case"session.send_input":return null;default:return ef}}function Nl(n,o){return o===void 0?_f(n):o}var If=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],Rf=new Set(If);function Sl(n){return typeof n==="string"&&Rf.has(n)}var il="tool_executor.",hl="custom_tool.",ml="hook.",pl="compaction.compact",al="checkpoint.create",vl="mistake_limit.decide",xl="user_instructions.snapshot";function Bn(n,o){return`<file_content path="${n}">
1
+ import{z as g}from"zod";import{z as B}from"zod";var fo=B.enum(["default","openai-responses","r1"]),jd={DEFAULT:"default",OPENAI_RESPONSES:"openai-responses",R1:"r1"},ro=B.enum(["images","tools","streaming","prompt-cache","reasoning","reasoning-effort","computer-use","global-endpoint","structured_output","temperature","files"]),lo=B.enum(["active","preview","deprecated","legacy"]),bo=B.object({input:B.number().optional(),output:B.number().optional(),cacheWrite:B.number().optional(),cacheRead:B.number().optional()}),go=B.object({maxBudget:B.number().optional(),outputPrice:B.number().optional(),thinkingLevel:B.enum(["low","high"]).optional()}),so=B.object({reasoningDefaultOn:B.boolean().optional()}).catchall(B.unknown()),bn=B.object({id:B.string(),name:B.string().optional(),description:B.string().optional(),maxTokens:B.number().optional(),contextWindow:B.number().optional(),maxInputTokens:B.number().optional(),capabilities:B.array(ro).optional(),apiFormat:fo.optional(),systemRole:B.enum(["system","developer"]).optional(),temperature:B.number().optional(),pricing:bo.optional(),thinkingConfig:go.optional(),status:lo.optional(),deprecationNotice:B.string().optional(),replacedBy:B.string().optional(),releaseDate:B.string().optional(),deprecationDate:B.string().optional(),family:B.string().optional(),metadata:so.optional()});import{z as Z}from"zod";var Dn=Z.object({id:Z.string(),name:Z.string(),input:Z.unknown(),output:Z.unknown(),error:Z.string().optional(),durationMs:Z.number(),startedAt:Z.date(),endedAt:Z.date()});var Od=g.enum(["completed","max_iterations","aborted","mistake_limit","error"]),Nd=g.object({inputTokens:g.number(),outputTokens:g.number(),cacheReadTokens:g.number().optional(),cacheWriteTokens:g.number().optional(),totalCost:g.number().optional()}),Hl=g.object({text:g.string(),usage:Nd,messages:g.array(g.custom()),toolCalls:g.array(Dn),iterations:g.number(),finishReason:Od,model:g.object({id:g.string(),provider:g.string(),info:bn.optional()}),startedAt:g.date(),endedAt:g.date(),durationMs:g.number()}),Sd=g.enum(["low","medium","high","xhigh"]),Pl=g.object({sessionId:g.string().optional(),providerId:g.string(),modelId:g.string(),apiKey:g.string().optional(),baseUrl:g.string().url().optional(),headers:g.record(g.string(),g.string()).optional(),knownModels:g.record(g.string(),bn).optional(),providerConfig:g.unknown().optional(),initialMessages:g.array(g.custom()).optional(),systemPrompt:g.string(),tools:g.array(g.custom()),maxIterations:g.number().positive().optional(),maxParallelToolCalls:g.number().int().positive().default(8),maxTokensPerTurn:g.number().positive().optional(),temperature:g.number().nonnegative().optional(),apiTimeoutMs:g.number().positive().default(180000),userFileContentLoader:g.function().input([g.string()]).output(g.promise(g.string())).optional(),toolContextMetadata:g.record(g.string(),g.unknown()).optional(),execution:g.object({maxConsecutiveMistakes:g.number().int().positive().optional(),reminderAfterIterations:g.number().nonnegative().optional(),reminderText:g.string().optional(),loopDetection:g.union([g.literal(!1),g.object({softThreshold:g.number().int().positive().optional(),hardThreshold:g.number().int().positive().optional()})]).optional()}).optional(),reasoningEffort:Sd.optional(),thinkingBudgetTokens:g.number().positive().optional(),thinking:g.boolean().optional(),onEvent:g.function().input([g.custom()]).output(g.void()).optional(),hooks:g.custom().optional(),parentAgentId:g.string().optional(),extensions:g.array(g.custom()).optional(),hookErrorMode:g.enum(["ignore","throw"]).default("ignore"),toolPolicies:g.record(g.string(),g.object({enabled:g.boolean().optional(),autoApprove:g.boolean().optional()})).optional(),requestToolApproval:g.function().input([g.object({sessionId:g.string(),agentId:g.string(),conversationId:g.string(),iteration:g.number(),toolCallId:g.string(),toolName:g.string(),input:g.unknown(),policy:g.object({enabled:g.boolean().optional(),autoApprove:g.boolean().optional()}).default({})})]).output(g.union([g.object({approved:g.boolean(),reason:g.string().optional()}),g.promise(g.object({approved:g.boolean(),reason:g.string().optional()}))])).optional(),onConsecutiveMistakeLimitReached:g.function().input([g.object({iteration:g.number().int().positive(),consecutiveMistakes:g.number().int().positive(),maxConsecutiveMistakes:g.number().int().positive(),reason:g.enum(["api_error","invalid_tool_call","tool_execution_failed"]),details:g.string().optional()})]).output(g.union([g.object({action:g.literal("continue"),guidance:g.string().optional()}),g.object({action:g.literal("stop"),reason:g.string().optional()}),g.promise(g.union([g.object({action:g.literal("continue"),guidance:g.string().optional()}),g.object({action:g.literal("stop"),reason:g.string().optional()})]))])).optional(),logger:g.custom().optional(),extensionContext:g.custom().optional(),abortSignal:g.custom().optional()});import{z as D}from"zod";var yo=D.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"]),wo=D.object({id:D.string().optional(),label:D.string().optional(),role:D.string().optional(),participantKey:D.string().optional(),participantLabel:D.string().optional(),platformUserId:D.string().optional(),metadata:D.record(D.string(),D.unknown()).optional()}),ko=D.object({source:D.string(),sourceEvent:D.string(),threadId:D.string(),channelId:D.string(),isDM:D.boolean(),sessionId:D.string().optional(),workspaceRoot:D.string().optional(),metadata:D.record(D.string(),D.unknown()).optional()}),hd=D.object({actor:wo,context:ko,payload:D.record(D.string(),D.unknown()).optional()}),id=D.object({action:D.enum(["allow","deny"]).default("allow"),message:D.string().optional(),reason:D.string().optional(),metadata:D.record(D.string(),D.unknown()).optional()}),md=D.object({adapter:D.string(),botUserName:D.string().optional(),event:yo,payload:D.record(D.string(),D.unknown()),ts:D.string()});var co=[{name:"discord",description:"Discord interactions and gateway bridge backed by RPC runtime sessions"},{name:"gchat",description:"Google Chat webhook bridge backed by RPC runtime sessions"},{name:"linear",description:"Linear webhook bridge backed by RPC runtime sessions"},{name:"slack",description:"Slack webhook/socket bridge backed by RPC runtime sessions"},{name:"telegram",description:"Bridge Telegram bot messages into RPC chat sessions"},{name:"whatsapp",description:"Bridge WhatsApp webhook messages into RPC chat sessions"}];function Ao(){return co.map((n)=>({...n}))}function ad(n,o){let d=n.includeWhen;if(!d)return!0;let r=o[d.flag]??"";if(d.equals!==void 0&&r!==d.equals)return!1;if(d.notEquals!==void 0&&r===d.notEquals)return!1;return!0}function vd(n=_o){let o=new Set(Ao().map((d)=>d.name));return n.filter((d)=>o.has(d.id)).map((d)=>({id:d.id,name:d.name,type:d.type,hint:d.hint,fields:d.fields.map((r)=>({flag:r.flag,label:r.label,placeholder:r.placeholder,required:r.required,help:r.help,initialValue:r.initialValue,options:r.options,includeWhen:r.includeWhen})),security:d.security?{prompt:d.security.prompt,fields:d.security.fields.map((r)=>({key:r.key,label:r.label,placeholder:r.placeholder,help:r.help,requiredMessage:r.requiredMessage}))}:void 0}))}function pd(n){return/^\d+$/.test(n)?void 0:"Telegram user ID must contain digits only"}function xd(n){return/^T[A-Z0-9]+$/.test(n)?void 0:"Slack workspace ID must start with T and contain uppercase letters or digits only"}function zd(n){return/^[UW][A-Z0-9]+$/.test(n)?void 0:"Slack member ID must start with U or W and contain uppercase letters or digits only"}var _o=[{id:"telegram",name:"Telegram",type:"polling",hint:"Easiest to set up. No public URL needed.",fields:[{flag:"-k",label:"Bot token",placeholder:"7123456789:AAH...",required:!0,help:["Open Telegram and start a chat with @BotFather","Send /newbot and follow the prompts","BotFather gives you this after creating the bot","It looks like 7123456789:AAHxxx..."]}],security:{prompt:"By default, anyone who finds your bot can message it and run tasks on your machine. Restrict access to your Telegram user ID?",fields:[{key:"userId",label:"Your Telegram user ID",placeholder:"123456789",help:["Message @userinfobot on Telegram","It will reply with your numeric user ID"],requiredMessage:"User ID is required to restrict access",validate:pd}],buildArgs:({userId:n})=>["--allowed-user-id",n??""]}},{id:"slack",name:"Slack",type:"hybrid",hint:"Public URL for webhook mode; leave blank for socket mode.",fields:[{flag:"--bot-token",label:"Bot token",placeholder:"xoxb-...",required:!0,help:["Go to api.slack.com/apps and create a new app","Add Bot Token Scopes: chat:write, app_mentions:read, channels:history, channels:read, im:history, im:read, im:write, users:read","Install to workspace and copy the Bot Token"]},{flag:"--base-url",label:"Public base URL",placeholder:"leave blank for socket mode",help:["Enter a publicly accessible URL for webhook mode","Leave blank to use Slack socket mode instead"]},{flag:"--signing-secret",label:"Signing secret",required:!0,help:["Found in your app's Basic Information page"],includeWhen:{flag:"--base-url",notEquals:""}},{flag:"--app-token",label:"App-level token",placeholder:"xapp-...",required:!0,help:["Enable Socket Mode in the Slack app","Generate an app-level token with the connections:write scope"],includeWhen:{flag:"--base-url",equals:""}}],security:{prompt:"Restrict which Slack users can interact with the bot?",fields:[{key:"teamId",label:"Allowed Slack workspace ID",placeholder:"T01ABC123",help:["Open your Slack workspace URL in a browser","The workspace ID is the segment after /client/, for example T01ABC123"],requiredMessage:"Workspace ID is required to restrict access",validate:xd},{key:"userId",label:"Allowed Slack member ID",placeholder:"U01ABC123",help:["Click a user's name in Slack, then View full profile","Click ... and Copy member ID"],requiredMessage:"Member ID is required to restrict access",validate:zd}],buildArgs:({teamId:n,userId:o})=>["--hook-command",`jq -r ".payload.actor.participantKey" | grep -qx "slack:team:${n}:user:${o}" && echo '{"action":"allow"}' || echo '{"action":"deny"}'`]}},{id:"discord",name:"Discord",type:"webhook",hint:"Requires a Discord app and public URL.",fields:[{flag:"--application-id",label:"Application ID",required:!0,help:["Go to discord.com/developers/applications","Create a new app, copy the Application ID"]},{flag:"--bot-token",label:"Bot token",required:!0,help:["Go to Bot section, create a bot, copy the token"]},{flag:"--public-key",label:"Public key",required:!0,help:["Found in General Information of your app"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0,help:["Base URL for the connector","For Discord, set the Interactions Endpoint URL to <base-url>/api/webhooks/discord"]}]},{id:"whatsapp",name:"WhatsApp",type:"webhook",hint:"Requires Meta developer account and public URL.",fields:[{flag:"--phone-number-id",label:"Phone number ID",required:!0,help:["From your WhatsApp Business account in Meta Developer portal"]},{flag:"--access-token",label:"Access token",required:!0,help:["Generate a permanent token in Meta Developer portal"]},{flag:"--app-secret",label:"App secret",required:!0,help:["Found in App Settings > Basic"]},{flag:"--verify-token",label:"Webhook verify token",placeholder:"my-verify-token",required:!0,help:["Any string you choose, used to verify webhook setup"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"gchat",name:"Google Chat",type:"webhook",hint:"Requires Google Cloud project and public URL.",fields:[{flag:"--credentials-json",label:"Service account credentials JSON",required:!0,help:["Create a service account in Google Cloud Console","Download the credentials JSON file","Paste the JSON content here"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]},{id:"linear",name:"Linear",type:"webhook",hint:"React to Linear issues and comments.",fields:[{flag:"--api-key",label:"API key",required:!0,help:["Go to Linear Settings > API > Personal API keys"]},{flag:"--webhook-secret",label:"Webhook signing secret",required:!0,help:["Go to Settings > API > Webhooks, create one","Copy the signing secret"]},{flag:"--base-url",label:"Public base URL",placeholder:"https://example.com",required:!0}]}];var td=["hooks","tools","commands","rules","skills","messageBuilders","providers","automationEvents","mcp"],nf=new Set(td);function Do(n,o){return n.name||`extension_${String(o).padStart(4,"0")}`}function Io(n){return Array.isArray(n)&&n.every((o)=>typeof o==="string")}function Ro(n){if(!Array.isArray(n))return;let o=n.filter((d)=>typeof d==="string").map((d)=>d.trim()).filter((d)=>d.length>0);return o.length>0?o:void 0}function eo(n){let o=Ro(n.providerIds),d=Ro(n.modelIds);return{...n,...o?{providerIds:o}:{},...d?{modelIds:d}:{}}}function of(n,o){let d=Do(n,o),r=n.manifest;if(!r||typeof r!=="object")throw Error(`Invalid manifest for extension "${d}": manifest is required`);if(!Array.isArray(r.capabilities)||r.capabilities.length===0)throw Error(`Invalid manifest for extension "${d}": capabilities must be a non-empty array`);let l=new Set;for(let k of r.capabilities){if(!nf.has(k))throw Error(`Invalid manifest for extension "${d}": unsupported capability "${String(k)}"`);l.add(k)}if(Object.hasOwn(r,"providerIds")&&!Io(r.providerIds))throw Error(`Invalid manifest for extension "${d}": providerIds must be a string array when provided`);if(Object.hasOwn(r,"modelIds")&&!Io(r.modelIds))throw Error(`Invalid manifest for extension "${d}": modelIds must be a string array when provided`);let y=l.has("hooks");if(n.hooks!==void 0&&!y)throw Error(`Invalid manifest for extension "${d}": runtime hooks require the "hooks" capability`);return{capabilities:l,raw:eo(r)}}function df(n,o){if(!n||typeof n!=="object")throw Error(`Invalid automation event contribution for extension "${o}": expected object`);let d=typeof n.eventType==="string"?n.eventType.trim():"",r=typeof n.source==="string"?n.source.trim():"";if(!d)throw Error(`Invalid automation event contribution for extension "${o}": eventType is required`);if(!r)throw Error(`Invalid automation event contribution for extension "${o}": source is required`);return{...n,eventType:d,source:r,examples:n.examples?[...n.examples]:void 0,metadata:n.metadata?{...n.metadata}:void 0}}class en{extensions;registry={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]};normalized=[];phase="resolve";setupContext;constructor(n={}){this.extensions=n.extensions??[],this.setupContext=n.setupContext??{}}resolve(){if(this.phase!=="resolve")return;this.normalized=this.extensions.map((n,o)=>({extension:n,order:o,manifest:{capabilities:new Set,raw:n.manifest}})),this.phase="validate"}validate(){if(this.phase==="resolve")this.resolve();if(this.phase!=="validate")return;this.normalized=this.normalized.map((n)=>({...n,manifest:of(n.extension,n.order)})),this.phase="setup"}async setup(n={}){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase!=="setup")return;let o,d=[];for(let r of this.normalized){let{extension:l}=r;if(l.disabled)continue;let y=Do(l,r.order),s={tools:[],commands:[],rules:[],messageBuilder:[],providers:[],automationEventTypes:[],mcpServers:[]},k={registerTool:(c)=>s.tools.push(c),registerCommand:(c)=>s.commands.push(c),registerRule:(c)=>{if(!r.manifest.capabilities.has("rules"))throw Error(`Invalid setup for extension "${y}": registerRule requires the "rules" capability`);s.rules.push(c)},registerMessageBuilder:(c)=>s.messageBuilder.push(c),registerProvider:(c)=>s.providers.push(c),registerAutomationEventType:(c)=>{if(!r.manifest.capabilities.has("automationEvents"))throw Error(`Invalid setup for extension "${y}": registerAutomationEventType requires the "automationEvents" capability`);s.automationEventTypes.push(df(c,y))},registerMcpServer:(c)=>{if(!r.manifest.capabilities.has("mcp"))throw Error(`Invalid setup for extension "${y}": registerMcpServer requires the "mcp" capability`);s.mcpServers.push({...c,metadata:{...c.metadata??{},source:"plugin",plugin:y}})}},I=r.manifest.capabilities.has("automationEvents")?this.setupContext:{...this.setupContext,automation:void 0};try{await l.setup?.(k,I),d.push(s)}catch(c){if(n.tolerateSetupErrors!==!0)throw c;o??=c}}if(o&&n.tolerateSetupErrors!==!0)throw o;for(let r of d)this.registry.tools.push(...r.tools),this.registry.commands.push(...r.commands),this.registry.rules.push(...r.rules),this.registry.messageBuilder.push(...r.messageBuilder),this.registry.providers.push(...r.providers),this.registry.automationEventTypes.push(...r.automationEventTypes),this.registry.mcpServers.push(...r.mcpServers);if(this.phase="activate",o)throw o}activate(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();if(this.phase==="setup")throw Error("Contribution registry setup must complete before activation");if(this.phase!=="activate")return;this.phase="run"}async initialize(n={}){this.resolve(),this.validate();try{await this.setup(n)}finally{if(this.phase==="activate")this.activate()}}isActivated(){return this.phase==="run"}getRegistrySnapshot(){return{tools:[...this.registry.tools],commands:[...this.registry.commands],rules:[...this.registry.rules],messageBuilder:[...this.registry.messageBuilder],providers:[...this.registry.providers],automationEventTypes:[...this.registry.automationEventTypes],mcpServers:[...this.registry.mcpServers]}}getRegisteredTools(){return[...this.registry.tools]}getRegisteredRules(){return[...this.registry.rules]}getRegisteredAutomationEventTypes(){return[...this.registry.automationEventTypes]}getRegisteredMcpServers(){return[...this.registry.mcpServers]}getValidatedExtensions(){if(this.phase==="resolve")this.resolve();if(this.phase==="validate")this.validate();return this.normalized.slice().sort((n,o)=>n.order-o.order).map(({extension:n})=>n)}}function ff(n={}){return new en(n)}var rf=[".js",".ts"];var Bo={CLINE_PASS:"ext-cline-pass"},lf={[Bo.CLINE_PASS]:!1},bf=Object.values(Bo);import{z as w}from"zod";var qo=w.enum(["agent_start","agent_resume","agent_abort","agent_end","agent_error","tool_call","tool_result","prompt_submit","pre_compact","session_shutdown"]),u=w.record(w.string(),w.string()),gf=w.object({toolName:w.string(),parameters:u}),sf=w.object({toolName:w.string(),parameters:u,result:w.string(),success:w.boolean(),executionTimeMs:w.number()}),yf=w.object({prompt:w.string(),attachments:w.array(w.string())}),wf=w.object({taskMetadata:u}),kf=w.object({taskMetadata:u,previousState:u}),cf=w.object({taskMetadata:u}),Af=w.object({taskMetadata:u}),_f=w.object({taskId:w.string(),ulid:w.string(),contextSize:w.number(),compactionStrategy:w.string(),previousApiReqIndex:w.number(),tokensIn:w.number(),tokensOut:w.number(),tokensInCache:w.number(),tokensOutCache:w.number(),deletedRangeStart:w.number(),deletedRangeEnd:w.number(),contextJsonPath:w.string(),contextRawPath:w.string()}),Eo=w.object({clineVersion:w.string(),hookName:qo,timestamp:w.string(),taskId:w.string(),sessionContext:w.object({rootSessionId:w.string().optional(),hookLogPath:w.string().optional()}).optional(),workspaceRoots:w.array(w.string()),workspaceInfo:w.custom().optional(),userId:w.string(),agent_id:w.string(),parent_agent_id:w.string().nullable(),iteration:w.number().optional(),reason:w.string().optional(),tool_call:w.object({id:w.string(),name:w.string(),input:w.unknown()}).optional(),tool_result:w.custom().optional(),turn:w.unknown().optional(),error:w.object({name:w.string(),message:w.string(),stack:w.string().optional()}).optional(),preToolUse:gf.optional(),postToolUse:sf.optional(),userPromptSubmit:yf.optional(),taskStart:wf.optional(),taskResume:kf.optional(),taskCancel:cf.optional(),taskComplete:Af.optional(),preCompact:_f.optional()}).passthrough();function If(n){let o=Eo.safeParse(n);if(!o.success)return;return o.data}var Sl="v1",hl="v1",il="v1",ml=["client.register","client.list","session.create","session.list","session.get","session.run","session.abort","schedule.create","schedule.list","settings.get","settings.set"];function gn(n){let o=/^v(\d+)$/.exec(n?.trim()??"");if(!o)return;return Number.parseInt(o[1]??"",10)}function al(n,o="v1"){let d=gn(n.protocolVersion),r=gn(o);if(d===void 0||r===void 0)return{compatible:!1,reason:"missing_protocol"};let l=gn(n.minClientProtocolVersion)??d,y=gn(n.maxClientProtocolVersion)??d;return r>=l&&r<=y?{compatible:!0}:{compatible:!1,reason:"unsupported_protocol"}}var vl="0",pl="__hubScheduleRunAt",Rf=30000,xl=5000;function Df(n){switch(n){case"run.start":case"session.send_input":return null;default:return Rf}}function zl(n,o){return o===void 0?Df(n):o}var ef=["readFile","search","bash","webFetch","editor","applyPatch","skills","askQuestion","submit"],Bf=new Set(ef);function tl(n){return typeof n==="string"&&Bf.has(n)}var nb="tool_executor.",ob="custom_tool.",db="hook.",fb="compaction.compact",rb="checkpoint.create",lb="mistake_limit.decide",bb="user_instructions.snapshot";function Bn(n,o){return`<file_content path="${n}">
2
2
  ${o}
3
- </file_content>`}function Df(n,o="act"){return`<user_input mode="${o}">${n}</user_input>`}function Bf(n,o){return`<user_command slash="${o}">${n}</user_command>`}function qf(n,o){return`<mode_notice>The user switched from ${n} mode to ${o} mode before sending this message.</mode_notice>`}function Ef(){let n=null;return{record(o,d){if(o===d)return;if(n){n=n.from===d?null:{from:n.from,to:d};return}n={from:o,to:d}},consume(){let o=n;return n=null,o}}}function Mf(n,o){let d=n.trim(),r=new RegExp(`^<${o}\\b([^>]*)>([\\s\\S]*?)<\\/${o}>$`,"i").exec(d);if(!r)return;return{attrs:r[1]??"",content:r[2]??""}}function Gf(n,o){return new RegExp(`${o}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function Eo(n){if(!n?.trim())return;let o=Mf(n,"user_command");if(!o)return;let d=Gf(o.attrs,"slash");if(!d)return;return{slash:d,content:o.content.trim()}}function Mo(n){if(!n?.trim())return"";let o=n.trim();for(let d of["user_input","user_command"]){let r=$o(o,d);o=(r!==o?r:o.replace(new RegExp(`<${d}[^>]*>`,"g"),"")).trim()}return o}function Go(n){if(!n?.trim())return"";return $f(n,"mode_notice").trim()}function $f(n,o){let d=`<${o}>`,r=`</${o}>`,l=n,y=l.indexOf(d);while(y!==-1){let s=l.indexOf(r,y+d.length);if(s===-1)break;l=l.slice(0,y)+l.slice(s+r.length),y=l.indexOf(d,y)}return l}function Tf(n){let o=Go(Mo(n)),d=Eo(n);if(!d)return o;if(d.slash.toLowerCase()==="team"){let l=o.toLowerCase().startsWith("spawn a team of agents for the following task:")?o.slice(46).trim():o;return l?`/team ${l}`:"/team"}return o?`/${d.slash} ${o}`:`/${d.slash}`}function $o(n,o){if(!n?.trim())return"";if(!o)return n;let d=new RegExp(`<${o}\\b[^>]*>([\\s\\S]*?)</${o}>`,"g");return n.replace(d,"$1")}var Q="[media omitted: invalid or exceeds size limit]",yn=["image/png","image/jpeg","image/gif","image/webp"],Yf=5242880,W=5242880,j=6291456,Uf=8388608;function uf(n){return n.length}function To(n){let o=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-o}function Ff(n=5242880){return Math.floor(n*3/4)}function qn(n){return Math.ceil(n/3)*4}function Yo(n={}){return{maxImageEncodedBytes:n.maxImageEncodedBytes??5242880,maxImageDecodedBytes:n.maxImageDecodedBytes??6291456,maxTotalMediaBytes:n.maxTotalMediaBytes??8388608}}function wn(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function sn(n,o){n.omittedImages+=1,n.omittedReasons[o]=(n.omittedReasons[o]??0)+1}function t(n,o,d,r){let l=Yo(d);if(n>l.maxImageEncodedBytes){let y={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${l.maxImageEncodedBytes} byte encoded limit`};return sn(r,y.reason),y}if(o>l.maxImageDecodedBytes){let y={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l.maxImageDecodedBytes} byte decoded limit`};return sn(r,y.reason),y}if(r.totalEncodedBytes+n>l.maxTotalMediaBytes){let y={ok:!1,reason:"total_limit",message:`Image media exceeds the ${l.maxTotalMediaBytes} byte total media limit`};return sn(r,y.reason),y}return r.totalEncodedBytes+=n,r.keptImages+=1,null}function Uo(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function Lf(n){return n.length>0&&uo(n,0,n.length)}function uo(n,o,d){let r=d-o;if(r%4!==0)return!1;let l=d;if(r>=2&&n.charCodeAt(d-2)===61&&n.charCodeAt(d-1)===61)l-=2;else if(r>=1&&n.charCodeAt(d-1)===61)l-=1;for(let y=o;y<l;y++)if(!Uo(n.charCodeAt(y)))return!1;for(let y=l;y<d;y++)if(n.charCodeAt(y)!==61)return!1;return!0}function Pf(n,o,d){return d-o>=5&&(n.charCodeAt(o)|32)===100&&(n.charCodeAt(o+1)|32)===97&&(n.charCodeAt(o+2)|32)===116&&(n.charCodeAt(o+3)|32)===97&&n.charCodeAt(o+4)===58}function Xf(n){let o=0,d=n.length;while(o<d&&/\s/.test(n[o]??""))o+=1;while(d>o&&/\s/.test(n[d-1]??""))d-=1;return{start:o,end:d}}function Hf(n,o,d){if(!Pf(n,o,d))return;let r=o+5,l=n.indexOf(",",r);if(l===-1||l>=d)return;if(l-r>128)return;let y=n.slice(r,l).toLowerCase(),s=";base64";if(!y.endsWith(s))return;let k=y.slice(0,-s.length);if(!k||k.includes(";"))return;return{mediaType:k,base64Start:l+1,base64End:d}}function Fo(n,o,d={}){let r=d.maxEncodedBytes??5242880,l=d.maxDecodedBytes??6291456,y=new Set(d.supportedMediaTypes??yn),s=n?.toLowerCase(),k=Xf(o),_=k.start,c=k.end,I=Hf(o,k.start,k.end);if(I){if(s&&s!==I.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${I.mediaType}`};s=I.mediaType,_=I.base64Start,c=I.base64End}if(!s||!y.has(s))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let T=c-_;if(T===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(T>r)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${r} byte encoded limit`};if(!uo(o,_,c))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let Y=o.slice(_,c),$=To(Y);if($>l)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l} byte decoded limit`};return{ok:!0,mediaType:s,base64:Y,encodedBytes:T,decodedBytes:$}}function nn(n,o,d,r){let l=Fo(n,o,{maxEncodedBytes:d.maxImageEncodedBytes,maxDecodedBytes:d.maxImageDecodedBytes});if(!l.ok)return sn(r,l.reason),l;let y=t(l.encodedBytes,l.decodedBytes,d,r);if(y)return y;return l}function u(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var En="ERROR: EMPTY CONTENT",Zf="[image attached]";function Lo(n,o){let d=n[n.length-1];if(o.role==="tool"&&d?.role==="tool"&&Array.isArray(d.content)&&Array.isArray(o.content)){d.content.push(...o.content);return}n.push(o)}function Vf(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((o)=>{if(!o||typeof o!=="object")return!1;let d=o;if(d.type==="text")return typeof d.text==="string";if(d.type==="image")return typeof d.data==="string"&&typeof d.mediaType==="string";return!1})}function O(){return{type:"text",text:Q}}function Po(n){return t(W,0,{maxImageEncodedBytes:W,maxImageDecodedBytes:j},n)===null}function Jf(n){try{return new URL(n).protocol}catch{return}}function Mn(n,o){let d=nn(n.mediaType,n.data,{maxImageEncodedBytes:W,maxImageDecodedBytes:j},o);if(!d.ok)return O();return{type:"image-data",data:d.base64,mediaType:d.mediaType}}function Wf(n,o){if(n.image instanceof URL){if(n.image.protocol==="data:"){let s=nn(n.mediaType,n.image.href,{maxImageEncodedBytes:W,maxImageDecodedBytes:j},o);if(!s.ok)return O();return{type:"image",image:`data:${s.mediaType};base64,${s.base64}`,mediaType:s.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return O();if(!Po(o))return O();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let s=Jf(n.image);if(s==="http:"||s==="https:"){if(!Po(o))return O();return{type:"image",image:n.image,mediaType:n.mediaType}}let k=s==="data:",_=nn(n.mediaType??(k?void 0:"image/png"),n.image,{maxImageEncodedBytes:W,maxImageDecodedBytes:j},o);if(!_.ok)return O();return{type:"image",image:k?`data:${_.mediaType};base64,${_.base64}`:_.base64,mediaType:_.mediaType}}let d=n.image.byteLength,r=qn(d),l=n.mediaType?.toLowerCase()??"image/png";if(!yn.includes(l)||t(r,d,{maxImageEncodedBytes:W,maxImageDecodedBytes:j},o))return O();return{type:"image",image:n.image,mediaType:l}}function Gn(n,o,d,r=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let _=[],c=!1,I=!1;for(let T of n){if(T&&typeof T==="object"){let $=T;if($.type==="image"&&typeof $.data==="string"&&typeof $.mediaType==="string"){if(!r){_.push(Q),c=!0,I=!0;continue}let fn={type:"image",data:$.data,mediaType:$.mediaType},N=Mn(fn,d);if(N.type==="image-data")o.push({type:"image",data:N.data,mediaType:N.mediaType});else _.push(N.text);c=!0,I=!0;continue}if($.type==="image"){_.push(Q),c=!0,I=!0;continue}if($.type==="text"&&typeof $.text==="string"){_.push($.text),c=!0;continue}}let Y=Gn(T,o,d,r);_.push(Y.value),c||=Y.changed,I||=Y.mediaChanged}return{value:c?_:n,changed:c,mediaChanged:I}}let l=n;if(l.type==="image"){if(typeof l.data==="string"&&typeof l.mediaType==="string"){if(!r)return{value:Q,changed:!0,mediaChanged:!0};let _={type:"image",data:l.data,mediaType:l.mediaType},c=Mn(_,d);if(c.type==="image-data")return o.push({type:"image",data:c.data,mediaType:c.mediaType}),{value:Zf,changed:!0,mediaChanged:!0};return{value:c.text,changed:!0,mediaChanged:!0}}return{value:Q,changed:!0,mediaChanged:!0}}let y={},s=!1,k=!1;for(let[_,c]of Object.entries(l)){let I=Gn(c,o,d,r);y[_]=I.value,s||=I.changed,k||=I.mediaChanged}return{value:s?y:n,changed:s,mediaChanged:k}}function on(n){if(typeof n==="string")return u(n);if(Array.isArray(n))return n.map((o)=>on(o));if(n!==null&&typeof n==="object"){let o=n,d={};for(let[r,l]of Object.entries(o))d[r]=on(l);return d}return n}function Xo(n,o=!1,d=wn()){if(typeof n==="string")return{type:o?"error-text":"text",value:u(n)};if(!o&&Vf(n))return{type:"content",value:n.map((r)=>r.type==="image"?Mn(r,d):{type:"text",text:u(r.text)})};if(n!==null&&typeof n==="object"){let r=[],l=Gn(n,r,d,!o);if(!o&&r.length>0)return{type:"content",value:[{type:"text",text:typeof l.value==="string"?u(l.value):JSON.stringify(on(l.value))},...r.map((s)=>({type:"image-data",data:s.data,mediaType:s.mediaType}))]};if(l.mediaChanged)return{type:o?"error-json":"json",value:on(l.value)}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:o?"error-json":"json",value:on(n)};return{type:o?"error-text":"text",value:u(String(n))}}function Kf(n,o,d){let r=d?.assistantToolCallArgKey??"input",l=[],y=wn();if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)l.push({role:"system",content:typeof n==="string"?u(n):n});for(let s of o){let k=s.content;if(typeof k==="string"){if(k.trim().length===0){l.push({role:s.role,content:[{type:"text",text:En}]});continue}l.push({role:s.role,content:u(k)});continue}let _=[],c=[];if(k.length===0){l.push({role:s.role,content:[{type:"text",text:En}]});continue}for(let I of k)switch(I.type){case"text":_.push({type:"text",text:u(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"reasoning":_.push({type:"reasoning",text:u(I.text),...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"image":_.push(Wf(I,y));break;case"file":_.push({type:"text",text:Bn(I.path,u(I.content))});break;case"tool-call":if(s.role==="assistant")_.push({type:"tool-call",toolCallId:I.toolCallId,toolName:I.toolName,[r]:I.input,...I.providerOptions?{providerOptions:I.providerOptions}:{}});break;case"tool-result":{c.push({type:"tool-result",toolCallId:I.toolCallId,toolName:I.toolName,output:Xo(I.output,I.isError??!1,y)});break}}if(_.length>0)Lo(l,{role:s.role,content:_});if(c.length>0)Lo(l,{role:"tool",content:c})}return l}var rb=["show","hide","subscription"];function Ho(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function Cf(n,o){if(!n&&!o)return;let d=n?.metadata,r=o?.metadata,l={...n??{},...o??{}};if(Ho(d)&&Ho(r))l.metadata={...d,...r};return l}var dn={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},Qf=void 0;function jf(n,o){if(typeof n==="string"&&n.toLowerCase()in dn)return n.toLowerCase();return o?void 0:void 0}function Zo(n,o){let d=typeof n==="string"?n.toLowerCase():void 0;if(d&&d in dn)return dn[d];if(o?.fallbackEffort)return dn[o.fallbackEffort];return}function Of(n){let o=Zo(n.effort,{fallbackEffort:n.fallbackEffort});if(o===void 0)return;if(o<=0)return 0;let d=n.minimumBudget??1;if(n.maxBudget<d)return;let r=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(r*o),d),n.maxBudget)}function Nf(n){return n instanceof Error?{name:n.name,message:n.message}:n}var Sf=3;function Vo(n){return Math.max(1,Math.ceil(n/3))}function $n(n){let o=new WeakSet;try{return JSON.stringify(n,(d,r)=>{if(typeof r==="bigint")return r.toString();if(typeof r!=="object"||r===null)return r;if(o.has(r))return"[Circular]";return o.add(r),r})??""}catch{return String(n??"")}}function hf(n){let o;try{o=JSON.stringify({systemPrompt:n.systemPrompt,messages:n.messages,tools:n.tools})}catch{o=[$n(n.systemPrompt),$n(n.messages),$n(n.tools)].join(`
4
- `)}return Vo(o.length)}var mf={debug:()=>{},log:()=>{},error:()=>{}};class K extends Error{constructor(n,o){super(`${n} at position ${o}`);this.position=o}}function Jo(n){return/^[0-9A-Fa-f]$/.test(n)}function V(n){return n>="0"&&n<="9"}function Wo(n){return n>=" "}function p(n){return`,:[]/{}()
5
- +`.includes(n)}function Tn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"}function kn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"||n>="0"&&n<="9"}var Yn=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,Un=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function un(n){return`,[]/{}
6
- +`.includes(n)}function Fn(n){return a(n)||pf.test(n)}var pf=/^[[{\w-]$/;function Ln(n){return n===`
7
- `||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function Z(n,o){let d=n.charCodeAt(o);return d===32||d===10||d===9||d===13}function Ko(n,o){let d=n.charCodeAt(o);return d===32||d===9||d===13}function Co(n,o){let d=n.charCodeAt(o);return d===160||d===6158||d>=8192&&d<=8203||d===8239||d===8287||d===12288||d===65279}function a(n){return Pn(n)||cn(n)}function Pn(n){return n==='"'||n==="“"||n==="”"}function Xn(n){return n==='"'}function cn(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function Hn(n){return n==="'"}function v(n,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=n.lastIndexOf(o);return r!==-1?n.substring(0,r)+(d?"":n.substring(r+1)):n}function U(n,o){let d=n.length;if(!Z(n,d-1))return n+o;while(Z(n,d-1))d--;return n.substring(0,d)+o+n.substring(d)}function Qo(n,o,d){return n.substring(0,o)+n.substring(o+d)}function jo(n){return/[,\n][ \t\r]*$/.test(n)}var af={"&quot;":'"',"&amp;":"&","&lt;":"<","&gt;":">","&apos;":"'"},Zn=12;function Vn(n){if(n.charAt(0)!=="&")return null;let o=n.indexOf(";");if(o===-1)return null;let d=n.substring(0,o+1),r=af[d];if(r!==void 0)return{char:r,length:d.length};if(n.charAt(1)==="#"){let l=n.substring(2,o),y=l.charAt(0)==="x"||l.charAt(0)==="X",s=y?l.substring(1):l;if(s.length>0){let k=Number.parseInt(s,y?16:10);if(!Number.isNaN(k)&&k>=0&&k<=1114111)return{char:String.fromCodePoint(k),length:d.length}}}return null}function Oo(n){return n!==null&&n.char==='"'}function No(n){return n!==null&&n.char==="'"}function m(n,o){let d=0;for(let r=0;r<n.length;r++)if(n.charAt(r)===o)d++;return d}function So(n,o){switch(o){case")":return m(n,"(")>m(n,")");case"]":return m(n,"[")>m(n,"]");case"}":return m(n,"{")>m(n,"}");default:return!1}}var io={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},vf={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
8
- `,r:"\r",t:"\t"};function Jn(n){let o=0,d="";if(c(["```","[```","{```"]),!y())Jd();c(["```","```]","```}"]);let l=T(",");if(l)s();if(Fn(n[o])&&jo(d)){if(!l)d=U(d,",");Pd()}else if(l)d=v(d,",");while(n[o]==="}"||n[o]==="]")o++,s();if(o>=n.length)return d;_n();function y(){s();let A=N()||Ld()||S()||M()||Xd()||an(!1)||Hd();return s(),A}function s(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,e=o,D=k(A);do if(D=_(),D)D=k(A);while(D);return o>e}function k(A){let e=A?Z:Ko,D="";while(!0)if(e(n,o))D+=n[o],o++;else if(Co(n,o))D+=" ",o++;else break;if(D.length>0)return d+=D,!0;return!1}function _(){if(n[o]==="/"&&n[o+1]==="*"){while(o<n.length&&!xf(n,o))o++;return o+=2,!0}if(n[o]==="/"&&n[o+1]==="/"){while(o<n.length&&n[o]!==`
9
- `)o++;return!0}return!1}function c(A){if(I(A)){if(Tn(n[o]))while(o<n.length&&kn(n[o]))o++;return s(),!0}return!1}function I(A){k(!0);for(let e of A){let D=o+e.length;if(n.slice(o,D)===e)return o=D,!0}return!1}function T(A){if(n[o]===A)return d+=n[o],o++,!0;return!1}function Y(A){if(n[o]===A)return o++,!0;return!1}function $(){return Y("\\")}function fn(){if(s(),n[o]==="."&&n[o+1]==="."&&n[o+2]===".")return o+=3,s(),Y(","),!0;return!1}function N(){if(n[o]==="{"){if(d+="{",o++,s(),Y(","))s();let A=!0;while(o<n.length&&n[o]!=="}"){let e;if(!A){if(e=T(","),!e)d=U(d,",");s()}else e=!0;if(fn(),!(S()||an(!0))){if(n[o]==="}"||n[o]==="{"||n[o]==="]"||n[o]==="["||n[o]===void 0){if(!A)d=v(d,",")}else Wd();break}s();let P=T(":"),h=o>=n.length;if(!P)if(Fn(n[o])||h)d=U(d,":");else zn();if(!y())if(P||h)d+="null";else zn();A=!1}if(n[o]==="}")d+="}",o++;else d=U(d,"}");return!0}return!1}function Ld(){if(n[o]==="["){if(d+="[",o++,s(),Y(","))s();let A=!0;while(o<n.length&&n[o]!=="]"){if(!A){if(!T(","))d=U(d,",")}if(fn(),!y()){if(!A)d=v(d,",");break}A=!1}if(n[o]==="]")d+="]",o++;else d=U(d,"]");return!0}return!1}function Pd(){let A=!0,e=!0;while(e){if(!A){if(!T(","))d=U(d,",")}else A=!1;e=y()}if(!e)d=v(d,",");d=`[
3
+ </file_content>`}function qf(n,o="act"){return`<user_input mode="${o}">${n}</user_input>`}function Ef(n,o){return`<user_command slash="${o}">${n}</user_command>`}function Mf(n,o){return`<mode_notice>The user switched from ${n} mode to ${o} mode before sending this message.</mode_notice>`}function Gf(){let n=null;return{record(o,d){if(o===d)return;if(n){n=n.from===d?null:{from:n.from,to:d};return}n={from:o,to:d}},consume(){let o=n;return n=null,o}}}function $f(n,o){let d=n.trim(),r=new RegExp(`^<${o}\\b([^>]*)>([\\s\\S]*?)<\\/${o}>$`,"i").exec(d);if(!r)return;return{attrs:r[1]??"",content:r[2]??""}}function Tf(n,o){return new RegExp(`${o}="([^"]+)"`,"i").exec(n)?.[1]?.trim()||void 0}function Mo(n){if(!n?.trim())return;let o=$f(n,"user_command");if(!o)return;let d=Tf(o.attrs,"slash");if(!d)return;return{slash:d,content:o.content.trim()}}function Go(n){if(!n?.trim())return"";let o=n.trim();for(let d of["user_input","user_command"]){let r=To(o,d);o=(r!==o?r:o.replace(new RegExp(`<${d}[^>]*>`,"g"),"")).trim()}return o}function $o(n){if(!n?.trim())return"";return Yf(n,"mode_notice").trim()}function Yf(n,o){let d=`<${o}>`,r=`</${o}>`,l=n,y=l.indexOf(d);while(y!==-1){let s=l.indexOf(r,y+d.length);if(s===-1)break;l=l.slice(0,y)+l.slice(s+r.length),y=l.indexOf(d,y)}return l}function Ff(n){let o=$o(Go(n)),d=Mo(n);if(!d)return o;if(d.slash.toLowerCase()==="team"){let l=o.toLowerCase().startsWith("spawn a team of agents for the following task:")?o.slice(46).trim():o;return l?`/team ${l}`:"/team"}return o?`/${d.slash} ${o}`:`/${d.slash}`}function To(n,o){if(!n?.trim())return"";if(!o)return n;let d=new RegExp(`<${o}\\b[^>]*>([\\s\\S]*?)</${o}>`,"g");return n.replace(d,"$1")}var Q="[media omitted: invalid or exceeds size limit]",yn=["image/png","image/jpeg","image/gif","image/webp"],Uf=5242880,K=5242880,j=6291456,Lf=8388608;function Xf(n){return n.length}function Yo(n){let o=n.endsWith("==")?2:n.endsWith("=")?1:0;return Math.floor(n.length*3/4)-o}function Hf(n=5242880){return Math.floor(n*3/4)}function qn(n){return Math.ceil(n/3)*4}function Fo(n={}){return{maxImageEncodedBytes:n.maxImageEncodedBytes??5242880,maxImageDecodedBytes:n.maxImageDecodedBytes??6291456,maxTotalMediaBytes:n.maxTotalMediaBytes??8388608}}function wn(){return{totalEncodedBytes:0,keptImages:0,omittedImages:0,omittedReasons:{}}}function sn(n,o){n.omittedImages+=1,n.omittedReasons[o]=(n.omittedReasons[o]??0)+1}function t(n,o,d,r){let l=Fo(d);if(n>l.maxImageEncodedBytes){let y={ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${l.maxImageEncodedBytes} byte encoded limit`};return sn(r,y.reason),y}if(o>l.maxImageDecodedBytes){let y={ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l.maxImageDecodedBytes} byte decoded limit`};return sn(r,y.reason),y}if(r.totalEncodedBytes+n>l.maxTotalMediaBytes){let y={ok:!1,reason:"total_limit",message:`Image media exceeds the ${l.maxTotalMediaBytes} byte total media limit`};return sn(r,y.reason),y}return r.totalEncodedBytes+=n,r.keptImages+=1,null}function Uo(n){return n>=65&&n<=90||n>=97&&n<=122||n>=48&&n<=57||n===43||n===47}function Pf(n){return n.length>0&&Lo(n,0,n.length)}function Lo(n,o,d){let r=d-o;if(r%4!==0)return!1;let l=d;if(r>=2&&n.charCodeAt(d-2)===61&&n.charCodeAt(d-1)===61)l-=2;else if(r>=1&&n.charCodeAt(d-1)===61)l-=1;for(let y=o;y<l;y++)if(!Uo(n.charCodeAt(y)))return!1;for(let y=l;y<d;y++)if(n.charCodeAt(y)!==61)return!1;return!0}function Zf(n,o,d){return d-o>=5&&(n.charCodeAt(o)|32)===100&&(n.charCodeAt(o+1)|32)===97&&(n.charCodeAt(o+2)|32)===116&&(n.charCodeAt(o+3)|32)===97&&n.charCodeAt(o+4)===58}function Vf(n){let o=0,d=n.length;while(o<d&&/\s/.test(n[o]??""))o+=1;while(d>o&&/\s/.test(n[d-1]??""))d-=1;return{start:o,end:d}}function Jf(n,o,d){if(!Zf(n,o,d))return;let r=o+5,l=n.indexOf(",",r);if(l===-1||l>=d)return;if(l-r>128)return;let y=n.slice(r,l).toLowerCase(),s=";base64";if(!y.endsWith(s))return;let k=y.slice(0,-s.length);if(!k||k.includes(";"))return;return{mediaType:k,base64Start:l+1,base64End:d}}function Xo(n,o,d={}){let r=d.maxEncodedBytes??5242880,l=d.maxDecodedBytes??6291456,y=new Set(d.supportedMediaTypes??yn),s=n?.toLowerCase(),k=Vf(o),I=k.start,c=k.end,R=Jf(o,k.start,k.end);if(R){if(s&&s!==R.mediaType)return{ok:!1,reason:"media_type_mismatch",message:`Image media type ${n} does not match data URL type ${R.mediaType}`};s=R.mediaType,I=R.base64Start,c=R.base64End}if(!s||!y.has(s))return{ok:!1,reason:"unsupported_media_type",message:`Unsupported image media type: ${n??"unknown"}`};let T=c-I;if(T===0)return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};if(T>r)return{ok:!1,reason:"encoded_limit",message:`Image media exceeds the ${r} byte encoded limit`};if(!Lo(o,I,c))return{ok:!1,reason:"invalid_base64",message:"Image media must contain valid base64"};let Y=o.slice(I,c),$=Yo(Y);if($>l)return{ok:!1,reason:"decoded_limit",message:`Image media exceeds the ${l} byte decoded limit`};return{ok:!0,mediaType:s,base64:Y,encodedBytes:T,decodedBytes:$}}function nn(n,o,d,r){let l=Xo(n,o,{maxEncodedBytes:d.maxImageEncodedBytes,maxDecodedBytes:d.maxImageDecodedBytes});if(!l.ok)return sn(r,l.reason),l;let y=t(l.encodedBytes,l.decodedBytes,d,r);if(y)return y;return l}function U(n){return n.replace(/[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]/g,"�")}var En="ERROR: EMPTY CONTENT",Wf="[image attached]";function Ho(n,o){let d=n[n.length-1];if(o.role==="tool"&&d?.role==="tool"&&Array.isArray(d.content)&&Array.isArray(o.content)){d.content.push(...o.content);return}n.push(o)}function Kf(n){if(!Array.isArray(n)||n.length===0)return!1;return n.every((o)=>{if(!o||typeof o!=="object")return!1;let d=o;if(d.type==="text")return typeof d.text==="string";if(d.type==="image")return typeof d.data==="string"&&typeof d.mediaType==="string";return!1})}function O(){return{type:"text",text:Q}}function Po(n){return t(K,0,{maxImageEncodedBytes:K,maxImageDecodedBytes:j},n)===null}function Cf(n){try{return new URL(n).protocol}catch{return}}function Mn(n,o){let d=nn(n.mediaType,n.data,{maxImageEncodedBytes:K,maxImageDecodedBytes:j},o);if(!d.ok)return O();return{type:"image-data",data:d.base64,mediaType:d.mediaType}}function uf(n,o){if(n.image instanceof URL){if(n.image.protocol==="data:"){let s=nn(n.mediaType,n.image.href,{maxImageEncodedBytes:K,maxImageDecodedBytes:j},o);if(!s.ok)return O();return{type:"image",image:`data:${s.mediaType};base64,${s.base64}`,mediaType:s.mediaType}}if(n.image.protocol!=="http:"&&n.image.protocol!=="https:")return O();if(!Po(o))return O();return{type:"image",image:n.image,mediaType:n.mediaType}}if(typeof n.image==="string"){let s=Cf(n.image);if(s==="http:"||s==="https:"){if(!Po(o))return O();return{type:"image",image:n.image,mediaType:n.mediaType}}let k=s==="data:",I=nn(n.mediaType??(k?void 0:"image/png"),n.image,{maxImageEncodedBytes:K,maxImageDecodedBytes:j},o);if(!I.ok)return O();return{type:"image",image:k?`data:${I.mediaType};base64,${I.base64}`:I.base64,mediaType:I.mediaType}}let d=n.image.byteLength,r=qn(d),l=n.mediaType?.toLowerCase()??"image/png";if(!yn.includes(l)||t(r,d,{maxImageEncodedBytes:K,maxImageDecodedBytes:j},o))return O();return{type:"image",image:n.image,mediaType:l}}function Gn(n,o,d,r=!0){if(n==null||typeof n!=="object")return{value:n,changed:!1,mediaChanged:!1};if(Array.isArray(n)){let I=[],c=!1,R=!1;for(let T of n){if(T&&typeof T==="object"){let $=T;if($.type==="image"&&typeof $.data==="string"&&typeof $.mediaType==="string"){if(!r){I.push(Q),c=!0,R=!0;continue}let fn={type:"image",data:$.data,mediaType:$.mediaType},N=Mn(fn,d);if(N.type==="image-data")o.push({type:"image",data:N.data,mediaType:N.mediaType});else I.push(N.text);c=!0,R=!0;continue}if($.type==="image"){I.push(Q),c=!0,R=!0;continue}if($.type==="text"&&typeof $.text==="string"){I.push($.text),c=!0;continue}}let Y=Gn(T,o,d,r);I.push(Y.value),c||=Y.changed,R||=Y.mediaChanged}return{value:c?I:n,changed:c,mediaChanged:R}}let l=n;if(l.type==="image"){if(typeof l.data==="string"&&typeof l.mediaType==="string"){if(!r)return{value:Q,changed:!0,mediaChanged:!0};let I={type:"image",data:l.data,mediaType:l.mediaType},c=Mn(I,d);if(c.type==="image-data")return o.push({type:"image",data:c.data,mediaType:c.mediaType}),{value:Wf,changed:!0,mediaChanged:!0};return{value:c.text,changed:!0,mediaChanged:!0}}return{value:Q,changed:!0,mediaChanged:!0}}let y={},s=!1,k=!1;for(let[I,c]of Object.entries(l)){let R=Gn(c,o,d,r);y[I]=R.value,s||=R.changed,k||=R.mediaChanged}return{value:s?y:n,changed:s,mediaChanged:k}}function on(n){if(typeof n==="string")return U(n);if(Array.isArray(n))return n.map((o)=>on(o));if(n!==null&&typeof n==="object"){let o=n,d={};for(let[r,l]of Object.entries(o))d[r]=on(l);return d}return n}function Zo(n,o=!1,d=wn()){if(typeof n==="string")return{type:o?"error-text":"text",value:U(n)};if(!o&&Kf(n))return{type:"content",value:n.map((r)=>r.type==="image"?Mn(r,d):{type:"text",text:U(r.text)})};if(n!==null&&typeof n==="object"){let r=[],l=Gn(n,r,d,!o);if(!o&&r.length>0)return{type:"content",value:[{type:"text",text:typeof l.value==="string"?U(l.value):JSON.stringify(on(l.value))},...r.map((s)=>({type:"image-data",data:s.data,mediaType:s.mediaType}))]};if(l.mediaChanged)return{type:o?"error-json":"json",value:on(l.value)}}if(n===null||typeof n==="boolean"||typeof n==="number"||typeof n==="object")return{type:o?"error-json":"json",value:on(n)};return{type:o?"error-text":"text",value:U(String(n))}}function Qf(n,o,d){let r=d?.assistantToolCallArgKey??"input",l=[],y=wn();if(typeof n==="string"&&n.trim().length>0||Array.isArray(n)&&n.length>0)l.push({role:"system",content:typeof n==="string"?U(n):n});for(let s of o){let k=s.content;if(typeof k==="string"){if(k.trim().length===0){l.push({role:s.role,content:[{type:"text",text:En}]});continue}l.push({role:s.role,content:U(k)});continue}let I=[],c=[];if(k.length===0){l.push({role:s.role,content:[{type:"text",text:En}]});continue}for(let R of k)switch(R.type){case"text":I.push({type:"text",text:U(R.text),...R.providerOptions?{providerOptions:R.providerOptions}:{}});break;case"reasoning":I.push({type:"reasoning",text:U(R.text),...R.providerOptions?{providerOptions:R.providerOptions}:{}});break;case"image":I.push(uf(R,y));break;case"file":I.push({type:"text",text:Bn(R.path,U(R.content))});break;case"tool-call":if(s.role==="assistant")I.push({type:"tool-call",toolCallId:R.toolCallId,toolName:R.toolName,[r]:R.input,...R.providerOptions?{providerOptions:R.providerOptions}:{}});break;case"tool-result":{c.push({type:"tool-result",toolCallId:R.toolCallId,toolName:R.toolName,output:Zo(R.output,R.isError??!1,y)});break}}if(I.length>0)Ho(l,{role:s.role,content:I});if(c.length>0)Ho(l,{role:"tool",content:c})}return l}var Ab=["show","hide","subscription"];function Vo(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function jf(n,o){if(!n&&!o)return;let d=n?.metadata,r=o?.metadata,l={...n??{},...o??{}};if(Vo(d)&&Vo(r))l.metadata={...d,...r};return l}var dn={xhigh:0.95,high:0.8,medium:0.5,low:0.2,minimal:0.1,none:0},Of=void 0;function Nf(n,o){if(typeof n==="string"&&n.toLowerCase()in dn)return n.toLowerCase();return o?void 0:void 0}function Jo(n,o){let d=typeof n==="string"?n.toLowerCase():void 0;if(d&&d in dn)return dn[d];if(o?.fallbackEffort)return dn[o.fallbackEffort];return}function Sf(n){let o=Jo(n.effort,{fallbackEffort:n.fallbackEffort});if(o===void 0)return;if(o<=0)return 0;let d=n.minimumBudget??1;if(n.maxBudget<d)return;let r=n.scaleTokens??n.maxBudget;return Math.min(Math.max(Math.floor(r*o),d),n.maxBudget)}function hf(n){return n instanceof Error?{name:n.name,message:n.message}:n}var mf=3;function Wo(n){return Math.max(1,Math.ceil(n/3))}function $n(n){let o=new WeakSet;try{return JSON.stringify(n,(d,r)=>{if(typeof r==="bigint")return r.toString();if(typeof r!=="object"||r===null)return r;if(o.has(r))return"[Circular]";return o.add(r),r})??""}catch{return String(n??"")}}function af(n){let o;try{o=JSON.stringify({systemPrompt:n.systemPrompt,messages:n.messages,tools:n.tools})}catch{o=[$n(n.systemPrompt),$n(n.messages),$n(n.tools)].join(`
4
+ `)}return Wo(o.length)}var vf={debug:()=>{},log:()=>{},error:()=>{}};class C extends Error{constructor(n,o){super(`${n} at position ${o}`);this.position=o}}function Ko(n){return/^[0-9A-Fa-f]$/.test(n)}function J(n){return n>="0"&&n<="9"}function Co(n){return n>=" "}function a(n){return`,:[]/{}()
5
+ +`.includes(n)}function Tn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"}function kn(n){return n>="a"&&n<="z"||n>="A"&&n<="Z"||n==="_"||n==="$"||n>="0"&&n<="9"}var Yn=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,Fn=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;function Un(n){return`,[]/{}
6
+ +`.includes(n)}function Ln(n){return v(n)||pf.test(n)}var pf=/^[[{\w-]$/;function Xn(n){return n===`
7
+ `||n==="\r"||n==="\t"||n==="\b"||n==="\f"}function V(n,o){let d=n.charCodeAt(o);return d===32||d===10||d===9||d===13}function uo(n,o){let d=n.charCodeAt(o);return d===32||d===9||d===13}function Qo(n,o){let d=n.charCodeAt(o);return d===160||d===6158||d>=8192&&d<=8203||d===8239||d===8287||d===12288||d===65279}function v(n){return Hn(n)||cn(n)}function Hn(n){return n==='"'||n==="“"||n==="”"}function Pn(n){return n==='"'}function cn(n){return n==="'"||n==="‘"||n==="’"||n==="`"||n==="´"}function Zn(n){return n==="'"}function p(n,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=n.lastIndexOf(o);return r!==-1?n.substring(0,r)+(d?"":n.substring(r+1)):n}function F(n,o){let d=n.length;if(!V(n,d-1))return n+o;while(V(n,d-1))d--;return n.substring(0,d)+o+n.substring(d)}function jo(n,o,d){return n.substring(0,o)+n.substring(o+d)}function Oo(n){return/[,\n][ \t\r]*$/.test(n)}var xf={"&quot;":'"',"&amp;":"&","&lt;":"<","&gt;":">","&apos;":"'"},Vn=12;function Jn(n){if(n.charAt(0)!=="&")return null;let o=n.indexOf(";");if(o===-1)return null;let d=n.substring(0,o+1),r=xf[d];if(r!==void 0)return{char:r,length:d.length};if(n.charAt(1)==="#"){let l=n.substring(2,o),y=l.charAt(0)==="x"||l.charAt(0)==="X",s=y?l.substring(1):l;if(s.length>0){let k=Number.parseInt(s,y?16:10);if(!Number.isNaN(k)&&k>=0&&k<=1114111)return{char:String.fromCodePoint(k),length:d.length}}}return null}function No(n){return n!==null&&n.char==='"'}function So(n){return n!==null&&n.char==="'"}function m(n,o){let d=0;for(let r=0;r<n.length;r++)if(n.charAt(r)===o)d++;return d}function ho(n,o){switch(o){case")":return m(n,"(")>m(n,")");case"]":return m(n,"[")>m(n,"]");case"}":return m(n,"{")>m(n,"}");default:return!1}}var io={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},zf={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
8
+ `,r:"\r",t:"\t"};function Wn(n){let o=0,d="";if(c(["```","[```","{```"]),!y())Cd();c(["```","```]","```}"]);let l=T(",");if(l)s();if(Ln(n[o])&&Oo(d)){if(!l)d=F(d,",");Zd()}else if(l)d=p(d,",");while(n[o]==="}"||n[o]==="]")o++,s();if(o>=n.length)return d;In();function y(){s();let A=N()||Pd()||S()||M()||Vd()||pn(!1)||Jd();return s(),A}function s(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,_=o,e=k(A);do if(e=I(),e)e=k(A);while(e);return o>_}function k(A){let _=A?V:uo,e="";while(!0)if(_(n,o))e+=n[o],o++;else if(Qo(n,o))e+=" ",o++;else break;if(e.length>0)return d+=e,!0;return!1}function I(){if(n[o]==="/"&&n[o+1]==="*"){while(o<n.length&&!tf(n,o))o++;return o+=2,!0}if(n[o]==="/"&&n[o+1]==="/"){while(o<n.length&&n[o]!==`
9
+ `)o++;return!0}return!1}function c(A){if(R(A)){if(Tn(n[o]))while(o<n.length&&kn(n[o]))o++;return s(),!0}return!1}function R(A){k(!0);for(let _ of A){let e=o+_.length;if(n.slice(o,e)===_)return o=e,!0}return!1}function T(A){if(n[o]===A)return d+=n[o],o++,!0;return!1}function Y(A){if(n[o]===A)return o++,!0;return!1}function $(){return Y("\\")}function fn(){if(s(),n[o]==="."&&n[o+1]==="."&&n[o+2]===".")return o+=3,s(),Y(","),!0;return!1}function N(){if(n[o]==="{"){if(d+="{",o++,s(),Y(","))s();let A=!0;while(o<n.length&&n[o]!=="}"){let _;if(!A){if(_=T(","),!_)d=F(d,",");s()}else _=!0;if(fn(),!(S()||pn(!0))){if(n[o]==="}"||n[o]==="{"||n[o]==="]"||n[o]==="["||n[o]===void 0){if(!A)d=p(d,",")}else ud();break}s();let H=T(":"),i=o>=n.length;if(!H)if(Ln(n[o])||i)d=F(d,":");else tn();if(!y())if(H||i)d+="null";else tn();A=!1}if(n[o]==="}")d+="}",o++;else d=F(d,"}");return!0}return!1}function Pd(){if(n[o]==="["){if(d+="[",o++,s(),Y(","))s();let A=!0;while(o<n.length&&n[o]!=="]"){if(!A){if(!T(","))d=F(d,",")}if(fn(),!y()){if(!A)d=p(d,",");break}A=!1}if(n[o]==="]")d+="]",o++;else d=F(d,"]");return!0}return!1}function Zd(){let A=!0,_=!0;while(_){if(!A){if(!T(","))d=F(d,",")}else A=!1;_=y()}if(!_)d=p(d,",");d=`[
10
10
  ${d}
11
- ]`}function S(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,D=n[o]==="\\";if(D){if(o++,!a(n[o]))_n()}let P=n[o]==="&"?Vn(n.slice(o,o+Zn)):null,h=Oo(P)||No(P);if(a(n[o])||h){let tn=Xn(n[o])?Xn:Hn(n[o])?Hn:cn(n[o])?cn:Pn,rn=o,ln=d.length,q='"';o+=h&&P?P.length:1;while(!0){if(o>=n.length){let G=vn(o-1);if(!A&&p(n.charAt(G)))return o=rn,d=d.substring(0,ln),S(!0);return q=U(q,'"'),d+=q,!0}if(o===e)return q=U(q,'"'),d+=q,!0;let X=h&&n[o]==="&"?Vn(n.slice(o,o+Zn)):null;if(X&&P?X.char===P.char:tn(n[o])){let G=o,In=q.length;if(q+='"',o+=X?X.length:1,d+=q,s(!1),A||o>=n.length||p(n[o])&&!So(q,n[o])||a(n[o])&&!Zd(o)||V(n[o]))return pn(),!0;if(n[o]==="\\")_n();let J=vn(G-1),no=n.charAt(J);if(no===",")return o=rn,d=d.substring(0,ln),S(!1,J);if(p(no))return o=rn,d=d.substring(0,ln),S(!0);d=d.substring(0,ln),o=G+(X?X.length:1),q=`${q.substring(0,In)}\\${q.substring(In)}`}else if(A&&un(n[o])){if(n[o-1]===":"&&Yn.test(n.substring(rn+1,o+2)))while(o<n.length&&Un.test(n[o]))q+=n[o],o++;return q=U(q,'"'),d+=q,pn(),!0}else if(X){let G=X.char;if(G==='"')q+="\\\"";else if(Ln(G))q+=io[G];else q+=G;o+=X.length}else if(n[o]==="\\"){let G=n.charAt(o+1);if(vf[G]!==void 0)q+=n.slice(o,o+2),o+=2;else if(G==="u"){let J=2;while(J<6&&Jo(n[o+J]))J++;if(J===6)q+=n.slice(o,o+6),o+=6;else if(o+J>=n.length)o=n.length;else Kd()}else if(G===`
12
- `)q+="\\n",o+=2;else q+=G,o+=2}else{let G=n.charAt(o);if(G==='"'&&n[o-1]!=="\\")q+=`\\${G}`,o++;else if(Ln(G))q+=io[G],o++;else{if(!Wo(G))Vd(G);q+=G,o++}}if(D)$()}}return!1}function pn(){let A=!1;s();while(n[o]==="+"){A=!0,o++,s(),d=v(d,'"',!0);let e=d.length;if(S())d=Qo(d,e,1);else d=U(d,'"')}return A}function M(){let A=o,e="",D=!1;if(n[o]==="-"){if(e+=n[o],o++,!V(n[o])&&xn())e+="0"}if(n[o]==="0"&&V(n[o+1]))D=!0;while(V(n[o]))e+=n[o],o++;if(n[o]==="."){if(e===""||e==="-")e+="0";if(e+=n[o],o++,!V(n[o]))e+="0";while(V(n[o]))e+=n[o],o++}if(o>A){if(n[o]==="e"||n[o]==="E"){if(e==="-")D=!0;if(e+=n[o],o++,n[o]==="-"||n[o]==="+")e+=n[o],o++;if(!V(n[o]))e+="0";while(V(n[o]))e+=n[o],o++}if(!xn())return o=A,!1;return d+=D?`"${n.substring(A,o)}"`:e,!0}return!1}function Xd(){return i("true","true")||i("false","false")||i("null","null")||i("True","true")||i("False","false")||i("None","null")}function i(A,e){if(n.slice(o,o+A.length)===A&&!kn(n[o+A.length]))return d+=e,o+=A.length,!0;return!1}function an(A){let e=o;if(Tn(n[o])){while(o<n.length&&kn(n[o]))o++;let D=o;while(Z(n,D))D++;if(n[D]==="("){if(o=D+1,y(),n[o]===")"){if(o++,n[o]===";")o++}return!0}}while(o<n.length&&!un(n[o])&&!a(n[o])&&(!A||n[o]!==":"))o++;if(n[o-1]===":"&&Yn.test(n.substring(e,o+2)))while(o<n.length&&Un.test(n[o]))o++;if(o>e){while(Z(n,o-1)&&o>0)o--;let D=n.slice(e,o);if(d+=D==="undefined"?"null":JSON.stringify(D),n[o]==='"')o++;return!0}}function Hd(){if(n[o]==="/"){let A=o;o++;while(o<n.length&&(n[o]!=="/"||n[o-1]==="\\"))o++;return o++,d+=JSON.stringify(n.substring(A,o)),!0}}function vn(A){let e=A;while(e>0&&Z(n,e))e--;return e}function Zd(A){let e=A+1;while(e<n.length&&Z(n,e))e++;return e>=n.length||p(n[e])}function xn(){return o>=n.length||p(n[o])||Z(n,o)}function Vd(A){throw new K(`Invalid character ${JSON.stringify(A)}`,o)}function _n(){throw new K(`Unexpected character ${JSON.stringify(n[o])}`,o)}function Jd(){throw new K("Unexpected end of json string",n.length)}function Wd(){throw new K("Object key expected",o)}function zn(){throw new K("Colon expected",o)}function Kd(){let A=n.slice(o,o+6);throw new K(`Invalid unicode character "${A}"`,o)}}function xf(n,o){return n[o]==="*"&&n[o+1]==="/"}var zf=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function tf(n){let o=n.match(zf);if(!o)return;let[,d,r]=o,l=r.trim();if(!l)return;let y=l[0];if(y==='"'||y==="{"||y==="["||l==="true"||l==="false"||l==="null"||Number.isFinite(Number(l)))return;return JSON.parse(`{"${d}":${JSON.stringify(l)}}`)}var nr=[(n)=>JSON.parse(n),(n)=>JSON.parse(Jn(n)),tf];function or(n){if(typeof n!=="string")return n;let o=n.trimStart();if(o[0]!=="{"&&o[0]!=="[")return n;for(let d of nr)try{let r=d(o);if(r!==void 0)return r}catch{}return n}function dr(n){let o=new WeakSet;try{return JSON.stringify(n,(r,l)=>{if(typeof l==="bigint")return l.toString();if(l&&typeof l==="object"){if(o.has(l))return"[Circular]";o.add(l)}return l})??"null"}catch{return String(n)}}function fr(n){try{return JSON.parse(n)}catch{return}}function x(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function rr(n){let o=n.type;if(typeof o==="string")return[o];return Array.isArray(o)?o.filter((d)=>typeof d==="string"):[]}function Wn(n,o){if(rr(n).includes(o))return!0;for(let r of["anyOf","oneOf","allOf"]){let l=n[r];if(Array.isArray(l)&&l.some((y)=>x(y)&&Wn(y,o)))return!0}return!1}function lr(n,o){if(typeof n!=="string")return n;let d=n.trim(),r=Wn(o,"array"),l=Wn(o,"object");if((!r||!d.startsWith("["))&&(!l||!d.startsWith("{")))return n;try{let y=JSON.parse(d);if(Array.isArray(y))return r?y:n;if(x(y))return l?y:n;return n}catch{return n}}function Kn(n,o){let d=lr(n,o);if(Array.isArray(d)){let s=o.items;if(!x(s))return d;let k=!1,_=d.map((c)=>{let I=Kn(c,s);return k||=I!==c,I});return k?_:d}if(!x(d))return d;let r=o.properties;if(!x(r))return d;let l=!1,y={...d};for(let[s,k]of Object.entries(r)){if(!(s in d)||!x(k))continue;let _=Kn(d[s],k);if(_!==d[s])y[s]=_,l=!0}return l?y:d}function br(n){if(typeof globalThis.atob==="function")try{let o=globalThis.atob(n),d=Uint8Array.from(o,(r)=>r.charCodeAt(0));return new TextDecoder().decode(d)}catch{return null}if(typeof Buffer<"u")try{return Buffer.from(n,"base64").toString("utf8")}catch{return null}return null}function gr(n){let o=n?.trim();if(!o)return null;try{let d=o.split(".");if(d.length!==3)return null;let r=d[1];if(!r)return null;let l=r.replace(/-/g,"+").replace(/_/g,"/"),y=l.padEnd(l.length+(4-l.length%4)%4,"="),s=br(y);return s?JSON.parse(s):null}catch{return null}}function sr(n){return Object.fromEntries(Object.entries(n).filter(([,o])=>o!==void 0))}function yr(n){let o=n.replaceAll("\\","/"),d=o.lastIndexOf("/");return(d>=0?o.slice(d+1):o).toLowerCase()}function wr(n){return n==="win32"?"powershell":"/bin/bash"}function kr(n,o){let d=yr(n);if(d==="powershell"||d==="powershell.exe"||d==="pwsh"||d==="pwsh.exe")return["-NoProfile","-NonInteractive","-Command",o];if(d==="cmd"||d==="cmd.exe")return["/d","/s","/c",o];if(d==="wsl"||d==="wsl.exe")return["bash","-c",o];return["-c",o]}function cr(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function Ar(n){let o=n?.trim();return o?o:void 0}function ho(n,o){if(n.length<=o)return n;return`${n.slice(0,o-1)}…`}function er(n,o="/",d=100){if(!n||n.length<=d)return n||"";let r=n.split(o)?.shift()?.trim()?.slice(0,d-1);return r?`${r}…`:ho(n,d)}function _r(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function Ir(n){return n.charCodeAt(0)===65279?n.slice(1):n}function Rr(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 Dr(n){let o=Math.max(0,Math.floor(n/1000)),d=Math.floor(o/86400),r=Math.floor(o%86400/3600),l=Math.floor(o%3600/60),y=o%60;if(d>0)return`${d}d ${r}h`;if(r>0)return`${r}h ${l}m`;if(l>0)return`${l}m ${y}s`;return`${y}s`}import{z as mo}from"zod";function Br(n,o){let d=n.safeParse(o);if(!d.success)throw Error(mo.prettifyError(d.error));return d.data}function Cn(n){return mo.toJSONSchema(n)}function Qn(n){return n==="cline"||n==="cline-pass"}var po=`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.
11
+ ]`}function S(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,_=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,e=n[o]==="\\";if(e){if(o++,!v(n[o]))In()}let H=n[o]==="&"?Jn(n.slice(o,o+Vn)):null,i=No(H)||So(H);if(v(n[o])||i){let no=Pn(n[o])?Pn:Zn(n[o])?Zn:cn(n[o])?cn:Hn,rn=o,ln=d.length,q='"';o+=i&&H?H.length:1;while(!0){if(o>=n.length){let G=xn(o-1);if(!A&&a(n.charAt(G)))return o=rn,d=d.substring(0,ln),S(!0);return q=F(q,'"'),d+=q,!0}if(o===_)return q=F(q,'"'),d+=q,!0;let P=i&&n[o]==="&"?Jn(n.slice(o,o+Vn)):null;if(P&&H?P.char===H.char:no(n[o])){let G=o,Rn=q.length;if(q+='"',o+=P?P.length:1,d+=q,s(!1),A||o>=n.length||a(n[o])&&!ho(q,n[o])||v(n[o])&&!Wd(o)||J(n[o]))return vn(),!0;if(n[o]==="\\")In();let W=xn(G-1),oo=n.charAt(W);if(oo===",")return o=rn,d=d.substring(0,ln),S(!1,W);if(a(oo))return o=rn,d=d.substring(0,ln),S(!0);d=d.substring(0,ln),o=G+(P?P.length:1),q=`${q.substring(0,Rn)}\\${q.substring(Rn)}`}else if(A&&Un(n[o])){if(n[o-1]===":"&&Yn.test(n.substring(rn+1,o+2)))while(o<n.length&&Fn.test(n[o]))q+=n[o],o++;return q=F(q,'"'),d+=q,vn(),!0}else if(P){let G=P.char;if(G==='"')q+="\\\"";else if(Xn(G))q+=io[G];else q+=G;o+=P.length}else if(n[o]==="\\"){let G=n.charAt(o+1);if(zf[G]!==void 0)q+=n.slice(o,o+2),o+=2;else if(G==="u"){let W=2;while(W<6&&Ko(n[o+W]))W++;if(W===6)q+=n.slice(o,o+6),o+=6;else if(o+W>=n.length)o=n.length;else Qd()}else if(G===`
12
+ `)q+="\\n",o+=2;else q+=G,o+=2}else{let G=n.charAt(o);if(G==='"'&&n[o-1]!=="\\")q+=`\\${G}`,o++;else if(Xn(G))q+=io[G],o++;else{if(!Co(G))Kd(G);q+=G,o++}}if(e)$()}}return!1}function vn(){let A=!1;s();while(n[o]==="+"){A=!0,o++,s(),d=p(d,'"',!0);let _=d.length;if(S())d=jo(d,_,1);else d=F(d,'"')}return A}function M(){let A=o,_="",e=!1;if(n[o]==="-"){if(_+=n[o],o++,!J(n[o])&&zn())_+="0"}if(n[o]==="0"&&J(n[o+1]))e=!0;while(J(n[o]))_+=n[o],o++;if(n[o]==="."){if(_===""||_==="-")_+="0";if(_+=n[o],o++,!J(n[o]))_+="0";while(J(n[o]))_+=n[o],o++}if(o>A){if(n[o]==="e"||n[o]==="E"){if(_==="-")e=!0;if(_+=n[o],o++,n[o]==="-"||n[o]==="+")_+=n[o],o++;if(!J(n[o]))_+="0";while(J(n[o]))_+=n[o],o++}if(!zn())return o=A,!1;return d+=e?`"${n.substring(A,o)}"`:_,!0}return!1}function Vd(){return h("true","true")||h("false","false")||h("null","null")||h("True","true")||h("False","false")||h("None","null")}function h(A,_){if(n.slice(o,o+A.length)===A&&!kn(n[o+A.length]))return d+=_,o+=A.length,!0;return!1}function pn(A){let _=o;if(Tn(n[o])){while(o<n.length&&kn(n[o]))o++;let e=o;while(V(n,e))e++;if(n[e]==="("){if(o=e+1,y(),n[o]===")"){if(o++,n[o]===";")o++}return!0}}while(o<n.length&&!Un(n[o])&&!v(n[o])&&(!A||n[o]!==":"))o++;if(n[o-1]===":"&&Yn.test(n.substring(_,o+2)))while(o<n.length&&Fn.test(n[o]))o++;if(o>_){while(V(n,o-1)&&o>0)o--;let e=n.slice(_,o);if(d+=e==="undefined"?"null":JSON.stringify(e),n[o]==='"')o++;return!0}}function Jd(){if(n[o]==="/"){let A=o;o++;while(o<n.length&&(n[o]!=="/"||n[o-1]==="\\"))o++;return o++,d+=JSON.stringify(n.substring(A,o)),!0}}function xn(A){let _=A;while(_>0&&V(n,_))_--;return _}function Wd(A){let _=A+1;while(_<n.length&&V(n,_))_++;return _>=n.length||a(n[_])}function zn(){return o>=n.length||a(n[o])||V(n,o)}function Kd(A){throw new C(`Invalid character ${JSON.stringify(A)}`,o)}function In(){throw new C(`Unexpected character ${JSON.stringify(n[o])}`,o)}function Cd(){throw new C("Unexpected end of json string",n.length)}function ud(){throw new C("Object key expected",o)}function tn(){throw new C("Colon expected",o)}function Qd(){let A=n.slice(o,o+6);throw new C(`Invalid unicode character "${A}"`,o)}}function tf(n,o){return n[o]==="*"&&n[o+1]==="/"}var nr=/^\{\s*"([A-Za-z0-9_.$-]+)"\s*:\s*([\s\S]+?)\s*\}$/;function or(n){let o=n.match(nr);if(!o)return;let[,d,r]=o,l=r.trim();if(!l)return;let y=l[0];if(y==='"'||y==="{"||y==="["||l==="true"||l==="false"||l==="null"||Number.isFinite(Number(l)))return;return JSON.parse(`{"${d}":${JSON.stringify(l)}}`)}var dr=[(n)=>JSON.parse(n),(n)=>JSON.parse(Wn(n)),or];function fr(n){if(typeof n!=="string")return n;let o=n.trimStart();if(o[0]!=="{"&&o[0]!=="[")return n;for(let d of dr)try{let r=d(o);if(r!==void 0)return r}catch{}return n}function rr(n){let o=new WeakSet;try{return JSON.stringify(n,(r,l)=>{if(typeof l==="bigint")return l.toString();if(l&&typeof l==="object"){if(o.has(l))return"[Circular]";o.add(l)}return l})??"null"}catch{return String(n)}}function lr(n){try{return JSON.parse(n)}catch{return}}function x(n){return typeof n==="object"&&n!==null&&!Array.isArray(n)}function br(n){let o=n.type;if(typeof o==="string")return[o];return Array.isArray(o)?o.filter((d)=>typeof d==="string"):[]}function Kn(n,o){if(br(n).includes(o))return!0;for(let r of["anyOf","oneOf","allOf"]){let l=n[r];if(Array.isArray(l)&&l.some((y)=>x(y)&&Kn(y,o)))return!0}return!1}function gr(n,o){if(typeof n!=="string")return n;let d=n.trim(),r=Kn(o,"array"),l=Kn(o,"object");if((!r||!d.startsWith("["))&&(!l||!d.startsWith("{")))return n;try{let y=JSON.parse(d);if(Array.isArray(y))return r?y:n;if(x(y))return l?y:n;return n}catch{return n}}function Cn(n,o){let d=gr(n,o);if(Array.isArray(d)){let s=o.items;if(!x(s))return d;let k=!1,I=d.map((c)=>{let R=Cn(c,s);return k||=R!==c,R});return k?I:d}if(!x(d))return d;let r=o.properties;if(!x(r))return d;let l=!1,y={...d};for(let[s,k]of Object.entries(r)){if(!(s in d)||!x(k))continue;let I=Cn(d[s],k);if(I!==d[s])y[s]=I,l=!0}return l?y:d}function sr(n){if(typeof globalThis.atob==="function")try{let o=globalThis.atob(n),d=Uint8Array.from(o,(r)=>r.charCodeAt(0));return new TextDecoder().decode(d)}catch{return null}if(typeof Buffer<"u")try{return Buffer.from(n,"base64").toString("utf8")}catch{return null}return null}function yr(n){let o=n?.trim();if(!o)return null;try{let d=o.split(".");if(d.length!==3)return null;let r=d[1];if(!r)return null;let l=r.replace(/-/g,"+").replace(/_/g,"/"),y=l.padEnd(l.length+(4-l.length%4)%4,"="),s=sr(y);return s?JSON.parse(s):null}catch{return null}}function wr(n){return Object.fromEntries(Object.entries(n).filter(([,o])=>o!==void 0))}function kr(n){let o=n.replaceAll("\\","/"),d=o.lastIndexOf("/");return(d>=0?o.slice(d+1):o).toLowerCase()}function cr(n){return n==="win32"?"powershell":"/bin/bash"}function mo(n){let o=kr(n);if(o==="powershell"||o==="powershell.exe"||o==="pwsh"||o==="pwsh.exe")return"powershell";if(o==="cmd"||o==="cmd.exe")return"cmd";if(o==="wsl"||o==="wsl.exe")return"wsl";return"posix"}function Ar(n,o){switch(mo(n)){case"powershell":return["-NoProfile","-NonInteractive","-Command",o];case"cmd":return["/d","/s","/c",o];case"wsl":return["bash","-c",o];case"posix":return["-c",o]}}function _r(n){return n.toLowerCase().replace(/[^\w.-]+/g,"_")}function Ir(n){let o=n?.trim();return o?o:void 0}function ao(n,o){if(n.length<=o)return n;return`${n.slice(0,o-1)}…`}function Rr(n,o="/",d=100){if(!n||n.length<=d)return n||"";let r=n.split(o)?.shift()?.trim()?.slice(0,d-1);return r?`${r}…`:ao(n,d)}function Dr(n){if(n.length<=8)return"****";return`${n.slice(0,4)}...${n.slice(-4)}`}function er(n){return n.charCodeAt(0)===65279?n.slice(1):n}function Br(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 qr(n){let o=Math.max(0,Math.floor(n/1000)),d=Math.floor(o/86400),r=Math.floor(o%86400/3600),l=Math.floor(o%3600/60),y=o%60;if(d>0)return`${d}d ${r}h`;if(r>0)return`${r}h ${l}m`;if(l>0)return`${l}m ${y}s`;return`${y}s`}import{z as vo}from"zod";function Er(n,o){let d=n.safeParse(o);if(!d.success)throw Error(vo.prettifyError(d.error));return d.data}function un(n){return vo.toJSONSchema(n)}function Qn(n){return n==="cline"||n==="cline-pass"}var po=`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.
13
13
 
14
14
  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.
15
15
  Review each question carefully and answer it with detailed, accurate information.
@@ -44,7 +44,7 @@ When you have completed the task, please provide a summary of what you did and a
44
44
 
45
45
  If user asked a simple question without any coding context, answer it directly without using any tools.
46
46
  {{CLINE_RULES}}
47
- {{CLINE_METADATA}}`,ao=`You are Cline, a careful and helpful coding agent that works in the background.
47
+ {{CLINE_METADATA}}`,xo=`You are Cline, a careful and helpful coding agent that works in the background.
48
48
  You are tasked to solve an issue reported by the user who you cannot communicate with directly.
49
49
  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.
50
50
 
@@ -74,9 +74,9 @@ IMPORTANT:
74
74
  - 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.
75
75
  - Response without the submit_and_exit tool call will considered not completed and the task will continue.
76
76
  {{CLINE_RULES}}
77
- {{CLINE_METADATA}}`;var jn="# Workspace Configuration",xo=`# Plan / Act Modes
77
+ {{CLINE_METADATA}}`;var jn="# Workspace Configuration",to=`# Plan / Act Modes
78
78
 
79
- User messages arrive wrapped in a <user_input mode="..."> tag. The mode attribute is the interaction mode the user was in when they sent that message: "plan" means plan-mode constraints applied (explore, analyze, and align on a plan -- no edits or state-changing commands), while "act" (or "yolo") means implementation was allowed. If the mode attribute changes between messages, the user switched modes -- the newest message's mode is what governs right now, regardless of what earlier messages allowed. A <mode_notice> block inside a message marks exactly when such a switch happened.`,zo=`# Plan Mode
79
+ User messages arrive wrapped in a <user_input mode="..."> tag. The mode attribute is the interaction mode the user was in when they sent that message: "plan" means plan-mode constraints applied (explore, analyze, and align on a plan -- no edits or state-changing commands), while "act" (or "yolo") means implementation was allowed. If the mode attribute changes between messages, the user switched modes -- the newest message's mode is what governs right now, regardless of what earlier messages allowed. A <mode_notice> block inside a message marks exactly when such a switch happened.`,nd=`# Plan Mode
80
80
 
81
81
  You are in Plan mode. Your role is to explore, analyze, and plan -- not to execute.
82
82
 
@@ -89,10 +89,10 @@ You are in Plan mode. Your role is to explore, analyze, and plan -- not to execu
89
89
 
90
90
  The run_commands tool remains available in plan mode strictly for read-only inspection -- listing files, searching (grep), reading configs, inspecting git history and diffs, checking tool versions, and the like. Never use it to change anything: no creating, modifying, or deleting files, no writing scripts that make changes, and no state-changing commands (installs, migrations, database or schema changes, container commands that mutate state, etc.). If the task requires a mutation, put it in the plan; it happens only after the user switches to act mode.
91
91
 
92
- Once the user has reviewed your plan and explicitly approved it in a follow-up message, use the switch_to_act_mode tool to switch to act mode and begin implementation. Calling switch_to_act_mode immediately starts execution, so never call it in the same turn you present a plan and never treat the original task request as approval -- end your turn after presenting the plan and wait for the user's response.`;function vo(n,o,d){if(d?.trim()?.includes(jn))return d.trim();let r=d||JSON.stringify({workspaces:{[n]:{hint:o||n.split("/").at(-1)||n}}},null,2);return`
92
+ Once the user has reviewed your plan and explicitly approved it in a follow-up message, use the switch_to_act_mode tool to switch to act mode and begin implementation. Calling switch_to_act_mode immediately starts execution, so never call it in the same turn you present a plan and never treat the original task request as approval -- end your turn after presenting the plan and wait for the user's response.`;function zo(n,o,d){if(d?.trim()?.includes(jn))return d.trim();let r=d||JSON.stringify({workspaces:{[n]:{hint:o||n.split("/").at(-1)||n}}},null,2);return`
93
93
  ${jn}
94
- ${r}`}function qr(n){let{ide:o="Terminal Shell",mode:d,platform:r="unknown",workspaceName:l,metadata:y,rules:s,overridePrompt:k,providerId:_}=n,c=n.workspaceRoot??n.rootPath??"",I=Qn(_||"");if(k?.trim()){let $=k.trim();if(I&&y?.trim()&&!$.includes(jn))return`${$}
94
+ ${r}`}function Mr(n){let{ide:o="Terminal Shell",mode:d,platform:r="unknown",workspaceName:l,metadata:y,rules:s,overridePrompt:k,providerId:I}=n,c=n.workspaceRoot??n.rootPath??"",R=Qn(I||"");if(k?.trim()){let $=k.trim();if(R&&y?.trim()&&!$.includes(jn))return`${$}
95
95
 
96
- ${vo(c,l,y)}`.trim();return $}let T=d==="yolo"?ao:po,Y=[s,xo,d==="plan"?zo:void 0].filter(Boolean).join(`
96
+ ${zo(c,l,y)}`.trim();return $}let T=d==="yolo"?xo:po,Y=[s,to,d==="plan"?nd:void 0].filter(Boolean).join(`
97
97
 
98
- `);return T.replace("{{PLATFORM_NAME}}",r).replace("{{CWD}}",c).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",I?vo(c,l,y):"").replace("{{CLINE_RULES}}",Y).trim()}var Er="remote://";import{z as b}from"zod";var to=b.object({id:b.string(),temperature:b.number().optional(),isR1FormatRequired:b.boolean().optional(),maxTokens:b.number().optional(),contextWindow:b.number().optional(),inputPrice:b.number().optional(),outputPrice:b.number().optional(),supportsImages:b.boolean().optional()}),nd=b.object({models:b.array(to).optional(),openAiBaseUrl:b.string().optional(),openAiHeaders:b.record(b.string(),b.string()).optional(),azureApiVersion:b.string().optional(),azureIdentity:b.boolean().optional()}),od=b.object({id:b.string(),thinkingBudgetTokens:b.number().optional()}),dd=b.object({name:b.string(),baseModelId:b.string(),thinkingBudgetTokens:b.number().optional()}),fd=b.object({models:b.array(od).optional(),customModels:b.array(dd).optional(),awsRegion:b.string().optional(),awsUseCrossRegionInference:b.boolean().optional(),awsUseGlobalInference:b.boolean().optional(),awsBedrockUsePromptCache:b.boolean().optional(),awsBedrockEndpoint:b.string().optional()}),rd=b.object({id:b.string()}),ld=b.object({models:b.array(rd).optional()}),bd=b.object({id:b.string(),thinkingBudgetTokens:b.number().optional()}),gd=b.object({models:b.array(bd).optional(),vertexProjectId:b.string().optional(),vertexRegion:b.string().optional()}),sd=b.object({id:b.string(),thinkingBudgetTokens:b.number().optional(),promptCachingEnabled:b.boolean().optional()}),yd=b.object({models:b.array(sd).optional(),baseUrl:b.string().optional()}),wd=b.object({id:b.string(),thinkingBudgetTokens:b.number().optional()}),kd=b.object({models:b.array(wd).optional(),baseUrl:b.string().optional()}),Mr=b.object({OpenAiCompatible:nd.optional(),AwsBedrock:fd.optional(),Cline:ld.optional(),Vertex:gd.optional(),LiteLLM:yd.optional(),Anthropic:kd.optional()}),cd=b.object({id:b.string()}),Ad=b.object({name:b.string(),url:b.string(),alwaysEnabled:b.boolean().optional(),headers:b.record(b.string(),b.string()).optional()}),On=b.object({alwaysEnabled:b.boolean(),name:b.string(),contents:b.string()}),An=b.object({bucket:b.string(),accessKeyId:b.string(),secretAccessKey:b.string(),region:b.string().optional(),endpoint:b.string().optional(),accountId:b.string().optional()}),ed=b.object({enabled:b.boolean().optional(),type:b.union([b.literal("s3_access_keys"),b.literal("r2_access_keys"),b.literal("azure_access_keys")]).optional(),s3AccessSettings:An.optional(),r2AccessSettings:An.optional(),azureAccessSettings:An.optional()}),_d=b.object({promptUploading:ed.optional()}),Gr=b.object({version:b.string(),providerSettings:Mr.optional(),telemetryEnabled:b.boolean().optional(),kanbanEnabled:b.boolean().optional(),mcpMarketplaceEnabled:b.boolean().optional(),allowedMCPServers:b.array(cd).optional(),remoteMCPServers:b.array(Ad).optional(),blockPersonalRemoteMCPServers:b.boolean().optional(),yoloModeAllowed:b.boolean().optional(),openTelemetryEnabled:b.boolean().optional(),openTelemetryMetricsExporter:b.string().optional(),openTelemetryLogsExporter:b.string().optional(),openTelemetryOtlpProtocol:b.string().optional(),openTelemetryOtlpEndpoint:b.string().optional(),openTelemetryOtlpHeaders:b.record(b.string(),b.string()).optional(),openTelemetryOtlpMetricsProtocol:b.string().optional(),openTelemetryOtlpMetricsEndpoint:b.string().optional(),openTelemetryOtlpMetricsHeaders:b.record(b.string(),b.string()).optional(),openTelemetryOtlpLogsProtocol:b.string().optional(),openTelemetryOtlpLogsEndpoint:b.string().optional(),openTelemetryOtlpLogsHeaders:b.record(b.string(),b.string()).optional(),openTelemetryMetricExportInterval:b.number().optional(),openTelemetryOtlpInsecure:b.boolean().optional(),openTelemetryLogBatchSize:b.number().optional(),openTelemetryLogBatchTimeout:b.number().optional(),openTelemetryLogMaxQueueSize:b.number().optional(),enterpriseTelemetry:_d.optional(),globalRules:b.array(On).optional(),globalWorkflows:b.array(On).optional()}),$r=b.record(b.string(),b.string());var Tr=4317;var Yr="127.0.0.1:4317";import Nn from"zod";var Ur=Nn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),ur=Nn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),Fr=Nn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var Lr="runtime.team.progress.v1",Pr="runtime.team.lifecycle.v1";var Xr="CLINE_ENVIRONMENT",Hr="CLINE_ENVIRONMENT_OVERRIDE",Sn={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"}},Zr="production";function Id(n){let o=n?.trim().toLowerCase();if(o==="production"||o==="staging"||o==="local")return o;return}function Rd(){if(typeof process>"u"||!process?.env)return{};return process.env}function Dd(){let n=Rd();return Id(n.CLINE_ENVIRONMENT_OVERRIDE)??Id(n.CLINE_ENVIRONMENT)??"production"}function Vr(n){if(typeof n==="string")return Sn[n];return Sn[Dd()]}function Jr(n,o){if(o.CLINE_API_BASE_URL)n={...n,apiBaseUrl:o.CLINE_API_BASE_URL,mcpBaseUrl:`${o.CLINE_API_BASE_URL}/v1/mcp`};return n}function Wr(n){let o=Vr(n);return Jr(o,Rd())}var Kr="agent.reasoning.unexpected_tokens",Cr="sdk.error";function Qr(n,o){n?.capture({event:"agent.reasoning.unexpected_tokens",properties:Or({sessionId:o.sessionId,agentId:o.agentId,runId:o.runId,iteration:o.iteration,providerId:o.providerId,modelId:o.modelId,requestedThinking:o.requestedThinking,reasoningTokenCount:o.reasoningTokenCount})})}function jr(n,o){if(!n)return;n.capture({event:o.event??"sdk.error",properties:qd(o)})}function qd(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...Ed(n.error,n.messageLimit)}}function Or(n){let o={};for(let[d,r]of Object.entries(n))if(r!==void 0)o[d]=r;return o}function Ed(n,o=500){let d=ir(n)?n:void 0,r=n instanceof Error?n:void 0,l=r?.message??Bd(d?.message)??(typeof n==="string"?n:String(n)),y=hr(d?.code),s=hn(d?.status)??hn(d?.statusCode)??hn(d?.responseStatus);return{error_type:r?.name?.trim()||Bd(d?.name)||r?.constructor?.name||"Error",error_message:Sr(Nr(l),o),...y!==void 0?{error_code:y}:{},...s!==void 0?{error_status:s}:{}}}function Nr(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 Sr(n,o){let d=Math.max(1,Math.floor(o));return n.length>d?n.substring(0,d):n}function ir(n){return typeof n==="object"&&n!==null}function Bd(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function hr(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function hn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function Md(n){let o={};if(!n)return o;try{n.split(",").forEach((d)=>{let r=d.indexOf("=");if(r<=0)return;let l=decodeURIComponent(d.substring(0,r).trim()),y=decodeURIComponent(d.substring(r+1).trim());if(!l||!y)return;o[l]=y})}catch{}return o}function mr(){if(!process.env)return{enabled:!1};return{enabled:process.env.OTEL_TELEMETRY_ENABLED==="1"||process.env.OTEL_TELEMETRY_ENABLED==="true",metricsExporter:process.env.OTEL_METRICS_EXPORTER||"otlp",logsExporter:process.env.OTEL_LOGS_EXPORTER||"otlp",tracesExporter:process.env.OTEL_TRACES_EXPORTER,otlpProtocol:process.env.OTEL_EXPORTER_OTLP_PROTOCOL||"http/json",otlpEndpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,metricExportInterval:process.env.OTEL_METRIC_EXPORT_INTERVAL?Number.parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL,10):void 0,otlpHeaders:process.env.OTEL_EXPORTER_OTLP_HEADERS?Md(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function Gd(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 pr(n={}){return{...mr(),...n,metadata:Gd(n.metadata)}}function $d(n){let o=n?.trim();return o?o:void 0}function ar(n,o){if(!n)return;let d=typeof n==="function"?n(o):n;if(!d)return;let r=$d(d.rootSessionId);if(!r)return;return{rootSessionId:r}}function vr(n){return $d(n?.rootSessionId)}var xr=(n)=>crypto.getRandomValues(new Uint8Array(n)),zr=(n,o,d)=>{let r=256-256%n.length;if(r===256){let y=n.length-1;return(s=o)=>{if(!s)return"";let k="";while(!0){let _=d(s),c=s;while(c--)if(k+=n[_[c]&y],k.length>=s)return k}}}let l=Math.ceil(409.6*o/r);return(y=o)=>{if(!y)return"";let s="";while(!0){let k=d(l),_=l;while(_--)if(k[_]<r){if(s+=n[k[_]%n.length],s.length>=y)return s}}}},Td=(n,o=21)=>zr(n,o|0,xr);function tr(n="",o=""){let d=Td("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${d(5)}${o}`}var nl=["idle","running","pending","completed","failed","cancelled"];var mn=["rules","skills","workflows","plugins"],Yd=mn,ol=new Set(mn);function Ud(n){return typeof n==="string"&&ol.has(n)}function dl(n){if(!Array.isArray(n))return;let o=n.map((d)=>typeof d==="string"?d.trim():"").filter(Ud);return[...new Set(o)]}function fl(n,o){return new Set(n??Yd).has(o)}import{z as F}from"zod";var rl=F.object({rootPath:F.string().min(1),hint:F.string().min(1).optional(),associatedRemoteUrls:F.array(F.string().min(1)).optional(),latestGitCommitHash:F.string().min(1).optional(),latestGitBranchName:F.string().min(1).optional()}),ll=F.object({currentWorkspacePath:F.string().min(1).optional(),workspaces:F.record(F.string().min(1),rl)});function tb(){return{workspaces:{}}}function ng(n,o){let d={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!d.currentWorkspacePath)d.currentWorkspacePath=o.rootPath;return ll.parse(d)}import{z as f}from"zod";var bl=["current_state","boundary_analysis","interface_proposal"],fg=3600000,rg=240,lg=400,L=f.preprocess((n)=>n instanceof Date?n.toISOString():n,f.string().datetime()),z=f.enum(["pending","in_progress","blocked","completed"]),ud=f.enum(["queued","running","completed","failed","cancelled","interrupted"]),en=f.enum(["draft","in_review","finalized"]),gl=f.object({agentId:f.string(),role:f.enum(["lead","teammate"]),description:f.string().optional(),status:f.enum(["idle","running","stopped"])}),bg=f.object({agentId:f.string(),rolePrompt:f.string(),modelId:f.string().optional(),maxIterations:f.number().optional()});function E(n){return f.preprocess((o)=>o===null?void 0:o,n.optional())}var gg=f.object({agentId:f.string().min(1).describe("Teammate identifier"),rolePrompt:f.string().min(1).describe("System prompt describing teammate role")}).strict(),sg=f.object({agentId:f.string().min(1).describe("Teammate identifier"),reason:E(f.string().min(1)).describe("Optional shutdown reason")}),yg=f.object({}),sl={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},wg={create:["status","taskId","summary","reason"]},kg=f.object({action:f.enum(["create","list","claim","complete","block"]),title:E(f.string().min(1)).describe("Task title"),description:E(f.string().min(1)).describe("Task details"),dependsOn:E(f.array(f.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:E(f.string().min(1)).describe("Optional assignee"),status:E(f.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:E(f.string()).describe("Task ID"),summary:E(f.string().min(1)).describe("Completion summary"),reason:E(f.string().min(1)).describe("Blocking reason")}).superRefine((n,o)=>{for(let d of sl[n.action]){if(n[d]!==void 0)continue;o.addIssue({code:"custom",path:[d],message:`Field "${d}" is required when action=${n.action}`})}}),cg=f.object({agentId:f.string().describe("Teammate agent ID"),task:f.string().min(1).describe("Task instructions for the teammate"),taskId:E(f.string()).describe("Optional shared task list ID"),runMode:E(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:E(f.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),Ag=f.object({status:E(f.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:E(f.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:E(f.boolean()).describe("Include completed/failed runs (default true)")}),eg=f.object({runId:f.string().min(1).describe("Run ID"),reason:E(f.string().min(1)).describe("Optional cancellation reason")}),_g=f.object({runId:E(f.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),Ig=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:E(f.string().min(1)).describe("Optional task ID context")}),Rg=f.object({subject:f.string().min(1).describe("Message subject"),body:f.string().min(1).describe("Message body"),taskId:E(f.string().min(1)).describe("Optional task ID context")}),Dg=f.object({unreadOnly:E(f.boolean()).describe("Only unread messages for read action (default true)")}),Bg=f.object({kind:f.enum(["progress","handoff","blocked","decision","done","error"]),summary:f.string().min(1).describe("Update summary"),taskId:E(f.string().min(1)).describe("Optional task ID context"),evidence:E(f.array(f.string().min(1))).describe("Optional evidence links/snippets"),nextAction:E(f.string().min(1)).describe("Planned next step")}),qg=f.object({}),Eg=f.object({title:f.string().describe("Outcome title"),requiredSections:f.array(f.string()).default(bl).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),Mg=f.object({outcomeId:f.string().describe("Outcome ID"),section:f.string().describe("Section name"),sourceRunId:E(f.string()).describe("Optional source run ID"),content:f.string().describe("Section fragment content")}),Gg=f.object({fragmentId:f.string().describe("Fragment ID"),approved:f.boolean().describe("Review decision")}),$g=f.object({outcomeId:f.string().describe("Outcome ID")}),Tg=f.object({}),Yg=f.object({teamId:f.string(),teamName:f.string(),members:f.array(gl),taskCounts:f.record(z,f.number()),unreadMessages:f.number(),missionLogEntries:f.number(),activeRuns:f.number(),queuedRuns:f.number(),outcomeCounts:f.record(en,f.number())}),yl=f.object({id:f.string(),title:f.string(),description:f.string(),status:z,createdAt:L,updatedAt:L,createdBy:f.string(),assignee:f.string().optional(),dependsOn:f.array(f.string()),summary:f.string().optional(),isReady:f.boolean(),blockedBy:f.array(f.string())}),Ug=f.discriminatedUnion("action",[f.object({action:f.literal("create"),taskId:f.string(),status:z,ignoredFields:f.array(f.string()).optional(),note:f.string().optional()}),f.object({action:f.literal("list"),tasks:f.array(yl)}),f.object({action:f.literal("claim"),taskId:f.string(),status:z,nextStep:f.string()}),f.object({action:f.literal("complete"),taskId:f.string(),status:z}),f.object({action:f.literal("block"),taskId:f.string(),status:z})]),ug=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()}),wl=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()})}),Fg=f.object({id:f.string(),agentId:f.string(),taskId:f.string().optional(),status:ud,messagePreview:f.string(),priority:f.number(),retryCount:f.number(),maxRetries:f.number(),nextAttemptAt:L.optional(),continueConversation:f.boolean().optional(),startedAt:L,endedAt:L.optional(),leaseOwner:f.string().optional(),heartbeatAt:L.optional(),lastProgressAt:L.optional(),lastProgressMessage:f.string().optional(),currentActivity:f.string().optional(),error:f.string().optional(),resultSummary:wl.optional()}),Lg=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:L,readAt:L.optional()}),Pg=f.object({id:f.string(),teamId:f.string(),title:f.string(),status:en,requiredSections:f.array(f.string()),createdBy:f.string(),createdAt:L,finalizedAt:L.optional()}),Xg=f.object({outcomeId:f.string(),status:en,requiredSections:f.array(f.string())}),Hg=f.object({agentId:f.string(),status:f.string()}),Zg=f.object({runId:f.string(),status:ud}),Vg=f.object({id:f.string(),toAgentId:f.string()}),Jg=f.object({delivered:f.number()}),Wg=f.object({id:f.string()}),Kg=f.object({status:f.string()}),Cg=f.object({fragmentId:f.string(),status:f.string()}),Qg=f.object({outcomeId:f.string(),status:en});var kl;((M)=>{M.TaskStart="task_start";M.TaskEnd="task_end";M.AgentEvent="agent_event";M.TeammateSpawned="teammate_spawned";M.TeammateShutdown="teammate_shutdown";M.TeamTaskUpdated="team_task_updated";M.TeamMessage="team_message";M.TeamMissionLog="team_mission_log";M.TeamTaskCompleted="team_task_completed";M.RunStarted="run_started";M.RunQueued="run_queued";M.RunProgress="run_progress";M.RunCompleted="run_completed";M.RunFailed="run_failed";M.RunCancelled="run_cancelled";M.RunInterrupted="run_interrupted";M.OutcomeCreated="outcome_created";M.OutcomeFragmentAttached="outcome_fragment_attached";M.OutcomeFragmentReviewed="outcome_fragment_reviewed";M.OutcomeFinalized="outcome_finalized"})(kl||={});import{z as cl}from"zod";function Al(n){let{$schema:o,...d}=n;if(typeof d.type==="string")return d;if("properties"in d||"required"in d||"additionalProperties"in d)return{type:"object",...d};for(let r of["oneOf","anyOf","allOf"]){let l=d[r];if(!Array.isArray(l)||l.length===0)continue;if(r==="allOf"){if(l.some((k)=>k&&typeof k==="object"&&k.type==="object"))return{type:"object",...d};throw Error('Tool inputSchema must describe an object at the top level, but the schema has a top-level "allOf" with no branch that asserts type: "object". Add type: "object" to at least one allOf branch to make the object constraint explicit.')}if(l.every((s)=>s&&typeof s==="object"&&s.type==="object"))return{type:"object",...d};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${r}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return d}function el(n){let o=Al(n.inputSchema instanceof cl.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 Fd=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function _l(n){let o=n instanceof Error?n.message.toLowerCase():String(n);return Fd.some((d)=>o.includes(d))}export{Cn as zodToJsonSchema,$o as xmlTagsRemoval,Br as validateWithZod,Fo as validateImageMedia,nn as validateAndReserveImageMedia,ng as upsertWorkspaceInfo,ho as truncateStr,er as truncateSplit,Ar as trimNonEmpty,Xo as toAiSdkToolResultOutput,Ir as stripUtf8Bom,Go as stripModeNotices,hd as shouldIncludeConnectorField,Nf as serializeAbortReason,u as sanitizeSurrogates,cr as sanitizeFileName,dr as safeJsonStringify,fr as safeJsonParse,vr as resolveRootSessionId,Zo as resolveReasoningEffortRatio,Of as resolveReasoningBudgetFromRatio,Yo as resolveMediaBudget,Nl as resolveHubCommandTimeoutMs,ar as resolveHookSessionContext,jf as resolveEffectiveReasoningEffort,Dd as resolveClineEnvironment,t as reserveImageMediaBytes,Eo as parseUserCommandEnvelope,dl as parseRuntimeConfigExtensions,or as parseJsonStream,Af as parseHookEventPayload,sr as omitUndefinedValues,Mo as normalizeUserInput,Ed as normalizeSdkError,Ro as normalizePluginManifest,Kn as normalizeJsonLikeStringsForSchema,mf as noopBasicLogger,Cf as mergeModelOptions,_r as maskSecret,co as listConnectorCatalog,Ud as isRuntimeConfigExtensionKind,_l as isLikelyAuthError,Sl as isHubToolExecutorName,jl as isHubProtocolCompatible,Qn as isClineProvider,Lf as isCanonicalBase64,Uo as isBase64Char,Ff as imageFileMaxDecodedBytesForBase64Limit,qn as imageBase64LengthForDecodedBytes,uf as imageBase64EncodedByteLength,To as imageBase64DecodedByteLength,fl as hasRuntimeConfigExtension,kr as getShellArgs,wr as getDefaultShell,_f as getDefaultHubCommandTimeoutMs,Wr as getClineEnvironmentConfig,Df as formatUserInputBlock,Bf as formatUserCommandBlock,Dr as formatUptime,qf as formatModeSwitchNotice,Kf as formatMessagesForAiSdk,Rr as formatHumanReadableDate,Bn as formatFileContentBlock,Tf as formatDisplayUserInput,Vo as estimateTokens,hf as estimateRequestInputTokens,tb as emptyWorkspaceManifest,gr as decodeJwtPayload,el as createTool,tr as createSessionId,Ef as createModeSwitchNoticeTracker,wn as createMediaBudgetState,of as createContributionRegistry,Gd as createClineTelemetryServiceMetadata,pr as createClineTelemetryServiceConfig,md as connectorChannelsFromPlatforms,jr as captureSdkError,Qr as captureAgentUnexpectedReasoningTokens,qd as buildSdkErrorProperties,qr as buildClineSystemPrompt,ll as WorkspaceManifestSchema,rl as WorkspaceInfoSchema,gd as VertexSettingsSchema,bd as VertexModelSchema,rb as USAGE_COST_DISPLAYS,Rn as ToolCallRecordSchema,bo as ThinkingConfigSchema,bg as TeamTeammateSpecSchema,Ug as TeamTaskToolResultSchema,yl as TeamTaskListItemToolResultSchema,kg as TeamTaskInputSchema,Yg as TeamStatusToolResultSchema,yg as TeamStatusInputSchema,gg as TeamSpawnTeammateInputSchema,Hg as TeamSimpleAgentStatusToolResultSchema,sg as TeamShutdownTeammateInputSchema,Vg as TeamSendMessageToolResultSchema,Ig as TeamSendMessageInputSchema,Fg as TeamRunToolSummarySchema,ug as TeamRunTaskToolResultSchema,cg as TeamRunTaskInputSchema,wl as TeamRunResultSummarySchema,Gg as TeamReviewOutcomeFragmentInputSchema,Dg as TeamReadMailboxInputSchema,Pg as TeamOutcomeToolResultSchema,Cg as TeamOutcomeFragmentToolResultSchema,Wg as TeamMissionLogToolResultSchema,Bg as TeamMissionLogInputSchema,kl as TeamMessageType,Lg as TeamMailboxMessageToolResultSchema,Ag as TeamListRunsInputSchema,Tg as TeamListOutcomesInputSchema,Qg as TeamFinalizeOutcomeToolResultSchema,$g as TeamFinalizeOutcomeInputSchema,Xg as TeamCreateOutcomeToolResultSchema,Eg as TeamCreateOutcomeInputSchema,Kg as TeamCleanupToolResultSchema,qg as TeamCleanupInputSchema,Zg as TeamCancelRunToolResultSchema,eg as TeamCancelRunInputSchema,Jg as TeamBroadcastToolResultSchema,Rg as TeamBroadcastInputSchema,_g as TeamAwaitRunsInputSchema,Mg as TeamAttachOutcomeFragmentInputSchema,wg as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,lg as TEAM_RUN_TEXT_PREVIEW_LIMIT,rg as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,Lr as TEAM_PROGRESS_EVENT_TYPE,Pr as TEAM_LIFECYCLE_EVENT_TYPE,fg as TEAM_AWAIT_TIMEOUT_MS,yn as SUPPORTED_IMAGE_MEDIA_TYPES,nl as SESSION_STATUS_VALUES,Cr as SDK_ERROR_TELEMETRY_EVENT,An as S3AccessKeySettingsSchema,Ad as RemoteMCPServerSchema,Gr as RemoteConfigSchema,Od as ReasoningEffortSchema,mn as RUNTIME_CONFIG_EXTENSION_KINDS,Er as REMOTE_URI_SCHEME,dn as REASONING_EFFORT_RATIOS,ur as ProviderProtocolSchema,Fr as ProviderClientSchema,Ur as ProviderCapabilitySchema,ed as PromptUploadingSchema,df as PLUGIN_FILE_EXTENSIONS,zo as PLAN_MODE_INSTRUCTIONS,nd as OpenAiCompatibleSchema,to as OpenAiCompatibleModelSchema,ro as ModelStatusSchema,lo as ModelPricingSchema,go as ModelMetadataSchema,bn as ModelInfoSchema,fo as ModelCapabilitySchema,xo as MODE_TAG_INSTRUCTIONS,Kl as MIN_CLIENT_HUB_PROTOCOL_VERSION,Cl as MAX_CLIENT_HUB_PROTOCOL_VERSION,yd as LiteLLMSchema,sd as LiteLLMModelSchema,Q as IMAGE_OMITTED_PLACEHOLDER,qo as HookEventPayloadSchema,Bo as HookEventNameSchema,xl as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,If as HUB_TOOL_EXECUTOR_NAMES,il as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,vl as HUB_MISTAKE_LIMIT_CAPABILITY,ml as HUB_HOOK_CAPABILITY_PREFIX,ef as HUB_DEFAULT_COMMAND_TIMEOUT_MS,hl as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,pl as HUB_COMPACTION_CAPABILITY,Ol as HUB_COMMAND_SLOW_LOG_MS,al as HUB_CHECKPOINT_CAPABILITY,Ql as HUB_CAPABILITIES,On as GlobalInstructionsFileSchema,ff as FeatureFlagDefaultValue,rf as FEATURE_FLAGS,_d as EnterpriseTelemetrySchema,En as EMPTY_CONTENT_TEXT,Yd as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,Qf as DEFAULT_REASONING_EFFORT,bl as DEFAULT_OUTCOME_REQUIRED_SECTIONS,Uf as DEFAULT_MAX_TOTAL_MEDIA_BYTES,W as DEFAULT_MAX_IMAGE_ENCODED_BYTES,j as DEFAULT_MAX_IMAGE_DECODED_BYTES,Yf as DEFAULT_MAX_IMAGE_BASE64_BYTES,Zr as DEFAULT_CLINE_ENVIRONMENT,Dn as ContributionRegistry,id as ConnectorHookEventSchema,so as ConnectorHookEventNameSchema,wo as ConnectorEventContextSchema,yo as ConnectorEventActorSchema,Nd as ConnectorAuthorizationRequestSchema,Sd as ConnectorAuthorizationDecisionSchema,ld as ClineSettingsSchema,rd as ClineModelSchema,Wl as CURRENT_HUB_PROTOCOL_VERSION,Ao as CONNECTOR_PLATFORMS,ko as CONNECTOR_CATALOG,Hr as CLINE_ENVIRONMENT_OVERRIDE_ENV,Xr as CLINE_ENVIRONMENT_ENV,Sn as CLINE_ENVIRONMENTS,Tr as CLINE_DEFAULT_RPC_PORT,Yr as CLINE_DEFAULT_RPC_ADDRESS,Sf as CHARS_PER_TOKEN,fd as AwsBedrockSettingsSchema,od as AwsBedrockModelSchema,dd as AwsBedrockCustomModelSchema,oo as ApiFormatSchema,Cd as ApiFormat,kd as AnthropicSchema,wd as AnthropicModelSchema,cd as AllowedMCPServerSchema,jd as AgentUsageSchema,$l as AgentResultSchema,Qd as AgentFinishReasonSchema,Tl as AgentConfigSchema,Fd as AUTH_ERROR_PATTERNS,$r as APIKeySchema,Kr as AGENT_UNEXPECTED_REASONING_TOKENS_EVENT};
98
+ `);return T.replace("{{PLATFORM_NAME}}",r).replace("{{CWD}}",c).replace("{{CURRENT_DATE}}",new Date().toLocaleDateString()).replace("{{IDE_NAME}}",o).replace("{{CLINE_METADATA}}",R?zo(c,l,y):"").replace("{{CLINE_RULES}}",Y).trim()}var Gr="remote://";import{z as b}from"zod";var od=b.object({id:b.string(),temperature:b.number().optional(),isR1FormatRequired:b.boolean().optional(),maxTokens:b.number().optional(),contextWindow:b.number().optional(),inputPrice:b.number().optional(),outputPrice:b.number().optional(),supportsImages:b.boolean().optional()}),dd=b.object({models:b.array(od).optional(),openAiBaseUrl:b.string().optional(),openAiHeaders:b.record(b.string(),b.string()).optional(),azureApiVersion:b.string().optional(),azureIdentity:b.boolean().optional()}),fd=b.object({id:b.string(),thinkingBudgetTokens:b.number().optional()}),rd=b.object({name:b.string(),baseModelId:b.string(),thinkingBudgetTokens:b.number().optional()}),ld=b.object({models:b.array(fd).optional(),customModels:b.array(rd).optional(),awsRegion:b.string().optional(),awsUseCrossRegionInference:b.boolean().optional(),awsUseGlobalInference:b.boolean().optional(),awsBedrockUsePromptCache:b.boolean().optional(),awsBedrockEndpoint:b.string().optional()}),bd=b.object({id:b.string()}),gd=b.object({models:b.array(bd).optional()}),sd=b.object({id:b.string(),thinkingBudgetTokens:b.number().optional()}),yd=b.object({models:b.array(sd).optional(),vertexProjectId:b.string().optional(),vertexRegion:b.string().optional()}),wd=b.object({id:b.string(),thinkingBudgetTokens:b.number().optional(),promptCachingEnabled:b.boolean().optional()}),kd=b.object({models:b.array(wd).optional(),baseUrl:b.string().optional()}),cd=b.object({id:b.string(),thinkingBudgetTokens:b.number().optional()}),Ad=b.object({models:b.array(cd).optional(),baseUrl:b.string().optional()}),$r=b.object({OpenAiCompatible:dd.optional(),AwsBedrock:ld.optional(),Cline:gd.optional(),Vertex:yd.optional(),LiteLLM:kd.optional(),Anthropic:Ad.optional()}),_d=b.object({id:b.string()}),Id=b.object({name:b.string(),url:b.string(),alwaysEnabled:b.boolean().optional(),headers:b.record(b.string(),b.string()).optional()}),On=b.object({alwaysEnabled:b.boolean(),name:b.string(),contents:b.string()}),An=b.object({bucket:b.string(),accessKeyId:b.string(),secretAccessKey:b.string(),region:b.string().optional(),endpoint:b.string().optional(),accountId:b.string().optional()}),Rd=b.object({enabled:b.boolean().optional(),type:b.union([b.literal("s3_access_keys"),b.literal("r2_access_keys"),b.literal("azure_access_keys")]).optional(),s3AccessSettings:An.optional(),r2AccessSettings:An.optional(),azureAccessSettings:An.optional()}),Dd=b.object({promptUploading:Rd.optional()}),Tr=b.object({version:b.string(),providerSettings:$r.optional(),telemetryEnabled:b.boolean().optional(),kanbanEnabled:b.boolean().optional(),mcpMarketplaceEnabled:b.boolean().optional(),allowedMCPServers:b.array(_d).optional(),remoteMCPServers:b.array(Id).optional(),blockPersonalRemoteMCPServers:b.boolean().optional(),yoloModeAllowed:b.boolean().optional(),openTelemetryEnabled:b.boolean().optional(),openTelemetryMetricsExporter:b.string().optional(),openTelemetryLogsExporter:b.string().optional(),openTelemetryOtlpProtocol:b.string().optional(),openTelemetryOtlpEndpoint:b.string().optional(),openTelemetryOtlpHeaders:b.record(b.string(),b.string()).optional(),openTelemetryOtlpMetricsProtocol:b.string().optional(),openTelemetryOtlpMetricsEndpoint:b.string().optional(),openTelemetryOtlpMetricsHeaders:b.record(b.string(),b.string()).optional(),openTelemetryOtlpLogsProtocol:b.string().optional(),openTelemetryOtlpLogsEndpoint:b.string().optional(),openTelemetryOtlpLogsHeaders:b.record(b.string(),b.string()).optional(),openTelemetryMetricExportInterval:b.number().optional(),openTelemetryOtlpInsecure:b.boolean().optional(),openTelemetryLogBatchSize:b.number().optional(),openTelemetryLogBatchTimeout:b.number().optional(),openTelemetryLogMaxQueueSize:b.number().optional(),enterpriseTelemetry:Dd.optional(),globalRules:b.array(On).optional(),globalWorkflows:b.array(On).optional()}),Yr=b.record(b.string(),b.string());var Fr=4317;var Ur="127.0.0.1:4317";import Nn from"zod";var Lr=Nn.enum(["reasoning","prompt-cache","tools","provider-tools","oauth","temperature","files","streaming","vision","computer-use","local-auth","popular"]),Xr=Nn.enum(["anthropic","gemini","openai-chat","openai-responses","openai-r1","ai-sdk"]),Hr=Nn.enum(["anthropic","ai-sdk","ai-sdk-community","openai","openai-compatible","openai-r1","gemini","bedrock","custom","fetch","vertex"]);var Pr="runtime.team.progress.v1",Zr="runtime.team.lifecycle.v1";var Vr="CLINE_ENVIRONMENT",Jr="CLINE_ENVIRONMENT_OVERRIDE",Sn={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"}},Wr="production";function ed(n){let o=n?.trim().toLowerCase();if(o==="production"||o==="staging"||o==="local")return o;return}function Bd(){if(typeof process>"u"||!process?.env)return{};return process.env}function qd(){let n=Bd();return ed(n.CLINE_ENVIRONMENT_OVERRIDE)??ed(n.CLINE_ENVIRONMENT)??"production"}function Kr(n){if(typeof n==="string")return Sn[n];return Sn[qd()]}function Cr(n,o){if(o.CLINE_API_BASE_URL)n={...n,apiBaseUrl:o.CLINE_API_BASE_URL,mcpBaseUrl:`${o.CLINE_API_BASE_URL}/v1/mcp`};return n}function ur(n){let o=Kr(n);return Cr(o,Bd())}var Qr="agent.reasoning.unexpected_tokens",jr="task.provider_request_started",Or="task.provider_stream_started",Nr="task.first_chunk_received",Sr="task.provider_stream_failed",hr="task.cancelled",ir="sdk.error";function mr(n,o){n?.capture({event:"agent.reasoning.unexpected_tokens",properties:Gd({sessionId:o.sessionId,agentId:o.agentId,runId:o.runId,iteration:o.iteration,providerId:o.providerId,modelId:o.modelId,requestedThinking:o.requestedThinking,reasoningTokenCount:o.reasoningTokenCount})})}function ar(n,o){if(!n)return;n.capture({event:o.event,properties:Gd({sessionId:o.sessionId,ulid:o.ulid??o.sessionId,agentId:o.agentId,conversationId:o.conversationId,runId:o.runId,iteration:o.iteration,provider:o.providerId,providerId:o.providerId,model:o.modelId,modelId:o.modelId,phase:o.phase,durationMs:o.durationMs,eventType:o.eventType,...o.error===void 0?{}:mn(o.error,o.messageLimit)})})}function vr(n,o){if(!n)return;n.capture({event:o.event??"sdk.error",properties:Md(o)})}function Md(n){return{...n.context??{},component:n.component,operation:n.operation,severity:n.severity??"error",handled:n.handled??!0,...mn(n.error,n.messageLimit)}}function Gd(n){let o={};for(let[d,r]of Object.entries(n))if(r!==void 0)o[d]=r;return o}function mn(n,o=500){let d=zr(n)?n:void 0,r=n instanceof Error?n:void 0,l=r?.message??Ed(d?.message)??(typeof n==="string"?n:String(n)),y=tr(d?.code),s=hn(d?.status)??hn(d?.statusCode)??hn(d?.responseStatus);return{error_type:r?.name?.trim()||Ed(d?.name)||r?.constructor?.name||"Error",error_message:xr(pr(l),o),...y!==void 0?{error_code:y}:{},...s!==void 0?{error_status:s}:{}}}function pr(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 xr(n,o){let d=Math.max(1,Math.floor(o));return n.length>d?n.substring(0,d):n}function zr(n){return typeof n==="object"&&n!==null}function Ed(n){return typeof n==="string"&&n.trim().length>0?n:void 0}function tr(n){if(typeof n==="string"&&n.trim().length>0)return n;if(typeof n==="number"&&Number.isFinite(n))return n;return}function hn(n){return typeof n==="number"&&Number.isFinite(n)?n:void 0}function $d(n){let o={};if(!n)return o;try{n.split(",").forEach((d)=>{let r=d.indexOf("=");if(r<=0)return;let l=decodeURIComponent(d.substring(0,r).trim()),y=decodeURIComponent(d.substring(r+1).trim());if(!l||!y)return;o[l]=y})}catch{}return o}function nl(){if(!process.env)return{enabled:!1};return{enabled:process.env.OTEL_TELEMETRY_ENABLED==="1"||process.env.OTEL_TELEMETRY_ENABLED==="true",metricsExporter:process.env.OTEL_METRICS_EXPORTER||"otlp",logsExporter:process.env.OTEL_LOGS_EXPORTER||"otlp",tracesExporter:process.env.OTEL_TRACES_EXPORTER,otlpProtocol:process.env.OTEL_EXPORTER_OTLP_PROTOCOL||"http/json",otlpEndpoint:process.env.OTEL_EXPORTER_OTLP_ENDPOINT,metricExportInterval:process.env.OTEL_METRIC_EXPORT_INTERVAL?Number.parseInt(process.env.OTEL_METRIC_EXPORT_INTERVAL,10):void 0,otlpHeaders:process.env.OTEL_EXPORTER_OTLP_HEADERS?$d(process.env.OTEL_EXPORTER_OTLP_HEADERS):void 0}}function Td(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 ol(n={}){return{...nl(),...n,metadata:Td(n.metadata)}}function Yd(n){let o=n?.trim();return o?o:void 0}function dl(n,o){if(!n)return;let d=typeof n==="function"?n(o):n;if(!d)return;let r=Yd(d.rootSessionId);if(!r)return;return{rootSessionId:r}}function fl(n){return Yd(n?.rootSessionId)}var rl=(n)=>crypto.getRandomValues(new Uint8Array(n)),ll=(n,o,d)=>{let r=256-256%n.length;if(r===256){let y=n.length-1;return(s=o)=>{if(!s)return"";let k="";while(!0){let I=d(s),c=s;while(c--)if(k+=n[I[c]&y],k.length>=s)return k}}}let l=Math.ceil(409.6*o/r);return(y=o)=>{if(!y)return"";let s="";while(!0){let k=d(l),I=l;while(I--)if(k[I]<r){if(s+=n[k[I]%n.length],s.length>=y)return s}}}},Fd=(n,o=21)=>ll(n,o|0,rl);function bl(n="",o=""){let d=Fd("1234567890abcdefghijklmnopqrstuvwxyz",10);return`${n}${Date.now()}_${d(5)}${o}`}var gl=["idle","running","pending","completed","failed","cancelled"];var an=["rules","skills","workflows","plugins"],Ud=an,sl=new Set(an);function Ld(n){return typeof n==="string"&&sl.has(n)}function yl(n){if(!Array.isArray(n))return;let o=n.map((d)=>typeof d==="string"?d.trim():"").filter(Ld);return[...new Set(o)]}function wl(n,o){return new Set(n??Ud).has(o)}import{z as L}from"zod";var kl=L.object({rootPath:L.string().min(1),hint:L.string().min(1).optional(),associatedRemoteUrls:L.array(L.string().min(1)).optional(),latestGitCommitHash:L.string().min(1).optional(),latestGitBranchName:L.string().min(1).optional()}),cl=L.object({currentWorkspacePath:L.string().min(1).optional(),workspaces:L.record(L.string().min(1),kl)});function sg(){return{workspaces:{}}}function yg(n,o){let d={...n,workspaces:{...n.workspaces,[o.rootPath]:o}};if(!d.currentWorkspacePath)d.currentWorkspacePath=o.rootPath;return cl.parse(d)}import{z as f}from"zod";var Al=["current_state","boundary_analysis","interface_proposal"],cg=3600000,Ag=240,_g=400,X=f.preprocess((n)=>n instanceof Date?n.toISOString():n,f.string().datetime()),z=f.enum(["pending","in_progress","blocked","completed"]),Xd=f.enum(["queued","running","completed","failed","cancelled","interrupted"]),_n=f.enum(["draft","in_review","finalized"]),_l=f.object({agentId:f.string(),role:f.enum(["lead","teammate"]),description:f.string().optional(),status:f.enum(["idle","running","stopped"])}),Ig=f.object({agentId:f.string(),rolePrompt:f.string(),modelId:f.string().optional(),maxIterations:f.number().optional()});function E(n){return f.preprocess((o)=>o===null?void 0:o,n.optional())}var Rg=f.object({agentId:f.string().min(1).describe("Teammate identifier"),rolePrompt:f.string().min(1).describe("System prompt describing teammate role")}).strict(),Dg=f.object({agentId:f.string().min(1).describe("Teammate identifier"),reason:E(f.string().min(1)).describe("Optional shutdown reason")}),eg=f.object({}),Il={create:["title","description"],list:[],claim:["taskId"],complete:["taskId","summary"],block:["taskId","reason"]},Bg={create:["status","taskId","summary","reason"]},qg=f.object({action:f.enum(["create","list","claim","complete","block"]),title:E(f.string().min(1)).describe("Task title"),description:E(f.string().min(1)).describe("Task details"),dependsOn:E(f.array(f.string().describe("Dependency task ID"))).describe("Array of dependency task IDs"),assignee:E(f.string().min(1)).describe("Optional assignee"),status:E(f.enum(["pending","in_progress","blocked","completed"])).describe("Optional task status filter"),taskId:E(f.string()).describe("Task ID"),summary:E(f.string().min(1)).describe("Completion summary"),reason:E(f.string().min(1)).describe("Blocking reason")}).superRefine((n,o)=>{for(let d of Il[n.action]){if(n[d]!==void 0)continue;o.addIssue({code:"custom",path:[d],message:`Field "${d}" is required when action=${n.action}`})}}),Eg=f.object({agentId:f.string().describe("Teammate agent ID"),task:f.string().min(1).describe("Task instructions for the teammate"),taskId:E(f.string()).describe("Optional shared task list ID"),runMode:E(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:E(f.boolean()).describe("If true, continue the teammate conversation; otherwise start fresh")}),Mg=f.object({status:E(f.enum(["queued","running","completed","failed","cancelled","interrupted"])).describe("Optional run status filter. Omit to include all statuses."),agentId:E(f.string().min(1)).describe("Optional teammate ID filter. Omit to include all teammates."),includeCompleted:E(f.boolean()).describe("Include completed/failed runs (default true)")}),Gg=f.object({runId:f.string().min(1).describe("Run ID"),reason:E(f.string().min(1)).describe("Optional cancellation reason")}),$g=f.object({runId:E(f.string().min(1)).describe("Optional async run ID to await. Omit to wait for all active async runs.")}).strict(),Tg=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:E(f.string().min(1)).describe("Optional task ID context")}),Yg=f.object({subject:f.string().min(1).describe("Message subject"),body:f.string().min(1).describe("Message body"),taskId:E(f.string().min(1)).describe("Optional task ID context")}),Fg=f.object({unreadOnly:E(f.boolean()).describe("Only unread messages for read action (default true)")}),Ug=f.object({kind:f.enum(["progress","handoff","blocked","decision","done","error"]),summary:f.string().min(1).describe("Update summary"),taskId:E(f.string().min(1)).describe("Optional task ID context"),evidence:E(f.array(f.string().min(1))).describe("Optional evidence links/snippets"),nextAction:E(f.string().min(1)).describe("Planned next step")}),Lg=f.object({}),Xg=f.object({title:f.string().describe("Outcome title"),requiredSections:f.array(f.string()).default(Al).describe("Required sections for finalization gate (defaults to current_state,boundary_analysis,interface_proposal)")}),Hg=f.object({outcomeId:f.string().describe("Outcome ID"),section:f.string().describe("Section name"),sourceRunId:E(f.string()).describe("Optional source run ID"),content:f.string().describe("Section fragment content")}),Pg=f.object({fragmentId:f.string().describe("Fragment ID"),approved:f.boolean().describe("Review decision")}),Zg=f.object({outcomeId:f.string().describe("Outcome ID")}),Vg=f.object({}),Jg=f.object({teamId:f.string(),teamName:f.string(),members:f.array(_l),taskCounts:f.record(z,f.number()),unreadMessages:f.number(),missionLogEntries:f.number(),activeRuns:f.number(),queuedRuns:f.number(),outcomeCounts:f.record(_n,f.number())}),Rl=f.object({id:f.string(),title:f.string(),description:f.string(),status:z,createdAt:X,updatedAt:X,createdBy:f.string(),assignee:f.string().optional(),dependsOn:f.array(f.string()),summary:f.string().optional(),isReady:f.boolean(),blockedBy:f.array(f.string())}),Wg=f.discriminatedUnion("action",[f.object({action:f.literal("create"),taskId:f.string(),status:z,ignoredFields:f.array(f.string()).optional(),note:f.string().optional()}),f.object({action:f.literal("list"),tasks:f.array(Rl)}),f.object({action:f.literal("claim"),taskId:f.string(),status:z,nextStep:f.string()}),f.object({action:f.literal("complete"),taskId:f.string(),status:z}),f.object({action:f.literal("block"),taskId:f.string(),status:z})]),Kg=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()}),Dl=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()})}),Cg=f.object({id:f.string(),agentId:f.string(),taskId:f.string().optional(),status:Xd,messagePreview:f.string(),priority:f.number(),retryCount:f.number(),maxRetries:f.number(),nextAttemptAt:X.optional(),continueConversation:f.boolean().optional(),startedAt:X,endedAt:X.optional(),leaseOwner:f.string().optional(),heartbeatAt:X.optional(),lastProgressAt:X.optional(),lastProgressMessage:f.string().optional(),currentActivity:f.string().optional(),error:f.string().optional(),resultSummary:Dl.optional()}),ug=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:X,readAt:X.optional()}),Qg=f.object({id:f.string(),teamId:f.string(),title:f.string(),status:_n,requiredSections:f.array(f.string()),createdBy:f.string(),createdAt:X,finalizedAt:X.optional()}),jg=f.object({outcomeId:f.string(),status:_n,requiredSections:f.array(f.string())}),Og=f.object({agentId:f.string(),status:f.string()}),Ng=f.object({runId:f.string(),status:Xd}),Sg=f.object({id:f.string(),toAgentId:f.string()}),hg=f.object({delivered:f.number()}),ig=f.object({id:f.string()}),mg=f.object({status:f.string()}),ag=f.object({fragmentId:f.string(),status:f.string()}),vg=f.object({outcomeId:f.string(),status:_n});var el;((M)=>{M.TaskStart="task_start";M.TaskEnd="task_end";M.AgentEvent="agent_event";M.TeammateSpawned="teammate_spawned";M.TeammateShutdown="teammate_shutdown";M.TeamTaskUpdated="team_task_updated";M.TeamMessage="team_message";M.TeamMissionLog="team_mission_log";M.TeamTaskCompleted="team_task_completed";M.RunStarted="run_started";M.RunQueued="run_queued";M.RunProgress="run_progress";M.RunCompleted="run_completed";M.RunFailed="run_failed";M.RunCancelled="run_cancelled";M.RunInterrupted="run_interrupted";M.OutcomeCreated="outcome_created";M.OutcomeFragmentAttached="outcome_fragment_attached";M.OutcomeFragmentReviewed="outcome_fragment_reviewed";M.OutcomeFinalized="outcome_finalized"})(el||={});import{z as Bl}from"zod";function ql(n){let{$schema:o,...d}=n;if(typeof d.type==="string")return d;if("properties"in d||"required"in d||"additionalProperties"in d)return{type:"object",...d};for(let r of["oneOf","anyOf","allOf"]){let l=d[r];if(!Array.isArray(l)||l.length===0)continue;if(r==="allOf"){if(l.some((k)=>k&&typeof k==="object"&&k.type==="object"))return{type:"object",...d};throw Error('Tool inputSchema must describe an object at the top level, but the schema has a top-level "allOf" with no branch that asserts type: "object". Add type: "object" to at least one allOf branch to make the object constraint explicit.')}if(l.every((s)=>s&&typeof s==="object"&&s.type==="object"))return{type:"object",...d};throw Error(`Tool inputSchema must describe an object at the top level, but the schema has a top-level "${r}" whose branches include non-object types. Pass the strict object schema as inputSchema and reserve union/coercion schemas for use inside execute().`)}return d}function El(n){let o=ql(n.inputSchema instanceof Bl.ZodType?un(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 Hd=["401","403","unauthorized","forbidden","invalid token","expired token","authentication"];function Ml(n){let o=(n instanceof Error?n.message:String(n)).toLowerCase();return Hd.some((d)=>o.includes(d))}export{un as zodToJsonSchema,To as xmlTagsRemoval,Er as validateWithZod,Xo as validateImageMedia,nn as validateAndReserveImageMedia,yg as upsertWorkspaceInfo,ao as truncateStr,Rr as truncateSplit,Ir as trimNonEmpty,Zo as toAiSdkToolResultOutput,er as stripUtf8Bom,$o as stripModeNotices,ad as shouldIncludeConnectorField,hf as serializeAbortReason,U as sanitizeSurrogates,_r as sanitizeFileName,rr as safeJsonStringify,lr as safeJsonParse,fl as resolveRootSessionId,Jo as resolveReasoningEffortRatio,Sf as resolveReasoningBudgetFromRatio,Fo as resolveMediaBudget,zl as resolveHubCommandTimeoutMs,dl as resolveHookSessionContext,Nf as resolveEffectiveReasoningEffort,qd as resolveClineEnvironment,t as reserveImageMediaBytes,Mo as parseUserCommandEnvelope,yl as parseRuntimeConfigExtensions,fr as parseJsonStream,If as parseHookEventPayload,wr as omitUndefinedValues,Go as normalizeUserInput,mn as normalizeSdkError,eo as normalizePluginManifest,Cn as normalizeJsonLikeStringsForSchema,vf as noopBasicLogger,jf as mergeModelOptions,Dr as maskSecret,Ao as listConnectorCatalog,Ld as isRuntimeConfigExtensionKind,Ml as isLikelyAuthError,tl as isHubToolExecutorName,al as isHubProtocolCompatible,Qn as isClineProvider,Pf as isCanonicalBase64,Uo as isBase64Char,Hf as imageFileMaxDecodedBytesForBase64Limit,qn as imageBase64LengthForDecodedBytes,Xf as imageBase64EncodedByteLength,Yo as imageBase64DecodedByteLength,wl as hasRuntimeConfigExtension,mo as getShellKind,Ar as getShellArgs,cr as getDefaultShell,Df as getDefaultHubCommandTimeoutMs,ur as getClineEnvironmentConfig,qf as formatUserInputBlock,Ef as formatUserCommandBlock,qr as formatUptime,Mf as formatModeSwitchNotice,Qf as formatMessagesForAiSdk,Br as formatHumanReadableDate,Bn as formatFileContentBlock,Ff as formatDisplayUserInput,Wo as estimateTokens,af as estimateRequestInputTokens,sg as emptyWorkspaceManifest,yr as decodeJwtPayload,El as createTool,bl as createSessionId,Gf as createModeSwitchNoticeTracker,wn as createMediaBudgetState,ff as createContributionRegistry,Td as createClineTelemetryServiceMetadata,ol as createClineTelemetryServiceConfig,vd as connectorChannelsFromPlatforms,ar as captureTaskLifecycleEvent,vr as captureSdkError,mr as captureAgentUnexpectedReasoningTokens,Md as buildSdkErrorProperties,Mr as buildClineSystemPrompt,cl as WorkspaceManifestSchema,kl as WorkspaceInfoSchema,yd as VertexSettingsSchema,sd as VertexModelSchema,Ab as USAGE_COST_DISPLAYS,Dn as ToolCallRecordSchema,go as ThinkingConfigSchema,Ig as TeamTeammateSpecSchema,Wg as TeamTaskToolResultSchema,Rl as TeamTaskListItemToolResultSchema,qg as TeamTaskInputSchema,Jg as TeamStatusToolResultSchema,eg as TeamStatusInputSchema,Rg as TeamSpawnTeammateInputSchema,Og as TeamSimpleAgentStatusToolResultSchema,Dg as TeamShutdownTeammateInputSchema,Sg as TeamSendMessageToolResultSchema,Tg as TeamSendMessageInputSchema,Cg as TeamRunToolSummarySchema,Kg as TeamRunTaskToolResultSchema,Eg as TeamRunTaskInputSchema,Dl as TeamRunResultSummarySchema,Pg as TeamReviewOutcomeFragmentInputSchema,Fg as TeamReadMailboxInputSchema,Qg as TeamOutcomeToolResultSchema,ag as TeamOutcomeFragmentToolResultSchema,ig as TeamMissionLogToolResultSchema,Ug as TeamMissionLogInputSchema,el as TeamMessageType,ug as TeamMailboxMessageToolResultSchema,Mg as TeamListRunsInputSchema,Vg as TeamListOutcomesInputSchema,vg as TeamFinalizeOutcomeToolResultSchema,Zg as TeamFinalizeOutcomeInputSchema,jg as TeamCreateOutcomeToolResultSchema,Xg as TeamCreateOutcomeInputSchema,mg as TeamCleanupToolResultSchema,Lg as TeamCleanupInputSchema,Ng as TeamCancelRunToolResultSchema,Gg as TeamCancelRunInputSchema,hg as TeamBroadcastToolResultSchema,Yg as TeamBroadcastInputSchema,$g as TeamAwaitRunsInputSchema,Hg as TeamAttachOutcomeFragmentInputSchema,Bg as TEAM_TASK_IGNORED_FIELDS_BY_ACTION,_g as TEAM_RUN_TEXT_PREVIEW_LIMIT,Ag as TEAM_RUN_MESSAGE_PREVIEW_LIMIT,Pr as TEAM_PROGRESS_EVENT_TYPE,Zr as TEAM_LIFECYCLE_EVENT_TYPE,cg as TEAM_AWAIT_TIMEOUT_MS,Or as TASK_PROVIDER_STREAM_STARTED_EVENT,Sr as TASK_PROVIDER_STREAM_FAILED_EVENT,jr as TASK_PROVIDER_REQUEST_STARTED_EVENT,Nr as TASK_FIRST_CHUNK_RECEIVED_EVENT,hr as TASK_CANCELLED_EVENT,yn as SUPPORTED_IMAGE_MEDIA_TYPES,gl as SESSION_STATUS_VALUES,ir as SDK_ERROR_TELEMETRY_EVENT,An as S3AccessKeySettingsSchema,Id as RemoteMCPServerSchema,Tr as RemoteConfigSchema,Sd as ReasoningEffortSchema,an as RUNTIME_CONFIG_EXTENSION_KINDS,Gr as REMOTE_URI_SCHEME,dn as REASONING_EFFORT_RATIOS,Xr as ProviderProtocolSchema,Hr as ProviderClientSchema,Lr as ProviderCapabilitySchema,Rd as PromptUploadingSchema,rf as PLUGIN_FILE_EXTENSIONS,nd as PLAN_MODE_INSTRUCTIONS,dd as OpenAiCompatibleSchema,od as OpenAiCompatibleModelSchema,pl as ONE_TIME_SCHEDULE_RUN_AT_METADATA_KEY,vl as ONE_TIME_SCHEDULE_CRON_PATTERN,lo as ModelStatusSchema,bo as ModelPricingSchema,so as ModelMetadataSchema,bn as ModelInfoSchema,ro as ModelCapabilitySchema,to as MODE_TAG_INSTRUCTIONS,hl as MIN_CLIENT_HUB_PROTOCOL_VERSION,il as MAX_CLIENT_HUB_PROTOCOL_VERSION,kd as LiteLLMSchema,wd as LiteLLMModelSchema,Q as IMAGE_OMITTED_PLACEHOLDER,Eo as HookEventPayloadSchema,qo as HookEventNameSchema,bb as HUB_USER_INSTRUCTIONS_SNAPSHOT_CAPABILITY,ef as HUB_TOOL_EXECUTOR_NAMES,nb as HUB_TOOL_EXECUTOR_CAPABILITY_PREFIX,lb as HUB_MISTAKE_LIMIT_CAPABILITY,db as HUB_HOOK_CAPABILITY_PREFIX,Rf as HUB_DEFAULT_COMMAND_TIMEOUT_MS,ob as HUB_CUSTOM_TOOL_CAPABILITY_PREFIX,fb as HUB_COMPACTION_CAPABILITY,xl as HUB_COMMAND_SLOW_LOG_MS,rb as HUB_CHECKPOINT_CAPABILITY,ml as HUB_CAPABILITIES,On as GlobalInstructionsFileSchema,lf as FeatureFlagDefaultValue,bf as FEATURE_FLAGS,Dd as EnterpriseTelemetrySchema,En as EMPTY_CONTENT_TEXT,Ud as DEFAULT_RUNTIME_CONFIG_EXTENSIONS,Of as DEFAULT_REASONING_EFFORT,Al as DEFAULT_OUTCOME_REQUIRED_SECTIONS,Lf as DEFAULT_MAX_TOTAL_MEDIA_BYTES,K as DEFAULT_MAX_IMAGE_ENCODED_BYTES,j as DEFAULT_MAX_IMAGE_DECODED_BYTES,Uf as DEFAULT_MAX_IMAGE_BASE64_BYTES,Wr as DEFAULT_CLINE_ENVIRONMENT,en as ContributionRegistry,md as ConnectorHookEventSchema,yo as ConnectorHookEventNameSchema,ko as ConnectorEventContextSchema,wo as ConnectorEventActorSchema,hd as ConnectorAuthorizationRequestSchema,id as ConnectorAuthorizationDecisionSchema,gd as ClineSettingsSchema,bd as ClineModelSchema,Sl as CURRENT_HUB_PROTOCOL_VERSION,_o as CONNECTOR_PLATFORMS,co as CONNECTOR_CATALOG,Jr as CLINE_ENVIRONMENT_OVERRIDE_ENV,Vr as CLINE_ENVIRONMENT_ENV,Sn as CLINE_ENVIRONMENTS,Fr as CLINE_DEFAULT_RPC_PORT,Ur as CLINE_DEFAULT_RPC_ADDRESS,mf as CHARS_PER_TOKEN,ld as AwsBedrockSettingsSchema,fd as AwsBedrockModelSchema,rd as AwsBedrockCustomModelSchema,fo as ApiFormatSchema,jd as ApiFormat,Ad as AnthropicSchema,cd as AnthropicModelSchema,_d as AllowedMCPServerSchema,Nd as AgentUsageSchema,Hl as AgentResultSchema,Od as AgentFinishReasonSchema,Pl as AgentConfigSchema,Hd as AUTH_ERROR_PATTERNS,Yr as APIKeySchema,Qr as AGENT_UNEXPECTED_REASONING_TOKENS_EVENT};
package/dist/index.d.ts CHANGED
@@ -33,7 +33,7 @@ export { type BasicLogger, type BasicLogMetadata, noopBasicLogger, } from "./log
33
33
  export { normalizeJsonLikeStringsForSchema, parseJsonStream, safeJsonParse, safeJsonStringify, } from "./parse/json";
34
34
  export { decodeJwtPayload } from "./parse/jwt";
35
35
  export { type OmitUndefinedValues, omitUndefinedValues } from "./parse/object";
36
- export { getDefaultShell, getShellArgs } from "./parse/shell";
36
+ export { getDefaultShell, getShellArgs, getShellKind, type ShellKind, } from "./parse/shell";
37
37
  export { maskSecret, sanitizeFileName, stripUtf8Bom, trimNonEmpty, truncateSplit, truncateStr, } from "./parse/string";
38
38
  export { formatHumanReadableDate, formatUptime } from "./parse/time";
39
39
  export { validateWithZod, zodToJsonSchema } from "./parse/zod";
@@ -57,8 +57,8 @@ export { augmentNodeCommandForDebug, CLINE_BUILD_ENV_ENV, CLINE_DEBUG_HOST_ENV,
57
57
  export type { ClineEnvironment, ClineEnvironmentConfig, ResolveClineEnvironmentOptions, } from "./runtime/cline-environment";
58
58
  export { CLINE_ENVIRONMENT_ENV, CLINE_ENVIRONMENT_OVERRIDE_ENV, CLINE_ENVIRONMENTS, DEFAULT_CLINE_ENVIRONMENT, getClineEnvironmentConfig, resolveClineEnvironment, } from "./runtime/cline-environment";
59
59
  export { CLINE_RUN_AS_HUB_DAEMON_ENV, isHubDaemonProcess, } from "./runtime/hub-daemon-env";
60
- export type { CaptureAgentUnexpectedReasoningTokensInput, CaptureSdkErrorInput, ITelemetryService, OpenTelemetryClientConfig, SdkTelemetryErrorComponent, SdkTelemetryErrorSeverity, TelemetryArray, TelemetryMetadata, TelemetryObject, TelemetryPrimitive, TelemetryProperties, TelemetryValue, } from "./services/telemetry";
61
- export { AGENT_UNEXPECTED_REASONING_TOKENS_EVENT, buildSdkErrorProperties, captureAgentUnexpectedReasoningTokens, captureSdkError, normalizeSdkError, SDK_ERROR_TELEMETRY_EVENT, } from "./services/telemetry";
60
+ export type { CaptureAgentUnexpectedReasoningTokensInput, CaptureSdkErrorInput, CaptureTaskLifecycleEventInput, ITelemetryService, OpenTelemetryClientConfig, SdkTelemetryErrorComponent, SdkTelemetryErrorSeverity, TelemetryArray, TelemetryMetadata, TelemetryObject, TelemetryPrimitive, TelemetryProperties, TelemetryValue, } from "./services/telemetry";
61
+ export { AGENT_UNEXPECTED_REASONING_TOKENS_EVENT, buildSdkErrorProperties, captureAgentUnexpectedReasoningTokens, captureSdkError, captureTaskLifecycleEvent, normalizeSdkError, SDK_ERROR_TELEMETRY_EVENT, TASK_CANCELLED_EVENT, TASK_FIRST_CHUNK_RECEIVED_EVENT, TASK_PROVIDER_REQUEST_STARTED_EVENT, TASK_PROVIDER_STREAM_FAILED_EVENT, TASK_PROVIDER_STREAM_STARTED_EVENT, } from "./services/telemetry";
62
62
  export type { ClineTelemetryServiceConfig } from "./services/telemetry-config";
63
63
  export { createClineTelemetryServiceConfig, createClineTelemetryServiceMetadata, } from "./services/telemetry-config";
64
64
  export type { HookSessionContext, HookSessionContextLookup, HookSessionContextProvider, } from "./session/hook-context";