@cline/shared 0.0.51 → 0.0.52
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 +2 -0
- package/dist/connectors/platforms.d.ts +87 -0
- package/dist/hub.d.ts +1 -1
- package/dist/index.browser.d.ts +7 -4
- package/dist/index.browser.js +14 -14
- package/dist/index.d.ts +7 -4
- package/dist/index.js +50 -50
- package/dist/llms/gateway.d.ts +13 -1
- package/dist/parse/json.d.ts +1 -0
- package/dist/parse/object.d.ts +9 -0
- package/dist/parse/string.d.ts +1 -0
- package/dist/services/telemetry.d.ts +12 -0
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/paths.d.ts +3 -0
- package/package.json +1 -1
package/dist/llms/gateway.d.ts
CHANGED
|
@@ -31,12 +31,24 @@ export interface GatewayProviderRouting {
|
|
|
31
31
|
routes: GatewayModelRoute[];
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
+
export type GatewayStickySessionTransport = "json-body" | "header";
|
|
35
|
+
export interface GatewayStickySessionMetadata {
|
|
36
|
+
/**
|
|
37
|
+
* Where the provider expects the sticky-session identifier on the wire.
|
|
38
|
+
* `field` is a JSON body property for `json-body`, and an HTTP header name
|
|
39
|
+
* for `header`.
|
|
40
|
+
*/
|
|
41
|
+
transport: GatewayStickySessionTransport;
|
|
42
|
+
field: string;
|
|
43
|
+
metadataKey: string;
|
|
44
|
+
}
|
|
34
45
|
export interface GatewayProviderMetadata {
|
|
35
46
|
promptCacheStrategy?: GatewayPromptCacheStrategy;
|
|
36
47
|
usageCostDisplay?: GatewayUsageCostDisplay;
|
|
37
48
|
routing?: GatewayProviderRouting;
|
|
49
|
+
stickySession?: GatewayStickySessionMetadata;
|
|
38
50
|
configFields?: readonly ProviderConfigField[];
|
|
39
|
-
[key: string]: JsonValue | GatewayProviderRouting | readonly ProviderConfigField[] | undefined;
|
|
51
|
+
[key: string]: JsonValue | GatewayProviderRouting | GatewayStickySessionMetadata | readonly ProviderConfigField[] | undefined;
|
|
40
52
|
}
|
|
41
53
|
export interface GatewayModelDefinition {
|
|
42
54
|
id: string;
|
package/dist/parse/json.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare function parseJsonStream(input: unknown): unknown;
|
|
2
2
|
export declare function safeJsonStringify(input: unknown): string;
|
|
3
3
|
export declare function safeJsonParse<T>(raw: string): T | undefined;
|
|
4
|
+
export declare function normalizeJsonLikeStringsForSchema(input: unknown, schema: Record<string, unknown>): unknown;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type KeysWithUndefinedValues<T extends Record<string, unknown>> = {
|
|
2
|
+
[K in keyof T]: undefined extends T[K] ? K : never;
|
|
3
|
+
}[keyof T];
|
|
4
|
+
type KeysWithoutUndefinedValues<T extends Record<string, unknown>> = Exclude<keyof T, KeysWithUndefinedValues<T>>;
|
|
5
|
+
export type OmitUndefinedValues<T extends Record<string, unknown>> = Pick<T, KeysWithoutUndefinedValues<T>> & Partial<{
|
|
6
|
+
[K in KeysWithUndefinedValues<T>]: Exclude<T[K], undefined>;
|
|
7
|
+
}>;
|
|
8
|
+
export declare function omitUndefinedValues<T extends Record<string, unknown>>(value: T): OmitUndefinedValues<T>;
|
|
9
|
+
export {};
|
package/dist/parse/string.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare function sanitizeFileName(value: string): string;
|
|
2
|
+
export declare function trimNonEmpty(value: string | null | undefined): string | undefined;
|
|
2
3
|
export declare function truncateStr(str: string, maxLen: number): string;
|
|
3
4
|
export declare function truncateSplit(str?: string, splitBy?: string, maxLen?: number): string;
|
|
4
5
|
export declare function maskSecret(value: string): string;
|
|
@@ -17,6 +17,17 @@ export interface CaptureSdkErrorInput {
|
|
|
17
17
|
event?: string;
|
|
18
18
|
messageLimit?: number;
|
|
19
19
|
}
|
|
20
|
+
export declare const AGENT_UNEXPECTED_REASONING_TOKENS_EVENT = "agent.reasoning.unexpected_tokens";
|
|
21
|
+
export interface CaptureAgentUnexpectedReasoningTokensInput {
|
|
22
|
+
sessionId?: string;
|
|
23
|
+
agentId: string;
|
|
24
|
+
runId?: string;
|
|
25
|
+
iteration: number;
|
|
26
|
+
providerId?: string;
|
|
27
|
+
modelId?: string;
|
|
28
|
+
requestedThinking: false;
|
|
29
|
+
reasoningTokenCount: number;
|
|
30
|
+
}
|
|
20
31
|
export interface TelemetryMetadata {
|
|
21
32
|
extension_version: string;
|
|
22
33
|
cline_type: string;
|
|
@@ -46,6 +57,7 @@ export interface ITelemetryService {
|
|
|
46
57
|
dispose(): Promise<void>;
|
|
47
58
|
}
|
|
48
59
|
export declare const SDK_ERROR_TELEMETRY_EVENT = "sdk.error";
|
|
60
|
+
export declare function captureAgentUnexpectedReasoningTokens(telemetry: ITelemetryService | undefined, input: CaptureAgentUnexpectedReasoningTokensInput): void;
|
|
49
61
|
export declare function captureSdkError(telemetry: ITelemetryService | undefined, input: CaptureSdkErrorInput): void;
|
|
50
62
|
export declare function buildSdkErrorProperties(input: CaptureSdkErrorInput): TelemetryProperties;
|
|
51
63
|
export declare function normalizeSdkError(error: unknown, messageLimit?: number): TelemetryProperties;
|
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_MCP_SETTINGS_FILE_NAME, type CronSpecsScope, discoverPluginModulePaths, ensureFileExists, ensureHookLogDir, ensureParentDir, HOOKS_CONFIG_DIRECTORY_NAME, isPluginModulePath, type ResolveCronSpecsDirOptions, RULES_CONFIG_DIRECTORY_NAME, resolveAgentConfigSearchPaths, resolveAgentsConfigDirPath, resolveClineDataDir, resolveClineDir, resolveConfiguredPluginModulePaths, resolveCronDbPath, resolveCronEventsDir, resolveCronReportsDir, resolveCronSpecsDir, resolveDbDataDir, resolveDocumentsClineDirectoryPath, resolveDocumentsExtensionPath, resolveGlobalAgentsRulesPath, resolveGlobalCronSpecsDir, resolveGlobalSettingsPath, resolveHooksConfigSearchPaths, resolveMcpSettingsPath, resolvePluginConfigSearchPaths, resolvePluginModuleEntries, resolveProviderSettingsPath, resolveRulesConfigSearchPaths, resolveSessionDataDir, resolveSkillsConfigSearchPaths, resolveTeamDataDir, resolveWorkflowsConfigSearchPaths, resolveWorkspaceCronSpecsDir, SKILLS_CONFIG_DIRECTORY_NAME, setClineDir, setClineDirIfUnset, setHomeDir, setHomeDirIfUnset, WORKFLOWS_CONFIG_DIRECTORY_NAME, } from "./paths";
|
|
2
|
+
export { AGENT_CONFIG_DIRECTORY_NAME, AGENTS_RULES_FILE_NAME, CLINE_CONNECTOR_SETTINGS_FILE_NAME, CLINE_MCP_SETTINGS_FILE_NAME, type CronSpecsScope, discoverPluginModulePaths, ensureFileExists, ensureHookLogDir, ensureParentDir, HOOKS_CONFIG_DIRECTORY_NAME, isPluginModulePath, type ResolveCronSpecsDirOptions, RULES_CONFIG_DIRECTORY_NAME, resolveAgentConfigSearchPaths, resolveAgentsConfigDirPath, resolveClineDataDir, resolveClineDir, resolveConfiguredPluginModulePaths, resolveConnectorDataDir, resolveConnectorSettingsPath, resolveCronDbPath, resolveCronEventsDir, resolveCronReportsDir, resolveCronSpecsDir, resolveDbDataDir, resolveDocumentsClineDirectoryPath, resolveDocumentsExtensionPath, resolveGlobalAgentsRulesPath, resolveGlobalCronSpecsDir, resolveGlobalSettingsPath, resolveHooksConfigSearchPaths, resolveMcpSettingsPath, resolvePluginConfigSearchPaths, resolvePluginModuleEntries, resolveProviderSettingsPath, resolveRulesConfigSearchPaths, resolveSessionDataDir, resolveSkillsConfigSearchPaths, resolveTeamDataDir, resolveWorkflowsConfigSearchPaths, resolveWorkspaceCronSpecsDir, SKILLS_CONFIG_DIRECTORY_NAME, setClineDir, setClineDirIfUnset, setHomeDir, setHomeDirIfUnset, WORKFLOWS_CONFIG_DIRECTORY_NAME, } from "./paths";
|
package/dist/storage/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var MC=Object.defineProperty;var OC=(C)=>C;function TC(C,S){this[C]=OC.bind(null,S)}var cC=(C,S)=>{for(var I in S)MC(C,I,{get:S[I],enumerable:!0,configurable:!0,set:TC.bind(S,I)})};import{existsSync as g,readdirSync as EC}from"node:fs";import{basename as m,dirname as f,join as l}from"node:path";var FC=/[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g,LC=" ";function y(C){return C.normalize("NFC").replace(FC," ")}function NC(C){let S=m(C),I=S.replace(/ (AM|PM)\./gi,`${LC}$1.`);return I===S?C:l(f(C),I)}function vC(C){return C.normalize("NFD")}function k(C){return C.replace(/'/g,"’")}function KC(C){let S=f(C),I=y(m(C));try{for(let _ of EC(S))if(y(_)===I)return l(S,_)}catch{}return}function gC(C){if(g(C))return C;let S=NC(C);if(S!==C&&g(S))return S;let I=vC(C);if(I!==C&&g(I))return I;let _=k(C);if(_!==C&&g(_))return _;let D=k(I);if(D!==I&&D!==_&&g(D))return D;return KC(C)}import{appendFileSync as WC,existsSync as O,mkdirSync as R,readdirSync as YC,readFileSync as qC,statSync as W}from"node:fs";import{homedir as QC}from"node:os";import{dirname as U,join as G,resolve as Y}from"node:path";var H=".clinerules",B=".cline",J=".agents",b="agents",Z="hooks",z="skills",j="rules",$="workflows",s="plugins",V="AGENTS.md",o="cline_mcp_settings.json",d="settings.json";function ZC(){let C=process?.env?.HOME?.trim();if(C&&C!=="~")return C;let S=process?.env?.USERPROFILE?.trim();if(S)return S;let I=process?.env?.HOMEDRIVE?.trim(),_=process?.env?.HOMEPATH?.trim();if(I&&_)return`${I}${_}`;let D=QC().trim();if(D&&D!=="~")return D;return"~"}var L=ZC(),p=!1;function $C(C){let S=C.trim();if(!S)return;L=S,p=!0}function zC(C){if(p)return;let S=C.trim();if(!S)return;L=S}var A,c=!1;function AC(C){let S=C.trim();if(!S)return;A=S,c=!0}function BC(C){if(c)return;let S=C.trim();if(!S)return;A=S}function T(){if(A)return A;let C=process.env.CLINE_DIR?.trim();if(C)return C;return G(L,".cline")}function P(){return G(L,"Documents","Cline")}function Q(C){return G(P(),C)}function E(){let C=process.env.CLINE_DATA_DIR?.trim();if(C)return C;return G(T(),"data")}function jC(){let C=process.env.CLINE_SESSION_DATA_DIR?.trim();if(C)return C;return G(E(),"sessions")}function XC(){let C=process.env.CLINE_TEAM_DATA_DIR?.trim();if(C)return C;return G(E(),"teams")}function h(){let C=process.env.CLINE_CONNECTOR_DATA_DIR?.trim();if(C)return C;return G(E(),"connectors")}function RC(){let C=process.env.CLINE_CONNECTOR_SETTINGS_PATH?.trim();if(C)return C;return G(h(),d)}function n(){let C=process.env.CLINE_DB_DATA_DIR?.trim();if(C)return C;return G(E(),"db")}function UC(){let C=process.env.CLINE_CRON_DB_PATH?.trim();if(C)return C;return G(n(),"cron.db")}function r(){return G(T(),"cron")}function X(C){return G(C,".cline","cron")}function x(C){if(typeof C==="string")return X(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 X(S)}return r()}function HC(C){return G(x(C),"reports")}function JC(C){return G(x(C),"events")}function bC(){let C=process.env.CLINE_PROVIDER_SETTINGS_PATH?.trim();if(C)return C;return G(E(),"settings","providers.json")}function VC(){let C=process.env.CLINE_GLOBAL_SETTINGS_PATH?.trim();if(C)return C;return G(E(),"settings","global-settings.json")}function xC(){let C=process.env.CLINE_MCP_SETTINGS_PATH?.trim();if(C)return C;return G(E(),"settings",o)}function N(C){let S=new Set,I=[];for(let _ of C){if(!_||S.has(_))continue;S.add(_),I.push(_)}return I}function uC(C){if(!C)return[];return[H,B,J].map((S)=>G(C,S,z))}function i(){return G(T(),b)}function wC(C){return N([C?G(C,B,b):"",i()])}function yC(C){let S=[Q("Hooks"),G(T(),Z)];if(C)S.push(G(C,H,Z),G(C,B,Z));return N(S)}function kC(C){return N([...uC(C),G(T(),z),G(L,J,z)])}function e(){return G(L,J,V)}function mC(C){let S=C?[G(C,H),G(C,B,j)]:[],I=C?[G(C,V)]:[];return N([...I,...S,e(),G(T(),j),Q("Rules")])}function fC(C){return N([C?G(C,".clinerules",$):"",Q("Workflows"),G(T(),$),C?G(C,".cline",$):""])}function lC(C){return N([C?G(C,".cline",s):"",G(T(),s),Q("Plugins")])}var t=new Set([".js",".ts"]),a="package.json",sC=["index.ts","index.js"];function q(C){let S=C.lastIndexOf(".");if(S===-1)return!1;return t.has(C.slice(S))}function CC(C){try{let S=JSON.parse(qC(C,"utf8"));if(!S.cline||typeof S.cline!=="object")return null;return S.cline}catch{return null}}function SC(C){let S=C?.plugins;if(!Array.isArray(S))return[];return S.flatMap((I)=>I.paths??[])}function GC(C){let S=Y(C);if(!O(S)||!W(S).isDirectory())return null;let I=G(S,a);if(O(I)){let _=CC(I),D=SC(_).map((M)=>Y(S,M)).filter((M)=>O(M)&&W(M).isFile()&&q(M));if(D.length>0)return D}for(let _ of sC){let D=G(S,_);if(O(D)&&W(D).isFile())return[D]}return null}function IC(C){let S=Y(C);if(!O(S))return[];let I=[],_=[S];while(_.length>0){let D=_.pop();if(!D)continue;let M;try{M=YC(D,{withFileTypes:!0})}catch{continue}for(let v of M){let F=G(D,v.name);if(v.isDirectory()){let u=G(F,a);if(O(u)){let DC=CC(u),w=SC(DC).map((K)=>Y(F,K)).filter((K)=>O(K)&&W(K).isFile()&&q(K));if(w.length>0){I.push(...w);continue}}_.push(F);continue}if(v.name.startsWith("."))continue;if(v.isFile()&&q(F))I.push(F)}}return I.sort((D,M)=>D.localeCompare(M))}function oC(C,S){let I=[];for(let _ of C){let D=_.trim();if(!D)continue;let M=Y(S,D);if(!O(M))throw Error(`Plugin path does not exist: ${M}`);if(W(M).isDirectory()){let F=GC(M);if(F){I.push(...F);continue}I.push(...IC(M));continue}if(!q(M))throw Error(`Plugin file must use a supported extension (${[...t].join(", ")}): ${M}`);I.push(M)}return I}function _C(C){let S=U(C);if(!O(S))R(S,{recursive:!0})}function dC(C){R(U(C),{recursive:!0}),WC(C,"")}function pC(C){if(C?.trim())return _C(C),U(C);let S=G(E(),"logs");if(!O(S))R(S,{recursive:!0});return S}export{zC as setHomeDirIfUnset,$C as setHomeDir,BC as setClineDirIfUnset,AC as setClineDir,X as resolveWorkspaceCronSpecsDir,fC as resolveWorkflowsConfigSearchPaths,XC as resolveTeamDataDir,kC as resolveSkillsConfigSearchPaths,jC as resolveSessionDataDir,mC as resolveRulesConfigSearchPaths,bC as resolveProviderSettingsPath,GC as resolvePluginModuleEntries,lC as resolvePluginConfigSearchPaths,xC as resolveMcpSettingsPath,yC as resolveHooksConfigSearchPaths,VC as resolveGlobalSettingsPath,r as resolveGlobalCronSpecsDir,e as resolveGlobalAgentsRulesPath,gC as resolveExistingFilePath,Q as resolveDocumentsExtensionPath,P as resolveDocumentsClineDirectoryPath,n as resolveDbDataDir,x as resolveCronSpecsDir,HC as resolveCronReportsDir,JC as resolveCronEventsDir,UC as resolveCronDbPath,RC as resolveConnectorSettingsPath,h as resolveConnectorDataDir,oC as resolveConfiguredPluginModulePaths,T as resolveClineDir,E as resolveClineDataDir,i as resolveAgentsConfigDirPath,wC as resolveAgentConfigSearchPaths,q as isPluginModulePath,_C as ensureParentDir,pC as ensureHookLogDir,dC as ensureFileExists,IC as discoverPluginModulePaths,$ as WORKFLOWS_CONFIG_DIRECTORY_NAME,z as SKILLS_CONFIG_DIRECTORY_NAME,j as RULES_CONFIG_DIRECTORY_NAME,Z as HOOKS_CONFIG_DIRECTORY_NAME,o as CLINE_MCP_SETTINGS_FILE_NAME,d as CLINE_CONNECTOR_SETTINGS_FILE_NAME,b as AGENT_CONFIG_DIRECTORY_NAME,V as AGENTS_RULES_FILE_NAME};
|
package/dist/storage/paths.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare const WORKFLOWS_CONFIG_DIRECTORY_NAME = "workflows";
|
|
|
6
6
|
export declare const PLUGINS_DIRECTORY_NAME = "plugins";
|
|
7
7
|
export declare const AGENTS_RULES_FILE_NAME = "AGENTS.md";
|
|
8
8
|
export declare const CLINE_MCP_SETTINGS_FILE_NAME = "cline_mcp_settings.json";
|
|
9
|
+
export declare const CLINE_CONNECTOR_SETTINGS_FILE_NAME = "settings.json";
|
|
9
10
|
export declare function setHomeDir(dir: string): void;
|
|
10
11
|
export declare function setHomeDirIfUnset(dir: string): void;
|
|
11
12
|
export declare function setClineDir(dir: string): void;
|
|
@@ -17,6 +18,8 @@ export declare function resolveDocumentsExtensionPath(name: DocumentsExtensionNa
|
|
|
17
18
|
export declare function resolveClineDataDir(): string;
|
|
18
19
|
export declare function resolveSessionDataDir(): string;
|
|
19
20
|
export declare function resolveTeamDataDir(): string;
|
|
21
|
+
export declare function resolveConnectorDataDir(): string;
|
|
22
|
+
export declare function resolveConnectorSettingsPath(): string;
|
|
20
23
|
export declare function resolveDbDataDir(): string;
|
|
21
24
|
/**
|
|
22
25
|
* Path to the dedicated cron/automation database.
|