@cline/core 0.0.65 → 0.0.66-nightly.1785294853

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 (34) hide show
  1. package/README.md +12 -0
  2. package/dist/ClineCore.d.ts +12 -0
  3. package/dist/cline-core/types.d.ts +5 -3
  4. package/dist/cron/service/schedule-service.d.ts +2 -1
  5. package/dist/cron/store/sqlite-cron-store.d.ts +5 -2
  6. package/dist/extensions/context/basic-compaction.d.ts +10 -1
  7. package/dist/extensions/context/compaction-shared.d.ts +20 -0
  8. package/dist/extensions/tools/schemas.d.ts +45 -45
  9. package/dist/hub/client/index.d.ts +2 -0
  10. package/dist/hub/daemon/entry.d.ts +5 -1
  11. package/dist/hub/daemon/entry.js +261 -216
  12. package/dist/hub/index.js +255 -212
  13. package/dist/hub/server/handlers/connector-handlers.d.ts +0 -2
  14. package/dist/hub/server/hub-server-options.d.ts +6 -1
  15. package/dist/index.d.ts +10 -7
  16. package/dist/index.js +256 -213
  17. package/dist/runtime/host/local-runtime-host.d.ts +5 -1
  18. package/dist/runtime/host/runtime-host.d.ts +21 -3
  19. package/dist/services/connectors/active-connectors.d.ts +2 -0
  20. package/dist/services/connectors/connector-autostart.d.ts +33 -0
  21. package/dist/services/connectors/daemon-connector-reconnect.d.ts +30 -0
  22. package/dist/services/global-settings.d.ts +33 -0
  23. package/dist/services/llms/provider-settings.d.ts +1 -1
  24. package/dist/services/llms/runtime-registry.d.ts +1 -1
  25. package/dist/services/local-runtime-bootstrap.d.ts +5 -4
  26. package/dist/services/storage/sqlite-session-store.d.ts +5 -0
  27. package/dist/services/telemetry/OpenTelemetryProvider.d.ts +16 -0
  28. package/dist/services/telemetry/core-events.d.ts +20 -4
  29. package/dist/services/telemetry/index.js +1 -1
  30. package/dist/services/workspace/chat-workspace.d.ts +9 -0
  31. package/dist/types/chat-schema.d.ts +31 -0
  32. package/dist/types/config.d.ts +8 -0
  33. package/dist/types.d.ts +2 -2
  34. package/package.json +5 -4
package/README.md CHANGED
@@ -51,6 +51,15 @@ console.log(result.result?.text);
51
51
  await cline.dispose();
52
52
  ```
53
53
 
54
+ When both `cwd` and `workspaceRoot` are omitted, the execution host places
55
+ the session in the shared chat workspace at
56
+ `<cline-data-dir>/workspaces/chat` (by default
57
+ `~/.cline/data/workspaces/chat`), seeded with an `AGENTS.md` rules file that
58
+ tells the agent to treat the session as a chat and only create a named
59
+ project folder when the user asks for one.
60
+ Read the resolved paths from `result.manifest.cwd` and
61
+ `result.manifest.workspace_root`.
62
+
54
63
  ## Session Bootstrap
55
64
 
56
65
  `ClineCore.create(...)` also accepts `prepare(input)`.
@@ -60,6 +69,9 @@ session starts, then apply watcher/extensions/telemetry inputs through
60
69
  explicit `localRuntime` bootstrap fields without widening the shared host
61
70
  contract.
62
71
 
72
+ Preparation runs before the execution host resolves an omitted workspace, so
73
+ pathless starts expose neither `cwd` nor `workspaceRoot` to `prepare(input)`.
74
+
63
75
  ## Main APIs
64
76
 
65
77
  ### Runtime and Sessions
@@ -243,6 +243,18 @@ export declare class ClineCore {
243
243
  * ```
244
244
  */
245
245
  readMessages: RuntimeHost["readSessionMessages"];
246
+ /**
247
+ * Reads message history for a session, preferring the live in-memory
248
+ * conversation when the session is still resident in this host.
249
+ *
250
+ * The persisted transcript only catches up at assistant-message/turn
251
+ * boundaries, so `readMessages` can miss an in-flight (or just-aborted)
252
+ * turn. Use this when the current conversation matters — e.g. seeding a
253
+ * replacement session during a plan/act mode switch. Falls back to the
254
+ * persisted transcript when the session is not resident or the host does
255
+ * not track live sessions.
256
+ */
257
+ readLiveMessages: RuntimeHost["readSessionMessages"];
246
258
  restore(input: RestoreInput): Promise<RestoreResult>;
247
259
  compareCheckpoint(input: CompareCheckpointInput): Promise<CompareCheckpointResult>;
248
260
  /**
@@ -3,13 +3,13 @@ import type { AgentConfig, AutomationEventEnvelope, BasicLogger, ITelemetryServi
3
3
  import type { CronEventSuppression } from "../cron/events/cron-event-ingress";
4
4
  import type { CronEventLogRecord, CronRunRecord, CronSpecRecord } from "../cron/store/sqlite-cron-store";
5
5
  import type { CheckpointEntry } from "../hooks/checkpoint-hooks";
6
- import type { CheckpointWorkspaceCompareResult } from "../session/checkpoint-diff";
7
6
  import type { RuntimeCapabilities } from "../runtime/capabilities";
8
7
  import type { SessionHistoryListOptions } from "../runtime/host/history";
9
8
  import type { SessionBackend } from "../runtime/host/host";
10
9
  import type { LocalRuntimeStartOptions, RuntimeHostMode, StartSessionInput, StartSessionResult } from "../runtime/host/runtime-host";
11
10
  import type { FeatureFlagsService } from "../services/feature-flags";
12
- import type { CoreSessionConfig } from "../types/config";
11
+ import type { CheckpointWorkspaceCompareResult } from "../session/checkpoint-diff";
12
+ import type { ClineCoreStartConfig } from "../types/config";
13
13
  import type { SessionMessagesArtifactUploader } from "../types/session";
14
14
  export type { RuntimeHostMode } from "../runtime/host/runtime-host";
15
15
  export type { ClineCoreSettingsApi } from "../settings";
@@ -87,7 +87,7 @@ export interface ClineCoreAutomationApi {
87
87
  }
88
88
  export type ClineCoreListHistoryOptions = SessionHistoryListOptions;
89
89
  export interface ClineCoreStartInput extends Omit<StartSessionInput, "config" | "localRuntime"> {
90
- config: CoreSessionConfig;
90
+ config: ClineCoreStartConfig;
91
91
  localRuntime?: LocalRuntimeStartOptions;
92
92
  }
93
93
  export interface RestoreOptions {
@@ -225,6 +225,8 @@ export interface ClineCoreOptions {
225
225
  * Optional hook invoked before each session starts.
226
226
  * Use this to prepare workspace-scoped runtime state and then return an
227
227
  * adapter that mutates the shared session input before core starts the run.
228
+ * This runs before the execution host resolves an omitted workspace, so
229
+ * pathless starts expose neither `cwd` nor `workspaceRoot` to this hook.
228
230
  */
229
231
  prepare?: (input: ClineCoreStartInput) => Promise<StartSessionBootstrap | undefined> | StartSessionBootstrap | undefined;
230
232
  }
@@ -1,4 +1,4 @@
1
- import type { BasicLogger, ChatRunTurnRequest, ChatStartSessionArtifacts, ChatStartSessionRequest, HubScheduleCreateInput, HubScheduleUpdateInput, ScheduleExecutionRecord, ScheduleExecutionStatus, ScheduleRecord } from "@cline/shared";
1
+ import { type BasicLogger, type ChatRunTurnRequest, type ChatStartSessionArtifacts, type ChatStartSessionRequest, type HubScheduleCreateInput, type HubScheduleUpdateInput, type ScheduleExecutionRecord, type ScheduleExecutionStatus, type ScheduleRecord } from "@cline/shared";
2
2
  type HubScheduleTurnResult = {
3
3
  text: string;
4
4
  usage?: {
@@ -82,6 +82,7 @@ export declare class HubScheduleService {
82
82
  getSchedule(scheduleId: string): ScheduleRecord | undefined;
83
83
  listSchedules(options?: ListSchedulesOptions): ScheduleRecord[];
84
84
  updateSchedule(scheduleId: string, updates: HubScheduleUpdateInput): ScheduleRecord | undefined;
85
+ private validateScheduleTiming;
85
86
  deleteSchedule(scheduleId: string): boolean;
86
87
  pauseSchedule(scheduleId: string): ScheduleRecord | undefined;
87
88
  resumeSchedule(scheduleId: string): ScheduleRecord | undefined;
@@ -1,4 +1,4 @@
1
- import type { AutomationEventEnvelope, CronSpec, CronSpecExtensionKind, CronTriggerKind, HubScheduleCreateInput, HubScheduleUpdateInput } from "@cline/shared";
1
+ import { type AutomationEventEnvelope, type CronSpec, type CronSpecExtensionKind, type CronTriggerKind, type HubScheduleCreateInput, type HubScheduleUpdateInput } from "@cline/shared";
2
2
  /**
3
3
  * Generalized cron/automation store backed by `cron.db`. Sessions stay in
4
4
  * their own database (see @cline/shared `ensureSessionSchema`). cron_runs
@@ -170,8 +170,10 @@ export declare class SqliteCronStore {
170
170
  tags?: string[];
171
171
  }): CronSpecRecord[];
172
172
  updateHubSchedule(scheduleId: string, updates: HubScheduleUpdateInput): CronSpecRecord | undefined;
173
+ private initializeHubScheduleNextRun;
173
174
  deleteHubSchedule(scheduleId: string): boolean;
174
175
  enqueueHubScheduleRun(scheduleId: string, triggerKind?: "manual" | "retry"): CronRunRecord | undefined;
176
+ private consumeOneOffWithManualRun;
175
177
  listEventSpecsForType(eventType: string): CronSpecRecord[];
176
178
  upsertSpec(input: UpsertSpecInput): UpsertSpecResult;
177
179
  private insertSpecRow;
@@ -217,9 +219,10 @@ export declare class SqliteCronStore {
217
219
  triggerEventId: string;
218
220
  scheduledFor: string;
219
221
  }): CronRunRecord | undefined;
220
- hasOneOffRunForRevision(specId: string, revision: number): boolean;
222
+ hasConsumedOneOffRevision(specId: string, revision: number): boolean;
221
223
  enqueueRun(input: EnqueueRunInput): CronRunRecord;
222
224
  cancelQueuedRunsForSpec(specId: string): number;
225
+ private cancelQueuedOneOffRunsForSpec;
223
226
  claimDueRuns(options: ClaimRunOptions): ClaimedCronRun[];
224
227
  renewClaim(runId: string, claimToken: string, leaseUntilAt: string): boolean;
225
228
  completeRun(runId: string, update: {
@@ -1,6 +1,15 @@
1
- import { type BasicLogger } from "@cline/shared";
1
+ import type { BasicLogger } from "@cline/shared";
2
2
  import type { CoreCompactionContext, CoreCompactionResult } from "../../types/config";
3
3
  import { type EstimateMessageTokens } from "./compaction-shared";
4
+ /**
5
+ * Fold the conversation history without a summarizer model. Typed user
6
+ * prompts always survive. The latest typed turn keeps its newest messages
7
+ * verbatim within the token target, dropping only the oldest ones (the
8
+ * kept suffix starts at an assistant message so no tool pair is split).
9
+ * Older turns keep their concluding assistant answer when it fits, newest
10
+ * turns first. Everything else is dropped and re-surfaced as dropped-work
11
+ * summaries attached to the surviving prompts.
12
+ */
4
13
  export declare function runBasicCompaction(options: {
5
14
  context: CoreCompactionContext;
6
15
  estimateMessageTokens: EstimateMessageTokens;
@@ -51,6 +51,26 @@ export declare function findCutIndex(messages: MessageWithMetadata[], preserveRe
51
51
  export declare function collectPaths(value: unknown): string[];
52
52
  export declare function mergeUnique(base: string[], next: Iterable<string>): string[];
53
53
  export declare function extractFileOps(messages: MessageWithMetadata[]): FileOperationSummary;
54
+ /** Commands longer than this are truncated in dropped-work summaries. */
55
+ export declare const COMMAND_SUMMARY_CHAR_LIMIT = 100;
56
+ /**
57
+ * Compact record of the tool work performed inside a span of dropped
58
+ * messages: which files were read and edited (with line ranges when
59
+ * known) and which commands ran.
60
+ */
61
+ export interface ToolActivitySummary {
62
+ readFiles: string[];
63
+ editedFiles: string[];
64
+ commands: string[];
65
+ }
66
+ export declare function hasToolActivity(summary: ToolActivitySummary): boolean;
67
+ /**
68
+ * Summarize the tool work inside a span of messages that compaction is
69
+ * dropping. Read ranges come from read_files inputs; edited ranges come
70
+ * from the numbered diff in the matching editor result when present.
71
+ */
72
+ export declare function summarizeToolActivity(messages: MessageWithMetadata[]): ToolActivitySummary;
73
+ export declare function formatToolActivitySummary(summary: ToolActivitySummary): string;
54
74
  export declare function renderFilesSection(fileOps: FileOperationSummary): string;
55
75
  export declare function ensureFilesSection(summary: string, fileOps: FileOperationSummary): string;
56
76
  export declare function buildSummaryRequest(options: {
@@ -7,13 +7,13 @@
7
7
  import { z } from "zod";
8
8
  export declare const INPUT_ARG_CHAR_LIMIT = 6000;
9
9
  export declare const ReadFileLineRangeSchema: z.ZodObject<{
10
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
11
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
10
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
11
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
12
12
  }, z.core.$strip>;
13
13
  export declare const ReadFileRequestSchema: z.ZodObject<{
14
14
  path: z.ZodString;
15
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
16
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
15
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
16
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
17
17
  }, z.core.$strip>;
18
18
  /**
19
19
  * Schema for read_files tool input
@@ -21,8 +21,8 @@ export declare const ReadFileRequestSchema: z.ZodObject<{
21
21
  export declare const ReadFilesInputSchema: z.ZodObject<{
22
22
  files: z.ZodArray<z.ZodObject<{
23
23
  path: z.ZodString;
24
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
25
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
24
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
25
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
26
26
  }, z.core.$strip>>;
27
27
  }, z.core.$strip>;
28
28
  /**
@@ -31,16 +31,16 @@ export declare const ReadFilesInputSchema: z.ZodObject<{
31
31
  export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject<{
32
32
  files: z.ZodArray<z.ZodObject<{
33
33
  path: z.ZodString;
34
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
35
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
34
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
35
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
36
36
  }, z.core.$strip>>;
37
37
  }, z.core.$strip>, z.ZodUnion<readonly [z.ZodObject<{
38
38
  path: z.ZodString;
39
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
40
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
39
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
40
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
41
41
  }, z.core.$strip>, z.ZodPipe<z.ZodObject<{
42
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
43
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
42
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
43
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
44
44
  file_path: z.ZodString;
45
45
  }, z.core.$strip>, z.ZodTransform<{
46
46
  start_line?: number | null | undefined;
@@ -51,8 +51,8 @@ export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject
51
51
  start_line?: number | null | undefined;
52
52
  end_line?: number | null | undefined;
53
53
  }>>, z.ZodPipe<z.ZodObject<{
54
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
55
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
54
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
55
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
56
56
  filePath: z.ZodString;
57
57
  }, z.core.$strip>, z.ZodTransform<{
58
58
  start_line?: number | null | undefined;
@@ -64,11 +64,11 @@ export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject
64
64
  end_line?: number | null | undefined;
65
65
  }>>]>, z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
66
66
  path: z.ZodString;
67
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
68
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
67
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
68
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
69
69
  }, z.core.$strip>, z.ZodPipe<z.ZodObject<{
70
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
71
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
70
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
71
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
72
72
  file_path: z.ZodString;
73
73
  }, z.core.$strip>, z.ZodTransform<{
74
74
  start_line?: number | null | undefined;
@@ -79,8 +79,8 @@ export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject
79
79
  start_line?: number | null | undefined;
80
80
  end_line?: number | null | undefined;
81
81
  }>>, z.ZodPipe<z.ZodObject<{
82
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
83
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
82
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
83
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
84
84
  filePath: z.ZodString;
85
85
  }, z.core.$strip>, z.ZodTransform<{
86
86
  start_line?: number | null | undefined;
@@ -93,11 +93,11 @@ export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject
93
93
  }>>]>>, z.ZodArray<z.ZodString>, z.ZodString, z.ZodObject<{
94
94
  files: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
95
95
  path: z.ZodString;
96
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
97
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
96
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
97
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
98
98
  }, z.core.$strip>, z.ZodPipe<z.ZodObject<{
99
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
100
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
99
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
100
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
101
101
  file_path: z.ZodString;
102
102
  }, z.core.$strip>, z.ZodTransform<{
103
103
  start_line?: number | null | undefined;
@@ -108,8 +108,8 @@ export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject
108
108
  start_line?: number | null | undefined;
109
109
  end_line?: number | null | undefined;
110
110
  }>>, z.ZodPipe<z.ZodObject<{
111
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
112
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
111
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
112
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
113
113
  filePath: z.ZodString;
114
114
  }, z.core.$strip>, z.ZodTransform<{
115
115
  start_line?: number | null | undefined;
@@ -123,11 +123,11 @@ export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject
123
123
  }, z.core.$strip>, z.ZodObject<{
124
124
  files: z.ZodUnion<readonly [z.ZodObject<{
125
125
  path: z.ZodString;
126
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
127
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
126
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
127
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
128
128
  }, z.core.$strip>, z.ZodPipe<z.ZodObject<{
129
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
130
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
129
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
130
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
131
131
  file_path: z.ZodString;
132
132
  }, z.core.$strip>, z.ZodTransform<{
133
133
  start_line?: number | null | undefined;
@@ -138,8 +138,8 @@ export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject
138
138
  start_line?: number | null | undefined;
139
139
  end_line?: number | null | undefined;
140
140
  }>>, z.ZodPipe<z.ZodObject<{
141
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
142
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
141
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
142
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
143
143
  filePath: z.ZodString;
144
144
  }, z.core.$strip>, z.ZodTransform<{
145
145
  start_line?: number | null | undefined;
@@ -159,11 +159,11 @@ export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject
159
159
  }, z.core.$strip>, z.ZodObject<{
160
160
  paths: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodUnion<readonly [z.ZodObject<{
161
161
  path: z.ZodString;
162
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
163
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
162
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
163
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
164
164
  }, z.core.$strip>, z.ZodPipe<z.ZodObject<{
165
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
166
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
165
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
166
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
167
167
  file_path: z.ZodString;
168
168
  }, z.core.$strip>, z.ZodTransform<{
169
169
  start_line?: number | null | undefined;
@@ -174,8 +174,8 @@ export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject
174
174
  start_line?: number | null | undefined;
175
175
  end_line?: number | null | undefined;
176
176
  }>>, z.ZodPipe<z.ZodObject<{
177
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
178
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
177
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
178
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
179
179
  filePath: z.ZodString;
180
180
  }, z.core.$strip>, z.ZodTransform<{
181
181
  start_line?: number | null | undefined;
@@ -189,11 +189,11 @@ export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject
189
189
  }, z.core.$strip>, z.ZodObject<{
190
190
  paths: z.ZodUnion<readonly [z.ZodObject<{
191
191
  path: z.ZodString;
192
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
193
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
192
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
193
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
194
194
  }, z.core.$strip>, z.ZodPipe<z.ZodObject<{
195
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
196
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
195
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
196
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
197
197
  file_path: z.ZodString;
198
198
  }, z.core.$strip>, z.ZodTransform<{
199
199
  start_line?: number | null | undefined;
@@ -204,8 +204,8 @@ export declare const ReadFilesInputUnionSchema: z.ZodUnion<readonly [z.ZodObject
204
204
  start_line?: number | null | undefined;
205
205
  end_line?: number | null | undefined;
206
206
  }>>, z.ZodPipe<z.ZodObject<{
207
- start_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
208
- end_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
207
+ start_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
208
+ end_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
209
209
  filePath: z.ZodString;
210
210
  }, z.core.$strip>, z.ZodTransform<{
211
211
  start_line?: number | null | undefined;
@@ -293,7 +293,7 @@ export declare const EditFileInputSchema: z.ZodObject<{
293
293
  path: z.ZodString;
294
294
  old_text: z.ZodOptional<z.ZodNullable<z.ZodString>>;
295
295
  new_text: z.ZodString;
296
- insert_line: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
296
+ insert_line: z.ZodOptional<z.ZodNullable<z.ZodCoercedNumber<unknown>>>;
297
297
  }, z.core.$strip>;
298
298
  /**
299
299
  * Schema for apply_patch tool input
@@ -54,6 +54,8 @@ export declare class NodeHubClient {
54
54
  constructor(options: HubClientOptions);
55
55
  getClientId(): string;
56
56
  getUrl(): string;
57
+ isConnected(): boolean;
58
+ getConnectionError(): HubTransportError | null;
57
59
  connect(): Promise<void>;
58
60
  subscribe(listener: (event: HubEventEnvelope) => void, options?: {
59
61
  sessionId?: string;
@@ -1 +1,5 @@
1
- export {};
1
+ /**
2
+ * Resolves only after the daemon WebSocket server is listening and its process
3
+ * lifecycle handlers are installed.
4
+ */
5
+ export declare const hubDaemonReady: Promise<void>;