@cline/shared 0.0.80 → 0.0.81-nightly.1787893007
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/db/index.js +10 -10
- package/dist/feature-flags.d.ts +2 -0
- package/dist/hub.d.ts +21 -1
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.js +20 -20
- package/dist/index.d.ts +1 -1
- package/dist/index.js +37 -37
- package/dist/prompt/format.d.ts +4 -0
- package/dist/rpc/runtime.d.ts +6 -0
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/paths.d.ts +40 -0
- package/package.json +1 -1
package/dist/prompt/format.d.ts
CHANGED
|
@@ -47,4 +47,8 @@ export declare function normalizeUserInput(input?: string): string;
|
|
|
47
47
|
*/
|
|
48
48
|
export declare function stripModeNotices(input?: string): string;
|
|
49
49
|
export declare function formatDisplayUserInput(input?: string): string;
|
|
50
|
+
export declare const SESSION_SEARCH_TITLE_MAX_LENGTH = 240;
|
|
51
|
+
export declare const SESSION_SEARCH_PREVIEW_MAX_LENGTH = 480;
|
|
52
|
+
export declare function formatSessionSearchTitle(input?: string): string;
|
|
53
|
+
export declare function formatSessionSearchPreview(role: string, input?: string): string;
|
|
50
54
|
export declare function xmlTagsRemoval(input?: string, tag?: string): string;
|
package/dist/rpc/runtime.d.ts
CHANGED
|
@@ -173,6 +173,12 @@ export interface ProviderListItem {
|
|
|
173
173
|
color: string;
|
|
174
174
|
letter: string;
|
|
175
175
|
enabled: boolean;
|
|
176
|
+
/**
|
|
177
|
+
* True when the persisted settings hold real credentials or a usable
|
|
178
|
+
* keyless endpoint (see @cline/core's isProviderSettingsUsable), unlike
|
|
179
|
+
* `enabled` which is set by any persisted entry.
|
|
180
|
+
*/
|
|
181
|
+
configured?: boolean;
|
|
176
182
|
apiKey?: string;
|
|
177
183
|
oauthAccessTokenPresent?: boolean;
|
|
178
184
|
baseUrl?: string;
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { resolveExistingFilePath } from "./path-resolution";
|
|
2
|
-
export { AGENT_CONFIG_DIRECTORY_NAME, AGENTS_RULES_FILE_NAME, CLINE_CHAT_WORKSPACE_DIRECTORY_NAME, CLINE_CONNECTOR_SETTINGS_FILE_NAME, CLINE_MCP_SETTINGS_FILE_NAME, CLINE_WORKSPACES_DIRECTORY_NAME, type CronSpecsScope, discoverPluginModulePaths, ensureFileExists, ensureHookLogDir, ensureParentDir, getPluginDisplayName, HOOKS_CONFIG_DIRECTORY_NAME, isChatWorkspacePath, isPluginModulePath, type ResolveCronSpecsDirOptions, type ResolveTaskSpecsDirOptions, RULES_CONFIG_DIRECTORY_NAME, resolveAgentConfigSearchPaths, resolveAgentsConfigDirPath, resolveChatWorkspacePath, resolveClineDataDir, resolveClineDir, resolveConfiguredPluginModulePaths, resolveConnectorDataDir, resolveConnectorLogPath, resolveConnectorSettingsPath, resolveConnectorsDbPath, resolveCronDbPath, resolveCronEventsDir, resolveCronReportsDir, resolveCronSpecsDir, resolveDbDataDir, resolveDocumentsClineDirectoryPath, resolveDocumentsExtensionPath, resolveGlobalAgentsRulesPath, resolveGlobalCronSpecsDir, resolveGlobalSettingsPath, resolveGlobalTaskSpecsDir, resolveHooksConfigSearchPaths, resolveMcpSettingsPath, resolvePluginConfigSearchPaths, resolvePluginModuleEntries, resolveProviderSettingsPath, resolveRulesConfigSearchPaths, resolveSessionDataDir, resolveSkillsConfigSearchPaths, resolveTaskSpecsDir, resolveTasksDbPath, resolveTeamDataDir, resolveWorkflowsConfigSearchPaths, resolveWorkspaceCronSpecsDir, resolveWorkspaceTaskSpecsDir, SKILLS_CONFIG_DIRECTORY_NAME, setClineDir, setClineDirIfUnset, setHomeDir, setHomeDirIfUnset, type TaskSpecsScope, WORKFLOWS_CONFIG_DIRECTORY_NAME, } from "./paths";
|
|
2
|
+
export { AGENT_CONFIG_DIRECTORY_NAME, AGENT_PLUGIN_MANIFEST_FILE_NAME, AGENTS_RULES_FILE_NAME, CLINE_CHAT_WORKSPACE_DIRECTORY_NAME, CLINE_CONNECTOR_SETTINGS_FILE_NAME, CLINE_MCP_SETTINGS_FILE_NAME, CLINE_WORKSPACES_DIRECTORY_NAME, type CronSpecsScope, discoverPluginModulePaths, ensureFileExists, ensureHookLogDir, ensureParentDir, getPluginDisplayName, HOOKS_CONFIG_DIRECTORY_NAME, isAgentPluginDirectory, isChatWorkspacePath, isPluginModulePath, type ResolveCronSpecsDirOptions, type ResolveTaskSpecsDirOptions, RULES_CONFIG_DIRECTORY_NAME, resolveAgentConfigSearchPaths, resolveAgentPluginSearchPaths, resolveAgentSchedulesDir, resolveAgentsConfigDirPath, resolveChatWorkspacePath, resolveClineDataDir, resolveClineDir, resolveConfiguredPluginModulePaths, resolveConnectorDataDir, resolveConnectorLogPath, resolveConnectorSettingsPath, resolveConnectorsDbPath, resolveCronDbPath, resolveCronEventsDir, resolveCronReportsDir, resolveCronSpecsDir, resolveDbDataDir, resolveDocumentsClineDirectoryPath, resolveDocumentsExtensionPath, resolveGlobalAgentsRulesPath, resolveGlobalCronSpecsDir, resolveGlobalSettingsPath, resolveGlobalTaskSpecsDir, resolveHooksConfigSearchPaths, resolveMcpSettingsPath, resolvePluginConfigSearchPaths, resolvePluginModuleEntries, resolveProviderSettingsPath, resolveRulesConfigSearchPaths, resolveSessionDataDir, resolveSkillsConfigSearchPaths, resolveTaskSpecsDir, resolveTasksDbPath, resolveTeamDataDir, resolveWorkflowsConfigSearchPaths, resolveWorkspaceCronSpecsDir, resolveWorkspaceTaskSpecsDir, SKILLS_CONFIG_DIRECTORY_NAME, setClineDir, setClineDirIfUnset, setHomeDir, setHomeDirIfUnset, type TaskSpecsScope, WORKFLOWS_CONFIG_DIRECTORY_NAME, } from "./paths";
|
package/dist/storage/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var WC=Object.defineProperty;var YC=(C)=>C;function KC(C,S){this[C]=YC.bind(null,S)}var FS=(C,S)=>{for(var _ in S)WC(C,_,{get:S[_],enumerable:!0,configurable:!0,set:KC.bind(S,_)})};import{existsSync as K,readdirSync as qC}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,ZC=" ";function s(C){return C.normalize("NFC").replace(QC," ")}function $C(C){let S=o(C),_=S.replace(/ (AM|PM)\./gi,`${ZC}$1.`);return _===S?C:c(P(C),_)}function RC(C){return C.normalize("NFD")}function p(C){return C.replace(/'/g,"’")}function BC(C){let S=P(C),_=s(o(C));try{for(let G of qC(S))if(s(G)===_)return c(S,G)}catch{}return}function XC(C){if(K(C))return C;let S=$C(C);if(S!==C&&K(S))return S;let _=RC(C);if(_!==C&&K(_))return _;let G=p(C);if(G!==C&&K(G))return G;let T=p(_);if(T!==_&&T!==G&&K(T))return T;return BC(C)}import{appendFileSync as UC,existsSync as O,mkdirSync as y,readdirSync as jC,readFileSync as r,statSync as W}from"node:fs";import{homedir as gC}from"node:os";import{basename as HC,dirname as H,extname as zC,isAbsolute as bC,join as E,relative as JC,resolve as M}from"node:path";var Z="workspaces",$="chat";function h(C){let S=C.trim(),_=/^[A-Za-z]:[\\/]/.test(S)||S.startsWith("\\\\"),G=S.startsWith("/");if(!_&&!G)return!1;let T=S.split(_?/[\\/]+/:/\/+/).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 w=".clinerules",z=".cline",b=".agents",n=b,k="agents",R="hooks",X="skills",x="rules",B="workflows",U="plugins",m="AGENTS.md",i="plugin.json";function VC(){return E(L(),Z,$)}var e="cline_mcp_settings.json",t="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 _=process?.env?.HOMEDRIVE?.trim(),G=process?.env?.HOMEPATH?.trim();if(_&&G)return`${_}${G}`;let T=gC().trim();if(T&&T!=="~")return T;return"~"}var A=xC(),a=!1;function uC(C){let S=C.trim();if(!S)return;A=S,a=!0}function yC(C){if(a)return;let S=C.trim();if(!S)return;A=S}var j,CC=!1;function wC(C){let S=C.trim();if(!S)return;j=S,CC=!0}function kC(C){if(CC)return;let S=C.trim();if(!S)return;j=S}function v(){if(j)return j;let C=process.env.CLINE_DIR?.trim();if(C)return C;return E(A,".cline")}function SC(){return E(A,"Documents","Cline")}function Q(C){return E(SC(),C)}function L(){let C=process.env.CLINE_DATA_DIR?.trim();if(C)return C;return E(v(),"data")}function mC(){let C=process.env.CLINE_SESSION_DATA_DIR?.trim();if(C)return C;return E(L(),"sessions")}function fC(){let C=process.env.CLINE_TEAM_DATA_DIR?.trim();if(C)return C;return E(L(),"teams")}function EC(){let C=process.env.CLINE_CONNECTOR_DATA_DIR?.trim();if(C)return C;return E(L(),"connectors")}function lC(C,S){let _=C.replace(/[^a-zA-Z0-9._-]+/g,"_"),G=S.replace(/[^a-zA-Z0-9._-]+/g,"_");return E(L(),"logs","connectors",_,`${G}.log`)}function dC(){let C=process.env.CLINE_CONNECTOR_SETTINGS_PATH?.trim();if(C)return C;return E(EC(),t)}function J(){let C=process.env.CLINE_DB_DATA_DIR?.trim();if(C)return C;return E(L(),"db")}function sC(){let C=process.env.CLINE_CONNECTORS_DB_PATH?.trim();if(C)return C;return E(J(),"connectors.db")}function pC(){let C=process.env.CLINE_CRON_DB_PATH?.trim();if(C)return C;return E(J(),"cron.db")}function oC(){let C=process.env.CLINE_TASKS_DB_PATH?.trim();if(C)return C;return E(J(),"tasks.db")}function PC(){return E(v(),"schedules")}function _C(){return E(v(),"tasks")}function TC(C){let S=C.trim();if(!S)throw Error("workspaceRoot is required for workspace task scope");return E(S,".cline","tasks")}function cC(C){let S=C.taskSpecsDir?.trim();if(S)return S;if(C.scope==="workspace")return TC(C.workspaceRoot??"");return _C()}function GC(){return E(v(),"cron")}function u(C){return E(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 GC()}function hC(C){return E(f(C),"reports")}function nC(C){return E(f(C),"events")}function rC(){let C=process.env.CLINE_PROVIDER_SETTINGS_PATH?.trim();if(C)return C;return E(L(),"settings","providers.json")}function iC(){let C=process.env.CLINE_GLOBAL_SETTINGS_PATH?.trim();if(C)return C;return E(L(),"settings","global-settings.json")}function eC(){let C=process.env.CLINE_MCP_SETTINGS_PATH?.trim();if(C)return C;return E(L(),"settings",e)}function F(C){let S=new Set,_=[];for(let G of C){if(!G||S.has(G))continue;S.add(G),_.push(G)}return _}function tC(C){if(!C)return[];return[w,z,b].map((S)=>E(C,S,X))}function IC(){return E(v(),k)}function aC(C){return F([C?E(C,z,k):"",IC()])}function CS(C){let S=[Q("Hooks"),E(v(),R)];if(C)S.push(E(C,w,R),E(C,z,R));return F(S)}function SS(C){return F([...tC(C),E(v(),X),E(A,b,X)])}function DC(){return E(A,b,m)}function ES(C){let S=C?[E(C,w),E(C,z,x)]:[],_=C?[E(C,m)]:[];return F([..._,...S,DC(),E(v(),x),E(A,"Cline","Rules"),Q("Rules")])}function _S(C){return F([C?E(C,".clinerules",B):"",Q("Workflows"),E(v(),B),C?E(C,".cline",B):""])}function TS(C){return F([C?E(C,".cline",U):"",E(v(),U),Q("Plugins")])}function GS(C){return F([C?E(C,n,U):"",E(A,n,U)])}var NC=new Set([".js",".ts"]),l="package.json",IS=["index.ts","index.js"],DS=new Set(["node_modules"]);function g(C){try{return W(E(C,i)).isFile()}catch{return!1}}function q(C){let S=C.lastIndexOf(".");if(S===-1)return!1;return NC.has(C.slice(S))}function OC(C){try{let S=JSON.parse(r(C,"utf8"));if(!S.cline||typeof S.cline!=="object")return null;return S.cline}catch{return null}}function vC(C){let S=C?.plugins;if(!Array.isArray(S))return[];return S.flatMap((_)=>_.paths??[])}function LC(C){let S=M(C);if(!O(S)||!W(S).isDirectory())return null;if(g(S))return null;let _=E(S,l);if(O(_)){let G=OC(_),T=vC(G).map((I)=>M(S,I)).filter((I)=>O(I)&&W(I).isFile()&&q(I));if(T.length>0)return T}for(let G of IS){let T=E(S,G);if(O(T)&&W(T).isFile())return[T]}return null}function NS(C){try{let S=JSON.parse(r(C,"utf8"));return typeof S.name==="string"&&S.name.trim()?S.name.trim():void 0}catch{return}}function OS(C,S){let _=JC(M(C),M(S));return _===""||!_.startsWith("..")&&!bC(_)}function vS(C,S){let _=H(C),G=M(S);while(OS(G,_)){let T=E(_,l);if(O(T)){let D=NS(T);if(D)return D;break}let I=M(_,"..");if(I===_)break;_=I}return HC(C,zC(C))}function MC(C){let S=M(C);if(!O(S))return[];if(g(S))return[];let _=[],G=[S];while(G.length>0){let T=G.pop();if(!T)continue;let I;try{I=jC(T,{withFileTypes:!0})}catch{continue}for(let D of I){let N=E(T,D.name);if(D.isDirectory()){if(g(N))continue;if(DS.has(D.name)||D.name.startsWith("."))continue;let V=E(N,l);if(O(V)){let FC=OC(V),d=vC(FC).map((Y)=>M(N,Y)).filter((Y)=>O(Y)&&W(Y).isFile()&&q(Y));if(d.length>0){_.push(...d);continue}}G.push(N);continue}if(D.name.startsWith("."))continue;if(D.isFile()&&q(N))_.push(N)}}return _.sort((T,I)=>T.localeCompare(I))}function LS(C,S){let _=[];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(W(I).isDirectory()){let N=LC(I);if(N){_.push(...N);continue}_.push(...MC(I));continue}if(!q(I))throw Error(`Plugin file must use a supported extension (${[...NC].join(", ")}): ${I}`);_.push(I)}return _}function AC(C){let S=H(C);if(!O(S))y(S,{recursive:!0})}function MS(C){y(H(C),{recursive:!0}),UC(C,"")}function AS(C){if(C?.trim())return AC(C),H(C);let S=E(L(),"logs");if(!O(S))y(S,{recursive:!0});return S}export{yC as setHomeDirIfUnset,uC as setHomeDir,kC as setClineDirIfUnset,wC as setClineDir,TC 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,LC as resolvePluginModuleEntries,TS as resolvePluginConfigSearchPaths,eC as resolveMcpSettingsPath,CS as resolveHooksConfigSearchPaths,_C as resolveGlobalTaskSpecsDir,iC as resolveGlobalSettingsPath,GC as resolveGlobalCronSpecsDir,DC as resolveGlobalAgentsRulesPath,XC as resolveExistingFilePath,Q as resolveDocumentsExtensionPath,SC as resolveDocumentsClineDirectoryPath,J as resolveDbDataDir,f as resolveCronSpecsDir,hC as resolveCronReportsDir,nC as resolveCronEventsDir,pC as resolveCronDbPath,sC as resolveConnectorsDbPath,dC as resolveConnectorSettingsPath,lC as resolveConnectorLogPath,EC as resolveConnectorDataDir,LS as resolveConfiguredPluginModulePaths,v as resolveClineDir,L as resolveClineDataDir,VC as resolveChatWorkspacePath,IC as resolveAgentsConfigDirPath,PC as resolveAgentSchedulesDir,GS as resolveAgentPluginSearchPaths,aC as resolveAgentConfigSearchPaths,q as isPluginModulePath,h as isChatWorkspacePath,g as isAgentPluginDirectory,vS as getPluginDisplayName,AC as ensureParentDir,AS as ensureHookLogDir,MS as ensureFileExists,MC as discoverPluginModulePaths,B as WORKFLOWS_CONFIG_DIRECTORY_NAME,X as SKILLS_CONFIG_DIRECTORY_NAME,x as RULES_CONFIG_DIRECTORY_NAME,R as HOOKS_CONFIG_DIRECTORY_NAME,Z as CLINE_WORKSPACES_DIRECTORY_NAME,e as CLINE_MCP_SETTINGS_FILE_NAME,t as CLINE_CONNECTOR_SETTINGS_FILE_NAME,$ as CLINE_CHAT_WORKSPACE_DIRECTORY_NAME,i 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
|
@@ -6,6 +6,20 @@ export declare const RULES_CONFIG_DIRECTORY_NAME = "rules";
|
|
|
6
6
|
export declare const WORKFLOWS_CONFIG_DIRECTORY_NAME = "workflows";
|
|
7
7
|
export declare const PLUGINS_DIRECTORY_NAME = "plugins";
|
|
8
8
|
export declare const AGENTS_RULES_FILE_NAME = "AGENTS.md";
|
|
9
|
+
/**
|
|
10
|
+
* Manifest that marks a directory as an Agent Plugin (agent-plugins.org).
|
|
11
|
+
* Per the specification a plugin MUST carry this file at its root, which makes
|
|
12
|
+
* it the discriminator between the two package lanes:
|
|
13
|
+
*
|
|
14
|
+
* - Agent plugin -> `<root>/plugin.json`, discovered under `.agents/plugins`
|
|
15
|
+
* - Cline plugin -> a JS/TS module, discovered under `.cline/plugins`
|
|
16
|
+
*
|
|
17
|
+
* Cline plugin discovery treats it as a hard stop: a directory carrying this
|
|
18
|
+
* file is never scanned for Cline plugin modules, so a plugin authored for
|
|
19
|
+
* another client and dropped into a Cline plugin root cannot have its skill
|
|
20
|
+
* scripts or another vendor's extension directory imported as Cline code.
|
|
21
|
+
*/
|
|
22
|
+
export declare const AGENT_PLUGIN_MANIFEST_FILE_NAME = "plugin.json";
|
|
9
23
|
/**
|
|
10
24
|
* Shared workspace for all sessions started without a `cwd`/`workspaceRoot`.
|
|
11
25
|
* Lives under the cline data dir (not `os.tmpdir()`) so OS temp reapers never
|
|
@@ -58,6 +72,13 @@ export interface ResolveTaskSpecsDirOptions {
|
|
|
58
72
|
/** Required for workspace-scoped task specs. */
|
|
59
73
|
workspaceRoot?: string;
|
|
60
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Home workspace for agent-created schedules: `~/.cline/schedules/`.
|
|
77
|
+
* Agent-created schedules are user-level routines, so they anchor here (and
|
|
78
|
+
* their unattended sessions run here) instead of inheriting whichever chat
|
|
79
|
+
* workspace happened to create them.
|
|
80
|
+
*/
|
|
81
|
+
export declare function resolveAgentSchedulesDir(): string;
|
|
61
82
|
/** Global file-backed agenda tasks: `~/.cline/tasks/`. */
|
|
62
83
|
export declare function resolveGlobalTaskSpecsDir(): string;
|
|
63
84
|
/** Workspace file-backed agenda tasks: `<workspace>/.cline/tasks/`. */
|
|
@@ -117,6 +138,25 @@ export declare function resolveGlobalAgentsRulesPath(): string;
|
|
|
117
138
|
export declare function resolveRulesConfigSearchPaths(workspacePath?: string): string[];
|
|
118
139
|
export declare function resolveWorkflowsConfigSearchPaths(workspacePath?: string): string[];
|
|
119
140
|
export declare function resolvePluginConfigSearchPaths(workspacePath?: string): string[];
|
|
141
|
+
/**
|
|
142
|
+
* Roots searched for Agent Plugins (agent-plugins.org). Kept separate from
|
|
143
|
+
* {@link resolvePluginConfigSearchPaths} so the two package lanes never share a
|
|
144
|
+
* directory: `.agents/plugins` is the vendor-neutral location, matching the
|
|
145
|
+
* `.agents/skills` convention already honored by skill discovery.
|
|
146
|
+
*
|
|
147
|
+
* Discovery roots are explicitly client-defined by the specification, so these
|
|
148
|
+
* are our choice rather than a conformance requirement.
|
|
149
|
+
*/
|
|
150
|
+
export declare function resolveAgentPluginSearchPaths(workspacePath?: string): string[];
|
|
151
|
+
/**
|
|
152
|
+
* True when `directoryPath` carries an Agent Plugin manifest at its root.
|
|
153
|
+
*
|
|
154
|
+
* Only the manifest's presence is checked here. Validating its contents
|
|
155
|
+
* (`$schema`, `name`, the closed field set) belongs to the Agent Plugin loader;
|
|
156
|
+
* discovery only needs to know that this directory belongs to the other lane
|
|
157
|
+
* and must not be scanned for Cline plugin modules.
|
|
158
|
+
*/
|
|
159
|
+
export declare function isAgentPluginDirectory(directoryPath: string): boolean;
|
|
120
160
|
export declare function isPluginModulePath(path: string): boolean;
|
|
121
161
|
export declare function resolvePluginModuleEntries(directoryPath: string): string[] | null;
|
|
122
162
|
/**
|