@cline/shared 0.0.42 → 0.0.43
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/connectors/options.d.ts +8 -3
- package/dist/extensions/contribution-registry.d.ts +1 -1
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +52 -49
- package/dist/llms/gateway.d.ts +3 -2
- package/dist/rpc/runtime.d.ts +19 -0
- package/dist/storage/index.d.ts +1 -1
- package/dist/storage/index.js +1 -1
- package/dist/storage/paths.d.ts +2 -0
- package/dist/types/vcr.d.ts +3 -1
- package/dist/vcr.d.ts +4 -2
- package/package.json +1 -1
package/dist/llms/gateway.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentMessage, AgentModelEvent, AgentToolDefinition } from "../agent";
|
|
2
2
|
import type { BasicLogger } from "../logging/logger";
|
|
3
|
-
import type { ProviderCapability } from "../rpc/runtime";
|
|
3
|
+
import type { ProviderCapability, ProviderConfigField } from "../rpc/runtime";
|
|
4
4
|
import type { ITelemetryService } from "../services/telemetry";
|
|
5
5
|
export type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
6
6
|
[key: string]: JsonValue | undefined;
|
|
@@ -35,7 +35,8 @@ export interface GatewayProviderMetadata {
|
|
|
35
35
|
promptCacheStrategy?: GatewayPromptCacheStrategy;
|
|
36
36
|
usageCostDisplay?: GatewayUsageCostDisplay;
|
|
37
37
|
routing?: GatewayProviderRouting;
|
|
38
|
-
[
|
|
38
|
+
configFields?: readonly ProviderConfigField[];
|
|
39
|
+
[key: string]: JsonValue | GatewayProviderRouting | readonly ProviderConfigField[] | undefined;
|
|
39
40
|
}
|
|
40
41
|
export interface GatewayModelDefinition {
|
|
41
42
|
id: string;
|
package/dist/rpc/runtime.d.ts
CHANGED
|
@@ -126,6 +126,23 @@ export interface ProviderModel {
|
|
|
126
126
|
supportsVision?: boolean;
|
|
127
127
|
supportsReasoning?: boolean;
|
|
128
128
|
}
|
|
129
|
+
export type ProviderConfigFieldType = "text" | "password" | "url" | "number" | "select" | "boolean";
|
|
130
|
+
export type ProviderConfigFieldPrimitive = string | number | boolean | null;
|
|
131
|
+
export interface ProviderConfigFieldOption {
|
|
132
|
+
label: string;
|
|
133
|
+
value: Exclude<ProviderConfigFieldPrimitive, null>;
|
|
134
|
+
}
|
|
135
|
+
export interface ProviderConfigField {
|
|
136
|
+
path: string;
|
|
137
|
+
label: string;
|
|
138
|
+
type: ProviderConfigFieldType;
|
|
139
|
+
description?: string;
|
|
140
|
+
placeholder?: string;
|
|
141
|
+
required?: boolean;
|
|
142
|
+
secret?: boolean;
|
|
143
|
+
options?: ProviderConfigFieldOption[];
|
|
144
|
+
defaultValue?: ProviderConfigFieldPrimitive;
|
|
145
|
+
}
|
|
129
146
|
export interface ProviderListItem {
|
|
130
147
|
id: string;
|
|
131
148
|
name: string;
|
|
@@ -142,6 +159,8 @@ export interface ProviderListItem {
|
|
|
142
159
|
capabilities?: ProviderCapability[];
|
|
143
160
|
authDescription: string;
|
|
144
161
|
baseUrlDescription: string;
|
|
162
|
+
configFields?: ProviderConfigField[];
|
|
163
|
+
configValues?: Record<string, ProviderConfigFieldPrimitive>;
|
|
145
164
|
modelList?: ProviderModel[];
|
|
146
165
|
family?: string;
|
|
147
166
|
}
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { resolveExistingFilePath } from "./path-resolution";
|
|
2
|
-
export { AGENT_CONFIG_DIRECTORY_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, 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_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";
|
package/dist/storage/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var FC=Object.defineProperty;var OC=(C)=>C;function IC(C,S){this[C]=OC.bind(null,S)}var dC=(C,S)=>{for(var M in S)FC(C,M,{get:S[M],enumerable:!0,configurable:!0,set:IC.bind(S,M)})};import{existsSync as D,readdirSync as KC}from"node:fs";import{basename as m,dirname as f,join as l}from"node:path";var LC=/[\u00A0\u2000-\u200A\u202F\u205F\u3000]/g,TC=" ";function y(C){return C.normalize("NFC").replace(LC," ")}function _C(C){let S=m(C),M=S.replace(/ (AM|PM)\./gi,`${TC}$1.`);return M===S?C:l(f(C),M)}function WC(C){return C.normalize("NFD")}function k(C){return C.replace(/'/g,"’")}function gC(C){let S=f(C),M=y(m(C));try{for(let F of KC(S))if(y(F)===M)return l(S,F)}catch{}return}function qC(C){if(D(C))return C;let S=_C(C);if(S!==C&&D(S))return S;let M=WC(C);if(M!==C&&D(M))return M;let F=k(C);if(F!==C&&D(F))return F;let O=k(M);if(O!==M&&O!==F&&D(O))return O;return gC(C)}import{appendFileSync as vC,existsSync as K,mkdirSync as R,readdirSync as DC,readFileSync as EC,statSync as E}from"node:fs";import{homedir as NC}from"node:os";import{dirname as U,join as G,resolve as N}from"node:path";var H=".clinerules",j=".cline",J=".agents",b="agents",Z="hooks",z="skills",A="rules",$="workflows",s="plugins",V="AGENTS.md",d="cline_mcp_settings.json";function QC(){let C=process?.env?.HOME?.trim();if(C&&C!=="~")return C;let S=process?.env?.USERPROFILE?.trim();if(S)return S;let M=process?.env?.HOMEDRIVE?.trim(),F=process?.env?.HOMEPATH?.trim();if(M&&F)return`${M}${F}`;let O=NC().trim();if(O&&O!=="~")return O;return"~"}var W=QC(),o=!1;function YC(C){let S=C.trim();if(!S)return;W=S,o=!0}function ZC(C){if(o)return;let S=C.trim();if(!S)return;W=S}var B,p=!1;function $C(C){let S=C.trim();if(!S)return;B=S,p=!0}function zC(C){if(p)return;let S=C.trim();if(!S)return;B=S}function L(){if(B)return B;let C=process.env.CLINE_DIR?.trim();if(C)return C;return G(W,".cline")}function c(){return G(W,"Documents","Cline")}function Y(C){return G(c(),C)}function _(){let C=process.env.CLINE_DATA_DIR?.trim();if(C)return C;return G(L(),"data")}function BC(){let C=process.env.CLINE_SESSION_DATA_DIR?.trim();if(C)return C;return G(_(),"sessions")}function jC(){let C=process.env.CLINE_TEAM_DATA_DIR?.trim();if(C)return C;return G(_(),"teams")}function P(){let C=process.env.CLINE_DB_DATA_DIR?.trim();if(C)return C;return G(_(),"db")}function AC(){let C=process.env.CLINE_CRON_DB_PATH?.trim();if(C)return C;return G(P(),"cron.db")}function h(){return G(L(),"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 h()}function XC(C){return G(x(C),"reports")}function RC(C){return G(x(C),"events")}function UC(){let C=process.env.CLINE_PROVIDER_SETTINGS_PATH?.trim();if(C)return C;return G(_(),"settings","providers.json")}function HC(){let C=process.env.CLINE_GLOBAL_SETTINGS_PATH?.trim();if(C)return C;return G(_(),"settings","global-settings.json")}function JC(){let C=process.env.CLINE_MCP_SETTINGS_PATH?.trim();if(C)return C;return G(_(),"settings",d)}function g(C){let S=new Set,M=[];for(let F of C){if(!F||S.has(F))continue;S.add(F),M.push(F)}return M}function bC(C){if(!C)return[];return[H,j,J].map((S)=>G(C,S,z))}function n(){return G(L(),b)}function VC(C){return g([C?G(C,j,b):"",n()])}function xC(C){let S=[Y("Hooks"),G(L(),Z)];if(C)S.push(G(C,H,Z),G(C,j,Z));return g(S)}function uC(C){return g([...bC(C),G(L(),z),G(W,J,z)])}function r(){return G(W,J,V)}function wC(C){let S=C?[G(C,H),G(C,j,A)]:[],M=C?[G(C,V)]:[];return g([...M,...S,r(),G(L(),A),Y("Rules")])}function yC(C){return g([C?G(C,".clinerules",$):"",Y("Workflows"),G(L(),$),C?G(C,".cline",$):""])}function kC(C){return g([C?G(C,".cline",s):"",G(L(),s),Y("Plugins")])}var i=new Set([".js",".ts"]),e="package.json",mC=["index.ts","index.js"];function Q(C){let S=C.lastIndexOf(".");if(S===-1)return!1;return i.has(C.slice(S))}function t(C){try{let S=JSON.parse(EC(C,"utf8"));if(!S.cline||typeof S.cline!=="object")return null;return S.cline}catch{return null}}function a(C){let S=C?.plugins;if(!Array.isArray(S))return[];return S.flatMap((M)=>M.paths??[])}function CC(C){let S=N(C);if(!K(S)||!E(S).isDirectory())return null;let M=G(S,e);if(K(M)){let F=t(M),O=a(F).map((I)=>N(S,I)).filter((I)=>K(I)&&E(I).isFile()&&Q(I));if(O.length>0)return O}for(let F of mC){let O=G(S,F);if(K(O)&&E(O).isFile())return[O]}return null}function SC(C){let S=N(C);if(!K(S))return[];let M=[],F=[S];while(F.length>0){let O=F.pop();if(!O)continue;let I;try{I=DC(O,{withFileTypes:!0})}catch{continue}for(let q of I){let T=G(O,q.name);if(q.isDirectory()){let u=G(T,e);if(K(u)){let MC=t(u),w=a(MC).map((v)=>N(T,v)).filter((v)=>K(v)&&E(v).isFile()&&Q(v));if(w.length>0){M.push(...w);continue}}F.push(T);continue}if(q.name.startsWith("."))continue;if(q.isFile()&&Q(T))M.push(T)}}return M.sort((O,I)=>O.localeCompare(I))}function fC(C,S){let M=[];for(let F of C){let O=F.trim();if(!O)continue;let I=N(S,O);if(!K(I))throw Error(`Plugin path does not exist: ${I}`);if(E(I).isDirectory()){let T=CC(I);if(T){M.push(...T);continue}M.push(...SC(I));continue}if(!Q(I))throw Error(`Plugin file must use a supported extension (${[...i].join(", ")}): ${I}`);M.push(I)}return M}function GC(C){let S=U(C);if(!K(S))R(S,{recursive:!0})}function lC(C){R(U(C),{recursive:!0}),vC(C,"")}function sC(C){if(C?.trim())return GC(C),U(C);let S=G(_(),"logs");if(!K(S))R(S,{recursive:!0});return S}export{ZC as setHomeDirIfUnset,YC as setHomeDir,zC as setClineDirIfUnset,$C as setClineDir,X as resolveWorkspaceCronSpecsDir,yC as resolveWorkflowsConfigSearchPaths,jC as resolveTeamDataDir,uC as resolveSkillsConfigSearchPaths,BC as resolveSessionDataDir,wC as resolveRulesConfigSearchPaths,UC as resolveProviderSettingsPath,CC as resolvePluginModuleEntries,kC as resolvePluginConfigSearchPaths,JC as resolveMcpSettingsPath,xC as resolveHooksConfigSearchPaths,HC as resolveGlobalSettingsPath,h as resolveGlobalCronSpecsDir,r as resolveGlobalAgentsRulesPath,qC as resolveExistingFilePath,Y as resolveDocumentsExtensionPath,c as resolveDocumentsClineDirectoryPath,P as resolveDbDataDir,x as resolveCronSpecsDir,XC as resolveCronReportsDir,RC as resolveCronEventsDir,AC as resolveCronDbPath,fC as resolveConfiguredPluginModulePaths,L as resolveClineDir,_ as resolveClineDataDir,n as resolveAgentsConfigDirPath,VC as resolveAgentConfigSearchPaths,Q as isPluginModulePath,GC as ensureParentDir,sC as ensureHookLogDir,lC as ensureFileExists,SC as discoverPluginModulePaths,$ as WORKFLOWS_CONFIG_DIRECTORY_NAME,z as SKILLS_CONFIG_DIRECTORY_NAME,A as RULES_CONFIG_DIRECTORY_NAME,Z as HOOKS_CONFIG_DIRECTORY_NAME,d as CLINE_MCP_SETTINGS_FILE_NAME,b as AGENT_CONFIG_DIRECTORY_NAME,V as AGENTS_RULES_FILE_NAME};
|
package/dist/storage/paths.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export declare const SKILLS_CONFIG_DIRECTORY_NAME = "skills";
|
|
|
4
4
|
export declare const RULES_CONFIG_DIRECTORY_NAME = "rules";
|
|
5
5
|
export declare const WORKFLOWS_CONFIG_DIRECTORY_NAME = "workflows";
|
|
6
6
|
export declare const PLUGINS_DIRECTORY_NAME = "plugins";
|
|
7
|
+
export declare const AGENTS_RULES_FILE_NAME = "AGENTS.md";
|
|
7
8
|
export declare const CLINE_MCP_SETTINGS_FILE_NAME = "cline_mcp_settings.json";
|
|
8
9
|
export declare function setHomeDir(dir: string): void;
|
|
9
10
|
export declare function setHomeDirIfUnset(dir: string): void;
|
|
@@ -73,6 +74,7 @@ export declare function resolveAgentsConfigDirPath(): string;
|
|
|
73
74
|
export declare function resolveAgentConfigSearchPaths(workspacePath?: string): string[];
|
|
74
75
|
export declare function resolveHooksConfigSearchPaths(workspacePath?: string): string[];
|
|
75
76
|
export declare function resolveSkillsConfigSearchPaths(workspacePath?: string): string[];
|
|
77
|
+
export declare function resolveGlobalAgentsRulesPath(): string;
|
|
76
78
|
export declare function resolveRulesConfigSearchPaths(workspacePath?: string): string[];
|
|
77
79
|
export declare function resolveWorkflowsConfigSearchPaths(workspacePath?: string): string[];
|
|
78
80
|
export declare function resolvePluginConfigSearchPaths(workspacePath?: string): string[];
|
package/dist/types/vcr.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
/** A single recorded HTTP interaction
|
|
1
|
+
/** A single recorded HTTP interaction. */
|
|
2
2
|
export interface VcrRecording {
|
|
3
3
|
scope: string;
|
|
4
4
|
method: string;
|
|
5
5
|
path: string;
|
|
6
6
|
body?: string;
|
|
7
|
+
/** Sanitized canonical request body used as an optional playback contract. */
|
|
8
|
+
requestBody?: string;
|
|
7
9
|
status: number;
|
|
8
10
|
response: unknown;
|
|
9
11
|
responseIsBinary: boolean;
|
package/dist/vcr.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* enabling deterministic testing without making real API calls.
|
|
6
6
|
*
|
|
7
7
|
* Unlike nock (which patches Node's `http` module), this works by wrapping
|
|
8
|
-
* `globalThis.fetch` directly
|
|
8
|
+
* `globalThis.fetch` directly, catching all HTTP traffic in this codebase
|
|
9
9
|
* including calls made through the OpenAI, Anthropic, Gemini, and Vercel AI
|
|
10
10
|
* SDKs (all of which delegate to the global fetch).
|
|
11
11
|
*
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
* contains this substring are recorded/replayed; all other
|
|
18
18
|
* requests pass through to the real network.
|
|
19
19
|
* When empty or unset, ALL requests are intercepted (no filter).
|
|
20
|
+
* CLINE_VCR_INCLUDE_REQUEST_BODY - "1" to save sanitized request bodies and
|
|
21
|
+
* assert them during playback.
|
|
20
22
|
* CLINE_VCR_SSE_DELAY - Milliseconds between SSE chunks during playback (default: 100).
|
|
21
23
|
* Set to 0 for instant delivery.
|
|
22
24
|
*
|
|
@@ -24,7 +26,7 @@
|
|
|
24
26
|
* # Record only inference requests
|
|
25
27
|
* CLINE_VCR=record CLINE_VCR_CASSETTE=./fixtures/my-test.json cline task "hello"
|
|
26
28
|
*
|
|
27
|
-
* # Replay
|
|
29
|
+
* # Replay: auth/S3/etc. requests go through normally, only inference is mocked
|
|
28
30
|
* CLINE_VCR=playback CLINE_VCR_CASSETTE=./fixtures/my-test.json cline task "hello"
|
|
29
31
|
*
|
|
30
32
|
* # Record everything (no filter)
|