@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.
- package/dist/cloud/api.d.ts +95 -0
- package/dist/cloud/controller.d.ts +144 -0
- package/dist/cloud/index.d.ts +7 -0
- package/dist/cloud/index.js +11 -0
- package/dist/cloud/repositories.d.ts +21 -0
- package/dist/cloud/snapshots.d.ts +22 -0
- package/dist/cloud/state.d.ts +13 -0
- package/dist/cloud/types.d.ts +74 -0
- package/dist/cron/service/schedule-tool.d.ts +3 -3
- package/dist/hub/client/index.d.ts +8 -0
- package/dist/hub/daemon/entry.js +190 -190
- package/dist/hub/index.js +188 -188
- package/dist/index.d.ts +4 -2
- package/dist/index.js +216 -215
- package/dist/remote/remote-helper-entry.js +4 -4
- package/dist/remote/remote-helper.js +4 -4
- package/dist/runtime/orchestration/session-runtime-orchestrator.d.ts +3 -0
- package/dist/services/global-settings.d.ts +3 -3
- package/dist/services/llms/provider-settings.d.ts +18 -18
- package/dist/services/plugin-commands.d.ts +28 -0
- package/dist/services/providers/local-provider-registry.d.ts +3 -0
- package/dist/services/providers/local-provider-service.d.ts +6 -3
- package/dist/services/telemetry/core-events.d.ts +9 -0
- package/dist/services/telemetry/index.js +1 -1
- package/dist/session/models/session-manifest.d.ts +1 -1
- package/dist/tasks/agenda-task-tool.d.ts +2 -2
- package/dist/tasks/task-tool.d.ts +5 -5
- package/dist/types/chat-schema.d.ts +7 -7
- package/package.json +8 -4
|
@@ -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.
|
|
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.
|
|
61
|
-
"@cline/shared": "0.0.
|
|
62
|
-
"@cline/llms": "0.0.
|
|
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",
|