@cline/shared 0.0.82 → 0.0.83
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 +8 -0
- package/dist/agents/types.d.ts +12 -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 +10 -0
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.js +31 -26
- package/dist/index.d.ts +3 -3
- package/dist/index.js +78 -68
- 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/services/telemetry.d.ts +21 -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
|
}>;
|
|
@@ -121,6 +121,18 @@ export declare function captureTaskLifecycleEvent(telemetry: ITelemetryService |
|
|
|
121
121
|
export declare function captureSdkError(telemetry: ITelemetryService | undefined, input: CaptureSdkErrorInput): boolean;
|
|
122
122
|
export declare function buildSdkErrorProperties(input: CaptureSdkErrorInput): TelemetryProperties;
|
|
123
123
|
export declare function normalizeSdkError(error: unknown, messageLimit?: number, errorMessage?: string): TelemetryProperties;
|
|
124
|
+
/**
|
|
125
|
+
* Marker property stamped onto a tracer provider whose span processors
|
|
126
|
+
* include a real OTLP exporter — the collector relay. Trace decisions must
|
|
127
|
+
* identify the relay explicitly instead of inferring it from "some recording
|
|
128
|
+
* tracer exists": a console-only tracer would otherwise be misclassified as
|
|
129
|
+
* a relay. A property on the provider instance (reached through the OTel API
|
|
130
|
+
* global) survives bundled module duplication, which a module-level registry
|
|
131
|
+
* would not.
|
|
132
|
+
*/
|
|
133
|
+
export declare const OTLP_TRACE_RELAY_MARKER = "_clineOtlpTraceRelay";
|
|
134
|
+
export declare function markOtlpTraceRelayProvider(provider: object): void;
|
|
135
|
+
export declare function isOtlpTraceRelayProvider(provider: unknown): boolean;
|
|
124
136
|
export interface OpenTelemetryClientConfig {
|
|
125
137
|
/**
|
|
126
138
|
* Whether telemetry is enabled via OTEL_TELEMETRY_ENABLED
|
|
@@ -141,6 +153,15 @@ export interface OpenTelemetryClientConfig {
|
|
|
141
153
|
* Examples: "console", "otlp". When unset, no `TracerProvider` is registered.
|
|
142
154
|
*/
|
|
143
155
|
tracesExporter?: string;
|
|
156
|
+
/**
|
|
157
|
+
* OTel resource `service.name` (default "cline"). Distinguishes processes
|
|
158
|
+
* that ship in the same binary — e.g. the CLI vs the detached hub daemon.
|
|
159
|
+
*/
|
|
160
|
+
serviceName?: string;
|
|
161
|
+
/**
|
|
162
|
+
* OTel resource `service.version`.
|
|
163
|
+
*/
|
|
164
|
+
serviceVersion?: string;
|
|
144
165
|
/**
|
|
145
166
|
* Protocol for OTLP exporters. SDK support is currently limited to "http/json".
|
|
146
167
|
*/
|
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
|
*
|