@cline/shared 0.0.82 → 0.0.83-nightly.1789612722
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.d.ts +15 -0
- package/dist/agents/types.d.ts +19 -0
- package/dist/automation/index.js +40 -35
- package/dist/db/index.js +7 -7
- package/dist/extensions/context.d.ts +3 -1
- package/dist/feature-flags.d.ts +2 -0
- package/dist/hub.d.ts +11 -1
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.js +31 -26
- package/dist/index.d.ts +5 -4
- package/dist/index.js +79 -69
- package/dist/llms/gateway.d.ts +2 -0
- package/dist/llms/model-info.d.ts +12 -0
- package/dist/parse/shell.d.ts +9 -0
- package/dist/prompt/system/act.d.ts +1 -0
- package/dist/prompt/{system.d.ts → system/index.d.ts} +4 -1
- package/dist/prompt/system/yolo.d.ts +1 -0
- package/dist/remote-config/index.js +47 -42
- package/dist/rpc/runtime.d.ts +3 -1
- package/dist/runtime/windows-exe-path.d.ts +26 -0
- package/dist/services/telemetry.d.ts +34 -0
- package/dist/storage/index.js +1 -1
- package/dist/storage/paths.d.ts +5 -4
- package/package.json +1 -1
package/dist/rpc/runtime.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export interface ChatRuntimeConfig extends SessionPromptConfig {
|
|
|
11
11
|
enableSpawn?: boolean;
|
|
12
12
|
enableTeams?: boolean;
|
|
13
13
|
disableMcpSettingsTools?: boolean;
|
|
14
|
+
/** Additional Agent Plugins package roots resolved by the hub runtime. */
|
|
15
|
+
agentPluginPaths?: string[];
|
|
14
16
|
autoApproveTools?: boolean;
|
|
15
17
|
missionStepInterval?: number;
|
|
16
18
|
missionTimeIntervalMs?: number;
|
|
@@ -223,9 +225,9 @@ export declare const ProviderCapabilitySchema: z.ZodEnum<{
|
|
|
223
225
|
export type ProviderCapability = z.infer<typeof ProviderCapabilitySchema>;
|
|
224
226
|
export declare const ProviderProtocolSchema: z.ZodEnum<{
|
|
225
227
|
"openai-responses": "openai-responses";
|
|
228
|
+
"openai-chat": "openai-chat";
|
|
226
229
|
anthropic: "anthropic";
|
|
227
230
|
gemini: "gemini";
|
|
228
|
-
"openai-chat": "openai-chat";
|
|
229
231
|
"openai-r1": "openai-r1";
|
|
230
232
|
"ai-sdk": "ai-sdk";
|
|
231
233
|
}>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Windows' documented opt-out from resolving bare program names through the
|
|
3
|
+
* current directory. Its presence is what matters, not its value.
|
|
4
|
+
*/
|
|
5
|
+
export declare const NO_DEFAULT_CURRENT_DIRECTORY_IN_EXE_PATH_ENV = "NoDefaultCurrentDirectoryInExePath";
|
|
6
|
+
/**
|
|
7
|
+
* Stop Windows from resolving bare program names through the child's working
|
|
8
|
+
* directory.
|
|
9
|
+
*
|
|
10
|
+
* When `child_process.spawn("rg", ...)` runs on Windows, libuv resolves the
|
|
11
|
+
* bare name by looking in the child's cwd before walking PATH (it gates that
|
|
12
|
+
* step on `NeedCurrentDirectoryForExePathW`, which reads this variable from
|
|
13
|
+
* the spawning process). Cline spawns `rg`, `git`, `powershell` and
|
|
14
|
+
* model-named programs with the user's workspace as cwd, so a repo that ships
|
|
15
|
+
* an `rg.exe` would get it executed, with the user's privileges, the moment
|
|
16
|
+
* the workspace opened. Bun's spawn (1.4+) honors the same variable, as do
|
|
17
|
+
* cmd.exe and the C runtime, so children inherit the protection too.
|
|
18
|
+
*
|
|
19
|
+
* Call once at process startup, from the main thread (a worker thread's
|
|
20
|
+
* `process.env` is a copy that native code never sees), before anything can
|
|
21
|
+
* spawn. No-op off Windows.
|
|
22
|
+
*/
|
|
23
|
+
export declare function disableCurrentDirectoryExecutableSearch(options?: {
|
|
24
|
+
env?: Record<string, string | undefined>;
|
|
25
|
+
platform?: NodeJS.Platform;
|
|
26
|
+
}): void;
|
|
@@ -59,6 +59,12 @@ export interface CaptureTaskLifecycleEventInput {
|
|
|
59
59
|
errorClass?: string;
|
|
60
60
|
messageLimit?: number;
|
|
61
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Why an out-of-process host spawned this core. The JetBrains plugin sets it via
|
|
64
|
+
* `CLINE_CORE_SPAWN_REASON`; keep in sync with its `SpawnReason`.
|
|
65
|
+
*/
|
|
66
|
+
export declare const CORE_SPAWN_REASONS: readonly ["initial", "crash_restart", "rollout_fallback", "rollout_demotion", "user_restart"];
|
|
67
|
+
export type CoreSpawnReason = (typeof CORE_SPAWN_REASONS)[number];
|
|
62
68
|
export interface TelemetryMetadata {
|
|
63
69
|
extension_version: string;
|
|
64
70
|
/**
|
|
@@ -74,6 +80,13 @@ export interface TelemetryMetadata {
|
|
|
74
80
|
os_version: string;
|
|
75
81
|
is_dev?: string;
|
|
76
82
|
is_remote_workspace?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Spawn-time facts reported by an out-of-process host (the JetBrains plugin): how many
|
|
85
|
+
* cores this host window has spawned so far and why this one was started. Absent when the
|
|
86
|
+
* host runs core in-process (VS Code).
|
|
87
|
+
*/
|
|
88
|
+
core_spawn_ordinal?: number;
|
|
89
|
+
core_spawn_reason?: CoreSpawnReason;
|
|
77
90
|
}
|
|
78
91
|
export interface ITelemetryService {
|
|
79
92
|
setDistinctId(distinctId?: string): void;
|
|
@@ -121,6 +134,18 @@ export declare function captureTaskLifecycleEvent(telemetry: ITelemetryService |
|
|
|
121
134
|
export declare function captureSdkError(telemetry: ITelemetryService | undefined, input: CaptureSdkErrorInput): boolean;
|
|
122
135
|
export declare function buildSdkErrorProperties(input: CaptureSdkErrorInput): TelemetryProperties;
|
|
123
136
|
export declare function normalizeSdkError(error: unknown, messageLimit?: number, errorMessage?: string): TelemetryProperties;
|
|
137
|
+
/**
|
|
138
|
+
* Marker property stamped onto a tracer provider whose span processors
|
|
139
|
+
* include a real OTLP exporter — the collector relay. Trace decisions must
|
|
140
|
+
* identify the relay explicitly instead of inferring it from "some recording
|
|
141
|
+
* tracer exists": a console-only tracer would otherwise be misclassified as
|
|
142
|
+
* a relay. A property on the provider instance (reached through the OTel API
|
|
143
|
+
* global) survives bundled module duplication, which a module-level registry
|
|
144
|
+
* would not.
|
|
145
|
+
*/
|
|
146
|
+
export declare const OTLP_TRACE_RELAY_MARKER = "_clineOtlpTraceRelay";
|
|
147
|
+
export declare function markOtlpTraceRelayProvider(provider: object): void;
|
|
148
|
+
export declare function isOtlpTraceRelayProvider(provider: unknown): boolean;
|
|
124
149
|
export interface OpenTelemetryClientConfig {
|
|
125
150
|
/**
|
|
126
151
|
* Whether telemetry is enabled via OTEL_TELEMETRY_ENABLED
|
|
@@ -141,6 +166,15 @@ export interface OpenTelemetryClientConfig {
|
|
|
141
166
|
* Examples: "console", "otlp". When unset, no `TracerProvider` is registered.
|
|
142
167
|
*/
|
|
143
168
|
tracesExporter?: string;
|
|
169
|
+
/**
|
|
170
|
+
* OTel resource `service.name` (default "cline"). Distinguishes processes
|
|
171
|
+
* that ship in the same binary — e.g. the CLI vs the detached hub daemon.
|
|
172
|
+
*/
|
|
173
|
+
serviceName?: string;
|
|
174
|
+
/**
|
|
175
|
+
* OTel resource `service.version`.
|
|
176
|
+
*/
|
|
177
|
+
serviceVersion?: string;
|
|
144
178
|
/**
|
|
145
179
|
* Protocol for OTLP exporters. SDK support is currently limited to "http/json".
|
|
146
180
|
*/
|
package/dist/storage/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var FC=Object.defineProperty;var WC=(C)=>C;function YC(C,S){this[C]=WC.bind(null,S)}var FS=(C,S)=>{for(var E in S)FC(C,E,{get:S[E],enumerable:!0,configurable:!0,set:YC.bind(S,E)})};import{existsSync as K,readdirSync as KC}from"node:fs";import{basename as o,dirname as P,join as c}from"node:path";var qC=/[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g,QC=" ";function s(C){return C.normalize("NFC").replace(qC," ")}function ZC(C){let S=o(C),E=S.replace(/ (AM|PM)\./gi,`${QC}$1.`);return E===S?C:c(P(C),E)}function $C(C){return C.normalize("NFD")}function p(C){return C.replace(/'/g,"’")}function RC(C){let S=P(C),E=s(o(C));try{for(let G of KC(S))if(s(G)===E)return c(S,G)}catch{}return}function BC(C){if(K(C))return C;let S=ZC(C);if(S!==C&&K(S))return S;let E=$C(C);if(E!==C&&K(E))return E;let G=p(C);if(G!==C&&K(G))return G;let T=p(E);if(T!==E&&T!==G&&K(T))return T;return RC(C)}import{appendFileSync as XC,existsSync as O,mkdirSync as w,readdirSync as UC,readFileSync as n,statSync as F}from"node:fs";import{homedir as jC}from"node:os";import{basename as gC,dirname as g,extname as HC,isAbsolute as zC,join as _,relative as bC,resolve as M}from"node:path";var Z="workspaces",$="chat";function h(C){let S=C.trim(),E=/^[A-Za-z]:[\\/]/.test(S)||S.startsWith("\\\\"),G=S.startsWith("/");if(!E&&!G)return!1;let T=S.split(E?/[\\/]+/:/\/+/).filter(Boolean),I=T.at(-1)??"",D=T.at(-2)??"",N=T.at(-3)??"";return(T.at(-4)??"")===".cline"&&N==="data"&&D==="workspaces"&&I==="chat"}var y=".clinerules",H=".cline",z=".agents",JC=z,k="agents",R="hooks",X="skills",V="rules",B="workflows",x="plugins",m="AGENTS.md",r="plugin.json";function VC(){return _(L(),Z,$)}var i="cline_mcp_settings.json",e="settings.json";function xC(){let C=process?.env?.HOME?.trim();if(C&&C!=="~")return C;let S=process?.env?.USERPROFILE?.trim();if(S)return S;let E=process?.env?.HOMEDRIVE?.trim(),G=process?.env?.HOMEPATH?.trim();if(E&&G)return`${E}${G}`;let T=jC().trim();if(T&&T!=="~")return T;return"~"}var A=xC(),t=!1;function uC(C){let S=C.trim();if(!S)return;A=S,t=!0}function wC(C){if(t)return;let S=C.trim();if(!S)return;A=S}var U,a=!1;function yC(C){let S=C.trim();if(!S)return;U=S,a=!0}function kC(C){if(a)return;let S=C.trim();if(!S)return;U=S}function v(){if(U)return U;let C=process.env.CLINE_DIR?.trim();if(C)return C;return _(A,".cline")}function CC(){return _(A,"Documents","Cline")}function Q(C){return _(CC(),C)}function L(){let C=process.env.CLINE_DATA_DIR?.trim();if(C)return C;return _(v(),"data")}function mC(){let C=process.env.CLINE_SESSION_DATA_DIR?.trim();if(C)return C;return _(L(),"sessions")}function fC(){let C=process.env.CLINE_TEAM_DATA_DIR?.trim();if(C)return C;return _(L(),"teams")}function SC(){let C=process.env.CLINE_CONNECTOR_DATA_DIR?.trim();if(C)return C;return _(L(),"connectors")}function lC(C,S){let E=C.replace(/[^a-zA-Z0-9._-]+/g,"_"),G=S.replace(/[^a-zA-Z0-9._-]+/g,"_");return _(L(),"logs","connectors",E,`${G}.log`)}function dC(){let C=process.env.CLINE_CONNECTOR_SETTINGS_PATH?.trim();if(C)return C;return _(SC(),e)}function b(){let C=process.env.CLINE_DB_DATA_DIR?.trim();if(C)return C;return _(L(),"db")}function sC(){let C=process.env.CLINE_CONNECTORS_DB_PATH?.trim();if(C)return C;return _(b(),"connectors.db")}function pC(){let C=process.env.CLINE_CRON_DB_PATH?.trim();if(C)return C;return _(b(),"cron.db")}function oC(){let C=process.env.CLINE_TASKS_DB_PATH?.trim();if(C)return C;return _(b(),"tasks.db")}function PC(){return _(v(),"schedules")}function EC(){return _(v(),"tasks")}function _C(C){let S=C.trim();if(!S)throw Error("workspaceRoot is required for workspace task scope");return _(S,".cline","tasks")}function cC(C){let S=C.taskSpecsDir?.trim();if(S)return S;if(C.scope==="workspace")return _C(C.workspaceRoot??"");return EC()}function TC(){return _(v(),"cron")}function u(C){return _(C,".cline","cron")}function f(C){if(typeof C==="string")return u(C);if(C?.cronSpecsDir?.trim())return C.cronSpecsDir.trim();if(C?.scope==="workspace"){let S=C.workspaceRoot?.trim();if(!S)throw Error("workspaceRoot is required for workspace cron scope");return u(S)}return TC()}function hC(C){return _(f(C),"reports")}function nC(C){return _(f(C),"events")}function rC(){let C=process.env.CLINE_PROVIDER_SETTINGS_PATH?.trim();if(C)return C;return _(L(),"settings","providers.json")}function iC(){let C=process.env.CLINE_GLOBAL_SETTINGS_PATH?.trim();if(C)return C;return _(L(),"settings","global-settings.json")}function eC(){let C=process.env.CLINE_MCP_SETTINGS_PATH?.trim();if(C)return C;return _(L(),"settings",i)}function W(C){let S=new Set,E=[];for(let G of C){if(!G||S.has(G))continue;S.add(G),E.push(G)}return E}function tC(C){if(!C)return[];return[y,H,z].map((S)=>_(C,S,X))}function GC(){return _(v(),k)}function aC(C){return W([C?_(C,H,k):"",GC()])}function CS(C){let S=[Q("Hooks"),_(v(),R)];if(C)S.push(_(C,y,R),_(C,H,R));return W(S)}function SS(C){return W([...tC(C),_(v(),X),_(A,z,X)])}function IC(){return _(A,z,m)}function ES(C){let S=C?[_(C,y),_(C,H,V)]:[],E=C?[_(C,m)]:[];return W([...E,...S,IC(),_(v(),V),_(A,"Cline","Rules"),Q("Rules")])}function _S(C){return W([C?_(C,".clinerules",B):"",Q("Workflows"),_(v(),B),C?_(C,".cline",B):""])}function TS(C){return W([C?_(C,".cline",x):"",_(v(),x),Q("Plugins")])}function GS(){return[_(A,JC,x)]}var DC=new Set([".js",".ts"]),l="package.json",IS=["index.ts","index.js"],DS=new Set(["node_modules"]);function j(C){try{return F(_(C,r)).isFile()}catch{return!1}}function q(C){let S=C.lastIndexOf(".");if(S===-1)return!1;return DC.has(C.slice(S))}function NC(C){try{let S=JSON.parse(n(C,"utf8"));if(!S.cline||typeof S.cline!=="object")return null;return S.cline}catch{return null}}function OC(C){let S=C?.plugins;if(!Array.isArray(S))return[];return S.flatMap((E)=>E.paths??[])}function vC(C){let S=M(C);if(!O(S)||!F(S).isDirectory())return null;if(j(S))return null;let E=_(S,l);if(O(E)){let G=NC(E),T=OC(G).map((I)=>M(S,I)).filter((I)=>O(I)&&F(I).isFile()&&q(I));if(T.length>0)return T}for(let G of IS){let T=_(S,G);if(O(T)&&F(T).isFile())return[T]}return null}function NS(C){try{let S=JSON.parse(n(C,"utf8"));return typeof S.name==="string"&&S.name.trim()?S.name.trim():void 0}catch{return}}function OS(C,S){let E=bC(M(C),M(S));return E===""||!E.startsWith("..")&&!zC(E)}function vS(C,S){let E=g(C),G=M(S);while(OS(G,E)){let T=_(E,l);if(O(T)){let D=NS(T);if(D)return D;break}let I=M(E,"..");if(I===E)break;E=I}return gC(C,HC(C))}function LC(C){let S=M(C);if(!O(S))return[];if(j(S))return[];let E=[],G=[S];while(G.length>0){let T=G.pop();if(!T)continue;let I;try{I=UC(T,{withFileTypes:!0})}catch{continue}for(let D of I){let N=_(T,D.name);if(D.isDirectory()){if(j(N))continue;if(DS.has(D.name)||D.name.startsWith("."))continue;let J=_(N,l);if(O(J)){let AC=NC(J),d=OC(AC).map((Y)=>M(N,Y)).filter((Y)=>O(Y)&&F(Y).isFile()&&q(Y));if(d.length>0){E.push(...d);continue}}G.push(N);continue}if(D.name.startsWith("."))continue;if(D.isFile()&&q(N))E.push(N)}}return E.sort((T,I)=>T.localeCompare(I))}function LS(C,S){let E=[];for(let G of C){let T=G.trim();if(!T)continue;let I=M(S,T);if(!O(I))throw Error(`Plugin path does not exist: ${I}`);if(F(I).isDirectory()){let N=vC(I);if(N){E.push(...N);continue}E.push(...LC(I));continue}if(!q(I))throw Error(`Plugin file must use a supported extension (${[...DC].join(", ")}): ${I}`);E.push(I)}return E}function MC(C){let S=g(C);if(!O(S))w(S,{recursive:!0})}function MS(C){w(g(C),{recursive:!0}),XC(C,"")}function AS(C){if(C?.trim())return MC(C),g(C);let S=_(L(),"logs");if(!O(S))w(S,{recursive:!0});return S}export{wC as setHomeDirIfUnset,uC as setHomeDir,kC as setClineDirIfUnset,yC as setClineDir,_C as resolveWorkspaceTaskSpecsDir,u as resolveWorkspaceCronSpecsDir,_S as resolveWorkflowsConfigSearchPaths,fC as resolveTeamDataDir,oC as resolveTasksDbPath,cC as resolveTaskSpecsDir,SS as resolveSkillsConfigSearchPaths,mC as resolveSessionDataDir,ES as resolveRulesConfigSearchPaths,rC as resolveProviderSettingsPath,vC as resolvePluginModuleEntries,TS as resolvePluginConfigSearchPaths,eC as resolveMcpSettingsPath,CS as resolveHooksConfigSearchPaths,EC as resolveGlobalTaskSpecsDir,iC as resolveGlobalSettingsPath,TC as resolveGlobalCronSpecsDir,IC as resolveGlobalAgentsRulesPath,BC as resolveExistingFilePath,Q as resolveDocumentsExtensionPath,CC as resolveDocumentsClineDirectoryPath,b as resolveDbDataDir,f as resolveCronSpecsDir,hC as resolveCronReportsDir,nC as resolveCronEventsDir,pC as resolveCronDbPath,sC as resolveConnectorsDbPath,dC as resolveConnectorSettingsPath,lC as resolveConnectorLogPath,SC as resolveConnectorDataDir,LS as resolveConfiguredPluginModulePaths,v as resolveClineDir,L as resolveClineDataDir,VC as resolveChatWorkspacePath,GC as resolveAgentsConfigDirPath,PC as resolveAgentSchedulesDir,GS as resolveAgentPluginSearchPaths,aC as resolveAgentConfigSearchPaths,q as isPluginModulePath,h as isChatWorkspacePath,j as isAgentPluginDirectory,vS as getPluginDisplayName,MC as ensureParentDir,AS as ensureHookLogDir,MS as ensureFileExists,LC as discoverPluginModulePaths,B as WORKFLOWS_CONFIG_DIRECTORY_NAME,X as SKILLS_CONFIG_DIRECTORY_NAME,V as RULES_CONFIG_DIRECTORY_NAME,R as HOOKS_CONFIG_DIRECTORY_NAME,Z as CLINE_WORKSPACES_DIRECTORY_NAME,i as CLINE_MCP_SETTINGS_FILE_NAME,e as CLINE_CONNECTOR_SETTINGS_FILE_NAME,$ as CLINE_CHAT_WORKSPACE_DIRECTORY_NAME,r as AGENT_PLUGIN_MANIFEST_FILE_NAME,k as AGENT_CONFIG_DIRECTORY_NAME,m as AGENTS_RULES_FILE_NAME};
|
package/dist/storage/paths.d.ts
CHANGED
|
@@ -139,15 +139,16 @@ export declare function resolveRulesConfigSearchPaths(workspacePath?: string): s
|
|
|
139
139
|
export declare function resolveWorkflowsConfigSearchPaths(workspacePath?: string): string[];
|
|
140
140
|
export declare function resolvePluginConfigSearchPaths(workspacePath?: string): string[];
|
|
141
141
|
/**
|
|
142
|
-
*
|
|
142
|
+
* Root searched for Agent Plugins (agent-plugins.org). Kept separate from
|
|
143
143
|
* {@link resolvePluginConfigSearchPaths} so the two package lanes never share a
|
|
144
144
|
* directory: `.agents/plugins` is the vendor-neutral location, matching the
|
|
145
145
|
* `.agents/skills` convention already honored by skill discovery.
|
|
146
146
|
*
|
|
147
|
-
* Discovery roots are explicitly client-defined by the specification
|
|
148
|
-
*
|
|
147
|
+
* Discovery roots are explicitly client-defined by the specification. Cline
|
|
148
|
+
* only auto-discovers user-installed packages from the Hub host's home so
|
|
149
|
+
* opening a repository cannot activate repository-controlled MCP servers.
|
|
149
150
|
*/
|
|
150
|
-
export declare function resolveAgentPluginSearchPaths(
|
|
151
|
+
export declare function resolveAgentPluginSearchPaths(): string[];
|
|
151
152
|
/**
|
|
152
153
|
* True when `directoryPath` carries an Agent Plugin manifest at its root.
|
|
153
154
|
*
|