@cline/core 0.0.38-nightly.1778113663

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.
Files changed (227) hide show
  1. package/README.md +108 -0
  2. package/dist/ClineCore.d.ts +282 -0
  3. package/dist/account/cline-account-service.d.ts +37 -0
  4. package/dist/account/index.d.ts +3 -0
  5. package/dist/account/rpc.d.ts +40 -0
  6. package/dist/account/types.d.ts +98 -0
  7. package/dist/auth/bounded-ttl-cache.d.ts +13 -0
  8. package/dist/auth/client.d.ts +30 -0
  9. package/dist/auth/cline.d.ts +64 -0
  10. package/dist/auth/codex.d.ts +43 -0
  11. package/dist/auth/oca.d.ts +28 -0
  12. package/dist/auth/server.d.ts +54 -0
  13. package/dist/auth/types.d.ts +103 -0
  14. package/dist/auth/utils.d.ts +32 -0
  15. package/dist/cline-core/automation.d.ts +34 -0
  16. package/dist/cline-core/runtime-services.d.ts +5 -0
  17. package/dist/cline-core/start-input.d.ts +10 -0
  18. package/dist/cline-core/telemetry.d.ts +10 -0
  19. package/dist/cline-core/types.d.ts +221 -0
  20. package/dist/cron/events/cron-event-ingress.d.ts +37 -0
  21. package/dist/cron/reports/cron-report-writer.d.ts +40 -0
  22. package/dist/cron/runner/cron-materializer.d.ts +35 -0
  23. package/dist/cron/runner/cron-runner.d.ts +45 -0
  24. package/dist/cron/runner/resource-limiter.d.ts +8 -0
  25. package/dist/cron/schedule/scheduler.d.ts +12 -0
  26. package/dist/cron/service/cron-service.d.ts +56 -0
  27. package/dist/cron/service/schedule-command-service.d.ts +9 -0
  28. package/dist/cron/service/schedule-service.d.ts +98 -0
  29. package/dist/cron/specs/cron-reconciler.d.ts +61 -0
  30. package/dist/cron/specs/cron-spec-parser.d.ts +26 -0
  31. package/dist/cron/specs/cron-watcher.d.ts +22 -0
  32. package/dist/cron/store/cron-schema.d.ts +2 -0
  33. package/dist/cron/store/sqlite-cron-store.d.ts +240 -0
  34. package/dist/extensions/config/index.d.ts +7 -0
  35. package/dist/extensions/config/runtime-commands.d.ts +11 -0
  36. package/dist/extensions/config/skill-frontmatter-toggle.d.ts +11 -0
  37. package/dist/extensions/config/unified-config-file-watcher.d.ts +77 -0
  38. package/dist/extensions/config/user-instruction-config-loader.d.ts +64 -0
  39. package/dist/extensions/config/user-instruction-plugin.d.ts +25 -0
  40. package/dist/extensions/config/user-instruction-service.d.ts +23 -0
  41. package/dist/extensions/context/agentic-compaction.d.ts +12 -0
  42. package/dist/extensions/context/basic-compaction.d.ts +8 -0
  43. package/dist/extensions/context/compaction-shared.d.ts +60 -0
  44. package/dist/extensions/context/compaction.d.ts +24 -0
  45. package/dist/extensions/index.d.ts +5 -0
  46. package/dist/extensions/mcp/client.d.ts +2 -0
  47. package/dist/extensions/mcp/config-loader.d.ts +15 -0
  48. package/dist/extensions/mcp/index.d.ts +8 -0
  49. package/dist/extensions/mcp/manager.d.ts +23 -0
  50. package/dist/extensions/mcp/name-transform.d.ts +2 -0
  51. package/dist/extensions/mcp/policies.d.ts +14 -0
  52. package/dist/extensions/mcp/tools.d.ts +3 -0
  53. package/dist/extensions/mcp/types.d.ts +94 -0
  54. package/dist/extensions/plugin/plugin-config-loader.d.ts +40 -0
  55. package/dist/extensions/plugin/plugin-load-report.d.ts +18 -0
  56. package/dist/extensions/plugin/plugin-loader.d.ts +22 -0
  57. package/dist/extensions/plugin/plugin-module-import.d.ts +4 -0
  58. package/dist/extensions/plugin/plugin-sandbox.d.ts +36 -0
  59. package/dist/extensions/plugin/plugin-targeting.d.ts +6 -0
  60. package/dist/extensions/plugin-sandbox-bootstrap.js +1 -0
  61. package/dist/extensions/tools/constants.d.ts +24 -0
  62. package/dist/extensions/tools/definitions.d.ts +102 -0
  63. package/dist/extensions/tools/executors/apply-patch-parser.d.ts +68 -0
  64. package/dist/extensions/tools/executors/apply-patch.d.ts +28 -0
  65. package/dist/extensions/tools/executors/bash.d.ts +49 -0
  66. package/dist/extensions/tools/executors/editor.d.ts +31 -0
  67. package/dist/extensions/tools/executors/file-read.d.ts +40 -0
  68. package/dist/extensions/tools/executors/index.d.ts +50 -0
  69. package/dist/extensions/tools/executors/search.d.ts +50 -0
  70. package/dist/extensions/tools/executors/web-fetch.d.ts +58 -0
  71. package/dist/extensions/tools/helpers.d.ts +15 -0
  72. package/dist/extensions/tools/index.d.ts +59 -0
  73. package/dist/extensions/tools/model-tool-routing.d.ts +33 -0
  74. package/dist/extensions/tools/presets.d.ts +132 -0
  75. package/dist/extensions/tools/runtime.d.ts +24 -0
  76. package/dist/extensions/tools/schemas.d.ts +241 -0
  77. package/dist/extensions/tools/team/delegated-agent.d.ts +43 -0
  78. package/dist/extensions/tools/team/index.d.ts +2 -0
  79. package/dist/extensions/tools/team/multi-agent.d.ts +230 -0
  80. package/dist/extensions/tools/team/projections.d.ts +8 -0
  81. package/dist/extensions/tools/team/runtime.d.ts +4 -0
  82. package/dist/extensions/tools/team/spawn-agent-tool.d.ts +83 -0
  83. package/dist/extensions/tools/team/subagent-prompts.d.ts +3 -0
  84. package/dist/extensions/tools/team/team-tools.d.ts +35 -0
  85. package/dist/extensions/tools/types.d.ts +254 -0
  86. package/dist/hooks/checkpoint-hooks.d.ts +45 -0
  87. package/dist/hooks/hook-extension.d.ts +2 -0
  88. package/dist/hooks/hook-file-config.d.ts +24 -0
  89. package/dist/hooks/hook-file-hooks.d.ts +21 -0
  90. package/dist/hooks/index.d.ts +5 -0
  91. package/dist/hooks/subprocess-runner.d.ts +21 -0
  92. package/dist/hooks/subprocess.d.ts +68 -0
  93. package/dist/hub/client/connect.d.ts +14 -0
  94. package/dist/hub/client/index.d.ts +88 -0
  95. package/dist/hub/client/session-client.d.ts +118 -0
  96. package/dist/hub/client/ui-client.d.ts +45 -0
  97. package/dist/hub/daemon/entry.d.ts +1 -0
  98. package/dist/hub/daemon/entry.js +720 -0
  99. package/dist/hub/daemon/index.d.ts +8 -0
  100. package/dist/hub/daemon/runtime-handlers.d.ts +12 -0
  101. package/dist/hub/daemon/start-shared-server.d.ts +18 -0
  102. package/dist/hub/discovery/defaults.d.ts +16 -0
  103. package/dist/hub/discovery/index.d.ts +30 -0
  104. package/dist/hub/discovery/workspace.d.ts +3 -0
  105. package/dist/hub/index.d.ts +32 -0
  106. package/dist/hub/index.js +717 -0
  107. package/dist/hub/runtime-host/hub-runtime-host.d.ts +73 -0
  108. package/dist/hub/runtime-host/remote-runtime-host.d.ts +9 -0
  109. package/dist/hub/server/browser-websocket.d.ts +17 -0
  110. package/dist/hub/server/command-transport.d.ts +7 -0
  111. package/dist/hub/server/handlers/approval-handlers.d.ts +17 -0
  112. package/dist/hub/server/handlers/capability-handlers.d.ts +12 -0
  113. package/dist/hub/server/handlers/client-handlers.d.ts +6 -0
  114. package/dist/hub/server/handlers/context.d.ts +56 -0
  115. package/dist/hub/server/handlers/run-handlers.d.ts +5 -0
  116. package/dist/hub/server/handlers/session-event-projector.d.ts +7 -0
  117. package/dist/hub/server/handlers/session-handlers.d.ts +20 -0
  118. package/dist/hub/server/hub-client-contributions.d.ts +19 -0
  119. package/dist/hub/server/hub-notifications.d.ts +7 -0
  120. package/dist/hub/server/hub-schedule-events.d.ts +2 -0
  121. package/dist/hub/server/hub-server-logging.d.ts +2 -0
  122. package/dist/hub/server/hub-server-options.d.ts +55 -0
  123. package/dist/hub/server/hub-server-transport.d.ts +34 -0
  124. package/dist/hub/server/hub-session-records.d.ts +8 -0
  125. package/dist/hub/server/hub-websocket-server.d.ts +6 -0
  126. package/dist/hub/server/index.d.ts +4 -0
  127. package/dist/hub/server/native-transport.d.ts +16 -0
  128. package/dist/index.d.ts +102 -0
  129. package/dist/index.js +715 -0
  130. package/dist/runtime/capabilities/index.d.ts +2 -0
  131. package/dist/runtime/capabilities/normalize-runtime-capabilities.d.ts +2 -0
  132. package/dist/runtime/capabilities/runtime-capabilities.d.ts +6 -0
  133. package/dist/runtime/config/agent-message-codec.d.ts +6 -0
  134. package/dist/runtime/config/agent-runtime-config-builder.d.ts +87 -0
  135. package/dist/runtime/host/history.d.ts +18 -0
  136. package/dist/runtime/host/host.d.ts +7 -0
  137. package/dist/runtime/host/local/agent-event-bridge.d.ts +29 -0
  138. package/dist/runtime/host/local/session-record.d.ts +6 -0
  139. package/dist/runtime/host/local/session-service-invoker.d.ts +4 -0
  140. package/dist/runtime/host/local/spawn-tool.d.ts +15 -0
  141. package/dist/runtime/host/local/user-files.d.ts +1 -0
  142. package/dist/runtime/host/local-runtime-host.d.ts +119 -0
  143. package/dist/runtime/host/runtime-host-support.d.ts +20 -0
  144. package/dist/runtime/host/runtime-host.d.ts +163 -0
  145. package/dist/runtime/orchestration/runtime-builder.d.ts +6 -0
  146. package/dist/runtime/orchestration/runtime-event-adapter.d.ts +101 -0
  147. package/dist/runtime/orchestration/runtime-oauth-token-manager.d.ts +30 -0
  148. package/dist/runtime/orchestration/session-runtime-orchestrator.d.ts +218 -0
  149. package/dist/runtime/orchestration/session-runtime.d.ts +58 -0
  150. package/dist/runtime/orchestration/user-input-builder.d.ts +15 -0
  151. package/dist/runtime/safety/loop-detection.d.ts +58 -0
  152. package/dist/runtime/safety/mistake-tracker.d.ts +68 -0
  153. package/dist/runtime/safety/rules.d.ts +6 -0
  154. package/dist/runtime/tools/subprocess-sandbox.d.ts +43 -0
  155. package/dist/runtime/tools/tool-approval.d.ts +9 -0
  156. package/dist/runtime/turn-queue/pending-prompt-service.d.ts +64 -0
  157. package/dist/services/agent-events.d.ts +33 -0
  158. package/dist/services/config.d.ts +2 -0
  159. package/dist/services/global-settings.d.ts +34 -0
  160. package/dist/services/llms/cline-recommended-models.d.ts +19 -0
  161. package/dist/services/llms/configured-provider-registry.d.ts +27 -0
  162. package/dist/services/llms/handler-factory.d.ts +3 -0
  163. package/dist/services/llms/provider-defaults.d.ts +28 -0
  164. package/dist/services/llms/provider-settings.d.ts +247 -0
  165. package/dist/services/llms/runtime-config.d.ts +3 -0
  166. package/dist/services/llms/runtime-registry.d.ts +19 -0
  167. package/dist/services/llms/runtime-types.d.ts +84 -0
  168. package/dist/services/local-runtime-bootstrap.d.ts +45 -0
  169. package/dist/services/plugin-tools.d.ts +15 -0
  170. package/dist/services/providers/local-provider-registry.d.ts +218 -0
  171. package/dist/services/providers/local-provider-service.d.ts +99 -0
  172. package/dist/services/providers/model-source.d.ts +3 -0
  173. package/dist/services/session-artifacts.d.ts +17 -0
  174. package/dist/services/session-data.d.ts +51 -0
  175. package/dist/services/session-telemetry.d.ts +15 -0
  176. package/dist/services/storage/file-team-store.d.ts +28 -0
  177. package/dist/services/storage/provider-settings-legacy-migration.d.ts +38 -0
  178. package/dist/services/storage/provider-settings-manager.d.ts +23 -0
  179. package/dist/services/storage/sqlite-session-store.d.ts +30 -0
  180. package/dist/services/storage/sqlite-team-store.d.ts +34 -0
  181. package/dist/services/storage/team-store.d.ts +15 -0
  182. package/dist/services/telemetry/ITelemetryAdapter.d.ts +54 -0
  183. package/dist/services/telemetry/OpenTelemetryAdapter.d.ts +43 -0
  184. package/dist/services/telemetry/OpenTelemetryProvider.d.ts +83 -0
  185. package/dist/services/telemetry/TelemetryLoggerSink.d.ts +27 -0
  186. package/dist/services/telemetry/TelemetryService.d.ts +34 -0
  187. package/dist/services/telemetry/core-events.d.ts +198 -0
  188. package/dist/services/telemetry/distinct-id.d.ts +1 -0
  189. package/dist/services/telemetry/index.d.ts +3 -0
  190. package/dist/services/telemetry/index.js +1 -0
  191. package/dist/services/usage.d.ts +18 -0
  192. package/dist/services/workspace/file-indexer.d.ts +5 -0
  193. package/dist/services/workspace/index.d.ts +4 -0
  194. package/dist/services/workspace/mention-enricher.d.ts +13 -0
  195. package/dist/services/workspace/workspace-manager.d.ts +27 -0
  196. package/dist/services/workspace/workspace-manifest.d.ts +31 -0
  197. package/dist/services/workspace/workspace-telemetry.d.ts +18 -0
  198. package/dist/session/checkpoint-restore.d.ts +20 -0
  199. package/dist/session/models/session-graph.d.ts +15 -0
  200. package/dist/session/models/session-manifest.d.ts +29 -0
  201. package/dist/session/models/session-row.d.ts +92 -0
  202. package/dist/session/services/file-session-service.d.ts +8 -0
  203. package/dist/session/services/message-builder.d.ts +66 -0
  204. package/dist/session/services/persistence-service.d.ts +58 -0
  205. package/dist/session/services/session-service.d.ts +13 -0
  206. package/dist/session/session-snapshot.d.ts +57 -0
  207. package/dist/session/session-versioning-service.d.ts +48 -0
  208. package/dist/session/stores/conversation-store.d.ts +29 -0
  209. package/dist/session/stores/session-manifest-store.d.ts +21 -0
  210. package/dist/session/stores/team-persistence-store.d.ts +23 -0
  211. package/dist/session/team/index.d.ts +2 -0
  212. package/dist/session/team/team-child-session-manager.d.ts +35 -0
  213. package/dist/session/team/team-session-coordinator.d.ts +13 -0
  214. package/dist/settings/index.d.ts +2 -0
  215. package/dist/settings/settings-service.d.ts +6 -0
  216. package/dist/settings/types.d.ts +42 -0
  217. package/dist/types/chat-schema.d.ts +161 -0
  218. package/dist/types/common.d.ts +19 -0
  219. package/dist/types/config.d.ts +167 -0
  220. package/dist/types/events.d.ts +89 -0
  221. package/dist/types/provider-settings.d.ts +19 -0
  222. package/dist/types/session.d.ts +116 -0
  223. package/dist/types/sessions.d.ts +28 -0
  224. package/dist/types/storage.d.ts +36 -0
  225. package/dist/types.d.ts +32 -0
  226. package/dist/version.d.ts +1 -0
  227. package/package.json +83 -0
@@ -0,0 +1,99 @@
1
+ import { type AddProviderActionRequest, type OAuthProviderId, type ProviderCapability, type ProviderListItem, type ProviderModel, type SaveProviderSettingsActionRequest } from "@cline/shared";
2
+ import type { ProviderClient, ProviderConfig, ProviderProtocol, ProviderSettings } from "../../services/llms/provider-settings";
3
+ import type { ProviderSettingsManager } from "../storage/provider-settings-manager";
4
+ export { ensureCustomProvidersLoaded } from "./local-provider-registry";
5
+ export interface UpdateLocalProviderRequest {
6
+ providerId: string;
7
+ name?: string;
8
+ baseUrl?: string;
9
+ apiKey?: string | null;
10
+ headers?: Record<string, string> | null;
11
+ timeoutMs?: number | null;
12
+ models?: string[];
13
+ defaultModelId?: string | null;
14
+ modelsSourceUrl?: string | null;
15
+ protocol?: ProviderProtocol | null;
16
+ client?: ProviderClient | null;
17
+ capabilities?: ProviderCapability[] | null;
18
+ }
19
+ export interface DeleteLocalProviderRequest {
20
+ providerId: string;
21
+ }
22
+ export declare function addLocalProvider(manager: ProviderSettingsManager, request: Omit<AddProviderActionRequest, "action">): Promise<{
23
+ providerId: string;
24
+ settingsPath: string;
25
+ modelsPath: string;
26
+ modelsCount: number;
27
+ }>;
28
+ export declare function updateLocalProvider(manager: ProviderSettingsManager, request: UpdateLocalProviderRequest): Promise<{
29
+ providerId: string;
30
+ settingsPath: string;
31
+ modelsPath: string;
32
+ modelsCount: number;
33
+ }>;
34
+ export declare function deleteLocalProvider(manager: ProviderSettingsManager, request: DeleteLocalProviderRequest): Promise<{
35
+ providerId: string;
36
+ settingsPath: string;
37
+ modelsPath: string;
38
+ }>;
39
+ export declare function listLocalProviders(manager: ProviderSettingsManager): Promise<{
40
+ providers: ProviderListItem[];
41
+ settingsPath: string;
42
+ }>;
43
+ export declare function getLocalProviderModels(providerId: string, config?: ProviderConfig): Promise<{
44
+ providerId: string;
45
+ models: ProviderModel[];
46
+ }>;
47
+ export declare function saveLocalProviderSettings(manager: ProviderSettingsManager, request: Omit<SaveProviderSettingsActionRequest, "action">): {
48
+ providerId: string;
49
+ enabled: boolean;
50
+ settingsPath: string;
51
+ };
52
+ export declare function refreshProviderModelsFromSource(manager: ProviderSettingsManager, providerId: string): Promise<{
53
+ providerId: string;
54
+ refreshed: boolean;
55
+ modelsCount?: number;
56
+ }>;
57
+ export declare function normalizeOAuthProvider(provider: string): OAuthProviderId;
58
+ export declare function loginLocalProvider(providerId: OAuthProviderId, existing: ProviderSettings | undefined, openUrl: (url: string) => void): Promise<{
59
+ access: string;
60
+ refresh: string;
61
+ expires: number;
62
+ accountId?: string;
63
+ }>;
64
+ export declare function saveLocalProviderOAuthCredentials(manager: ProviderSettingsManager, providerId: OAuthProviderId, existing: ProviderSettings | undefined, credentials: {
65
+ access: string;
66
+ refresh: string;
67
+ expires: number;
68
+ accountId?: string;
69
+ }): ProviderSettings;
70
+ export declare function resolveLocalClineAuthToken(settings: ProviderSettings | undefined): string | undefined;
71
+ export type ProviderConfigFieldKey = "apiKey" | "baseUrl";
72
+ export interface ProviderConfigFieldRequirement {
73
+ defaultValue?: string;
74
+ }
75
+ export interface ProviderConfigFields {
76
+ providerId: string;
77
+ authMethod: "api-key" | "oauth";
78
+ fields: Partial<Record<ProviderConfigFieldKey, ProviderConfigFieldRequirement>>;
79
+ }
80
+ /**
81
+ * Project a provider into the inputs a configure-dialog should render.
82
+ *
83
+ * No fields are marked "required" — `llms` no longer pre-flights credentials,
84
+ * so a missing API key surfaces as the provider's own auth error rather than
85
+ * a synthetic SDK failure. UIs may still require fields client-side if they
86
+ * want, but the runtime does not.
87
+ *
88
+ * - OAuth providers (`cline`, `oca`, `openai-codex`) return `authMethod:
89
+ * "oauth"` with no fields; the configure UI should route to the OAuth
90
+ * login flow instead.
91
+ * - All other providers return `apiKey`. Built-in local/proxy-style providers
92
+ * with user-supplied endpoints, plus user-added providers with saved
93
+ * endpoints, also return a pre-filled `baseUrl` field.
94
+ *
95
+ * Returns the same fallback shape for unknown providers (single `apiKey`
96
+ * input, no default base URL) so callers can render a reasonable configure
97
+ * dialog without per-id branches.
98
+ */
99
+ export declare function getProviderConfigFields(providerId: string): ProviderConfigFields;
@@ -0,0 +1,3 @@
1
+ export declare function extractModelIdsFromPayload(payload: unknown, providerId: string): string[];
2
+ export declare function fetchModelIdsFromSource(url: string, providerId: string): Promise<string[]>;
3
+ export declare function resolveModelsSourceUrl(baseUrl: string | undefined, defaultBaseUrl: string | undefined, modelsSourceUrl: string | undefined): string | undefined;
@@ -0,0 +1,17 @@
1
+ export declare function nowIso(): string;
2
+ export declare function unlinkIfExists(path: string | null | undefined): void;
3
+ export interface SessionArtifactPaths {
4
+ messagesPath: string;
5
+ }
6
+ export declare class SessionArtifacts {
7
+ private readonly ensureSessionsDir;
8
+ constructor(ensureSessionsDir: () => string);
9
+ sessionArtifactsDir(sessionId: string): string;
10
+ ensureSessionArtifactsDir(sessionId: string): string;
11
+ sessionMessagesPath(sessionId: string): string;
12
+ sessionManifestPath(sessionId: string, ensureDir?: boolean): string;
13
+ removeSessionDirIfEmpty(sessionId: string): void;
14
+ removeSessionDir(sessionId: string): void;
15
+ removeDir(dir: string): void;
16
+ subagentArtifactPaths(sessionId: string, subAgentId: string, activeTeamTaskSessionId?: string): SessionArtifactPaths;
17
+ }
@@ -0,0 +1,51 @@
1
+ import type * as LlmsProviders from "@cline/llms";
2
+ import type { AgentConfig, AgentEvent, AgentResult } from "@cline/shared";
3
+ import { type SessionManifest } from "../session/models/session-manifest";
4
+ import type { SessionRow } from "../session/models/session-row";
5
+ import type { SessionStatus } from "../types/common";
6
+ import type { StoredMessageWithMetadata } from "../types/session";
7
+ import type { SessionRecord } from "../types/sessions";
8
+ export declare function hasRuntimeHooks(hooks: AgentConfig["hooks"]): boolean;
9
+ export declare function mergeAgentExtensions(explicitExtensions: AgentConfig["extensions"] | undefined, loadedExtensions: AgentConfig["extensions"] | undefined): AgentConfig["extensions"];
10
+ export declare function serializeAgentEvent(event: AgentEvent): string;
11
+ export declare function normalizeStoredMessagesForPersistence(messages: LlmsProviders.MessageWithMetadata[]): StoredMessageWithMetadata[];
12
+ export declare function withLatestAssistantTurnMetadata(messages: LlmsProviders.Message[], result: AgentResult, previousMessages?: LlmsProviders.MessageWithMetadata[]): StoredMessageWithMetadata[];
13
+ export declare function toSessionRecord(row: SessionRow): SessionRecord;
14
+ export declare function normalizeTitle(title?: string | null): string | undefined;
15
+ export declare function deriveTitleFromPrompt(prompt?: string | null): string | undefined;
16
+ export declare function sanitizeMetadata(metadata: Record<string, unknown> | null | undefined): Record<string, unknown> | undefined;
17
+ export declare function resolveMetadataWithTitle(input: {
18
+ metadata?: Record<string, unknown> | null;
19
+ title?: string | null;
20
+ prompt?: string | null;
21
+ }): Record<string, unknown> | undefined;
22
+ export type MessagesFileContext = {
23
+ agent: "lead" | "subagent" | "teammate";
24
+ sessionId: string;
25
+ taskType?: string;
26
+ };
27
+ export declare function resolveMessagesFileContext(sessionId: string): MessagesFileContext;
28
+ export declare function buildMessagesFilePayload(input: {
29
+ updatedAt: string;
30
+ context: MessagesFileContext;
31
+ messages: LlmsProviders.MessageWithMetadata[];
32
+ systemPrompt?: string;
33
+ }): {
34
+ version: 1;
35
+ updated_at: string;
36
+ agent: "lead" | "subagent" | "teammate";
37
+ sessionId: string;
38
+ taskType?: string;
39
+ messages: StoredMessageWithMetadata[];
40
+ system_prompt?: string;
41
+ };
42
+ export declare function writeEmptyMessagesFile(path: string, startedAt: string, context: MessagesFileContext): void;
43
+ export declare function buildManifestFromRow(row: SessionRow, overrides?: {
44
+ status?: SessionStatus;
45
+ endedAt?: string;
46
+ exitCode?: number;
47
+ metadata?: Record<string, unknown>;
48
+ }): SessionManifest;
49
+ export declare function withOccRetry<TFetch, TResult>(load: () => Promise<TFetch | undefined>, update: (loaded: TFetch) => Promise<TResult>, maxRetries: number): Promise<TResult | {
50
+ updated: false;
51
+ }>;
@@ -0,0 +1,15 @@
1
+ import type { ITelemetryService } from "@cline/shared";
2
+ import type { CoreSessionConfig } from "../types/config";
3
+ import { type TelemetryAgentIdentityProperties } from "./telemetry/core-events";
4
+ import type { enrichPromptWithMentions } from "./workspace";
5
+ /**
6
+ * Emits local-only session creation telemetry (task.created/restarted and
7
+ * hook discovery). The transport-agnostic `session.started` event is
8
+ * emitted from `ClineCore.start` so it fires for every backend (local,
9
+ * hub, remote) at the outer API boundary.
10
+ */
11
+ export declare function emitSessionCreationTelemetry(config: CoreSessionConfig, sessionId: string, isRestart: boolean, workspacePath: string, agentIdentity?: Partial<TelemetryAgentIdentityProperties>): void;
12
+ export declare function captureHookDiscoveryTelemetry(telemetry: ITelemetryService | undefined, options: {
13
+ workspacePath: string;
14
+ }): void;
15
+ export declare function emitMentionTelemetry(telemetry: ITelemetryService | undefined, enriched: Awaited<ReturnType<typeof enrichPromptWithMentions>>): void;
@@ -0,0 +1,28 @@
1
+ import type { TeamRuntimeState, TeamTeammateSpec } from "@cline/shared";
2
+ import type { TeamEvent } from "../../extensions/tools/team";
3
+ import type { TeamStore } from "../../types/storage";
4
+ export interface FileTeamStoreOptions {
5
+ teamDir?: string;
6
+ }
7
+ export interface TeamRuntimeLoadResult {
8
+ state?: TeamRuntimeState;
9
+ teammates: TeamTeammateSpec[];
10
+ interruptedRunIds: string[];
11
+ }
12
+ export declare class FileTeamStore implements TeamStore {
13
+ private readonly teamDirPath;
14
+ constructor(options?: FileTeamStoreOptions);
15
+ init(): void;
16
+ listTeamNames(): string[];
17
+ readState(teamName: string): TeamRuntimeState | undefined;
18
+ readHistory(teamName: string, limit?: number): unknown[];
19
+ loadRuntime(teamName: string): TeamRuntimeLoadResult;
20
+ handleTeamEvent(teamName: string, event: TeamEvent): void;
21
+ persistRuntime(teamName: string, state: TeamRuntimeState, teammates: TeamTeammateSpec[]): void;
22
+ markInProgressRunsInterrupted(teamName: string, reason: string): string[];
23
+ private ensureTeamDir;
24
+ private ensureTeamSubdir;
25
+ private statePath;
26
+ private historyPath;
27
+ private readEnvelope;
28
+ }
@@ -0,0 +1,38 @@
1
+ import { type ProviderSettings } from "../../types/provider-settings";
2
+ import type { ProviderSettingsManager } from "./provider-settings-manager";
3
+ export interface MigrateLegacyProviderSettingsOptions {
4
+ providerSettingsManager: ProviderSettingsManager;
5
+ dataDir?: string;
6
+ globalStatePath?: string;
7
+ secretsPath?: string;
8
+ }
9
+ export interface MigrateLegacyProviderSettingsResult {
10
+ migrated: boolean;
11
+ providerCount: number;
12
+ lastUsedProvider?: string;
13
+ }
14
+ export type LegacyClineUserInfo = {
15
+ idToken: string;
16
+ expiresAt: number;
17
+ refreshToken: string;
18
+ userInfo: {
19
+ id: string;
20
+ email: string;
21
+ displayName: string;
22
+ termsAcceptedAt: string;
23
+ clineBenchConsent: boolean;
24
+ createdAt: string;
25
+ updatedAt: string;
26
+ };
27
+ provider: string;
28
+ startedAt: number;
29
+ };
30
+ /**
31
+ * Resolves legacy Cline account auth data from the raw `cline:clineAccountId`
32
+ * secret string into the auth fields used by `ProviderSettings`.
33
+ *
34
+ * Returns `undefined` when the input is missing, empty, whitespace-only, or
35
+ * unparseable JSON.
36
+ */
37
+ export declare function resolveLegacyClineAuth(rawAccountData: string | undefined): ProviderSettings["auth"] | undefined;
38
+ export declare function migrateLegacyProviderSettings(options: MigrateLegacyProviderSettingsOptions): MigrateLegacyProviderSettingsResult;
@@ -0,0 +1,23 @@
1
+ import { type ProviderConfig, type ProviderSettings, type ProviderTokenSource, type StoredProviderSettings, type ToProviderConfigOptions } from "../../types/provider-settings";
2
+ export interface ProviderSettingsManagerOptions {
3
+ filePath?: string;
4
+ dataDir?: string;
5
+ }
6
+ export interface SaveProviderSettingsOptions {
7
+ setLastUsed?: boolean;
8
+ tokenSource?: ProviderTokenSource;
9
+ }
10
+ export declare class ProviderSettingsManager {
11
+ private readonly filePath;
12
+ private readonly dataDir?;
13
+ constructor(options?: ProviderSettingsManagerOptions);
14
+ getFilePath(): string;
15
+ read(): StoredProviderSettings;
16
+ write(state: StoredProviderSettings): void;
17
+ saveProviderSettings(settings: unknown, options?: SaveProviderSettingsOptions): StoredProviderSettings;
18
+ getProviderSettings(providerId: string): ProviderSettings | undefined;
19
+ getLastUsedProviderSettings(): ProviderSettings | undefined;
20
+ getProviderConfig(providerId: string, options?: ToProviderConfigOptions): ProviderConfig | undefined;
21
+ getLastUsedProviderConfig(options?: ToProviderConfigOptions): ProviderConfig | undefined;
22
+ refreshCatalog(): Promise<void>;
23
+ }
@@ -0,0 +1,30 @@
1
+ import { type SqliteDb } from "@cline/shared/db";
2
+ import type { SessionStatus } from "../../types/common";
3
+ import type { SessionRecord } from "../../types/sessions";
4
+ import type { SessionStore } from "../../types/storage";
5
+ export interface SqliteSessionStoreOptions {
6
+ sessionsDir?: string;
7
+ }
8
+ export declare class SqliteSessionStore implements SessionStore {
9
+ private readonly sessionsDirPath;
10
+ private db;
11
+ constructor(options?: SqliteSessionStoreOptions);
12
+ init(): void;
13
+ ensureSessionsDir(): string;
14
+ sessionDbPath(): string;
15
+ getRawDb(): SqliteDb;
16
+ close(): void;
17
+ run(sql: string, params?: unknown[]): {
18
+ changes?: number;
19
+ };
20
+ queryOne<T>(sql: string, params?: unknown[]): T | undefined;
21
+ queryAll<T>(sql: string, params?: unknown[]): T[];
22
+ create(record: SessionRecord): void;
23
+ update(record: Partial<SessionRecord> & {
24
+ sessionId: string;
25
+ }): void;
26
+ updateStatus(sessionId: string, status: SessionStatus, exitCode?: number | null): void;
27
+ get(sessionId: string): SessionRecord | undefined;
28
+ list(limit?: number): SessionRecord[];
29
+ delete(sessionId: string, cascade?: boolean): boolean;
30
+ }
@@ -0,0 +1,34 @@
1
+ import { type TeamRuntimeState, type TeamTeammateSpec } from "@cline/shared";
2
+ import type { TeamEvent } from "../../extensions/tools/team";
3
+ import type { TeamStore } from "../../types/storage";
4
+ export interface SqliteTeamStoreOptions {
5
+ teamDir?: string;
6
+ }
7
+ export interface TeamRuntimeLoadResult {
8
+ state?: TeamRuntimeState;
9
+ teammates: TeamTeammateSpec[];
10
+ interruptedRunIds: string[];
11
+ }
12
+ export declare class SqliteTeamStore implements TeamStore {
13
+ private readonly teamDirPath;
14
+ private db;
15
+ constructor(options?: SqliteTeamStoreOptions);
16
+ init(): void;
17
+ private ensureTeamDir;
18
+ private dbPath;
19
+ private getRawDb;
20
+ private ensureSchema;
21
+ private run;
22
+ private queryOne;
23
+ private queryAll;
24
+ /** Runs `work` in a single SQLite transaction (rollback on any error). */
25
+ private withTransaction;
26
+ listTeamNames(): string[];
27
+ readState(teamName: string): TeamRuntimeState | undefined;
28
+ readHistory(teamName: string, limit?: number): unknown[];
29
+ loadRuntime(teamName: string): TeamRuntimeLoadResult;
30
+ appendTeamEvent(teamName: string, eventType: string, payload: unknown, correlationId?: string): void;
31
+ persistRuntime(teamName: string, state: TeamRuntimeState, teammates: TeamTeammateSpec[]): void;
32
+ markInProgressRunsInterrupted(teamName: string, reason: string): string[];
33
+ handleTeamEvent(teamName: string, event: TeamEvent): void;
34
+ }
@@ -0,0 +1,15 @@
1
+ export type { TeamStore } from "../../types/storage";
2
+ export { FileTeamStore, type FileTeamStoreOptions, } from "./file-team-store";
3
+ export { SqliteTeamStore, type SqliteTeamStoreOptions, } from "./sqlite-team-store";
4
+ import { FileTeamStore } from "./file-team-store";
5
+ import { type SqliteTeamStoreOptions } from "./sqlite-team-store";
6
+ export declare function createLocalTeamStore(options?: SqliteTeamStoreOptions): {
7
+ init(): void;
8
+ listTeamNames(): string[];
9
+ readState(teamName: string): ReturnType<FileTeamStore["readState"]>;
10
+ readHistory(teamName: string, limit?: number): unknown[];
11
+ loadRuntime(teamName: string): ReturnType<FileTeamStore["loadRuntime"]>;
12
+ handleTeamEvent: FileTeamStore["handleTeamEvent"];
13
+ persistRuntime: FileTeamStore["persistRuntime"];
14
+ markInProgressRunsInterrupted: FileTeamStore["markInProgressRunsInterrupted"];
15
+ };
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Telemetry adapter interface for the @cline/core SDK.
3
+ *
4
+ * This is the SDK-side counterpart to the extension's ITelemetryProvider.
5
+ * It is intentionally free of VS Code / host-provider dependencies so that
6
+ * any consumer (CLI, tests, third-party integrations) can plug in their own
7
+ * backend without pulling in the full extension runtime.
8
+ */
9
+ import type { TelemetryProperties } from "@cline/shared";
10
+ export type { TelemetryArray, TelemetryMetadata, TelemetryObject, TelemetryPrimitive, TelemetryProperties, TelemetryValue, } from "@cline/shared";
11
+ /**
12
+ * Telemetry adapter that an SDK consumer implements (or uses via the
13
+ * provided {@link OpenTelemetryAdapter}) to receive Cline telemetry events.
14
+ *
15
+ * The interface intentionally mirrors ITelemetryProvider from the extension
16
+ * so that shared logic can be re-used or compared easily.
17
+ */
18
+ export interface ITelemetryAdapter {
19
+ /** Human-readable adapter name used for logging / diagnostics. */
20
+ readonly name: string;
21
+ /**
22
+ * Emit a standard telemetry event.
23
+ * Implementations may silently drop events when telemetry is disabled.
24
+ */
25
+ emit(event: string, properties?: TelemetryProperties): void;
26
+ /**
27
+ * Emit a *required* telemetry event that must not be suppressed by
28
+ * user opt-out settings (e.g. final opt-out confirmation events).
29
+ */
30
+ emitRequired(event: string, properties?: TelemetryProperties): void;
31
+ /**
32
+ * Record a monotonically-increasing counter metric.
33
+ * Implementations that do not support metrics may treat this as a no-op.
34
+ */
35
+ recordCounter(name: string, value: number, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
36
+ /**
37
+ * Record a histogram (distribution) metric.
38
+ * Implementations that do not support metrics may treat this as a no-op.
39
+ */
40
+ recordHistogram(name: string, value: number, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
41
+ /**
42
+ * Record a gauge (point-in-time) metric.
43
+ * Pass `null` as `value` to retire the series identified by
44
+ * `name + attributes` and prevent stale gauge entries.
45
+ * Implementations that do not support metrics may treat this as a no-op.
46
+ */
47
+ recordGauge(name: string, value: number | null, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
48
+ /** Returns whether the adapter is currently accepting events. */
49
+ isEnabled(): boolean;
50
+ /** Flush any buffered events/metrics to the backend. */
51
+ flush(): Promise<void>;
52
+ /** Release all resources held by the adapter. */
53
+ dispose(): Promise<void>;
54
+ }
@@ -0,0 +1,43 @@
1
+ import type { LoggerProvider } from "@opentelemetry/sdk-logs";
2
+ import type { MeterProvider } from "@opentelemetry/sdk-metrics";
3
+ import type { ITelemetryAdapter, TelemetryMetadata, TelemetryProperties } from "./ITelemetryAdapter";
4
+ export interface OpenTelemetryAdapterOptions {
5
+ readonly metadata: TelemetryMetadata;
6
+ readonly meterProvider?: MeterProvider | null;
7
+ readonly loggerProvider?: LoggerProvider | null;
8
+ readonly name?: string;
9
+ readonly enabled?: boolean | (() => boolean);
10
+ readonly distinctId?: string;
11
+ readonly commonProperties?: TelemetryProperties;
12
+ }
13
+ export declare class OpenTelemetryAdapter implements ITelemetryAdapter {
14
+ readonly name: string;
15
+ private readonly metadata;
16
+ private readonly meter;
17
+ private readonly logger;
18
+ private readonly enabled;
19
+ private distinctId?;
20
+ private commonProperties;
21
+ private counters;
22
+ private histograms;
23
+ private gauges;
24
+ private gaugeValues;
25
+ private readonly meterProvider?;
26
+ private readonly loggerProvider?;
27
+ constructor(options: OpenTelemetryAdapterOptions);
28
+ emit(event: string, properties?: TelemetryProperties): void;
29
+ emitRequired(event: string, properties?: TelemetryProperties): void;
30
+ recordCounter(name: string, value: number, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
31
+ recordHistogram(name: string, value: number, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
32
+ recordGauge(name: string, value: number | null, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
33
+ isEnabled(): boolean;
34
+ setDistinctId(distinctId?: string): void;
35
+ setCommonProperties(properties: TelemetryProperties): void;
36
+ updateCommonProperties(properties: TelemetryProperties): void;
37
+ flush(): Promise<void>;
38
+ dispose(): Promise<void>;
39
+ private emitLog;
40
+ private buildAttributes;
41
+ private snapshotGaugeSeries;
42
+ private flattenProperties;
43
+ }
@@ -0,0 +1,83 @@
1
+ import type { BasicLogger, ITelemetryService, OpenTelemetryClientConfig, TelemetryMetadata } from "@cline/shared";
2
+ import { type Tracer } from "@opentelemetry/api";
3
+ import { LoggerProvider } from "@opentelemetry/sdk-logs";
4
+ import { MeterProvider } from "@opentelemetry/sdk-metrics";
5
+ import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
6
+ import { OpenTelemetryAdapter, type OpenTelemetryAdapterOptions } from "./OpenTelemetryAdapter";
7
+ type OpenTelemetryExporterKind = "console" | "otlp";
8
+ export interface OpenTelemetryProviderOptions extends Omit<OpenTelemetryClientConfig, "enabled" | "logsExporter" | "metricsExporter" | "tracesExporter"> {
9
+ serviceName?: string;
10
+ serviceVersion?: string;
11
+ enabled?: boolean;
12
+ logsExporter?: string | OpenTelemetryExporterKind[];
13
+ metricsExporter?: string | OpenTelemetryExporterKind[];
14
+ tracesExporter?: string | OpenTelemetryExporterKind[];
15
+ metricExportIntervalMs?: number;
16
+ logMaxQueueSize?: number;
17
+ logBatchSize?: number;
18
+ logBatchTimeoutMs?: number;
19
+ }
20
+ export interface CreateOpenTelemetryTelemetryServiceOptions extends OpenTelemetryProviderOptions, Pick<OpenTelemetryAdapterOptions, "name" | "distinctId" | "commonProperties"> {
21
+ metadata: TelemetryMetadata;
22
+ logger?: BasicLogger;
23
+ }
24
+ export declare class OpenTelemetryProvider {
25
+ readonly meterProvider: MeterProvider | null;
26
+ readonly loggerProvider: LoggerProvider | null;
27
+ readonly tracerProvider: NodeTracerProvider | null;
28
+ private readonly options;
29
+ constructor(options?: OpenTelemetryProviderOptions);
30
+ /**
31
+ * Returns a tracer for manual spans. Requires {@link OpenTelemetryProviderOptions.tracesExporter}
32
+ * so that a {@link NodeTracerProvider} is registered.
33
+ */
34
+ getTracer(name?: string, version?: string): Tracer;
35
+ createAdapter(options: Omit<OpenTelemetryAdapterOptions, "meterProvider" | "loggerProvider">): OpenTelemetryAdapter;
36
+ createTelemetryService(options: Omit<CreateOpenTelemetryTelemetryServiceOptions, keyof OpenTelemetryProviderOptions>): ITelemetryService;
37
+ forceFlush(): Promise<void>;
38
+ dispose(): Promise<void>;
39
+ private createMeterProvider;
40
+ private createTracerProvider;
41
+ private createLoggerProvider;
42
+ }
43
+ export declare function createOpenTelemetryTelemetryService(options: CreateOpenTelemetryTelemetryServiceOptions): {
44
+ provider: OpenTelemetryProvider;
45
+ telemetry: ITelemetryService;
46
+ };
47
+ export declare function createConfiguredTelemetryService(options: CreateOpenTelemetryTelemetryServiceOptions): {
48
+ provider?: OpenTelemetryProvider;
49
+ telemetry: ITelemetryService;
50
+ };
51
+ /**
52
+ * Telemetry service plus the lifecycle closures (`flush`, `dispose`) every
53
+ * host needs to drive the underlying provider during shutdown. Returned by
54
+ * {@link createConfiguredTelemetryHandle} so detached daemons, the VS Code
55
+ * extension, and the CLI can share one canonical implementation of the
56
+ * "best-effort flush; settle dispose" semantics instead of each
57
+ * re-implementing the same closures.
58
+ */
59
+ export interface ConfiguredTelemetryHandle {
60
+ readonly telemetry: ITelemetryService;
61
+ /**
62
+ * The underlying OpenTelemetry provider, when telemetry is enabled.
63
+ * `undefined` when telemetry is disabled or opted out so callers can
64
+ * detect the inactive case without inspecting `enabled` themselves.
65
+ */
66
+ readonly provider?: OpenTelemetryProvider;
67
+ /**
68
+ * Best-effort flush of any pending telemetry batches. Errors are
69
+ * swallowed so callers can `await` this in shutdown paths without
70
+ * blocking deactivation on a misbehaving exporter.
71
+ */
72
+ flush: () => Promise<void>;
73
+ /** Disposes the telemetry service and its provider concurrently. */
74
+ dispose: () => Promise<void>;
75
+ }
76
+ /**
77
+ * Builds a {@link ConfiguredTelemetryHandle} so hosts (CLI, VS Code, hub
78
+ * daemon) share one canonical flush/dispose implementation. Without a
79
+ * shared helper each host re-derived the same closures and they tended
80
+ * to drift; this factory keeps the lifecycle uniform across hosts.
81
+ */
82
+ export declare function createConfiguredTelemetryHandle(options: CreateOpenTelemetryTelemetryServiceOptions): ConfiguredTelemetryHandle;
83
+ export {};
@@ -0,0 +1,27 @@
1
+ import type { BasicLogger } from "@cline/shared";
2
+ import type { ITelemetryAdapter, TelemetryProperties } from "./ITelemetryAdapter";
3
+ /**
4
+ * {@link ITelemetryAdapter} implementation that forwards telemetry to a {@link BasicLogger}.
5
+ *
6
+ * This is intentionally named *Sink* (not "adapter") to distinguish it from host logging bridges
7
+ * such as the CLI Pino bundle: it consumes telemetry events and writes them to the injected logger.
8
+ */
9
+ export interface TelemetryLoggerSinkOptions {
10
+ logger?: BasicLogger;
11
+ name?: string;
12
+ enabled?: boolean | (() => boolean);
13
+ }
14
+ export declare class TelemetryLoggerSink implements ITelemetryAdapter {
15
+ readonly name: string;
16
+ private readonly logger?;
17
+ private readonly enabled;
18
+ constructor(options?: TelemetryLoggerSinkOptions);
19
+ emit(event: string, properties?: TelemetryProperties): void;
20
+ emitRequired(event: string, properties?: TelemetryProperties): void;
21
+ recordCounter(name: string, value: number, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
22
+ recordHistogram(name: string, value: number, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
23
+ recordGauge(name: string, value: number | null, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
24
+ isEnabled(): boolean;
25
+ flush(): Promise<void>;
26
+ dispose(): Promise<void>;
27
+ }
@@ -0,0 +1,34 @@
1
+ import type { BasicLogger, ITelemetryService, TelemetryMetadata, TelemetryProperties } from "@cline/shared";
2
+ import type { ITelemetryAdapter } from "./ITelemetryAdapter";
3
+ export interface TelemetryServiceOptions {
4
+ adapters?: ITelemetryAdapter[];
5
+ metadata?: Partial<TelemetryMetadata>;
6
+ distinctId?: string;
7
+ commonProperties?: TelemetryProperties;
8
+ logger?: BasicLogger;
9
+ }
10
+ export declare class TelemetryService implements ITelemetryService {
11
+ private adapters;
12
+ private metadata;
13
+ private distinctId?;
14
+ private commonProperties;
15
+ constructor(options?: TelemetryServiceOptions);
16
+ addAdapter(adapter: ITelemetryAdapter): void;
17
+ setDistinctId(distinctId?: string): void;
18
+ setMetadata(metadata: Partial<TelemetryMetadata>): void;
19
+ updateMetadata(metadata: Partial<TelemetryMetadata>): void;
20
+ setCommonProperties(properties: TelemetryProperties): void;
21
+ updateCommonProperties(properties: TelemetryProperties): void;
22
+ isEnabled(): boolean;
23
+ capture(input: {
24
+ event: string;
25
+ properties?: TelemetryProperties;
26
+ }): void;
27
+ captureRequired(event: string, properties?: TelemetryProperties): void;
28
+ recordCounter(name: string, value: number, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
29
+ recordHistogram(name: string, value: number, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
30
+ recordGauge(name: string, value: number | null, attributes?: TelemetryProperties, description?: string, required?: boolean): void;
31
+ flush(): Promise<void>;
32
+ dispose(): Promise<void>;
33
+ private buildAttributes;
34
+ }