@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.
- package/README.md +108 -0
- package/dist/ClineCore.d.ts +282 -0
- package/dist/account/cline-account-service.d.ts +37 -0
- package/dist/account/index.d.ts +3 -0
- package/dist/account/rpc.d.ts +40 -0
- package/dist/account/types.d.ts +98 -0
- package/dist/auth/bounded-ttl-cache.d.ts +13 -0
- package/dist/auth/client.d.ts +30 -0
- package/dist/auth/cline.d.ts +64 -0
- package/dist/auth/codex.d.ts +43 -0
- package/dist/auth/oca.d.ts +28 -0
- package/dist/auth/server.d.ts +54 -0
- package/dist/auth/types.d.ts +103 -0
- package/dist/auth/utils.d.ts +32 -0
- package/dist/cline-core/automation.d.ts +34 -0
- package/dist/cline-core/runtime-services.d.ts +5 -0
- package/dist/cline-core/start-input.d.ts +10 -0
- package/dist/cline-core/telemetry.d.ts +10 -0
- package/dist/cline-core/types.d.ts +221 -0
- package/dist/cron/events/cron-event-ingress.d.ts +37 -0
- package/dist/cron/reports/cron-report-writer.d.ts +40 -0
- package/dist/cron/runner/cron-materializer.d.ts +35 -0
- package/dist/cron/runner/cron-runner.d.ts +45 -0
- package/dist/cron/runner/resource-limiter.d.ts +8 -0
- package/dist/cron/schedule/scheduler.d.ts +12 -0
- package/dist/cron/service/cron-service.d.ts +56 -0
- package/dist/cron/service/schedule-command-service.d.ts +9 -0
- package/dist/cron/service/schedule-service.d.ts +98 -0
- package/dist/cron/specs/cron-reconciler.d.ts +61 -0
- package/dist/cron/specs/cron-spec-parser.d.ts +26 -0
- package/dist/cron/specs/cron-watcher.d.ts +22 -0
- package/dist/cron/store/cron-schema.d.ts +2 -0
- package/dist/cron/store/sqlite-cron-store.d.ts +240 -0
- package/dist/extensions/config/index.d.ts +7 -0
- package/dist/extensions/config/runtime-commands.d.ts +11 -0
- package/dist/extensions/config/skill-frontmatter-toggle.d.ts +11 -0
- package/dist/extensions/config/unified-config-file-watcher.d.ts +77 -0
- package/dist/extensions/config/user-instruction-config-loader.d.ts +64 -0
- package/dist/extensions/config/user-instruction-plugin.d.ts +25 -0
- package/dist/extensions/config/user-instruction-service.d.ts +23 -0
- package/dist/extensions/context/agentic-compaction.d.ts +12 -0
- package/dist/extensions/context/basic-compaction.d.ts +8 -0
- package/dist/extensions/context/compaction-shared.d.ts +60 -0
- package/dist/extensions/context/compaction.d.ts +24 -0
- package/dist/extensions/index.d.ts +5 -0
- package/dist/extensions/mcp/client.d.ts +2 -0
- package/dist/extensions/mcp/config-loader.d.ts +15 -0
- package/dist/extensions/mcp/index.d.ts +8 -0
- package/dist/extensions/mcp/manager.d.ts +23 -0
- package/dist/extensions/mcp/name-transform.d.ts +2 -0
- package/dist/extensions/mcp/policies.d.ts +14 -0
- package/dist/extensions/mcp/tools.d.ts +3 -0
- package/dist/extensions/mcp/types.d.ts +94 -0
- package/dist/extensions/plugin/plugin-config-loader.d.ts +40 -0
- package/dist/extensions/plugin/plugin-load-report.d.ts +18 -0
- package/dist/extensions/plugin/plugin-loader.d.ts +22 -0
- package/dist/extensions/plugin/plugin-module-import.d.ts +4 -0
- package/dist/extensions/plugin/plugin-sandbox.d.ts +36 -0
- package/dist/extensions/plugin/plugin-targeting.d.ts +6 -0
- package/dist/extensions/plugin-sandbox-bootstrap.js +1 -0
- package/dist/extensions/tools/constants.d.ts +24 -0
- package/dist/extensions/tools/definitions.d.ts +102 -0
- package/dist/extensions/tools/executors/apply-patch-parser.d.ts +68 -0
- package/dist/extensions/tools/executors/apply-patch.d.ts +28 -0
- package/dist/extensions/tools/executors/bash.d.ts +49 -0
- package/dist/extensions/tools/executors/editor.d.ts +31 -0
- package/dist/extensions/tools/executors/file-read.d.ts +40 -0
- package/dist/extensions/tools/executors/index.d.ts +50 -0
- package/dist/extensions/tools/executors/search.d.ts +50 -0
- package/dist/extensions/tools/executors/web-fetch.d.ts +58 -0
- package/dist/extensions/tools/helpers.d.ts +15 -0
- package/dist/extensions/tools/index.d.ts +59 -0
- package/dist/extensions/tools/model-tool-routing.d.ts +33 -0
- package/dist/extensions/tools/presets.d.ts +132 -0
- package/dist/extensions/tools/runtime.d.ts +24 -0
- package/dist/extensions/tools/schemas.d.ts +241 -0
- package/dist/extensions/tools/team/delegated-agent.d.ts +43 -0
- package/dist/extensions/tools/team/index.d.ts +2 -0
- package/dist/extensions/tools/team/multi-agent.d.ts +230 -0
- package/dist/extensions/tools/team/projections.d.ts +8 -0
- package/dist/extensions/tools/team/runtime.d.ts +4 -0
- package/dist/extensions/tools/team/spawn-agent-tool.d.ts +83 -0
- package/dist/extensions/tools/team/subagent-prompts.d.ts +3 -0
- package/dist/extensions/tools/team/team-tools.d.ts +35 -0
- package/dist/extensions/tools/types.d.ts +254 -0
- package/dist/hooks/checkpoint-hooks.d.ts +45 -0
- package/dist/hooks/hook-extension.d.ts +2 -0
- package/dist/hooks/hook-file-config.d.ts +24 -0
- package/dist/hooks/hook-file-hooks.d.ts +21 -0
- package/dist/hooks/index.d.ts +5 -0
- package/dist/hooks/subprocess-runner.d.ts +21 -0
- package/dist/hooks/subprocess.d.ts +68 -0
- package/dist/hub/client/connect.d.ts +14 -0
- package/dist/hub/client/index.d.ts +88 -0
- package/dist/hub/client/session-client.d.ts +118 -0
- package/dist/hub/client/ui-client.d.ts +45 -0
- package/dist/hub/daemon/entry.d.ts +1 -0
- package/dist/hub/daemon/entry.js +720 -0
- package/dist/hub/daemon/index.d.ts +8 -0
- package/dist/hub/daemon/runtime-handlers.d.ts +12 -0
- package/dist/hub/daemon/start-shared-server.d.ts +18 -0
- package/dist/hub/discovery/defaults.d.ts +16 -0
- package/dist/hub/discovery/index.d.ts +30 -0
- package/dist/hub/discovery/workspace.d.ts +3 -0
- package/dist/hub/index.d.ts +32 -0
- package/dist/hub/index.js +717 -0
- package/dist/hub/runtime-host/hub-runtime-host.d.ts +73 -0
- package/dist/hub/runtime-host/remote-runtime-host.d.ts +9 -0
- package/dist/hub/server/browser-websocket.d.ts +17 -0
- package/dist/hub/server/command-transport.d.ts +7 -0
- package/dist/hub/server/handlers/approval-handlers.d.ts +17 -0
- package/dist/hub/server/handlers/capability-handlers.d.ts +12 -0
- package/dist/hub/server/handlers/client-handlers.d.ts +6 -0
- package/dist/hub/server/handlers/context.d.ts +56 -0
- package/dist/hub/server/handlers/run-handlers.d.ts +5 -0
- package/dist/hub/server/handlers/session-event-projector.d.ts +7 -0
- package/dist/hub/server/handlers/session-handlers.d.ts +20 -0
- package/dist/hub/server/hub-client-contributions.d.ts +19 -0
- package/dist/hub/server/hub-notifications.d.ts +7 -0
- package/dist/hub/server/hub-schedule-events.d.ts +2 -0
- package/dist/hub/server/hub-server-logging.d.ts +2 -0
- package/dist/hub/server/hub-server-options.d.ts +55 -0
- package/dist/hub/server/hub-server-transport.d.ts +34 -0
- package/dist/hub/server/hub-session-records.d.ts +8 -0
- package/dist/hub/server/hub-websocket-server.d.ts +6 -0
- package/dist/hub/server/index.d.ts +4 -0
- package/dist/hub/server/native-transport.d.ts +16 -0
- package/dist/index.d.ts +102 -0
- package/dist/index.js +715 -0
- package/dist/runtime/capabilities/index.d.ts +2 -0
- package/dist/runtime/capabilities/normalize-runtime-capabilities.d.ts +2 -0
- package/dist/runtime/capabilities/runtime-capabilities.d.ts +6 -0
- package/dist/runtime/config/agent-message-codec.d.ts +6 -0
- package/dist/runtime/config/agent-runtime-config-builder.d.ts +87 -0
- package/dist/runtime/host/history.d.ts +18 -0
- package/dist/runtime/host/host.d.ts +7 -0
- package/dist/runtime/host/local/agent-event-bridge.d.ts +29 -0
- package/dist/runtime/host/local/session-record.d.ts +6 -0
- package/dist/runtime/host/local/session-service-invoker.d.ts +4 -0
- package/dist/runtime/host/local/spawn-tool.d.ts +15 -0
- package/dist/runtime/host/local/user-files.d.ts +1 -0
- package/dist/runtime/host/local-runtime-host.d.ts +119 -0
- package/dist/runtime/host/runtime-host-support.d.ts +20 -0
- package/dist/runtime/host/runtime-host.d.ts +163 -0
- package/dist/runtime/orchestration/runtime-builder.d.ts +6 -0
- package/dist/runtime/orchestration/runtime-event-adapter.d.ts +101 -0
- package/dist/runtime/orchestration/runtime-oauth-token-manager.d.ts +30 -0
- package/dist/runtime/orchestration/session-runtime-orchestrator.d.ts +218 -0
- package/dist/runtime/orchestration/session-runtime.d.ts +58 -0
- package/dist/runtime/orchestration/user-input-builder.d.ts +15 -0
- package/dist/runtime/safety/loop-detection.d.ts +58 -0
- package/dist/runtime/safety/mistake-tracker.d.ts +68 -0
- package/dist/runtime/safety/rules.d.ts +6 -0
- package/dist/runtime/tools/subprocess-sandbox.d.ts +43 -0
- package/dist/runtime/tools/tool-approval.d.ts +9 -0
- package/dist/runtime/turn-queue/pending-prompt-service.d.ts +64 -0
- package/dist/services/agent-events.d.ts +33 -0
- package/dist/services/config.d.ts +2 -0
- package/dist/services/global-settings.d.ts +34 -0
- package/dist/services/llms/cline-recommended-models.d.ts +19 -0
- package/dist/services/llms/configured-provider-registry.d.ts +27 -0
- package/dist/services/llms/handler-factory.d.ts +3 -0
- package/dist/services/llms/provider-defaults.d.ts +28 -0
- package/dist/services/llms/provider-settings.d.ts +247 -0
- package/dist/services/llms/runtime-config.d.ts +3 -0
- package/dist/services/llms/runtime-registry.d.ts +19 -0
- package/dist/services/llms/runtime-types.d.ts +84 -0
- package/dist/services/local-runtime-bootstrap.d.ts +45 -0
- package/dist/services/plugin-tools.d.ts +15 -0
- package/dist/services/providers/local-provider-registry.d.ts +218 -0
- package/dist/services/providers/local-provider-service.d.ts +99 -0
- package/dist/services/providers/model-source.d.ts +3 -0
- package/dist/services/session-artifacts.d.ts +17 -0
- package/dist/services/session-data.d.ts +51 -0
- package/dist/services/session-telemetry.d.ts +15 -0
- package/dist/services/storage/file-team-store.d.ts +28 -0
- package/dist/services/storage/provider-settings-legacy-migration.d.ts +38 -0
- package/dist/services/storage/provider-settings-manager.d.ts +23 -0
- package/dist/services/storage/sqlite-session-store.d.ts +30 -0
- package/dist/services/storage/sqlite-team-store.d.ts +34 -0
- package/dist/services/storage/team-store.d.ts +15 -0
- package/dist/services/telemetry/ITelemetryAdapter.d.ts +54 -0
- package/dist/services/telemetry/OpenTelemetryAdapter.d.ts +43 -0
- package/dist/services/telemetry/OpenTelemetryProvider.d.ts +83 -0
- package/dist/services/telemetry/TelemetryLoggerSink.d.ts +27 -0
- package/dist/services/telemetry/TelemetryService.d.ts +34 -0
- package/dist/services/telemetry/core-events.d.ts +198 -0
- package/dist/services/telemetry/distinct-id.d.ts +1 -0
- package/dist/services/telemetry/index.d.ts +3 -0
- package/dist/services/telemetry/index.js +1 -0
- package/dist/services/usage.d.ts +18 -0
- package/dist/services/workspace/file-indexer.d.ts +5 -0
- package/dist/services/workspace/index.d.ts +4 -0
- package/dist/services/workspace/mention-enricher.d.ts +13 -0
- package/dist/services/workspace/workspace-manager.d.ts +27 -0
- package/dist/services/workspace/workspace-manifest.d.ts +31 -0
- package/dist/services/workspace/workspace-telemetry.d.ts +18 -0
- package/dist/session/checkpoint-restore.d.ts +20 -0
- package/dist/session/models/session-graph.d.ts +15 -0
- package/dist/session/models/session-manifest.d.ts +29 -0
- package/dist/session/models/session-row.d.ts +92 -0
- package/dist/session/services/file-session-service.d.ts +8 -0
- package/dist/session/services/message-builder.d.ts +66 -0
- package/dist/session/services/persistence-service.d.ts +58 -0
- package/dist/session/services/session-service.d.ts +13 -0
- package/dist/session/session-snapshot.d.ts +57 -0
- package/dist/session/session-versioning-service.d.ts +48 -0
- package/dist/session/stores/conversation-store.d.ts +29 -0
- package/dist/session/stores/session-manifest-store.d.ts +21 -0
- package/dist/session/stores/team-persistence-store.d.ts +23 -0
- package/dist/session/team/index.d.ts +2 -0
- package/dist/session/team/team-child-session-manager.d.ts +35 -0
- package/dist/session/team/team-session-coordinator.d.ts +13 -0
- package/dist/settings/index.d.ts +2 -0
- package/dist/settings/settings-service.d.ts +6 -0
- package/dist/settings/types.d.ts +42 -0
- package/dist/types/chat-schema.d.ts +161 -0
- package/dist/types/common.d.ts +19 -0
- package/dist/types/config.d.ts +167 -0
- package/dist/types/events.d.ts +89 -0
- package/dist/types/provider-settings.d.ts +19 -0
- package/dist/types/session.d.ts +116 -0
- package/dist/types/sessions.d.ts +28 -0
- package/dist/types/storage.d.ts +36 -0
- package/dist/types.d.ts +32 -0
- package/dist/version.d.ts +1 -0
- package/package.json +83 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import type { ITelemetryService, TelemetryProperties } from "@cline/shared";
|
|
2
|
+
export type TelemetryAgentKind = "root" | "subagent" | "team_lead" | "team_teammate";
|
|
3
|
+
export interface TelemetryAgentIdentityProperties {
|
|
4
|
+
agentId: string;
|
|
5
|
+
agentKind: TelemetryAgentKind;
|
|
6
|
+
conversationId?: string;
|
|
7
|
+
parentAgentId?: string;
|
|
8
|
+
createdByAgentId?: string;
|
|
9
|
+
isSubagent: boolean;
|
|
10
|
+
teamId?: string;
|
|
11
|
+
teamName?: string;
|
|
12
|
+
teamRole?: "lead" | "teammate";
|
|
13
|
+
teamAgentId?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const CORE_TELEMETRY_EVENTS: {
|
|
16
|
+
readonly CLIENT: {
|
|
17
|
+
readonly EXTENSION_ACTIVATED: "user.extension_activated";
|
|
18
|
+
};
|
|
19
|
+
readonly SESSION: {
|
|
20
|
+
readonly STARTED: "session.started";
|
|
21
|
+
readonly ENDED: "session.ended";
|
|
22
|
+
};
|
|
23
|
+
readonly USER: {
|
|
24
|
+
readonly AUTH_STARTED: "user.auth_started";
|
|
25
|
+
readonly AUTH_SUCCEEDED: "user.auth_succeeded";
|
|
26
|
+
readonly AUTH_FAILED: "user.auth_failed";
|
|
27
|
+
readonly AUTH_LOGGED_OUT: "user.auth_logged_out";
|
|
28
|
+
readonly TELEMETRY_OPT_OUT: "user.opt_out";
|
|
29
|
+
};
|
|
30
|
+
readonly TASK: {
|
|
31
|
+
readonly CREATED: "task.created";
|
|
32
|
+
readonly RESTARTED: "task.restarted";
|
|
33
|
+
readonly COMPLETED: "task.completed";
|
|
34
|
+
readonly CONVERSATION_TURN: "task.conversation_turn";
|
|
35
|
+
readonly TOKEN_USAGE: "task.tokens";
|
|
36
|
+
readonly MODE_SWITCH: "task.mode";
|
|
37
|
+
readonly TOOL_USED: "task.tool_used";
|
|
38
|
+
readonly SKILL_USED: "task.skill_used";
|
|
39
|
+
readonly DIFF_EDIT_FAILED: "task.diff_edit_failed";
|
|
40
|
+
readonly PROVIDER_API_ERROR: "task.provider_api_error";
|
|
41
|
+
readonly MENTION_USED: "task.mention_used";
|
|
42
|
+
readonly MENTION_FAILED: "task.mention_failed";
|
|
43
|
+
readonly MENTION_SEARCH_RESULTS: "task.mention_search_results";
|
|
44
|
+
readonly AGENT_CREATED: "task.agent_created";
|
|
45
|
+
readonly AGENT_TEAM_CREATED: "task.agent_team_created";
|
|
46
|
+
readonly SUBAGENT_STARTED: "task.subagent_started";
|
|
47
|
+
readonly SUBAGENT_COMPLETED: "task.subagent_completed";
|
|
48
|
+
};
|
|
49
|
+
readonly HOOKS: {
|
|
50
|
+
readonly DISCOVERY_COMPLETED: "hooks.discovery_completed";
|
|
51
|
+
};
|
|
52
|
+
readonly WORKSPACE: {
|
|
53
|
+
readonly INITIALIZED: "workspace.initialized";
|
|
54
|
+
readonly INIT_ERROR: "workspace.init_error";
|
|
55
|
+
readonly PATH_RESOLVED: "workspace.path_resolved";
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
export interface WorkspaceInitializedProperties {
|
|
59
|
+
root_count: number;
|
|
60
|
+
vcs_types: ReadonlyArray<string>;
|
|
61
|
+
init_duration_ms?: number;
|
|
62
|
+
feature_flag_enabled?: boolean;
|
|
63
|
+
is_remote_workspace?: boolean;
|
|
64
|
+
}
|
|
65
|
+
export interface WorkspaceInitErrorProperties {
|
|
66
|
+
fallback_to_single_root: boolean;
|
|
67
|
+
workspace_count?: number;
|
|
68
|
+
}
|
|
69
|
+
export interface WorkspacePathResolvedProperties {
|
|
70
|
+
ulid: string;
|
|
71
|
+
context: string;
|
|
72
|
+
resolution_type: "hint_provided" | "fallback_to_primary" | "cross_workspace_search";
|
|
73
|
+
hint_type?: "workspace_name" | "workspace_path" | "invalid";
|
|
74
|
+
resolution_success?: boolean;
|
|
75
|
+
target_workspace_index?: number;
|
|
76
|
+
is_multi_root_enabled?: boolean;
|
|
77
|
+
}
|
|
78
|
+
export declare function captureExtensionActivated(telemetry: ITelemetryService | undefined): void;
|
|
79
|
+
export declare function captureWorkspaceInitialized(telemetry: ITelemetryService | undefined, properties: WorkspaceInitializedProperties): void;
|
|
80
|
+
export declare function captureWorkspaceInitError(telemetry: ITelemetryService | undefined, error: Error | string, properties: WorkspaceInitErrorProperties): void;
|
|
81
|
+
export declare function captureWorkspacePathResolved(telemetry: ITelemetryService | undefined, properties: WorkspacePathResolvedProperties): void;
|
|
82
|
+
export declare function captureAuthStarted(telemetry: ITelemetryService | undefined, provider?: string): void;
|
|
83
|
+
export declare function captureAuthSucceeded(telemetry: ITelemetryService | undefined, provider?: string): void;
|
|
84
|
+
export declare function captureAuthFailed(telemetry: ITelemetryService | undefined, provider?: string, errorMessage?: string): void;
|
|
85
|
+
export declare function captureAuthLoggedOut(telemetry: ITelemetryService | undefined, provider?: string, reason?: string): void;
|
|
86
|
+
export declare function captureTelemetryOptOut(telemetry: ITelemetryService | undefined, properties?: TelemetryProperties): void;
|
|
87
|
+
export declare function identifyAccount(telemetry: ITelemetryService | undefined, account: {
|
|
88
|
+
id?: string;
|
|
89
|
+
email?: string;
|
|
90
|
+
provider?: string;
|
|
91
|
+
organizationId?: string;
|
|
92
|
+
organizationName?: string;
|
|
93
|
+
memberId?: string;
|
|
94
|
+
}): void;
|
|
95
|
+
export declare function captureTaskCreated(telemetry: ITelemetryService | undefined, properties: {
|
|
96
|
+
ulid: string;
|
|
97
|
+
apiProvider?: string;
|
|
98
|
+
openAiCompatibleDomain?: string;
|
|
99
|
+
} & Partial<TelemetryAgentIdentityProperties>): void;
|
|
100
|
+
export declare function captureTaskRestarted(telemetry: ITelemetryService | undefined, properties: {
|
|
101
|
+
ulid: string;
|
|
102
|
+
apiProvider?: string;
|
|
103
|
+
openAiCompatibleDomain?: string;
|
|
104
|
+
} & Partial<TelemetryAgentIdentityProperties>): void;
|
|
105
|
+
/**
|
|
106
|
+
* Distinguishes the trigger that produced a `task.completed` telemetry event.
|
|
107
|
+
*
|
|
108
|
+
* - `submit_and_exit`: the assistant explicitly declared completion by
|
|
109
|
+
* invoking the canonical completion tool. Parity with original Cline's
|
|
110
|
+
* `attempt_completion`-anchored emission.
|
|
111
|
+
* - `shutdown`: the session lifecycle completed (typically a non-interactive
|
|
112
|
+
* single-run that finished without an explicit completion tool). Acts as a
|
|
113
|
+
* safety-net so we still report completed runs that never observed
|
|
114
|
+
* `submit_and_exit`.
|
|
115
|
+
*/
|
|
116
|
+
export type TaskCompletedSource = "submit_and_exit" | "shutdown";
|
|
117
|
+
export declare function captureTaskCompleted(telemetry: ITelemetryService | undefined, properties: {
|
|
118
|
+
ulid: string;
|
|
119
|
+
provider?: string;
|
|
120
|
+
modelId?: string;
|
|
121
|
+
mode?: string;
|
|
122
|
+
durationMs?: number;
|
|
123
|
+
source?: TaskCompletedSource;
|
|
124
|
+
} & Partial<TelemetryAgentIdentityProperties>): void;
|
|
125
|
+
export declare function captureConversationTurnEvent(telemetry: ITelemetryService | undefined, properties: {
|
|
126
|
+
ulid: string;
|
|
127
|
+
provider?: string;
|
|
128
|
+
model?: string;
|
|
129
|
+
source: "user" | "assistant";
|
|
130
|
+
mode?: string;
|
|
131
|
+
} & Partial<TelemetryAgentIdentityProperties>): void;
|
|
132
|
+
export declare function captureTokenUsage(telemetry: ITelemetryService | undefined, properties: {
|
|
133
|
+
ulid: string;
|
|
134
|
+
tokensIn: number;
|
|
135
|
+
tokensOut: number;
|
|
136
|
+
cacheWriteTokens?: number;
|
|
137
|
+
cacheReadTokens?: number;
|
|
138
|
+
totalCost?: number;
|
|
139
|
+
model: string;
|
|
140
|
+
} & Partial<TelemetryAgentIdentityProperties>): void;
|
|
141
|
+
export declare function captureModeSwitch(telemetry: ITelemetryService | undefined, ulid: string, mode?: string): void;
|
|
142
|
+
export declare function captureToolUsage(telemetry: ITelemetryService | undefined, properties: {
|
|
143
|
+
ulid: string;
|
|
144
|
+
tool: string;
|
|
145
|
+
modelId?: string;
|
|
146
|
+
provider?: string;
|
|
147
|
+
autoApproved?: boolean;
|
|
148
|
+
success: boolean;
|
|
149
|
+
} & Partial<TelemetryAgentIdentityProperties>): void;
|
|
150
|
+
export declare function captureSkillUsed(telemetry: ITelemetryService | undefined, properties: {
|
|
151
|
+
ulid: string;
|
|
152
|
+
skillName: string;
|
|
153
|
+
skillSource: "global" | "project";
|
|
154
|
+
skillsAvailableGlobal: number;
|
|
155
|
+
skillsAvailableProject: number;
|
|
156
|
+
provider?: string;
|
|
157
|
+
modelId?: string;
|
|
158
|
+
} & Partial<TelemetryAgentIdentityProperties>): void;
|
|
159
|
+
export declare function captureDiffEditFailure(telemetry: ITelemetryService | undefined, properties: {
|
|
160
|
+
ulid: string;
|
|
161
|
+
modelId?: string;
|
|
162
|
+
provider?: string;
|
|
163
|
+
errorType?: string;
|
|
164
|
+
} & Partial<TelemetryAgentIdentityProperties>): void;
|
|
165
|
+
export declare function captureProviderApiError(telemetry: ITelemetryService | undefined, properties: {
|
|
166
|
+
ulid: string;
|
|
167
|
+
model: string;
|
|
168
|
+
errorMessage: string;
|
|
169
|
+
provider?: string;
|
|
170
|
+
errorStatus?: number;
|
|
171
|
+
requestId?: string;
|
|
172
|
+
} & Partial<TelemetryAgentIdentityProperties>): void;
|
|
173
|
+
export declare function captureMentionUsed(telemetry: ITelemetryService | undefined, mentionType: "file" | "folder" | "url" | "problems" | "terminal" | "git-changes" | "commit", contentLength?: number): void;
|
|
174
|
+
export declare function captureMentionFailed(telemetry: ITelemetryService | undefined, mentionType: "file" | "folder" | "url" | "problems" | "terminal" | "git-changes" | "commit", errorType: "not_found" | "permission_denied" | "network_error" | "parse_error" | "unknown", errorMessage?: string): void;
|
|
175
|
+
export declare function captureMentionSearchResults(telemetry: ITelemetryService | undefined, query: string, resultCount: number, searchType: "file" | "folder" | "all", isEmpty: boolean): void;
|
|
176
|
+
export declare function captureAgentCreated(telemetry: ITelemetryService | undefined, properties: {
|
|
177
|
+
ulid: string;
|
|
178
|
+
modelId?: string;
|
|
179
|
+
provider?: string;
|
|
180
|
+
} & TelemetryAgentIdentityProperties): void;
|
|
181
|
+
export declare function captureAgentTeamCreated(telemetry: ITelemetryService | undefined, properties: {
|
|
182
|
+
ulid: string;
|
|
183
|
+
teamId: string;
|
|
184
|
+
teamName: string;
|
|
185
|
+
leadAgentId?: string;
|
|
186
|
+
restoredFromPersistence?: boolean;
|
|
187
|
+
}): void;
|
|
188
|
+
export declare function captureSubagentExecution(telemetry: ITelemetryService | undefined, properties: {
|
|
189
|
+
ulid: string;
|
|
190
|
+
durationMs: number;
|
|
191
|
+
outputLines?: number;
|
|
192
|
+
event: "created" | "started" | "ended";
|
|
193
|
+
agentId: string;
|
|
194
|
+
parentId?: string;
|
|
195
|
+
errorMessage?: string;
|
|
196
|
+
type?: "agent" | "team";
|
|
197
|
+
} & Partial<TelemetryAgentIdentityProperties>): void;
|
|
198
|
+
export declare function captureHookDiscovery(telemetry: ITelemetryService | undefined, hookName: string, globalCount: number, workspaceCount: number): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resolveCoreDistinctId(explicitDistinctId?: string): string;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { ITelemetryAdapter, TelemetryArray, TelemetryMetadata, TelemetryObject, TelemetryPrimitive, TelemetryProperties, TelemetryValue, } from "./ITelemetryAdapter";
|
|
2
|
+
export { OpenTelemetryAdapter, type OpenTelemetryAdapterOptions, } from "./OpenTelemetryAdapter";
|
|
3
|
+
export { type ConfiguredTelemetryHandle, type CreateOpenTelemetryTelemetryServiceOptions, createConfiguredTelemetryHandle, createConfiguredTelemetryService, createOpenTelemetryTelemetryService, OpenTelemetryProvider, type OpenTelemetryProviderOptions, } from "./OpenTelemetryProvider";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
class u{name;metadata;meter;logger;enabled;distinctId;commonProperties;counters=new Map;histograms=new Map;gauges=new Map;gaugeValues=new Map;meterProvider;loggerProvider;constructor(e){this.name=e.name??"OpenTelemetryAdapter",this.metadata={...e.metadata},this.meterProvider=e.meterProvider,this.loggerProvider=e.loggerProvider,this.meter=e.meterProvider?.getMeter("cline")??null,this.logger=e.loggerProvider?.getLogger("cline")??null,this.enabled=e.enabled??!0,this.distinctId=e.distinctId,this.commonProperties=e.commonProperties?{...e.commonProperties}:{}}emit(e,t){if(!this.isEnabled())return;this.emitLog(e,t,!1)}emitRequired(e,t){this.emitLog(e,t,!0)}recordCounter(e,t,r,l,a=!1){if(!this.meter||!a&&!this.isEnabled())return;let i=this.counters.get(e);if(!i)i=this.meter.createCounter(e,l?{description:l}:void 0),this.counters.set(e,i);i.add(t,this.flattenProperties(this.buildAttributes(r)))}recordHistogram(e,t,r,l,a=!1){if(!this.meter||!a&&!this.isEnabled())return;let i=this.histograms.get(e);if(!i)i=this.meter.createHistogram(e,l?{description:l}:void 0),this.histograms.set(e,i);i.record(t,this.flattenProperties(this.buildAttributes(r)))}recordGauge(e,t,r,l,a=!1){if(!this.meter||!a&&!this.isEnabled())return;let i=this.buildAttributes(r),s=JSON.stringify(i),g=this.gaugeValues.get(e);if(t===null){if(g){if(g.delete(s),g.size===0)this.gaugeValues.delete(e),this.gauges.delete(e)}return}let d=g;if(!d)d=new Map,this.gaugeValues.set(e,d);if(!this.gauges.has(e)){let n=this.meter.createObservableGauge(e,l?{description:l}:void 0);n.addCallback((m)=>{for(let v of this.snapshotGaugeSeries(e))m.observe(v.value,this.flattenProperties(v.attributes))}),this.gauges.set(e,n)}d.set(s,{value:t,attributes:i})}isEnabled(){return typeof this.enabled==="function"?this.enabled():this.enabled}setDistinctId(e){this.distinctId=e}setCommonProperties(e){this.commonProperties={...e}}updateCommonProperties(e){this.commonProperties={...this.commonProperties,...e}}async flush(){await Promise.all([this.meterProvider?.forceFlush?.(),this.loggerProvider?.forceFlush?.()])}async dispose(){await Promise.all([this.meterProvider?.shutdown?.(),this.loggerProvider?.shutdown?.()])}emitLog(e,t,r){if(!this.logger)return;let l=this.flattenProperties(this.buildAttributes(t,r));this.logger.emit({severityText:"INFO",body:e,attributes:l})}buildAttributes(e,t=!1){return{...this.commonProperties,...this.metadata,...e,...this.distinctId?{distinct_id:this.distinctId}:{},...t?{_required:!0}:{}}}snapshotGaugeSeries(e){let t=this.gaugeValues.get(e);if(!t)return[];return Array.from(t.values(),(r)=>({value:r.value,attributes:r.attributes?{...r.attributes}:void 0}))}flattenProperties(e,t="",r=new WeakSet,l=0){if(!e)return{};let a={},i=100,s=10;for(let[g,d]of Object.entries(e)){if(g==="__proto__"||g==="constructor"||g==="prototype")continue;let n=t?`${t}.${g}`:g;if(d===null||d===void 0){a[n]=String(d);continue}if(Array.isArray(d)){let m=d.length>i?d.slice(0,i):d;try{a[n]=JSON.stringify(m)}catch{a[n]="[UnserializableArray]"}if(d.length>i)a[`${n}_truncated`]=!0,a[`${n}_original_length`]=d.length;continue}if(typeof d==="object"){if(d instanceof Date){a[n]=d.toISOString();continue}if(d instanceof Error){a[n]=d.message;continue}if(r.has(d)){a[n]="[Circular]";continue}if(l>=s){a[n]="[MaxDepthExceeded]";continue}r.add(d),Object.assign(a,this.flattenProperties(d,n,r,l+1));continue}if(z(d)){a[n]=d;continue}try{a[n]=JSON.stringify(d)}catch{a[n]=String(d)}}return a}}function z(e){return typeof e==="string"||typeof e==="number"||typeof e==="boolean"}import{metrics as M,trace as L}from"@opentelemetry/api";import{logs as C}from"@opentelemetry/api-logs";import{OTLPLogExporter as N}from"@opentelemetry/exporter-logs-otlp-http";import{OTLPMetricExporter as V}from"@opentelemetry/exporter-metrics-otlp-http";import{OTLPTraceExporter as Y}from"@opentelemetry/exporter-trace-otlp-http";import{resourceFromAttributes as R}from"@opentelemetry/resources";import{BatchLogRecordProcessor as _,ConsoleLogRecordExporter as p,LoggerProvider as E}from"@opentelemetry/sdk-logs";import{ConsoleMetricExporter as ee,MeterProvider as te,PeriodicExportingMetricReader as w}from"@opentelemetry/sdk-metrics";import{BatchSpanProcessor as re,ConsoleSpanExporter as ae,SimpleSpanProcessor as le}from"@opentelemetry/sdk-trace-base";import{NodeTracerProvider as ie}from"@opentelemetry/sdk-trace-node";import{ATTR_SERVICE_NAME as de,ATTR_SERVICE_VERSION as ne}from"@opentelemetry/semantic-conventions";import{mkdirSync as ye,readFileSync as J,writeFileSync as ce}from"node:fs";import{resolveGlobalSettingsPath as W}from"@cline/shared/storage";import{z as f}from"zod";var o=f.preprocess((e)=>Array.isArray(e)?e.filter((t)=>typeof t==="string").map((t)=>t.trim()).filter(Boolean):void 0,f.array(f.string()).optional()).transform((e)=>{if(!e)return;let t=[...new Set(e)].sort((r,l)=>r.localeCompare(l));return t.length>0?t:void 0}),O=f.object({telemetryOptOut:f.boolean().default(!1).catch(!1),disabledTools:o.optional(),disabledPlugins:o.optional()}).strip().transform((e)=>{let t={telemetryOptOut:e.telemetryOptOut};if(e.disabledTools?.length)t.disabledTools=e.disabledTools;if(e.disabledPlugins?.length)t.disabledPlugins=e.disabledPlugins;return t});function G(){return O.parse({})}function $(){let e=W(),t;try{t=JSON.parse(J(e,"utf8"))}catch{return G()}let r=O.safeParse(t);return r.success?r.data:G()}function S(){return $().telemetryOptOut}import{existsSync as F,mkdirSync as B,readFileSync as I,writeFileSync as K}from"node:fs";import{resolve as U}from"node:path";import{resolveSessionDataDir as Q}from"@cline/shared/storage";import{nanoid as X}from"nanoid";import*as Z from"node-machine-id";var k="machine-id";function P(e){let t=e?.trim();if(t)return t;let r=D();if(r)return r;return q()}function x(){let e=Z;return e.machineIdSync??e.default?.machineIdSync}function D(){try{let e=x();if(!e)return;return e().trim()||void 0}catch{return}}function q(){let e=Q(),t=U(e,k);try{if(F(t)){let l=I(t,"utf8").trim();if(l.length>0)return l}}catch{}let r=`cl-${X()}`;try{B(e,{recursive:!0}),K(t,r,"utf8")}catch{}return r}class h{name;logger;enabled;constructor(e={}){this.name=e.name??"TelemetryLoggerSink",this.logger=e.logger,this.enabled=e.enabled??!0}emit(e,t){if(!this.isEnabled())return;this.logger?.log("telemetry.event",{telemetrySink:this.name,event:e,properties:t})}emitRequired(e,t){this.logger?.log("telemetry.required_event",{telemetrySink:this.name,severity:"warn",event:e,properties:t})}recordCounter(e,t,r,l,a){if(!a&&!this.isEnabled())return;this.logger?.debug("telemetry.metric",{telemetrySink:this.name,instrument:"counter",name:e,value:t,attributes:r,description:l,required:a===!0})}recordHistogram(e,t,r,l,a){if(!a&&!this.isEnabled())return;this.logger?.debug("telemetry.metric",{telemetrySink:this.name,instrument:"histogram",name:e,value:t,attributes:r,description:l,required:a===!0})}recordGauge(e,t,r,l,a){if(!a&&!this.isEnabled())return;this.logger?.debug("telemetry.metric",{telemetrySink:this.name,instrument:"gauge",name:e,value:t,attributes:r,description:l,required:a===!0})}isEnabled(){return typeof this.enabled==="function"?this.enabled():this.enabled}async flush(){}async dispose(){}}class b{adapters;metadata;distinctId;commonProperties;constructor(e={}){if(this.adapters=[...e.adapters??[]],e.logger)this.adapters.push(new h({logger:e.logger}));this.metadata={...e.metadata??{}},this.distinctId=e.distinctId,this.commonProperties={...e.commonProperties??{}}}addAdapter(e){this.adapters.push(e)}setDistinctId(e){this.distinctId=e}setMetadata(e){this.metadata={...e}}updateMetadata(e){this.metadata={...this.metadata,...e}}setCommonProperties(e){this.commonProperties={...e}}updateCommonProperties(e){this.commonProperties={...this.commonProperties,...e}}isEnabled(){return this.adapters.some((e)=>e.isEnabled())}capture(e){let t=this.buildAttributes(e.properties);for(let r of this.adapters)r.emit(e.event,t)}captureRequired(e,t){let r=this.buildAttributes(t);for(let l of this.adapters)l.emitRequired(e,r)}recordCounter(e,t,r,l,a=!1){let i=this.buildAttributes(r);for(let s of this.adapters)s.recordCounter(e,t,i,l,a)}recordHistogram(e,t,r,l,a=!1){let i=this.buildAttributes(r);for(let s of this.adapters)s.recordHistogram(e,t,i,l,a)}recordGauge(e,t,r,l,a=!1){let i=this.buildAttributes(r);for(let s of this.adapters)s.recordGauge(e,t,i,l,a)}async flush(){await Promise.all(this.adapters.map((e)=>e.flush()))}async dispose(){await Promise.all(this.adapters.map((e)=>e.dispose()))}buildAttributes(e){return{...this.commonProperties,...e,...this.metadata,...this.distinctId?{distinct_id:this.distinctId}:{}}}}class T{distinctId;metadata;commonProperties;constructor(e={}){this.distinctId=e.distinctId,this.metadata={...e.metadata??{}},this.commonProperties={...e.commonProperties??{}}}setDistinctId(e){this.distinctId=e}setMetadata(e){this.metadata={...e}}updateMetadata(e){this.metadata={...this.metadata,...e}}setCommonProperties(e){this.commonProperties={...e}}updateCommonProperties(e){this.commonProperties={...this.commonProperties,...e}}isEnabled(){return!1}capture(e){this.resolveProperties(e.properties)}captureRequired(e,t){this.resolveProperties(t)}recordCounter(){}recordHistogram(){}recordGauge(){}async flush(){}async dispose(){}resolveProperties(e){return{...this.commonProperties,...e,...this.metadata,...this.distinctId?{distinct_id:this.distinctId}:{}}}}class c{meterProvider;loggerProvider;tracerProvider;options;constructor(e={}){this.options=e;let t=R({[de]:e.serviceName??"cline",...e.serviceVersion?{[ne]:e.serviceVersion}:{}});if(this.meterProvider=this.createMeterProvider(t),this.loggerProvider=this.createLoggerProvider(t),this.tracerProvider=this.createTracerProvider(t),this.meterProvider)M.setGlobalMeterProvider(this.meterProvider);if(this.loggerProvider)C.setGlobalLoggerProvider(this.loggerProvider);if(this.tracerProvider)this.tracerProvider.register()}getTracer(e="cline",t){return L.getTracer(e,t??this.options.serviceVersion)}createAdapter(e){return new u({...e,meterProvider:this.meterProvider,loggerProvider:this.loggerProvider})}createTelemetryService(e){let t=this.createAdapter({name:e.name,enabled:this.options.enabled,metadata:e.metadata});return new b({...e,adapters:[t],distinctId:P(e.distinctId)})}async forceFlush(){await Promise.all([this.meterProvider?.forceFlush?.(),this.loggerProvider?.forceFlush?.(),this.tracerProvider?.forceFlush?.()])}async dispose(){await Promise.all([this.meterProvider?.shutdown?.(),this.loggerProvider?.shutdown?.(),this.tracerProvider?.shutdown?.()])}createMeterProvider(e){let t=y(this.options.metricsExporter);if(t.length===0)return null;let r=Math.max(1000,this.options.metricExportIntervalMs??this.options.metricExportInterval??60000),l=Math.min(30000,Math.floor(r*0.8)),a=t.map((i)=>ue(i,{endpoint:this.options.otlpEndpoint,headers:this.options.otlpHeaders,insecure:this.options.otlpInsecure??!1,protocol:"http/json",interval:r,timeout:l})).filter((i)=>i!==null);if(a.length===0)return null;return new te({resource:e,readers:a})}createTracerProvider(e){let t=y(this.options.tracesExporter);if(t.length===0)return null;let r=this.options.otlpTracesEndpoint??this.options.otlpEndpoint,l=this.options.otlpTracesHeaders??this.options.otlpHeaders,a=[];for(let i of t){let s=fe(i,{endpoint:r,headers:l,insecure:this.options.otlpInsecure??!1,protocol:"http/json"});if(s)a.push(s)}if(a.length===0)return null;return new ie({resource:e,spanProcessors:a})}createLoggerProvider(e){let t=y(this.options.logsExporter);if(t.length===0)return null;let r=t.map((l)=>{let a=ge(l,{endpoint:this.options.otlpEndpoint,headers:this.options.otlpHeaders,insecure:this.options.otlpInsecure??!1,protocol:"http/json"});if(!a)return null;return new _(a,{maxQueueSize:this.options.logMaxQueueSize??2048,maxExportBatchSize:this.options.logBatchSize??512,scheduledDelayMillis:this.options.logBatchTimeoutMs??this.options.logBatchTimeout??5000})}).filter((l)=>l!==null);if(r.length===0)return null;return new E({resource:e,processors:r})}}function H(e){let t=new c(e),r=t.createTelemetryService(e);return r.captureRequired("telemetry.provider_created",{provider:"opentelemetry",enabled:e.enabled??!0,logsExporter:Array.isArray(e.logsExporter)?e.logsExporter.join(","):e.logsExporter,metricsExporter:Array.isArray(e.metricsExporter)?e.metricsExporter.join(","):e.metricsExporter,tracesExporter:Array.isArray(e.tracesExporter)?e.tracesExporter.join(","):e.tracesExporter,otlpProtocol:e.otlpProtocol,hasOtlpEndpoint:Boolean(e.otlpEndpoint),serviceName:e.serviceName,serviceVersion:e.serviceVersion}),{provider:t,telemetry:r}}function j(e){if(S())return{telemetry:new T(e)};if(e.enabled!==!0)return{telemetry:new b({...e,distinctId:P(e.distinctId)})};return H(e)}function se(e){let{telemetry:t,provider:r}=j(e);return{telemetry:t,provider:r,flush:async()=>{let i=r;if(i&&typeof i.forceFlush==="function")try{await i.forceFlush()}catch{}},dispose:async()=>{await Promise.allSettled([t.dispose(),r?.dispose()])}}}function y(e){if(!e)return[];return(Array.isArray(e)?e:e.split(",")).map((r)=>r.trim()).filter((r)=>r==="console"||r==="otlp")}function ge(e,t){if(e==="console")return new p;if(!t.endpoint)return null;let r=A(t.endpoint,"/v1/logs");return new N({url:r,headers:t.headers})}function fe(e,t){if(e==="console")return new le(new ae);if(!t.endpoint)return null;let r=A(t.endpoint,"/v1/traces");return new re(new Y({url:r,headers:t.headers}))}function ue(e,t){if(e==="console")return new w({exporter:new ee,exportIntervalMillis:t.interval,exportTimeoutMillis:t.timeout});if(!t.endpoint)return null;let r=A(t.endpoint,"/v1/metrics");return new w({exporter:new V({url:r,headers:t.headers}),exportIntervalMillis:t.interval,exportTimeoutMillis:t.timeout})}function A(e,t){let r=new URL(e),l=r.pathname.endsWith("/")?r.pathname.slice(0,-1):r.pathname;return r.pathname=l.endsWith(t)?l:`${l}${t}`,r.toString()}export{H as createOpenTelemetryTelemetryService,j as createConfiguredTelemetryService,se as createConfiguredTelemetryHandle,c as OpenTelemetryProvider,u as OpenTelemetryAdapter};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type * as LlmsProviders from "@cline/llms";
|
|
2
|
+
import type { SessionAccumulatedUsage } from "../runtime/host/runtime-host";
|
|
3
|
+
export declare function createInitialAccumulatedUsage(): SessionAccumulatedUsage;
|
|
4
|
+
export declare function accumulateUsageTotals(baseline: SessionAccumulatedUsage, usage: {
|
|
5
|
+
inputTokens?: number;
|
|
6
|
+
outputTokens?: number;
|
|
7
|
+
cacheReadTokens?: number;
|
|
8
|
+
cacheWriteTokens?: number;
|
|
9
|
+
totalCost?: number;
|
|
10
|
+
}): SessionAccumulatedUsage;
|
|
11
|
+
export declare function summarizeUsageFromMessages(messages: LlmsProviders.Message[]): SessionAccumulatedUsage;
|
|
12
|
+
/**
|
|
13
|
+
* Current model context-window usage, derived from the latest assistant LLM
|
|
14
|
+
* call. Provider usage is normalized so `inputTokens` is already the full
|
|
15
|
+
* prompt size, including any cache-read/cache-write portions. Do not add cache
|
|
16
|
+
* fields back on top.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getCurrentContextSize(messages: readonly LlmsProviders.Message[]): number | undefined;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export interface FastFileIndexOptions {
|
|
2
|
+
ttlMs?: number;
|
|
3
|
+
}
|
|
4
|
+
export declare function getFileIndex(cwd: string, options?: FastFileIndexOptions): Promise<Set<string>>;
|
|
5
|
+
export declare function prewarmFileIndex(cwd: string, options?: FastFileIndexOptions): Promise<void>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export type { FastFileIndexOptions } from "./file-indexer";
|
|
2
|
+
export { getFileIndex, prewarmFileIndex } from "./file-indexer";
|
|
3
|
+
export type { MentionEnricherOptions, MentionEnrichmentResult, } from "./mention-enricher";
|
|
4
|
+
export { enrichPromptWithMentions } from "./mention-enricher";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type FastFileIndexOptions } from "./file-indexer";
|
|
2
|
+
export interface MentionEnricherOptions extends FastFileIndexOptions {
|
|
3
|
+
maxFiles?: number;
|
|
4
|
+
maxFileBytes?: number;
|
|
5
|
+
maxTotalBytes?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface MentionEnrichmentResult {
|
|
8
|
+
prompt: string;
|
|
9
|
+
mentions: string[];
|
|
10
|
+
matchedFiles: string[];
|
|
11
|
+
ignoredMentions: string[];
|
|
12
|
+
}
|
|
13
|
+
export declare function enrichPromptWithMentions(input: string, cwd: string, options?: MentionEnricherOptions): Promise<MentionEnrichmentResult>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type WorkspaceInfo, type WorkspaceManifest } from "@cline/shared";
|
|
2
|
+
export interface WorkspaceManagerEvent {
|
|
3
|
+
type: "workspace_added" | "workspace_switched";
|
|
4
|
+
workspace: WorkspaceInfo;
|
|
5
|
+
}
|
|
6
|
+
export interface WorkspaceManager {
|
|
7
|
+
addWorkspacePath(workspacePath: string): Promise<WorkspaceInfo>;
|
|
8
|
+
switchWorkspace(workspacePath: string): Promise<WorkspaceInfo>;
|
|
9
|
+
subscribe(listener: (event: WorkspaceManagerEvent) => void): () => void;
|
|
10
|
+
getCurrentWorkspace(): WorkspaceInfo | undefined;
|
|
11
|
+
getWorkspace(workspacePath: string): WorkspaceInfo | undefined;
|
|
12
|
+
listWorkspaces(): WorkspaceInfo[];
|
|
13
|
+
getManifest(): WorkspaceManifest;
|
|
14
|
+
}
|
|
15
|
+
export declare class InMemoryWorkspaceManager implements WorkspaceManager {
|
|
16
|
+
private manifest;
|
|
17
|
+
private readonly listeners;
|
|
18
|
+
constructor(manifest?: WorkspaceManifest);
|
|
19
|
+
addWorkspacePath(workspacePath: string): Promise<WorkspaceInfo>;
|
|
20
|
+
switchWorkspace(workspacePath: string): Promise<WorkspaceInfo>;
|
|
21
|
+
subscribe(listener: (event: WorkspaceManagerEvent) => void): () => void;
|
|
22
|
+
getCurrentWorkspace(): WorkspaceInfo | undefined;
|
|
23
|
+
getWorkspace(workspacePath: string): WorkspaceInfo | undefined;
|
|
24
|
+
listWorkspaces(): WorkspaceInfo[];
|
|
25
|
+
getManifest(): WorkspaceManifest;
|
|
26
|
+
private emit;
|
|
27
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { WorkspaceInfo } from "@cline/shared";
|
|
2
|
+
export interface WorkspaceInfoDiagnostics {
|
|
3
|
+
info: WorkspaceInfo;
|
|
4
|
+
vcsType: "git" | "none";
|
|
5
|
+
error?: {
|
|
6
|
+
errorType: string;
|
|
7
|
+
message: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export interface BuiltWorkspaceMetadata {
|
|
11
|
+
workspaceInfo: WorkspaceInfo;
|
|
12
|
+
workspaceMetadata: string;
|
|
13
|
+
durationMs: number;
|
|
14
|
+
vcsType: "git" | "none";
|
|
15
|
+
initError?: {
|
|
16
|
+
errorType: string;
|
|
17
|
+
message: string;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export declare function normalizeWorkspacePath(workspacePath: string): string;
|
|
21
|
+
export declare function generateWorkspaceInfo(workspacePath: string): Promise<WorkspaceInfo>;
|
|
22
|
+
export declare function generateWorkspaceInfoWithDiagnostics(workspacePath: string): Promise<WorkspaceInfoDiagnostics>;
|
|
23
|
+
export declare function buildWorkspaceMetadata(cwd: string): Promise<string>;
|
|
24
|
+
/**
|
|
25
|
+
* Generate workspace metadata as both a structured `WorkspaceInfo` object and
|
|
26
|
+
* its pre-serialized string form.
|
|
27
|
+
*
|
|
28
|
+
* Use this instead of calling `buildWorkspaceMetadata` + `generateWorkspaceInfo`
|
|
29
|
+
* separately so the git I/O only happens once.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildWorkspaceMetadataWithInfo(cwd: string): Promise<BuiltWorkspaceMetadata>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ITelemetryService, WorkspaceInfo } from "@cline/shared";
|
|
2
|
+
export interface WorkspaceLifecycleTelemetryInput {
|
|
3
|
+
telemetry?: ITelemetryService;
|
|
4
|
+
rootPath: string;
|
|
5
|
+
workspaceInfo?: WorkspaceInfo;
|
|
6
|
+
rootCount?: number;
|
|
7
|
+
vcsType?: "git" | "none";
|
|
8
|
+
vcsTypes?: ReadonlyArray<string>;
|
|
9
|
+
durationMs?: number;
|
|
10
|
+
initError?: {
|
|
11
|
+
errorType: string;
|
|
12
|
+
message: string;
|
|
13
|
+
};
|
|
14
|
+
featureFlagEnabled?: boolean;
|
|
15
|
+
isRemoteWorkspace?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare function emitWorkspaceLifecycleTelemetry(input: WorkspaceLifecycleTelemetryInput): void;
|
|
18
|
+
export declare function resetWorkspaceTelemetryForTests(): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type * as LlmsProviders from "@cline/llms";
|
|
2
|
+
import type { CheckpointEntry, CheckpointMetadata } from "../hooks/checkpoint-hooks";
|
|
3
|
+
import type { SessionRecord } from "../types/sessions";
|
|
4
|
+
export interface CheckpointRestorePlan {
|
|
5
|
+
checkpoint: CheckpointEntry;
|
|
6
|
+
messages?: LlmsProviders.Message[];
|
|
7
|
+
cwd: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function readSessionCheckpointHistory(session: Pick<SessionRecord, "metadata"> | undefined): CheckpointEntry[];
|
|
10
|
+
export declare function createRestoredCheckpointMetadata(session: Pick<SessionRecord, "metadata"> | undefined, runCount: number): CheckpointMetadata | undefined;
|
|
11
|
+
export declare function trimMessagesToCheckpoint(messages: LlmsProviders.Message[], runCount: number): LlmsProviders.Message[];
|
|
12
|
+
export declare function trimMessagesBeforeCheckpoint(messages: LlmsProviders.Message[], runCount: number): LlmsProviders.Message[];
|
|
13
|
+
export declare function createCheckpointRestorePlan(input: {
|
|
14
|
+
session: SessionRecord;
|
|
15
|
+
messages?: LlmsProviders.Message[];
|
|
16
|
+
checkpointRunCount: number;
|
|
17
|
+
cwd?: string;
|
|
18
|
+
restoreMessages?: boolean;
|
|
19
|
+
}): CheckpointRestorePlan;
|
|
20
|
+
export declare function applyCheckpointToWorktree(cwd: string, checkpoint: CheckpointEntry): Promise<void>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { HookEventPayload } from "../../hooks";
|
|
2
|
+
import type { SessionStatus } from "../../types/common";
|
|
3
|
+
export declare function sanitizeSessionToken(value: string): string;
|
|
4
|
+
export declare function makeSubSessionId(rootSessionId: string, agentId: string): string;
|
|
5
|
+
export declare function makeTeamTaskSubSessionId(rootSessionId: string, agentId: string): string;
|
|
6
|
+
export declare function parseTeamTaskSubSessionId(sessionId: string): {
|
|
7
|
+
rootSessionId: string;
|
|
8
|
+
agentId: string;
|
|
9
|
+
teamTaskId: string;
|
|
10
|
+
} | null;
|
|
11
|
+
export declare function parseSubSessionId(sessionId: string): {
|
|
12
|
+
rootSessionId: string;
|
|
13
|
+
agentId: string;
|
|
14
|
+
} | null;
|
|
15
|
+
export declare function deriveSubsessionStatus(event: HookEventPayload): SessionStatus;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const SessionManifestSchema: z.ZodObject<{
|
|
3
|
+
version: z.ZodLiteral<1>;
|
|
4
|
+
session_id: z.ZodString;
|
|
5
|
+
source: z.ZodString;
|
|
6
|
+
pid: z.ZodNumber;
|
|
7
|
+
started_at: z.ZodString;
|
|
8
|
+
ended_at: z.ZodOptional<z.ZodString>;
|
|
9
|
+
exit_code: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
10
|
+
status: z.ZodEnum<{
|
|
11
|
+
running: "running";
|
|
12
|
+
completed: "completed";
|
|
13
|
+
failed: "failed";
|
|
14
|
+
cancelled: "cancelled";
|
|
15
|
+
}>;
|
|
16
|
+
interactive: z.ZodBoolean;
|
|
17
|
+
provider: z.ZodString;
|
|
18
|
+
model: z.ZodString;
|
|
19
|
+
cwd: z.ZodString;
|
|
20
|
+
workspace_root: z.ZodString;
|
|
21
|
+
team_name: z.ZodOptional<z.ZodString>;
|
|
22
|
+
enable_tools: z.ZodBoolean;
|
|
23
|
+
enable_spawn: z.ZodBoolean;
|
|
24
|
+
enable_teams: z.ZodBoolean;
|
|
25
|
+
prompt: z.ZodOptional<z.ZodString>;
|
|
26
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
27
|
+
messages_path: z.ZodOptional<z.ZodString>;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
export type SessionManifest = z.infer<typeof SessionManifestSchema>;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import type { TeamTeammateSpec } from "@cline/shared";
|
|
2
|
+
import type { AgentTeamsRuntime } from "../../extensions/tools/team";
|
|
3
|
+
import type { SessionSource, SessionStatus } from "../../types/common";
|
|
4
|
+
import type { SessionManifest } from "./session-manifest";
|
|
5
|
+
export interface SessionRow {
|
|
6
|
+
sessionId: string;
|
|
7
|
+
source: string;
|
|
8
|
+
pid: number;
|
|
9
|
+
startedAt: string;
|
|
10
|
+
endedAt?: string | null;
|
|
11
|
+
exitCode?: number | null;
|
|
12
|
+
status: SessionStatus;
|
|
13
|
+
statusLock: number;
|
|
14
|
+
interactive: boolean;
|
|
15
|
+
provider: string;
|
|
16
|
+
model: string;
|
|
17
|
+
cwd: string;
|
|
18
|
+
workspaceRoot: string;
|
|
19
|
+
teamName?: string | null;
|
|
20
|
+
enableTools: boolean;
|
|
21
|
+
enableSpawn: boolean;
|
|
22
|
+
enableTeams: boolean;
|
|
23
|
+
parentSessionId?: string | null;
|
|
24
|
+
parentAgentId?: string | null;
|
|
25
|
+
agentId?: string | null;
|
|
26
|
+
conversationId?: string | null;
|
|
27
|
+
isSubagent: boolean;
|
|
28
|
+
prompt?: string | null;
|
|
29
|
+
metadata?: Record<string, unknown> | null;
|
|
30
|
+
hookPath?: string;
|
|
31
|
+
messagesPath?: string | null;
|
|
32
|
+
updatedAt: string;
|
|
33
|
+
}
|
|
34
|
+
export interface CreateRootSessionInput {
|
|
35
|
+
sessionId: string;
|
|
36
|
+
source: SessionSource;
|
|
37
|
+
pid: number;
|
|
38
|
+
startedAt: string;
|
|
39
|
+
interactive: boolean;
|
|
40
|
+
provider: string;
|
|
41
|
+
model: string;
|
|
42
|
+
cwd: string;
|
|
43
|
+
workspaceRoot: string;
|
|
44
|
+
teamName?: string;
|
|
45
|
+
enableTools: boolean;
|
|
46
|
+
enableSpawn: boolean;
|
|
47
|
+
enableTeams: boolean;
|
|
48
|
+
prompt?: string;
|
|
49
|
+
metadata?: Record<string, unknown>;
|
|
50
|
+
messagesPath: string;
|
|
51
|
+
}
|
|
52
|
+
export interface CreateRootSessionWithArtifactsInput {
|
|
53
|
+
sessionId: string;
|
|
54
|
+
source: SessionSource;
|
|
55
|
+
pid: number;
|
|
56
|
+
interactive: boolean;
|
|
57
|
+
provider: string;
|
|
58
|
+
model: string;
|
|
59
|
+
cwd: string;
|
|
60
|
+
workspaceRoot: string;
|
|
61
|
+
teamName?: string;
|
|
62
|
+
enableTools: boolean;
|
|
63
|
+
enableSpawn: boolean;
|
|
64
|
+
enableTeams: boolean;
|
|
65
|
+
prompt?: string;
|
|
66
|
+
metadata?: Record<string, unknown>;
|
|
67
|
+
startedAt?: string;
|
|
68
|
+
}
|
|
69
|
+
export interface RootSessionArtifacts {
|
|
70
|
+
manifestPath: string;
|
|
71
|
+
messagesPath: string;
|
|
72
|
+
manifest: SessionManifest;
|
|
73
|
+
}
|
|
74
|
+
export interface UpsertSubagentInput {
|
|
75
|
+
agentId: string;
|
|
76
|
+
parentAgentId: string;
|
|
77
|
+
conversationId: string;
|
|
78
|
+
prompt?: string;
|
|
79
|
+
rootSessionId?: string;
|
|
80
|
+
}
|
|
81
|
+
/** SELECT clause that aliases snake_case columns to camelCase SessionRow keys. */
|
|
82
|
+
export declare const SESSION_SELECT_COLUMNS = "\n\tsession_id AS sessionId,\n\tsource,\n\tpid,\n\tstarted_at AS startedAt,\n\tended_at AS endedAt,\n\texit_code AS exitCode,\n\tstatus,\n\tstatus_lock AS statusLock,\n\tinteractive,\n\tprovider,\n\tmodel,\n\tcwd,\n\tworkspace_root AS workspaceRoot,\n\tteam_name AS teamName,\n\tenable_tools AS enableTools,\n\tenable_spawn AS enableSpawn,\n\tenable_teams AS enableTeams,\n\tparent_session_id AS parentSessionId,\n\tparent_agent_id AS parentAgentId,\n\tagent_id AS agentId,\n\tconversation_id AS conversationId,\n\tis_subagent AS isSubagent,\n\tprompt,\n\tmetadata_json AS metadata,\n\thook_path AS hookPath,\n\tmessages_path AS messagesPath,\n\tupdated_at AS updatedAt";
|
|
83
|
+
export declare function patchSqliteRow(raw: Record<string, unknown>): SessionRow;
|
|
84
|
+
export declare function stringifyMetadata(metadata: Record<string, unknown> | null | undefined): string | null;
|
|
85
|
+
export type TeamRuntimeState = ReturnType<AgentTeamsRuntime["exportState"]>;
|
|
86
|
+
export interface PersistedTeamEnvelope {
|
|
87
|
+
version: 1;
|
|
88
|
+
updatedAt: string;
|
|
89
|
+
teamState: TeamRuntimeState;
|
|
90
|
+
teammates: TeamTeammateSpec[];
|
|
91
|
+
}
|
|
92
|
+
export declare function reviveTeamStateDates(state: TeamRuntimeState): TeamRuntimeState;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SessionMessagesArtifactUploader } from "../../types/session";
|
|
2
|
+
import { UnifiedSessionPersistenceService } from "./persistence-service";
|
|
3
|
+
export declare class FileSessionService extends UnifiedSessionPersistenceService {
|
|
4
|
+
constructor(sessionsDir?: string, options?: {
|
|
5
|
+
messagesArtifactUploader?: SessionMessagesArtifactUploader;
|
|
6
|
+
});
|
|
7
|
+
ensureSessionsDir(): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API-safe message builder for provider payloads.
|
|
3
|
+
*
|
|
4
|
+
* @see PLAN.md §3.1 — moved from `packages/agents/src/context/message-builder.ts`.
|
|
5
|
+
* @see PLAN.md §3.2.3 — public surface of `MessageBuilder`.
|
|
6
|
+
*
|
|
7
|
+
* Walks the conversation to produce provider-ready messages, handling
|
|
8
|
+
* tool-result truncation and outdated-file-content rewrite for compaction.
|
|
9
|
+
* Per-instance caches make this host state.
|
|
10
|
+
*/
|
|
11
|
+
import { type Message } from "@cline/shared";
|
|
12
|
+
/**
|
|
13
|
+
* Builds an API-safe message copy without mutating original conversation history.
|
|
14
|
+
*/
|
|
15
|
+
export declare class MessageBuilder {
|
|
16
|
+
private readonly maxToolResultChars;
|
|
17
|
+
private readonly targetToolNames;
|
|
18
|
+
private readonly maxTotalTextBytes;
|
|
19
|
+
private indexedMessageCount;
|
|
20
|
+
private indexedTailRef;
|
|
21
|
+
private readonly toolNameByIdCache;
|
|
22
|
+
private readonly readLocatorsByToolUseIdCache;
|
|
23
|
+
private readonly latestReadToolUseByLocatorCache;
|
|
24
|
+
private readonly latestFullContentOwnerByPathCache;
|
|
25
|
+
private readResultLocatorCache;
|
|
26
|
+
constructor(maxToolResultChars?: number, targetToolNames?: Set<string>, maxTotalTextBytes?: number);
|
|
27
|
+
buildForApi(messages: Message[]): Message[];
|
|
28
|
+
private transformBlock;
|
|
29
|
+
private reindex;
|
|
30
|
+
private addMissingToolResults;
|
|
31
|
+
private appendMissingToolResults;
|
|
32
|
+
private shouldMergeUserAfterToolResults;
|
|
33
|
+
private contentBlocksForUserMerge;
|
|
34
|
+
private collectToolResultIds;
|
|
35
|
+
private isToolResultOnlyMessage;
|
|
36
|
+
private trackMissingToolCalls;
|
|
37
|
+
private createMissingToolResultMessage;
|
|
38
|
+
private createMissingToolResultBlocks;
|
|
39
|
+
private formatMissingToolResultText;
|
|
40
|
+
private resetIndexes;
|
|
41
|
+
private getReadLocators;
|
|
42
|
+
private extractLocatorsFromReadToolInput;
|
|
43
|
+
private extractReadLocatorsFromToolResultContent;
|
|
44
|
+
private tryParseReadLocators;
|
|
45
|
+
private extractLocatorsFromParsedReadResult;
|
|
46
|
+
private extractLocatorFromReadRequest;
|
|
47
|
+
private extractLocatorFromResultEntry;
|
|
48
|
+
private extractPath;
|
|
49
|
+
private extractLineNumber;
|
|
50
|
+
private parseReadQuery;
|
|
51
|
+
private dedupeReadLocators;
|
|
52
|
+
private toReadLocatorKey;
|
|
53
|
+
private isFullFileRead;
|
|
54
|
+
private isOutdatedReadLocator;
|
|
55
|
+
private replaceOutdatedReadContent;
|
|
56
|
+
private countOutdatedImageEntries;
|
|
57
|
+
private replaceOutdatedInString;
|
|
58
|
+
private replaceOutdatedReadEntry;
|
|
59
|
+
private isReadTool;
|
|
60
|
+
private shouldTruncateTool;
|
|
61
|
+
private truncateToolResultContent;
|
|
62
|
+
private truncateMiddle;
|
|
63
|
+
private truncateToTotalTextBudget;
|
|
64
|
+
private countMessageTextBytes;
|
|
65
|
+
private collectTruncationCandidates;
|
|
66
|
+
}
|