@qoder-ai/qoder-agent-sdk 1.0.56 → 1.0.57

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.
@@ -7,12 +7,15 @@ import type { DiagnosticsSink } from "../core/sdk-diagnostics.js";
7
7
  export declare const SESSION_STORE_FILE_CHECKPOINTING_CAPABILITY = "session_store_file_checkpointing_v1";
8
8
  export declare const SESSION_STORE_FORK_BARRIER_CAPABILITY = "session_store_fork_barrier_v1";
9
9
  /**
10
- * 心跳判死阈值:30s 无任何入站帧即判 daemon 失活。与 CLI 仓
11
- * DAEMON_KEEP_ALIVE_INTERVAL_MS(5s 发送周期,本值 = 6 周期)镜像;能力常量
10
+ * 心跳判死阈值:120s 无任何入站字节即判 daemon 失活。与 CLI 仓
11
+ * DAEMON_KEEP_ALIVE_INTERVAL_MS(5s 发送周期,本值 = 24 周期)镜像;能力常量
12
12
  * DAEMON_KEEP_ALIVE_CAPABILITY 同为两仓镜像,靠握手协商门控——组合不匹配时
13
13
  * 最多不武装看门狗,不会误判。
14
+ *
15
+ * 阈值取 120s 而不是 30s:daemon 是共享进程,AI 代码统计等可选后台工作可能在
16
+ * 主线程上产生数十秒的计算停顿;30s 会把「忙」误判成「死」,连带终止全部会话。
14
17
  */
15
- export declare const DAEMON_HEARTBEAT_TIMEOUT_MS = 30000;
18
+ export declare const DAEMON_HEARTBEAT_TIMEOUT_MS = 120000;
16
19
  export declare const DAEMON_KEEP_ALIVE_CAPABILITY = "daemon_keep_alive_v1";
17
20
  /**
18
21
  * daemon 会话 close 改成「关信道即回包、后台排干 teardown」的能力位(CLI 仓镜像)。
@@ -117,7 +120,12 @@ export interface DaemonSessionIdClaim {
117
120
  export declare class DaemonHeartbeatTimeoutError extends Error {
118
121
  readonly code = "DAEMON_HEARTBEAT_TIMEOUT";
119
122
  readonly elapsedMs: number;
120
- constructor(elapsedMs: number);
123
+ /**
124
+ * 判死时是否正处在一条未收完的帧中间:区分「daemon 完全静默」与「大帧传到一半
125
+ * 停住」。两者都是连接级失败;该字段只用于现场归因,不改变判定与传播路径。
126
+ */
127
+ readonly partialFrame: boolean;
128
+ constructor(elapsedMs: number, partialFrame?: boolean);
121
129
  }
122
130
  export declare class DaemonConnection {
123
131
  private readonly input;
@@ -162,11 +170,20 @@ export declare class DaemonConnection {
162
170
  private readonly describeUnexpectedClose;
163
171
  private readonly diagnostics;
164
172
  /**
165
- * 心跳看门狗:最近一次入站帧的单调钟时刻(任意入站帧都刷新——有正常会话流量
166
- * 时天然免检,keep_alive 只是空闲期保底节拍)。单调钟使机器睡眠/唤醒后差值仍小,
167
- * 不误杀。看门狗定时器与阈值见 armHeartbeatWatchdog。
173
+ * 心跳看门狗:最近一次**入站字节**的单调钟时刻(每个 chunk 都刷新——有正常会话
174
+ * 流量时天然免检,keep_alive 只是空闲期保底节拍)。
175
+ *
176
+ * 不能等整行收完再刷新:一条大帧(单个 tool 结果可达数 MiB)在慢速管道上可能连续
177
+ * 传输超过阈值,期间字节一直在到达、事件循环也正常,只是换行符还没出现。以行为
178
+ * 单位会把它误判成「daemon 失活」,进而 fail() 整条连接、连带杀掉全部会话。
179
+ * 单调钟使机器睡眠/唤醒后差值仍小,不误杀。看门狗定时器与阈值见 armHeartbeatWatchdog。
168
180
  */
169
181
  private lastInboundAt;
182
+ /**
183
+ * 是否正处在一条尚未收完的 NDJSON 帧中间。只用于判死时的诊断:区分「daemon 完全
184
+ * 静默」与「大帧传到一半停住」,不参与是否判死的判定(后者只看字节进展)。
185
+ */
186
+ private inboundFrameInProgress;
170
187
  private heartbeatWatchdog;
171
188
  private readonly heartbeatTimeoutMs;
172
189
  constructor(options: DaemonConnectionOptions);
@@ -39,6 +39,12 @@ export interface StartDaemonOptions {
39
39
  * at any later point, whenever something first triggers the landing.
40
40
  */
41
41
  initializeTimeoutMs?: number;
42
+ /**
43
+ * 心跳看门狗阈值(ms):超过这段时间没有任何入站字节即判 daemon 失活。
44
+ * 缺省 120s;0 关闭看门狗(逃生口)。只在 CLI 协商出 `daemon_keep_alive_v1` 后生效。
45
+ * 宿主一般不需要调整;测试与受限环境用它缩短判定窗口。
46
+ */
47
+ heartbeatTimeoutMs?: number;
42
48
  pathToQoderCLIExecutable?: string;
43
49
  /**
44
50
  * 运行 CLI 脚本入口的解释器(node/bun/deno 等),语义与 `query()` 的
package/dist/index.d.ts CHANGED
@@ -96,7 +96,7 @@ export type { AccessTokenInput, AuthOptions, FetchServiceAccountToken, ServiceAc
96
96
  */
97
97
  export type { FetchJobToken, JobTokenAuthOptions, JobTokenRequest, JobTokenResult, } from './types/auth.js';
98
98
  export type { Base64ImageSource, UrlImageSource, URLImageSource, ImageSource, ImageContentBlock, ImageBlockParam, ContentBlock, MessageParam, AccountInfo, UsageAddOnQuotaBucket, UsageInfo, UsageOrgResourcePackage, UsageQuotaBucket, SessionCreditsUsage, ApiKeySource, ExitReason, FastModeState, ConfigScope, SettingSource, SDKAssistantMessageError, SDKStatus, EffortLevel, ThinkingAdaptive, ThinkingEnabled, ThinkingDisabled, ThinkingConfig, ModelInfo, ModelSource, ServerModelJson, ServerModelJsonValue, ModelStrategy, ModelPromotion, LocalizedModelText, ModelContextConfig, ModelContextWindowEntry, ModelEffortEntry, ModelThinkingConfig, ModelThinkingDisabled, ModelThinkingEnabled, ModelUsage, NonNullableUsage, SlashCommand, ToolConfig, SdkPluginConfig, } from './types/common.js';
99
- export type { SDKMessage, SDKAssistantMessage, SDKToolNonExecutionKind, SDKToolResultMeta, SDKMessageOrigin, SDKSelectedSkill, SDKArtifactInfo, SDKArtifactUpdateMessage, SDKAvailableModelsUpdateMessage, SDKCommandsChangedMessage, SDKUserMessage, SDKUserMessageReplay, SDKResultMessage, SDKResultSuccess, SDKResultError, SDKSystemMessage, SDKSystemInitMessage, SDKSystemMessageSubtype, SDKSystemMessageBySubtype, SDKPartialAssistantMessage, SDKCompactBoundaryMessage, SDKStatusMessage, SDKAPIRetryMessage, SDKModelQueueStatusMessage, SDKControlRequestProgressMessage, SDKCommandLifecycleMessage, SDKToolProgressMessage, SDKHookStartedMessage, SDKHookProgressMessage, SDKHookResponseMessage, SDKPermissionDeniedMessage, SDKMirrorErrorMessage, SDKTaskNotificationMessage, SDKTaskStartedMessage, SDKTaskProgressMessage, SDKTaskUpdatedMessage, SDKBackgroundTasksChangedMessage, SDKSessionStateChangedMessage, SDKPlanModeChangedMessage, SDKSessionTitleChangedMessage, SDKFilesPersistedEvent, SDKElicitationCompleteMessage, SDKPromptSuggestionMessage, SDKCloudAgentEventMessage, SDKMemoryGenerationMessage, SDKMemoryConsumptionMessage, SDKSkillEvolutionMessage, SDKAgentsMdSizeWarningMessage, SDKPermissionDenial, } from './types/messages.js';
99
+ export type { SDKMessage, SDKAssistantMessage, SDKToolNonExecutionKind, SDKToolResultMeta, SDKMessageOrigin, SDKSelectedSkill, SDKArtifactInfo, SDKArtifactUpdateMessage, SDKAvailableModelsUpdateMessage, SDKCommandsChangedMessage, SDKUserMessage, SDKUserMessageReplay, SDKResultMessage, SDKResultSuccess, SDKResultError, SDKSystemMessage, SDKSystemInitMessage, SDKSystemMessageSubtype, SDKSystemMessageBySubtype, SDKPartialAssistantMessage, SDKCompactBoundaryMessage, SDKStatusMessage, SDKAPIRetryMessage, SDKModelQueueStatusMessage, SDKControlRequestProgressMessage, SDKCommandLifecycleMessage, SDKToolProgressMessage, SDKHookDiagnosticsMessage, SDKHookStartedMessage, SDKHookProgressMessage, SDKHookResponseMessage, SDKPermissionDeniedMessage, SDKMirrorErrorMessage, SDKTaskNotificationMessage, SDKTaskStartedMessage, SDKTaskProgressMessage, SDKTaskUpdatedMessage, SDKBackgroundTasksChangedMessage, SDKSessionStateChangedMessage, SDKPlanModeChangedMessage, SDKSessionTitleChangedMessage, SDKFilesPersistedEvent, SDKElicitationCompleteMessage, SDKPromptSuggestionMessage, SDKCloudAgentEventMessage, SDKMemoryGenerationMessage, SDKMemoryConsumptionMessage, SDKSkillEvolutionMessage, SDKAgentsMdSizeWarningMessage, SDKPermissionDenial, } from './types/messages.js';
100
100
  export type { DefaultRuntimeTransport, } from './core/default-runtime.js';
101
101
  export type { QueryTransportCreateOptions, QueryTransportProviderOption, } from './core/query-transport.js';
102
102
  export type { ProcessTransportOptions } from './core/process-transport.js';