@cline/core 0.0.85 → 0.0.86

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.
@@ -31,6 +31,7 @@ export declare const StoredModelEntrySchema: z.ZodObject<{
31
31
  "speech-generation": "speech-generation";
32
32
  "video-generation": "video-generation";
33
33
  transcription: "transcription";
34
+ realtime: "realtime";
34
35
  }>>;
35
36
  operationModes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
36
37
  streaming: "streaming";
@@ -176,6 +177,7 @@ export declare const StoredProviderEntrySchema: z.ZodObject<{
176
177
  "speech-generation": "speech-generation";
177
178
  "video-generation": "video-generation";
178
179
  transcription: "transcription";
180
+ realtime: "realtime";
179
181
  }>>;
180
182
  operationModes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
181
183
  streaming: "streaming";
@@ -283,6 +285,7 @@ export declare const StoredModelsFileSchema: z.ZodObject<{
283
285
  "speech-generation": "speech-generation";
284
286
  "video-generation": "video-generation";
285
287
  transcription: "transcription";
288
+ realtime: "realtime";
286
289
  }>>;
287
290
  operationModes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
288
291
  streaming: "streaming";
@@ -29,19 +29,17 @@ export interface TranscribeLocalAudioRequest {
29
29
  providerId: string;
30
30
  modelId: string;
31
31
  audio: Uint8Array;
32
- mediaType?: string;
33
32
  abortSignal?: AbortSignal;
34
33
  }
35
34
  export interface TranscribeConfiguredVoiceInputRequest {
36
35
  audio: Uint8Array;
37
- mediaType?: string;
38
36
  abortSignal?: AbortSignal;
39
37
  }
40
38
  export interface CreateConfiguredStreamingTranscriptionSessionRequest {
41
39
  expiresAfterSeconds?: number;
42
40
  abortSignal?: AbortSignal;
43
41
  }
44
- export declare function isDedicatedTranscriptionModel(model: Pick<ProviderModel, "operation">): boolean;
42
+ export declare function isDedicatedTranscriptionModel(model: Pick<ProviderModel, "operation" | "inputModalities" | "outputModalities">): boolean;
45
43
  export declare function addLocalProvider(manager: ProviderSettingsManager, request: Omit<AddProviderActionRequest, "action">): Promise<{
46
44
  providerId: string;
47
45
  settingsPath: string;
@@ -77,6 +75,11 @@ export declare function getLocalProviderModels(providerId: string, config?: Prov
77
75
  providerId: string;
78
76
  models: ProviderModel[];
79
77
  }>;
78
+ /** The same executable voice catalog is used by pickers, saves, and requests. */
79
+ export declare function getLocalTranscriptionModels(providerId: string, config?: ProviderConfig): Promise<{
80
+ providerId: string;
81
+ models: ProviderModel[];
82
+ }>;
80
83
  export declare function transcribeLocalAudio(manager: ProviderSettingsManager, request: TranscribeLocalAudioRequest): Promise<LlmsModels.AudioTranscriptionResult>;
81
84
  export declare function saveVoiceInputSettings(manager: ProviderSettingsManager, selection: VoiceInputSelection | undefined): Promise<{
82
85
  settingsPath: string;
@@ -24,6 +24,7 @@ export declare const CORE_TELEMETRY_EVENTS: {
24
24
  readonly SESSION: {
25
25
  readonly STARTED: "session.started";
26
26
  readonly ENDED: "session.ended";
27
+ readonly ERROR_RECORDED: "session.error_recorded";
27
28
  };
28
29
  readonly AGENT: {
29
30
  readonly UNEXPECTED_REASONING_TOKENS: "agent.reasoning.unexpected_tokens";
@@ -55,6 +56,7 @@ export declare const CORE_TELEMETRY_EVENTS: {
55
56
  readonly PROVIDER_STREAM_STARTED: "task.provider_stream_started";
56
57
  readonly FIRST_CHUNK_RECEIVED: "task.first_chunk_received";
57
58
  readonly PROVIDER_STREAM_FAILED: "task.provider_stream_failed";
59
+ readonly MAX_TOKENS_RECOVERY: "task.max_tokens_recovery";
58
60
  readonly CANCELLED: "task.cancelled";
59
61
  readonly MENTION_USED: "task.mention_used";
60
62
  readonly MENTION_FAILED: "task.mention_failed";
@@ -462,6 +464,13 @@ export interface CaptureCompactionBudgetEmergencyProperties {
462
464
  modelId?: string;
463
465
  }
464
466
  export declare function captureCompactionBudgetEmergency(telemetry: ITelemetryService | undefined, properties: CaptureCompactionBudgetEmergencyProperties & Partial<TelemetryAgentIdentityProperties>): void;
467
+ /** A terminal failure was recorded as a display-only transcript entry. */
468
+ export declare function captureSessionErrorRecorded(telemetry: ITelemetryService | undefined, details: {
469
+ sessionId?: string;
470
+ provider: string;
471
+ model: string;
472
+ source: "result" | "thrown";
473
+ }): void;
465
474
  /** Bounded scheduler diagnostics; never include prompts, paths, or raw errors. */
466
475
  export declare function captureScheduleRun(telemetry: ITelemetryService | undefined, input: {
467
476
  triggerKind: "one_off" | "schedule" | "event" | "manual" | "retry";
@@ -1 +1 @@
1
- import{existsSync as v,mkdirSync as u,readFileSync as c,writeFileSync as m}from"node:fs";import{resolve as d}from"node:path";import{resolveSessionDataDir as l}from"@cline/shared/storage";import{nanoid as r}from"nanoid";import*as p from"node-machine-id";var n="machine-id",M,w=!1;function Q(){if(!w)M=h(),w=!0;return M??q()}function P(f){let T=f?.trim();if(T)return T;let A=h();if(A)return A;return q()}function a(){let f=p;return f.machineIdSync??f.default?.machineIdSync}function h(){try{let f=a();if(!f)return;return f().trim()||void 0}catch{return}}function q(){let f=l(),T=d(f,n);try{if(v(T)){let O=c(T,"utf8").trim();if(O.length>0)return O}}catch{}let A=`cl-${r()}`;try{u(f,{recursive:!0}),m(T,A,"utf8")}catch{}return A}class X{name;metadata;meter;logger;enabled;distinctId;commonProperties;counters=new Map;histograms=new Map;gauges=new Map;gaugeValues=new Map;meterProvider;loggerProvider;constructor(f){this.name=f.name??"OpenTelemetryAdapter",this.metadata={...f.metadata},this.meterProvider=f.meterProvider,this.loggerProvider=f.loggerProvider,this.meter=f.meterProvider?.getMeter("cline")??null,this.logger=f.loggerProvider?.getLogger("cline")??null,this.enabled=f.enabled??!0,this.distinctId=f.distinctId,this.commonProperties=f.commonProperties?{...f.commonProperties}:{}}emit(f,T){if(!this.isEnabled())return;this.emitLog(f,T,!1)}emitRequired(f,T){this.emitLog(f,T,!0)}recordCounter(f,T,A,O,j=!1){if(!this.meter||!j&&!this.isEnabled())return;let J=this.counters.get(f);if(!J)J=this.meter.createCounter(f,O?{description:O}:void 0),this.counters.set(f,J);J.add(T,this.flattenProperties(this.buildAttributes(A)))}recordHistogram(f,T,A,O,j=!1){if(!this.meter||!j&&!this.isEnabled())return;let J=this.histograms.get(f);if(!J)J=this.meter.createHistogram(f,O?{description:O}:void 0),this.histograms.set(f,J);J.record(T,this.flattenProperties(this.buildAttributes(A)))}recordGauge(f,T,A,O,j=!1){if(!this.meter||!j&&!this.isEnabled())return;let J=this.buildAttributes(A),_=JSON.stringify(J),W=this.gaugeValues.get(f);if(T===null){if(W){if(W.delete(_),W.size===0)this.gaugeValues.delete(f),this.gauges.delete(f)}return}let K=W;if(!K)K=new Map,this.gaugeValues.set(f,K);if(!this.gauges.has(f)){let $=this.meter.createObservableGauge(f,O?{description:O}:void 0);$.addCallback((U)=>{for(let C of this.snapshotGaugeSeries(f))U.observe(C.value,this.flattenProperties(C.attributes))}),this.gauges.set(f,$)}K.set(_,{value:T,attributes:J})}isEnabled(){return typeof this.enabled==="function"?this.enabled():this.enabled}setDistinctId(f){this.distinctId=f}setCommonProperties(f){this.commonProperties={...f}}updateCommonProperties(f){this.commonProperties={...this.commonProperties,...f}}async flush(){await Promise.all([this.meterProvider?.forceFlush?.(),this.loggerProvider?.forceFlush?.()])}async dispose(){await Promise.all([this.meterProvider?.shutdown?.(),this.loggerProvider?.shutdown?.()])}emitLog(f,T,A){if(!this.logger)return;let O=this.flattenProperties(this.buildAttributes(T,A));this.logger.emit({severityText:"INFO",body:f,attributes:O})}buildAttributes(f,T=!1){return{...this.commonProperties,...this.metadata,...f,...this.distinctId?{distinct_id:this.distinctId}:{},...T?{_required:!0}:{}}}snapshotGaugeSeries(f){let T=this.gaugeValues.get(f);if(!T)return[];return Array.from(T.values(),(A)=>({value:A.value,attributes:A.attributes?{...A.attributes}:void 0}))}flattenProperties(f,T="",A=new WeakSet,O=0){if(!f)return{};let j={},J=100,_=10;for(let[W,K]of Object.entries(f)){if(W==="__proto__"||W==="constructor"||W==="prototype")continue;let $=T?`${T}.${W}`:W;if(K===null||K===void 0){j[$]=String(K);continue}if(Array.isArray(K)){let U=K.length>J?K.slice(0,J):K;try{j[$]=JSON.stringify(U)}catch{j[$]="[UnserializableArray]"}if(K.length>J)j[`${$}_truncated`]=!0,j[`${$}_original_length`]=K.length;continue}if(typeof K==="object"){if(K instanceof Date){j[$]=K.toISOString();continue}if(K instanceof Error){j[$]=K.message;continue}if(A.has(K)){j[$]="[Circular]";continue}if(O>=_){j[$]="[MaxDepthExceeded]";continue}A.add(K),Object.assign(j,this.flattenProperties(K,$,A,O+1));continue}if(s(K)){j[$]=K;continue}try{j[$]=JSON.stringify(K)}catch{j[$]=String(K)}}return j}}function s(f){return typeof f==="string"||typeof f==="number"||typeof f==="boolean"}import{LangfuseAttributesSpanProcessor as Kf}from"@cline/llms";import{markOtlpTraceRelayProvider as Wf}from"@cline/shared";import{metrics as $f,trace as Bf}from"@opentelemetry/api";import{logs as Rf}from"@opentelemetry/api-logs";import{OTLPLogExporter as Uf}from"@opentelemetry/exporter-logs-otlp-http";import{OTLPMetricExporter as Hf}from"@opentelemetry/exporter-metrics-otlp-http";import{OTLPTraceExporter as Pf}from"@opentelemetry/exporter-trace-otlp-http";import{resourceFromAttributes as Xf}from"@opentelemetry/resources";import{BatchLogRecordProcessor as Yf,ConsoleLogRecordExporter as Zf,LoggerProvider as Qf}from"@opentelemetry/sdk-logs";import{ConsoleMetricExporter as Sf,MeterProvider as Vf,PeriodicExportingMetricReader as z}from"@opentelemetry/sdk-metrics";import{BatchSpanProcessor as Lf,ConsoleSpanExporter as Ff,SimpleSpanProcessor as kf}from"@opentelemetry/sdk-trace-base";import{NodeTracerProvider as Ef}from"@opentelemetry/sdk-trace-node";import{ATTR_SERVICE_NAME as Cf,ATTR_SERVICE_VERSION as Mf}from"@opentelemetry/semantic-conventions";import{mkdirSync as tf,readFileSync as i,statSync as o,writeFileSync as ef}from"node:fs";import{CONFIGURABLE_MODEL_TOOL_NAMES as t}from"@cline/shared";import{resolveGlobalSettingsPath as e}from"@cline/shared/storage";import{z as B}from"zod";import{AGENT_UNEXPECTED_REASONING_TOKENS_EVENT as vf,captureAgentUnexpectedReasoningTokens as uf,captureTaskLifecycleEvent as cf,SDK_ERROR_TELEMETRY_EVENT as mf,TASK_CANCELLED_EVENT as df,TASK_FIRST_CHUNK_RECEIVED_EVENT as lf,TASK_PROVIDER_REQUEST_STARTED_EVENT as rf,TASK_PROVIDER_STREAM_FAILED_EVENT as pf,TASK_PROVIDER_STREAM_STARTED_EVENT as nf}from"@cline/shared";var S=B.preprocess((f)=>Array.isArray(f)?f.filter((T)=>typeof T==="string").map((T)=>T.trim()).filter(Boolean):void 0,B.array(B.string()).optional()).transform((f)=>{if(!f)return;let T=[...new Set(f)].sort((A,O)=>A.localeCompare(O));return T.length>0?T:void 0}),ff=B.enum(["basic","agentic"]).catch("agentic"),Tf=B.partialRecord(B.enum(t),B.object({enabled:B.boolean()}).strip()).optional(),Af=B.enum(["plan","act"]),I=B.object({telemetryOptOut:B.boolean().default(!1).catch(!1),autoUpdateEnabled:B.boolean().default(!0).catch(!0),compactionStrategy:ff.optional(),compactionEnabled:B.boolean().optional().catch(void 0),planActMode:Af.optional().catch(void 0),toolAutoApprove:B.boolean().optional().catch(void 0),tuiTheme:B.string().optional().catch(void 0),disabledTools:S.optional(),tools:Tf,disabledPlugins:S.optional(),disabledAgentPlugins:S.optional()}).strip().transform((f)=>{let T={autoUpdateEnabled:f.autoUpdateEnabled,telemetryOptOut:f.telemetryOptOut};if(f.compactionStrategy)T.compactionStrategy=f.compactionStrategy;if(f.compactionEnabled!==void 0)T.compactionEnabled=f.compactionEnabled;if(f.planActMode)T.planActMode=f.planActMode;if(f.toolAutoApprove!==void 0)T.toolAutoApprove=f.toolAutoApprove;if(f.tuiTheme?.trim())T.tuiTheme=f.tuiTheme.trim();if(f.disabledTools?.length)T.disabledTools=f.disabledTools;if(f.tools&&Object.keys(f.tools).length>0)T.tools=f.tools;if(f.disabledPlugins?.length)T.disabledPlugins=f.disabledPlugins;if(f.disabledAgentPlugins?.length)T.disabledAgentPlugins=f.disabledAgentPlugins;return T});function Y(){return I.parse({})}var V;function Of(f){if(f.disabledTools)Object.freeze(f.disabledTools);if(f.tools){for(let T of Object.values(f.tools))Object.freeze(T);Object.freeze(f.tools)}if(f.disabledPlugins)Object.freeze(f.disabledPlugins);if(f.disabledAgentPlugins)Object.freeze(f.disabledAgentPlugins);return Object.freeze(f)}function jf(f){let T;try{T=i(f,"utf8")}catch{return{value:Y(),loadFailed:!0}}try{let A=I.safeParse(JSON.parse(T));return A.success?{value:A.data,loadFailed:!1}:{value:Y(),loadFailed:!0}}catch{return{value:Y(),loadFailed:!0}}}function _f(){let f=e(),T=o(f,{throwIfNoEntry:!1}),A=T?.mtimeMs??0,O=T?.size??0,j=V;if(j&&j.path===f&&j.mtimeMs===A&&j.size===O)return j;let J=T?jf(f):{value:Y(),loadFailed:!1},_=Of(J.value);return V={path:f,mtimeMs:A,size:O,value:_,loadFailed:J.loadFailed},V}function Jf(){return _f().value}function N(){return Jf().telemetryOptOut}class L{name;logger;enabled;constructor(f={}){this.name=f.name??"TelemetryLoggerSink",this.logger=f.logger,this.enabled=f.enabled??!0}emit(f,T){if(!this.isEnabled())return;this.logger?.log("telemetry.event",{telemetrySink:this.name,event:f,properties:T})}emitRequired(f,T){this.logger?.log("telemetry.required_event",{telemetrySink:this.name,severity:"warn",event:f,properties:T})}recordCounter(f,T,A,O,j){if(!j&&!this.isEnabled())return;this.logger?.debug("telemetry.metric",{telemetrySink:this.name,instrument:"counter",name:f,value:T,attributes:A,description:O,required:j===!0})}recordHistogram(f,T,A,O,j){if(!j&&!this.isEnabled())return;this.logger?.debug("telemetry.metric",{telemetrySink:this.name,instrument:"histogram",name:f,value:T,attributes:A,description:O,required:j===!0})}recordGauge(f,T,A,O,j){if(!j&&!this.isEnabled())return;this.logger?.debug("telemetry.metric",{telemetrySink:this.name,instrument:"gauge",name:f,value:T,attributes:A,description:O,required:j===!0})}isEnabled(){return typeof this.enabled==="function"?this.enabled():this.enabled}async flush(){}async dispose(){}}class Z{adapters;metadata;distinctId;deviceId;commonProperties;constructor(f={}){if(this.adapters=[...f.adapters??[]],f.logger)this.adapters.push(new L({logger:f.logger}));this.metadata={...f.metadata??{}},this.distinctId=f.distinctId,this.deviceId=f.deviceId??Q(),this.commonProperties={...f.commonProperties??{}}}addAdapter(f){this.adapters.push(f)}setDistinctId(f){this.distinctId=f}setMetadata(f){this.metadata={...f}}updateMetadata(f){this.metadata={...this.metadata,...f}}setCommonProperties(f){this.commonProperties={...f}}updateCommonProperties(f){this.commonProperties={...this.commonProperties,...f}}isEnabled(){return this.adapters.some((f)=>f.isEnabled())}capture(f){let T=this.buildAttributes(f.properties);for(let A of this.adapters)A.emit(f.event,T)}captureRequired(f,T){let A=this.buildAttributes(T);for(let O of this.adapters)O.emitRequired(f,A)}recordCounter(f,T,A,O,j=!1){let J=this.buildAttributes(A);for(let _ of this.adapters)_.recordCounter(f,T,J,O,j)}recordHistogram(f,T,A,O,j=!1){let J=this.buildAttributes(A);for(let _ of this.adapters)_.recordHistogram(f,T,J,O,j)}recordGauge(f,T,A,O,j=!1){let J=this.buildAttributes(A);for(let _ of this.adapters)_.recordGauge(f,T,J,O,j)}async flush(){await Promise.all(this.adapters.map((f)=>f.flush()))}async dispose(){await Promise.all(this.adapters.map((f)=>f.dispose()))}buildAttributes(f){let T=typeof f?.distinct_id==="string"&&f.distinct_id.trim()?f.distinct_id.trim():this.distinctId,A={...this.commonProperties,...this.metadata,...f,...T?{distinct_id:T}:{},device_id:this.deviceId};return Object.fromEntries(Object.entries(A).filter(([,O])=>O!==void 0))}}class D{distinctId;metadata;commonProperties;constructor(f={}){this.distinctId=f.distinctId,this.metadata={...f.metadata??{}},this.commonProperties={...f.commonProperties??{}}}setDistinctId(f){this.distinctId=f}setMetadata(f){this.metadata={...f}}updateMetadata(f){this.metadata={...this.metadata,...f}}setCommonProperties(f){this.commonProperties={...f}}updateCommonProperties(f){this.commonProperties={...this.commonProperties,...f}}isEnabled(){return!1}capture(f){this.resolveProperties(f.properties)}captureRequired(f,T){this.resolveProperties(T)}recordCounter(){}recordHistogram(){}recordGauge(){}async flush(){}async dispose(){}resolveProperties(f){let T=typeof f?.distinct_id==="string"&&f.distinct_id.trim()?f.distinct_id.trim():this.distinctId,A={...this.commonProperties,...this.metadata,...f,...T?{distinct_id:T}:{}};return Object.fromEntries(Object.entries(A).filter(([,O])=>O!==void 0))}}class k{meterProvider;loggerProvider;tracerProvider;options;constructor(f={}){this.options=f;let T=Xf({[Cf]:f.serviceName??"cline",...f.serviceVersion?{[Mf]:f.serviceVersion}:{}});if(this.meterProvider=this.createMeterProvider(T),this.loggerProvider=this.createLoggerProvider(T),this.tracerProvider=this.createTracerProvider(T),this.meterProvider)$f.setGlobalMeterProvider(this.meterProvider);if(this.loggerProvider)Rf.setGlobalLoggerProvider(this.loggerProvider);if(this.tracerProvider)this.tracerProvider.register()}getTracer(f="cline",T){return Bf.getTracer(f,T??this.options.serviceVersion)}createAdapter(f){return new X({...f,meterProvider:this.meterProvider,loggerProvider:this.loggerProvider})}createTelemetryService(f){let T=this.createAdapter({name:f.name,enabled:this.options.enabled,metadata:f.metadata});return new Z({...f,adapters:[T],distinctId:P(f.distinctId)})}async forceFlush(){await Promise.all([this.meterProvider?.forceFlush?.(),this.loggerProvider?.forceFlush?.(),this.tracerProvider?.forceFlush?.()])}async dispose(){await Promise.all([this.meterProvider?.shutdown?.(),this.loggerProvider?.shutdown?.(),this.tracerProvider?.shutdown?.()])}createMeterProvider(f){let T=F(this.options.metricsExporter);if(T.length===0)return null;let A=Math.max(1000,this.options.metricExportIntervalMs??this.options.metricExportInterval??60000),O=Math.min(30000,Math.floor(A*0.8)),j=T.map((J)=>If(J,{endpoint:this.options.otlpEndpoint,headers:this.options.otlpHeaders,insecure:this.options.otlpInsecure??!1,protocol:"http/json",interval:A,timeout:O})).filter((J)=>J!==null);if(j.length===0)return null;return new Vf({resource:f,readers:j})}createTracerProvider(f){let T=F(this.options.tracesExporter);if(T.length===0)return null;let A=this.options.otlpTracesEndpoint??this.options.otlpEndpoint,O=this.options.otlpTracesHeaders??this.options.otlpHeaders,j=[],J=!1;for(let W of T){let K=qf(W,{endpoint:A,headers:O,insecure:this.options.otlpInsecure??!1,protocol:"http/json"});if(K){if(j.push(K),W!=="console")J=!0}}if(j.length===0)return null;let _=new Ef({resource:f,spanProcessors:J?[new Kf,...j]:j});if(J)Wf(_);return _}createLoggerProvider(f){let T=F(this.options.logsExporter);if(T.length===0)return null;let A=T.map((O)=>{let j=hf(O,{endpoint:this.options.otlpEndpoint,headers:this.options.otlpHeaders,insecure:this.options.otlpInsecure??!1,protocol:"http/json"});if(!j)return null;return new Yf(j,{maxQueueSize:this.options.logMaxQueueSize??2048,maxExportBatchSize:this.options.logBatchSize??512,scheduledDelayMillis:this.options.logBatchTimeoutMs??this.options.logBatchTimeout??5000})}).filter((O)=>O!==null);if(A.length===0)return null;return new Qf({resource:f,processors:A})}}function x(f){let T=new k(f),A=T.createTelemetryService(f),O=()=>{A.captureRequired("telemetry.provider_created",{provider:"opentelemetry",enabled:f.enabled??!0,logsExporter:Array.isArray(f.logsExporter)?f.logsExporter.join(","):f.logsExporter,metricsExporter:Array.isArray(f.metricsExporter)?f.metricsExporter.join(","):f.metricsExporter,tracesExporter:Array.isArray(f.tracesExporter)?f.tracesExporter.join(","):f.tracesExporter,otlpProtocol:f.otlpProtocol,hasOtlpEndpoint:Boolean(f.otlpEndpoint),serviceName:f.serviceName,serviceVersion:f.serviceVersion})};if(!f.deferProviderCreatedEvent)O();return{provider:T,telemetry:A,emitProviderCreated:O}}function G(f){if(N())return{telemetry:new D(f)};if(f.enabled!==!0)return{telemetry:new Z({...f,distinctId:P(f.distinctId)})};return x(f)}function wf(f){let{telemetry:T,provider:A,emitProviderCreated:O}=G(f);return{telemetry:T,provider:A,flush:async()=>{let _=A;if(_&&typeof _.forceFlush==="function")try{await _.forceFlush()}catch{}},dispose:async()=>{await Promise.allSettled([T.dispose(),A?.dispose()])},...f.deferProviderCreatedEvent&&O?{emitProviderCreated:O}:{}}}function F(f){if(!f)return[];return(Array.isArray(f)?f:f.split(",")).map((A)=>A.trim()).filter((A)=>A==="console"||A==="otlp")}function hf(f,T){if(f==="console")return new Zf;if(!T.endpoint)return null;let A=E(T.endpoint,"/v1/logs");return new Uf({url:A,headers:T.headers})}function qf(f,T){if(f==="console")return new kf(new Ff);if(!T.endpoint)return null;let A=E(T.endpoint,"/v1/traces");return new Lf(new Pf({url:A,headers:T.headers}))}function If(f,T){if(f==="console")return new z({exporter:new Sf,exportIntervalMillis:T.interval,exportTimeoutMillis:T.timeout});if(!T.endpoint)return null;let A=E(T.endpoint,"/v1/metrics");return new z({exporter:new Hf({url:A,headers:T.headers}),exportIntervalMillis:T.interval,exportTimeoutMillis:T.timeout})}function E(f,T){let A=new URL(f),O=A.pathname.endsWith("/")?A.pathname.slice(0,-1):A.pathname;return A.pathname=O.endsWith(T)?O:`${O}${T}`,A.toString()}import{SESSION_STATUS_VALUES as hT}from"@cline/shared";var H={CORE:"core",CLI:"cli",SUBAGENT:"subagent",DESKTOP:"desktop",KANBAN:"kanban",API:"api",WEB:"web",VSCODE:"vscode",ENTERPRISE:"enterprise",IDE:"ide",JETBRAINS:"jetbrains",NEOVIM:"neovim",UNKNOWN:"unknown"};function y(f){let T=[f?.name,f?.platform].filter((A)=>typeof A==="string").join(" ").toLowerCase();if(!T)return;if(T.includes("vscode")||T.includes("visual studio code"))return H.VSCODE;if(T.includes("jetbrains")||T.includes("webstorm")||T.includes("intellij")||T.includes("pycharm")||T.includes("goland")||T.includes("clion")||T.includes("rider")||T.includes("android studio"))return H.JETBRAINS;if(T.includes("neovim"))return H.NEOVIM;if(T.includes("kanban"))return H.KANBAN;if(T.includes("desktop"))return H.DESKTOP;if(T.includes("cline-platform"))return H.WEB;if(T.includes("cline-cli")||T.includes("cline-acp"))return H.CLI;if(T.includes("cline-sdk")||T.includes("cline-core"))return H.CORE;return}function R(f){let T=f?.trim();return T?T:void 0}function b(f){let T=f.client,A=y(T)??R(f.source),O=R(T.version),j=R(T.platform)??R(T.name),J=R(T.platformVersion)??O,_={cline_type:A,extension_version:O,platform:j,platform_version:J};if(f.user?.accountId===void 0)return _;let W=typeof f.user.accountId==="string"?R(f.user.accountId):void 0;return{..._,distinct_id:W??R(f.user.distinctId),user_id:W,account_id:W,account_email:W?R(f.user.email):void 0,organization_id:W?R(f.user.organizationId):void 0}}function g(f,T){let A={},O={},j,J=(_)=>({...T,...O,...A,..._,...j?{distinct_id:j}:{}});return{setDistinctId(_){j=R(_)},setMetadata(_){A={..._}},updateMetadata(_){A={...A,..._}},setCommonProperties(_){O={..._}},updateCommonProperties(_){O={...O,..._}},isEnabled:()=>f.isEnabled(),capture:(_)=>f.capture({event:_.event,properties:J(_.properties)}),captureRequired:(_,W)=>f.captureRequired(_,J(W)),recordCounter:(_,W,K,$,U)=>f.recordCounter(_,W,J(K),$,U),recordHistogram:(_,W,K,$,U)=>f.recordHistogram(_,W,J(K),$,U),recordGauge:(_,W,K,$,U)=>f.recordGauge(_,W,J(K),$,U),flush:()=>f.flush(),dispose:async()=>{}}}function Nf(f,T){return g(f,b(T))}export{P as resolveCoreDistinctId,Q as resolveCoreDeviceId,b as resolveClientTelemetryProperties,g as createScopedTelemetryService,x as createOpenTelemetryTelemetryService,G as createConfiguredTelemetryService,wf as createConfiguredTelemetryHandle,Nf as createClientScopedTelemetryService,k as OpenTelemetryProvider,X as OpenTelemetryAdapter};
1
+ import{existsSync as v,mkdirSync as u,readFileSync as c,writeFileSync as m}from"node:fs";import{resolve as d}from"node:path";import{resolveSessionDataDir as l}from"@cline/shared/storage";import{nanoid as r}from"nanoid";import*as p from"node-machine-id";var n="machine-id",M,w=!1;function Q(){if(!w)M=h(),w=!0;return M??q()}function P(f){let T=f?.trim();if(T)return T;let A=h();if(A)return A;return q()}function a(){let f=p;return f.machineIdSync??f.default?.machineIdSync}function h(){try{let f=a();if(!f)return;return f().trim()||void 0}catch{return}}function q(){let f=l(),T=d(f,n);try{if(v(T)){let O=c(T,"utf8").trim();if(O.length>0)return O}}catch{}let A=`cl-${r()}`;try{u(f,{recursive:!0}),m(T,A,"utf8")}catch{}return A}class X{name;metadata;meter;logger;enabled;distinctId;commonProperties;counters=new Map;histograms=new Map;gauges=new Map;gaugeValues=new Map;meterProvider;loggerProvider;constructor(f){this.name=f.name??"OpenTelemetryAdapter",this.metadata={...f.metadata},this.meterProvider=f.meterProvider,this.loggerProvider=f.loggerProvider,this.meter=f.meterProvider?.getMeter("cline")??null,this.logger=f.loggerProvider?.getLogger("cline")??null,this.enabled=f.enabled??!0,this.distinctId=f.distinctId,this.commonProperties=f.commonProperties?{...f.commonProperties}:{}}emit(f,T){if(!this.isEnabled())return;this.emitLog(f,T,!1)}emitRequired(f,T){this.emitLog(f,T,!0)}recordCounter(f,T,A,O,j=!1){if(!this.meter||!j&&!this.isEnabled())return;let J=this.counters.get(f);if(!J)J=this.meter.createCounter(f,O?{description:O}:void 0),this.counters.set(f,J);J.add(T,this.flattenProperties(this.buildAttributes(A)))}recordHistogram(f,T,A,O,j=!1){if(!this.meter||!j&&!this.isEnabled())return;let J=this.histograms.get(f);if(!J)J=this.meter.createHistogram(f,O?{description:O}:void 0),this.histograms.set(f,J);J.record(T,this.flattenProperties(this.buildAttributes(A)))}recordGauge(f,T,A,O,j=!1){if(!this.meter||!j&&!this.isEnabled())return;let J=this.buildAttributes(A),_=JSON.stringify(J),W=this.gaugeValues.get(f);if(T===null){if(W){if(W.delete(_),W.size===0)this.gaugeValues.delete(f),this.gauges.delete(f)}return}let K=W;if(!K)K=new Map,this.gaugeValues.set(f,K);if(!this.gauges.has(f)){let $=this.meter.createObservableGauge(f,O?{description:O}:void 0);$.addCallback((U)=>{for(let C of this.snapshotGaugeSeries(f))U.observe(C.value,this.flattenProperties(C.attributes))}),this.gauges.set(f,$)}K.set(_,{value:T,attributes:J})}isEnabled(){return typeof this.enabled==="function"?this.enabled():this.enabled}setDistinctId(f){this.distinctId=f}setCommonProperties(f){this.commonProperties={...f}}updateCommonProperties(f){this.commonProperties={...this.commonProperties,...f}}async flush(){await Promise.all([this.meterProvider?.forceFlush?.(),this.loggerProvider?.forceFlush?.()])}async dispose(){await Promise.all([this.meterProvider?.shutdown?.(),this.loggerProvider?.shutdown?.()])}emitLog(f,T,A){if(!this.logger)return;let O=this.flattenProperties(this.buildAttributes(T,A));this.logger.emit({severityText:"INFO",body:f,attributes:O})}buildAttributes(f,T=!1){return{...this.commonProperties,...this.metadata,...f,...this.distinctId?{distinct_id:this.distinctId}:{},...T?{_required:!0}:{}}}snapshotGaugeSeries(f){let T=this.gaugeValues.get(f);if(!T)return[];return Array.from(T.values(),(A)=>({value:A.value,attributes:A.attributes?{...A.attributes}:void 0}))}flattenProperties(f,T="",A=new WeakSet,O=0){if(!f)return{};let j={},J=100,_=10;for(let[W,K]of Object.entries(f)){if(W==="__proto__"||W==="constructor"||W==="prototype")continue;let $=T?`${T}.${W}`:W;if(K===null||K===void 0){j[$]=String(K);continue}if(Array.isArray(K)){let U=K.length>J?K.slice(0,J):K;try{j[$]=JSON.stringify(U)}catch{j[$]="[UnserializableArray]"}if(K.length>J)j[`${$}_truncated`]=!0,j[`${$}_original_length`]=K.length;continue}if(typeof K==="object"){if(K instanceof Date){j[$]=K.toISOString();continue}if(K instanceof Error){j[$]=K.message;continue}if(A.has(K)){j[$]="[Circular]";continue}if(O>=_){j[$]="[MaxDepthExceeded]";continue}A.add(K),Object.assign(j,this.flattenProperties(K,$,A,O+1));continue}if(s(K)){j[$]=K;continue}try{j[$]=JSON.stringify(K)}catch{j[$]=String(K)}}return j}}function s(f){return typeof f==="string"||typeof f==="number"||typeof f==="boolean"}import{LangfuseAttributesSpanProcessor as Kf}from"@cline/llms";import{markOtlpTraceRelayProvider as Wf}from"@cline/shared";import{metrics as $f,trace as Bf}from"@opentelemetry/api";import{logs as Rf}from"@opentelemetry/api-logs";import{OTLPLogExporter as Uf}from"@opentelemetry/exporter-logs-otlp-http";import{OTLPMetricExporter as Hf}from"@opentelemetry/exporter-metrics-otlp-http";import{OTLPTraceExporter as Pf}from"@opentelemetry/exporter-trace-otlp-http";import{resourceFromAttributes as Xf}from"@opentelemetry/resources";import{BatchLogRecordProcessor as Yf,ConsoleLogRecordExporter as Zf,LoggerProvider as Qf}from"@opentelemetry/sdk-logs";import{ConsoleMetricExporter as Sf,MeterProvider as Vf,PeriodicExportingMetricReader as z}from"@opentelemetry/sdk-metrics";import{BatchSpanProcessor as Lf,ConsoleSpanExporter as Ff,SimpleSpanProcessor as kf}from"@opentelemetry/sdk-trace-base";import{NodeTracerProvider as Ef}from"@opentelemetry/sdk-trace-node";import{ATTR_SERVICE_NAME as Cf,ATTR_SERVICE_VERSION as Mf}from"@opentelemetry/semantic-conventions";import{mkdirSync as ef,readFileSync as i,statSync as o,writeFileSync as fT}from"node:fs";import{CONFIGURABLE_MODEL_TOOL_NAMES as t}from"@cline/shared";import{resolveGlobalSettingsPath as e}from"@cline/shared/storage";import{z as B}from"zod";import{AGENT_UNEXPECTED_REASONING_TOKENS_EVENT as vf,captureAgentUnexpectedReasoningTokens as uf,captureTaskLifecycleEvent as cf,SDK_ERROR_TELEMETRY_EVENT as mf,TASK_CANCELLED_EVENT as df,TASK_FIRST_CHUNK_RECEIVED_EVENT as lf,TASK_MAX_TOKENS_RECOVERY_EVENT as rf,TASK_PROVIDER_REQUEST_STARTED_EVENT as pf,TASK_PROVIDER_STREAM_FAILED_EVENT as nf,TASK_PROVIDER_STREAM_STARTED_EVENT as af}from"@cline/shared";var S=B.preprocess((f)=>Array.isArray(f)?f.filter((T)=>typeof T==="string").map((T)=>T.trim()).filter(Boolean):void 0,B.array(B.string()).optional()).transform((f)=>{if(!f)return;let T=[...new Set(f)].sort((A,O)=>A.localeCompare(O));return T.length>0?T:void 0}),ff=B.enum(["basic","agentic"]).catch("agentic"),Tf=B.partialRecord(B.enum(t),B.object({enabled:B.boolean()}).strip()).optional(),Af=B.enum(["plan","act"]),I=B.object({telemetryOptOut:B.boolean().default(!1).catch(!1),autoUpdateEnabled:B.boolean().default(!0).catch(!0),compactionStrategy:ff.optional(),compactionEnabled:B.boolean().optional().catch(void 0),planActMode:Af.optional().catch(void 0),toolAutoApprove:B.boolean().optional().catch(void 0),tuiTheme:B.string().optional().catch(void 0),disabledTools:S.optional(),tools:Tf,disabledPlugins:S.optional(),disabledAgentPlugins:S.optional()}).strip().transform((f)=>{let T={autoUpdateEnabled:f.autoUpdateEnabled,telemetryOptOut:f.telemetryOptOut};if(f.compactionStrategy)T.compactionStrategy=f.compactionStrategy;if(f.compactionEnabled!==void 0)T.compactionEnabled=f.compactionEnabled;if(f.planActMode)T.planActMode=f.planActMode;if(f.toolAutoApprove!==void 0)T.toolAutoApprove=f.toolAutoApprove;if(f.tuiTheme?.trim())T.tuiTheme=f.tuiTheme.trim();if(f.disabledTools?.length)T.disabledTools=f.disabledTools;if(f.tools&&Object.keys(f.tools).length>0)T.tools=f.tools;if(f.disabledPlugins?.length)T.disabledPlugins=f.disabledPlugins;if(f.disabledAgentPlugins?.length)T.disabledAgentPlugins=f.disabledAgentPlugins;return T});function Y(){return I.parse({})}var V;function Of(f){if(f.disabledTools)Object.freeze(f.disabledTools);if(f.tools){for(let T of Object.values(f.tools))Object.freeze(T);Object.freeze(f.tools)}if(f.disabledPlugins)Object.freeze(f.disabledPlugins);if(f.disabledAgentPlugins)Object.freeze(f.disabledAgentPlugins);return Object.freeze(f)}function jf(f){let T;try{T=i(f,"utf8")}catch{return{value:Y(),loadFailed:!0}}try{let A=I.safeParse(JSON.parse(T));return A.success?{value:A.data,loadFailed:!1}:{value:Y(),loadFailed:!0}}catch{return{value:Y(),loadFailed:!0}}}function _f(){let f=e(),T=o(f,{throwIfNoEntry:!1}),A=T?.mtimeMs??0,O=T?.size??0,j=V;if(j&&j.path===f&&j.mtimeMs===A&&j.size===O)return j;let J=T?jf(f):{value:Y(),loadFailed:!1},_=Of(J.value);return V={path:f,mtimeMs:A,size:O,value:_,loadFailed:J.loadFailed},V}function Jf(){return _f().value}function N(){return Jf().telemetryOptOut}class L{name;logger;enabled;constructor(f={}){this.name=f.name??"TelemetryLoggerSink",this.logger=f.logger,this.enabled=f.enabled??!0}emit(f,T){if(!this.isEnabled())return;this.logger?.log("telemetry.event",{telemetrySink:this.name,event:f,properties:T})}emitRequired(f,T){this.logger?.log("telemetry.required_event",{telemetrySink:this.name,severity:"warn",event:f,properties:T})}recordCounter(f,T,A,O,j){if(!j&&!this.isEnabled())return;this.logger?.debug("telemetry.metric",{telemetrySink:this.name,instrument:"counter",name:f,value:T,attributes:A,description:O,required:j===!0})}recordHistogram(f,T,A,O,j){if(!j&&!this.isEnabled())return;this.logger?.debug("telemetry.metric",{telemetrySink:this.name,instrument:"histogram",name:f,value:T,attributes:A,description:O,required:j===!0})}recordGauge(f,T,A,O,j){if(!j&&!this.isEnabled())return;this.logger?.debug("telemetry.metric",{telemetrySink:this.name,instrument:"gauge",name:f,value:T,attributes:A,description:O,required:j===!0})}isEnabled(){return typeof this.enabled==="function"?this.enabled():this.enabled}async flush(){}async dispose(){}}class Z{adapters;metadata;distinctId;deviceId;commonProperties;constructor(f={}){if(this.adapters=[...f.adapters??[]],f.logger)this.adapters.push(new L({logger:f.logger}));this.metadata={...f.metadata??{}},this.distinctId=f.distinctId,this.deviceId=f.deviceId??Q(),this.commonProperties={...f.commonProperties??{}}}addAdapter(f){this.adapters.push(f)}setDistinctId(f){this.distinctId=f}setMetadata(f){this.metadata={...f}}updateMetadata(f){this.metadata={...this.metadata,...f}}setCommonProperties(f){this.commonProperties={...f}}updateCommonProperties(f){this.commonProperties={...this.commonProperties,...f}}isEnabled(){return this.adapters.some((f)=>f.isEnabled())}capture(f){let T=this.buildAttributes(f.properties);for(let A of this.adapters)A.emit(f.event,T)}captureRequired(f,T){let A=this.buildAttributes(T);for(let O of this.adapters)O.emitRequired(f,A)}recordCounter(f,T,A,O,j=!1){let J=this.buildAttributes(A);for(let _ of this.adapters)_.recordCounter(f,T,J,O,j)}recordHistogram(f,T,A,O,j=!1){let J=this.buildAttributes(A);for(let _ of this.adapters)_.recordHistogram(f,T,J,O,j)}recordGauge(f,T,A,O,j=!1){let J=this.buildAttributes(A);for(let _ of this.adapters)_.recordGauge(f,T,J,O,j)}async flush(){await Promise.all(this.adapters.map((f)=>f.flush()))}async dispose(){await Promise.all(this.adapters.map((f)=>f.dispose()))}buildAttributes(f){let T=typeof f?.distinct_id==="string"&&f.distinct_id.trim()?f.distinct_id.trim():this.distinctId,A={...this.commonProperties,...this.metadata,...f,...T?{distinct_id:T}:{},device_id:this.deviceId};return Object.fromEntries(Object.entries(A).filter(([,O])=>O!==void 0))}}class D{distinctId;metadata;commonProperties;constructor(f={}){this.distinctId=f.distinctId,this.metadata={...f.metadata??{}},this.commonProperties={...f.commonProperties??{}}}setDistinctId(f){this.distinctId=f}setMetadata(f){this.metadata={...f}}updateMetadata(f){this.metadata={...this.metadata,...f}}setCommonProperties(f){this.commonProperties={...f}}updateCommonProperties(f){this.commonProperties={...this.commonProperties,...f}}isEnabled(){return!1}capture(f){this.resolveProperties(f.properties)}captureRequired(f,T){this.resolveProperties(T)}recordCounter(){}recordHistogram(){}recordGauge(){}async flush(){}async dispose(){}resolveProperties(f){let T=typeof f?.distinct_id==="string"&&f.distinct_id.trim()?f.distinct_id.trim():this.distinctId,A={...this.commonProperties,...this.metadata,...f,...T?{distinct_id:T}:{}};return Object.fromEntries(Object.entries(A).filter(([,O])=>O!==void 0))}}class k{meterProvider;loggerProvider;tracerProvider;options;constructor(f={}){this.options=f;let T=Xf({[Cf]:f.serviceName??"cline",...f.serviceVersion?{[Mf]:f.serviceVersion}:{}});if(this.meterProvider=this.createMeterProvider(T),this.loggerProvider=this.createLoggerProvider(T),this.tracerProvider=this.createTracerProvider(T),this.meterProvider)$f.setGlobalMeterProvider(this.meterProvider);if(this.loggerProvider)Rf.setGlobalLoggerProvider(this.loggerProvider);if(this.tracerProvider)this.tracerProvider.register()}getTracer(f="cline",T){return Bf.getTracer(f,T??this.options.serviceVersion)}createAdapter(f){return new X({...f,meterProvider:this.meterProvider,loggerProvider:this.loggerProvider})}createTelemetryService(f){let T=this.createAdapter({name:f.name,enabled:this.options.enabled,metadata:f.metadata});return new Z({...f,adapters:[T],distinctId:P(f.distinctId)})}async forceFlush(){await Promise.all([this.meterProvider?.forceFlush?.(),this.loggerProvider?.forceFlush?.(),this.tracerProvider?.forceFlush?.()])}async dispose(){await Promise.all([this.meterProvider?.shutdown?.(),this.loggerProvider?.shutdown?.(),this.tracerProvider?.shutdown?.()])}createMeterProvider(f){let T=F(this.options.metricsExporter);if(T.length===0)return null;let A=Math.max(1000,this.options.metricExportIntervalMs??this.options.metricExportInterval??60000),O=Math.min(30000,Math.floor(A*0.8)),j=T.map((J)=>If(J,{endpoint:this.options.otlpEndpoint,headers:this.options.otlpHeaders,insecure:this.options.otlpInsecure??!1,protocol:"http/json",interval:A,timeout:O})).filter((J)=>J!==null);if(j.length===0)return null;return new Vf({resource:f,readers:j})}createTracerProvider(f){let T=F(this.options.tracesExporter);if(T.length===0)return null;let A=this.options.otlpTracesEndpoint??this.options.otlpEndpoint,O=this.options.otlpTracesHeaders??this.options.otlpHeaders,j=[],J=!1;for(let W of T){let K=qf(W,{endpoint:A,headers:O,insecure:this.options.otlpInsecure??!1,protocol:"http/json"});if(K){if(j.push(K),W!=="console")J=!0}}if(j.length===0)return null;let _=new Ef({resource:f,spanProcessors:J?[new Kf,...j]:j});if(J)Wf(_);return _}createLoggerProvider(f){let T=F(this.options.logsExporter);if(T.length===0)return null;let A=T.map((O)=>{let j=hf(O,{endpoint:this.options.otlpEndpoint,headers:this.options.otlpHeaders,insecure:this.options.otlpInsecure??!1,protocol:"http/json"});if(!j)return null;return new Yf(j,{maxQueueSize:this.options.logMaxQueueSize??2048,maxExportBatchSize:this.options.logBatchSize??512,scheduledDelayMillis:this.options.logBatchTimeoutMs??this.options.logBatchTimeout??5000})}).filter((O)=>O!==null);if(A.length===0)return null;return new Qf({resource:f,processors:A})}}function x(f){let T=new k(f),A=T.createTelemetryService(f),O=()=>{A.captureRequired("telemetry.provider_created",{provider:"opentelemetry",enabled:f.enabled??!0,logsExporter:Array.isArray(f.logsExporter)?f.logsExporter.join(","):f.logsExporter,metricsExporter:Array.isArray(f.metricsExporter)?f.metricsExporter.join(","):f.metricsExporter,tracesExporter:Array.isArray(f.tracesExporter)?f.tracesExporter.join(","):f.tracesExporter,otlpProtocol:f.otlpProtocol,hasOtlpEndpoint:Boolean(f.otlpEndpoint),serviceName:f.serviceName,serviceVersion:f.serviceVersion})};if(!f.deferProviderCreatedEvent)O();return{provider:T,telemetry:A,emitProviderCreated:O}}function G(f){if(N())return{telemetry:new D(f)};if(f.enabled!==!0)return{telemetry:new Z({...f,distinctId:P(f.distinctId)})};return x(f)}function wf(f){let{telemetry:T,provider:A,emitProviderCreated:O}=G(f);return{telemetry:T,provider:A,flush:async()=>{let _=A;if(_&&typeof _.forceFlush==="function")try{await _.forceFlush()}catch{}},dispose:async()=>{await Promise.allSettled([T.dispose(),A?.dispose()])},...f.deferProviderCreatedEvent&&O?{emitProviderCreated:O}:{}}}function F(f){if(!f)return[];return(Array.isArray(f)?f:f.split(",")).map((A)=>A.trim()).filter((A)=>A==="console"||A==="otlp")}function hf(f,T){if(f==="console")return new Zf;if(!T.endpoint)return null;let A=E(T.endpoint,"/v1/logs");return new Uf({url:A,headers:T.headers})}function qf(f,T){if(f==="console")return new kf(new Ff);if(!T.endpoint)return null;let A=E(T.endpoint,"/v1/traces");return new Lf(new Pf({url:A,headers:T.headers}))}function If(f,T){if(f==="console")return new z({exporter:new Sf,exportIntervalMillis:T.interval,exportTimeoutMillis:T.timeout});if(!T.endpoint)return null;let A=E(T.endpoint,"/v1/metrics");return new z({exporter:new Hf({url:A,headers:T.headers}),exportIntervalMillis:T.interval,exportTimeoutMillis:T.timeout})}function E(f,T){let A=new URL(f),O=A.pathname.endsWith("/")?A.pathname.slice(0,-1):A.pathname;return A.pathname=O.endsWith(T)?O:`${O}${T}`,A.toString()}import{SESSION_STATUS_VALUES as qT}from"@cline/shared";var H={CORE:"core",CLI:"cli",SUBAGENT:"subagent",DESKTOP:"desktop",KANBAN:"kanban",API:"api",WEB:"web",VSCODE:"vscode",ENTERPRISE:"enterprise",IDE:"ide",JETBRAINS:"jetbrains",NEOVIM:"neovim",UNKNOWN:"unknown"};function y(f){let T=[f?.name,f?.platform].filter((A)=>typeof A==="string").join(" ").toLowerCase();if(!T)return;if(T.includes("vscode")||T.includes("visual studio code"))return H.VSCODE;if(T.includes("jetbrains")||T.includes("webstorm")||T.includes("intellij")||T.includes("pycharm")||T.includes("goland")||T.includes("clion")||T.includes("rider")||T.includes("android studio"))return H.JETBRAINS;if(T.includes("neovim"))return H.NEOVIM;if(T.includes("kanban"))return H.KANBAN;if(T.includes("desktop"))return H.DESKTOP;if(T.includes("cline-platform"))return H.WEB;if(T.includes("cline-cli")||T.includes("cline-acp"))return H.CLI;if(T.includes("cline-sdk")||T.includes("cline-core"))return H.CORE;return}function R(f){let T=f?.trim();return T?T:void 0}function b(f){let T=f.client,A=y(T)??R(f.source),O=R(T.version),j=R(T.platform)??R(T.name),J=R(T.platformVersion)??O,_={cline_type:A,extension_version:O,platform:j,platform_version:J};if(f.user?.accountId===void 0)return _;let W=typeof f.user.accountId==="string"?R(f.user.accountId):void 0;return{..._,distinct_id:W??R(f.user.distinctId),user_id:W,account_id:W,account_email:W?R(f.user.email):void 0,organization_id:W?R(f.user.organizationId):void 0}}function g(f,T){let A={},O={},j,J=(_)=>({...T,...O,...A,..._,...j?{distinct_id:j}:{}});return{setDistinctId(_){j=R(_)},setMetadata(_){A={..._}},updateMetadata(_){A={...A,..._}},setCommonProperties(_){O={..._}},updateCommonProperties(_){O={...O,..._}},isEnabled:()=>f.isEnabled(),capture:(_)=>f.capture({event:_.event,properties:J(_.properties)}),captureRequired:(_,W)=>f.captureRequired(_,J(W)),recordCounter:(_,W,K,$,U)=>f.recordCounter(_,W,J(K),$,U),recordHistogram:(_,W,K,$,U)=>f.recordHistogram(_,W,J(K),$,U),recordGauge:(_,W,K,$,U)=>f.recordGauge(_,W,J(K),$,U),flush:()=>f.flush(),dispose:async()=>{}}}function Nf(f,T){return g(f,b(T))}export{P as resolveCoreDistinctId,Q as resolveCoreDeviceId,b as resolveClientTelemetryProperties,g as createScopedTelemetryService,x as createOpenTelemetryTelemetryService,G as createConfiguredTelemetryService,wf as createConfiguredTelemetryHandle,Nf as createClientScopedTelemetryService,k as OpenTelemetryProvider,X as OpenTelemetryAdapter};
@@ -8,8 +8,8 @@ export declare const SessionManifestSchema: z.ZodObject<{
8
8
  ended_at: z.ZodOptional<z.ZodString>;
9
9
  exit_code: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
10
10
  status: z.ZodEnum<{
11
- failed: "failed";
12
11
  completed: "completed";
12
+ failed: "failed";
13
13
  idle: "idle";
14
14
  running: "running";
15
15
  cancelled: "cancelled";
@@ -35,8 +35,8 @@ export declare const TodoTaskInputSchema: z.ZodObject<{
35
35
  model_id: z.ZodOptional<z.ZodString>;
36
36
  }, z.core.$strip>>>;
37
37
  mode: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
38
- act: "act";
39
38
  plan: "plan";
39
+ act: "act";
40
40
  yolo: "yolo";
41
41
  }>>>;
42
42
  system_prompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -46,8 +46,8 @@ export declare const TodoTaskInputSchema: z.ZodObject<{
46
46
  expires_at: z.ZodOptional<z.ZodString>;
47
47
  automation_eligible: z.ZodOptional<z.ZodBoolean>;
48
48
  statuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
49
- failed: "failed";
50
49
  completed: "completed";
50
+ failed: "failed";
51
51
  cancelled: "cancelled";
52
52
  in_progress: "in_progress";
53
53
  approved: "approved";
@@ -40,8 +40,8 @@ export declare const TasksToolInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
40
40
  model_id: z.ZodOptional<z.ZodString>;
41
41
  }, z.core.$strip>>>;
42
42
  mode: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
43
- act: "act";
44
43
  plan: "plan";
44
+ act: "act";
45
45
  yolo: "yolo";
46
46
  }>>>;
47
47
  system_prompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -51,8 +51,8 @@ export declare const TasksToolInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
51
51
  expires_at: z.ZodOptional<z.ZodString>;
52
52
  automation_eligible: z.ZodOptional<z.ZodBoolean>;
53
53
  statuses: z.ZodOptional<z.ZodArray<z.ZodEnum<{
54
- failed: "failed";
55
54
  completed: "completed";
55
+ failed: "failed";
56
56
  cancelled: "cancelled";
57
57
  in_progress: "in_progress";
58
58
  approved: "approved";
@@ -75,10 +75,10 @@ export declare const TasksToolInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
75
75
  update: "update";
76
76
  create: "create";
77
77
  list: "list";
78
- get: "get";
79
- delete: "delete";
80
78
  pause: "pause";
81
79
  resume: "resume";
80
+ get: "get";
81
+ delete: "delete";
82
82
  run_now: "run_now";
83
83
  }>;
84
84
  schedule_id: z.ZodOptional<z.ZodString>;
@@ -93,8 +93,8 @@ export declare const TasksToolInputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<
93
93
  timezone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
94
94
  enabled: z.ZodOptional<z.ZodBoolean>;
95
95
  mode: z.ZodOptional<z.ZodEnum<{
96
- act: "act";
97
96
  plan: "plan";
97
+ act: "act";
98
98
  yolo: "yolo";
99
99
  }>>;
100
100
  system_prompt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -5,8 +5,8 @@ export declare const ChatSessionConfigSchema: z.ZodObject<{
5
5
  provider: z.ZodString;
6
6
  model: z.ZodString;
7
7
  mode: z.ZodDefault<z.ZodEnum<{
8
- act: "act";
9
8
  plan: "plan";
9
+ act: "act";
10
10
  }>>;
11
11
  apiKey: z.ZodString;
12
12
  systemPrompt: z.ZodOptional<z.ZodString>;
@@ -21,8 +21,8 @@ export declare const ChatSessionConfigSchema: z.ZodObject<{
21
21
  }, z.core.$strip>;
22
22
  export declare const ChatSessionStatusSchema: z.ZodEnum<{
23
23
  error: "error";
24
- failed: "failed";
25
24
  completed: "completed";
25
+ failed: "failed";
26
26
  idle: "idle";
27
27
  running: "running";
28
28
  cancelled: "cancelled";
@@ -41,9 +41,9 @@ export declare const ChatMessageRoleSchema: z.ZodEnum<{
41
41
  export declare const ChatMessageImageSchema: z.ZodObject<{
42
42
  id: z.ZodString;
43
43
  mediaType: z.ZodEnum<{
44
- "image/png": "image/png";
45
44
  "image/gif": "image/gif";
46
45
  "image/jpeg": "image/jpeg";
46
+ "image/png": "image/png";
47
47
  "image/webp": "image/webp";
48
48
  }>;
49
49
  data: z.ZodString;
@@ -63,9 +63,9 @@ export declare const ChatMessageSchema: z.ZodObject<{
63
63
  images: z.ZodOptional<z.ZodArray<z.ZodObject<{
64
64
  id: z.ZodString;
65
65
  mediaType: z.ZodEnum<{
66
- "image/png": "image/png";
67
66
  "image/gif": "image/gif";
68
67
  "image/jpeg": "image/jpeg";
68
+ "image/png": "image/png";
69
69
  "image/webp": "image/webp";
70
70
  }>;
71
71
  data: z.ZodString;
@@ -103,8 +103,8 @@ export declare const ChatViewStateSchema: z.ZodObject<{
103
103
  sessionId: z.ZodNullable<z.ZodString>;
104
104
  status: z.ZodEnum<{
105
105
  error: "error";
106
- failed: "failed";
107
106
  completed: "completed";
107
+ failed: "failed";
108
108
  idle: "idle";
109
109
  running: "running";
110
110
  cancelled: "cancelled";
@@ -118,8 +118,8 @@ export declare const ChatViewStateSchema: z.ZodObject<{
118
118
  provider: z.ZodString;
119
119
  model: z.ZodString;
120
120
  mode: z.ZodDefault<z.ZodEnum<{
121
- act: "act";
122
121
  plan: "plan";
122
+ act: "act";
123
123
  }>>;
124
124
  apiKey: z.ZodString;
125
125
  systemPrompt: z.ZodOptional<z.ZodString>;
@@ -147,9 +147,9 @@ export declare const ChatViewStateSchema: z.ZodObject<{
147
147
  images: z.ZodOptional<z.ZodArray<z.ZodObject<{
148
148
  id: z.ZodString;
149
149
  mediaType: z.ZodEnum<{
150
- "image/png": "image/png";
151
150
  "image/gif": "image/gif";
152
151
  "image/jpeg": "image/jpeg";
152
+ "image/png": "image/png";
153
153
  "image/webp": "image/webp";
154
154
  }>;
155
155
  data: z.ZodString;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cline/core",
3
3
  "description": "Cline Core SDK for Node Runtime",
4
- "version": "0.0.85",
4
+ "version": "0.0.86",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/cline/cline",
@@ -39,6 +39,10 @@
39
39
  "types": "./dist/remote/remote-helper-entry.d.ts",
40
40
  "import": "./dist/remote/remote-helper-entry.js"
41
41
  },
42
+ "./cloud": {
43
+ "types": "./dist/cloud/index.d.ts",
44
+ "import": "./dist/cloud/index.js"
45
+ },
42
46
  "./remote/helper": {
43
47
  "types": "./dist/remote/remote-helper.d.ts",
44
48
  "import": "./dist/remote/remote-helper.js"
@@ -57,9 +61,9 @@
57
61
  "test:watch": "vitest --config vitest.config.ts"
58
62
  },
59
63
  "dependencies": {
60
- "@cline/agents": "0.0.85",
61
- "@cline/shared": "0.0.85",
62
- "@cline/llms": "0.0.85",
64
+ "@cline/agents": "0.0.86",
65
+ "@cline/shared": "0.0.86",
66
+ "@cline/llms": "0.0.86",
63
67
  "@modelcontextprotocol/sdk": "^1.29.0",
64
68
  "@opentelemetry/api": "^1.9.0",
65
69
  "@opentelemetry/api-logs": "^0.214.0",