@qoder-ai/qoder-agent-sdk 1.0.35 → 1.0.36

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.
@@ -14,7 +14,7 @@
14
14
  import type { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
15
15
  import type { HookEvent, HookInput } from './hooks.js';
16
16
  import type { McpServerStatus, McpSetServersResult, McpServerConfigForCliTransport, McpToolRuntimeOverride, OAuthToken } from './mcp.js';
17
- import type { PermissionMode, PermissionUpdate } from './permissions.js';
17
+ import type { CanUseToolPermissionDetails, CanUseToolPermissionKind, CanUseToolPermissionOption, PermissionMode, PermissionUpdate } from './permissions.js';
18
18
  import type { SDKMessage } from './messages.js';
19
19
  import type { AgentDefinition, AgentInfo } from './agents.js';
20
20
  import type { AccountInfo, FastModeState, ModelInfo, SessionCreditsUsage, SlashCommand, SdkPluginConfig, UsageInfo } from './common.js';
@@ -52,12 +52,6 @@ export type SDKControlCancelRequest = {
52
52
  request_id: string;
53
53
  session_id?: string;
54
54
  };
55
- export type DaemonEventMessage = {
56
- type: 'event';
57
- event: string;
58
- session_id?: string;
59
- data: Record<string, unknown>;
60
- };
61
55
  export type SDKControlInterruptRequest = {
62
56
  type: 'interrupt';
63
57
  /**
@@ -93,6 +87,9 @@ export type SDKControlPermissionRequest = {
93
87
  description?: string;
94
88
  tool_use_id: string;
95
89
  agent_id?: string;
90
+ permission_kind?: CanUseToolPermissionKind;
91
+ options?: CanUseToolPermissionOption[];
92
+ details?: CanUseToolPermissionDetails;
96
93
  };
97
94
  /**
98
95
  * Wire form of MCP server config sent by SDK in `initialize` and
@@ -131,6 +128,8 @@ export type SDKControlInitializeRequest = {
131
128
  supportsAvailableModelsUpdate?: boolean;
132
129
  /** Opts this Host into authoritative command snapshots on the Query stream. */
133
130
  supportsCommandsChanged?: boolean;
131
+ /** Announces a Query-scoped App Artifact resolver to a shared-daemon Worker. */
132
+ resolveSessionArtifacts?: boolean;
134
133
  initializeTimeoutMs?: number;
135
134
  agentProgressSummaries?: boolean;
136
135
  memory?: SerializableMemoryConfig;
@@ -148,6 +147,11 @@ export type SDKControlInitializeRequest = {
148
147
  */
149
148
  scene?: string;
150
149
  };
150
+ export type SDKControlResolveSessionArtifactsRequest = {
151
+ subtype: 'resolve_session_artifacts';
152
+ local_session_id: string;
153
+ cwd: string;
154
+ };
151
155
  export type SDKControlMemoryShouldGenerateRequest = {
152
156
  type: 'memory_should_generate';
153
157
  callbackId: string;
@@ -445,6 +449,18 @@ export type SDKControlChannelEnableRequest = {
445
449
  channel: string;
446
450
  enabled: boolean;
447
451
  };
452
+ /** Enable Remote Control event projection for this worker session. */
453
+ export type SDKControlEnableRemoteProjectionRequest = {
454
+ type: 'enable_remote_projection';
455
+ remote_session_id: string;
456
+ suppress_initial_idle_state_events?: boolean;
457
+ skip_initial_flush?: boolean;
458
+ from_sequence_num?: number;
459
+ };
460
+ /** Disable Remote Control event projection for this worker session. */
461
+ export type SDKControlDisableRemoteProjectionRequest = {
462
+ type: 'disable_remote_projection';
463
+ };
448
464
  /**
449
465
  * SDK requests the CLI's BYOK (Bring Your Own Key) configuration.
450
466
  * The CLI responds with the server-side provider/model catalog.
@@ -642,12 +658,19 @@ export type SDKControlCheckByokConfigRequest = {
642
658
  config: CheckByokConfigInput;
643
659
  };
644
660
  export type SDKControlCheckByokConfigResponse = ByokConfigCheckResult;
661
+ /** 服务端下发的双语名称,由宿主按界面语言选择;空字符串表示该语言未提供名称。 */
662
+ export type BYOKLocalizedName = {
663
+ en_us: string;
664
+ cn_zh: string;
665
+ };
645
666
  /** A third-party LLM provider in the BYOK catalog. */
646
667
  export type BYOKProviderInfo = {
647
668
  /** Provider identifier, e.g. "openai", "deepseek" */
648
669
  key: string;
649
- /** Display name (may be localized object or plain string) */
670
+ /** 兼容旧宿主的显示名称,保持 CLI 既有的英文优先回退规则。 */
650
671
  display_name: string;
672
+ /** 可选双语名称;旧版 CLI 或服务端仅提供字符串时缺省。 */
673
+ display_name_i18n?: BYOKLocalizedName;
651
674
  /** Server-defined provider origin metadata, e.g. "custom". */
652
675
  source?: string;
653
676
  /** URL where the user can obtain an API key */
@@ -663,6 +686,8 @@ export type BYOKProviderInfo = {
663
686
  export type BYOKFieldInfo = {
664
687
  key: string;
665
688
  display_name: string;
689
+ /** 服务端提供的双语字段名称,由宿主选择展示语言。 */
690
+ display_name_i18n?: BYOKLocalizedName;
666
691
  type: string;
667
692
  /** Whether the user must fill this field. */
668
693
  mandatory?: boolean;
@@ -672,6 +697,8 @@ export type BYOKModelTypeInfo = {
672
697
  /** Group identifier, e.g. "cp" (coding plan), "tp" (token plan), "pg" (pay-as-you-go). */
673
698
  key?: string;
674
699
  display_name: string;
700
+ /** 服务端提供的双语分组名称,由宿主选择展示语言。 */
701
+ display_name_i18n?: BYOKLocalizedName;
675
702
  models: BYOKModelInfo[];
676
703
  };
677
704
  /** A specific model offered by a BYOK provider. */
@@ -827,7 +854,7 @@ export type SDKControlClearGoalRequest = {
827
854
  export type SDKControlClearGoalResponse = {
828
855
  cleared: boolean;
829
856
  };
830
- export type SDKControlRequestInner = SDKControlInterruptRequest | SDKControlPermissionRequest | SDKControlInitializeRequest | SDKControlSetPermissionModeRequest | SDKControlSetModelRequest | SDKControlSetProxyRequest | SDKControlGenerateSessionTitleRequest | SDKControlSideQuestionRequest | SDKControlAddDirectoriesRequest | SDKControlSetMaxThinkingTokensRequest | SDKControlMcpStatusRequest | SDKControlGetContextUsageRequest | SDKControlGetUsageInfoRequest | SDKControlGetModelPolicyRequest | SDKControlAccountInfoRequest | SDKHookCallbackRequest | SDKControlMcpMessageRequest | SDKControlRewindFilesRequest | SDKControlRewindRequest | SDKControlCancelAsyncMessageRequest | SDKControlSeedReadStateRequest | SDKControlMcpSetServersRequest | SDKControlReloadPluginsRequest | SDKControlReloadSkillsRequest | SDKControlMcpReconnectRequest | SDKControlMcpToggleRequest | SDKControlApplyFlagSettingsRequest | SDKControlGetSettingsRequest | SDKControlElicitationRequest | SDKControlEndSessionRequest | SDKControlChannelEnableRequest | SDKControlMcpInjectTokenRequest | SDKControlMcpAuthenticateRequest | SDKControlMcpOAuthCallbackUrlRequest | SDKControlMcpClearAuthRequest | SDKControlGetByokConfigRequest | SDKControlValidateByokModelRequest | SDKControlListByokConfigsRequest | SDKControlCreateByokConfigRequest | SDKControlUpdateByokConfigRequest | SDKControlDeleteByokConfigRequest | SDKControlCheckByokConfigRequest | SDKControlListPluginsRequest | SDKControlStopTaskRequest | SDKControlBackgroundTasksRequest | SDKControlMemoryShouldGenerateRequest | SDKControlFlushMemoryRequest | SDKControlSkillEvolutionShouldReviewRequest | SDKControlFlushSkillEvolutionRequest | SDKControlRefreshMemoryRequest | SDKControlSetPlanModeRequest | SDKControlGetPlanModeRequest | SDKControlSetGoalRequest | SDKControlSetGoalMaxTurnsRequest | SDKControlGetGoalRequest | SDKControlClearGoalRequest;
857
+ export type SDKControlRequestInner = SDKControlInterruptRequest | SDKControlPermissionRequest | SDKControlInitializeRequest | SDKControlResolveSessionArtifactsRequest | SDKControlSetPermissionModeRequest | SDKControlSetModelRequest | SDKControlSetProxyRequest | SDKControlGenerateSessionTitleRequest | SDKControlSideQuestionRequest | SDKControlAddDirectoriesRequest | SDKControlSetMaxThinkingTokensRequest | SDKControlMcpStatusRequest | SDKControlGetContextUsageRequest | SDKControlGetUsageInfoRequest | SDKControlGetModelPolicyRequest | SDKControlAccountInfoRequest | SDKHookCallbackRequest | SDKControlMcpMessageRequest | SDKControlRewindFilesRequest | SDKControlRewindRequest | SDKControlCancelAsyncMessageRequest | SDKControlSeedReadStateRequest | SDKControlMcpSetServersRequest | SDKControlReloadPluginsRequest | SDKControlReloadSkillsRequest | SDKControlMcpReconnectRequest | SDKControlMcpToggleRequest | SDKControlApplyFlagSettingsRequest | SDKControlGetSettingsRequest | SDKControlElicitationRequest | SDKControlEndSessionRequest | SDKControlChannelEnableRequest | SDKControlEnableRemoteProjectionRequest | SDKControlDisableRemoteProjectionRequest | SDKControlMcpInjectTokenRequest | SDKControlMcpAuthenticateRequest | SDKControlMcpOAuthCallbackUrlRequest | SDKControlMcpClearAuthRequest | SDKControlGetByokConfigRequest | SDKControlValidateByokModelRequest | SDKControlListByokConfigsRequest | SDKControlCreateByokConfigRequest | SDKControlUpdateByokConfigRequest | SDKControlDeleteByokConfigRequest | SDKControlCheckByokConfigRequest | SDKControlListPluginsRequest | SDKControlStopTaskRequest | SDKControlBackgroundTasksRequest | SDKControlMemoryShouldGenerateRequest | SDKControlFlushMemoryRequest | SDKControlSkillEvolutionShouldReviewRequest | SDKControlFlushSkillEvolutionRequest | SDKControlRefreshMemoryRequest | SDKControlSetPlanModeRequest | SDKControlGetPlanModeRequest | SDKControlSetGoalRequest | SDKControlSetGoalMaxTurnsRequest | SDKControlGetGoalRequest | SDKControlClearGoalRequest;
831
858
  export type SDKControlInitializeResponse = {
832
859
  commands: SlashCommand[];
833
860
  agents: AgentInfo[];
@@ -19,10 +19,10 @@ export type { AICodeTrackingLaunchOptions, QoderAgentLaunchOptions, QoderCliFlag
19
19
  export { buildQoderCliFlagSettings, buildQoderCliFlagSettingsArgs, } from './launch.js';
20
20
  export type { EffectiveMemoryConfig, MemoryConsumptionFile, MemoryConsumptionResult, MemoryGenerationFailedFile, MemoryGenerationGateInput, MemoryGenerationGateResult, MemoryGenerationResult, MemoryMode, MemoryRoot, MemoryRootAccess, SerializableMemoryConfig, SerializableMemoryConsumptionOptions, SerializableMemoryGenerationOptions, } from './memory.js';
21
21
  export type { EffectiveEvolutionConfig, EffectiveSkillEvolutionConfig, SerializableEvolutionConfig, SerializableSkillEvolutionConfig, SerializableSkillEvolutionGenerationOptions, SkillEvolutionGateInput, SkillEvolutionGateResult, SkillEvolutionMode, SkillEvolutionResult, SkillEvolutionSuggestion, } from './skill-evolution.js';
22
- export type { PermissionMode, PermissionBehavior, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue, PermissionUpdate, PermissionResult, } from './permissions.js';
22
+ export type { PermissionMode, PermissionBehavior, PermissionScope, CanUseToolPermissionKind, CanUseToolPermissionOption, CanUseToolPermissionDetails, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue, PermissionUpdate, PermissionResult, } from './permissions.js';
23
23
  export type { McpStdioServerConfig, McpSSEServerConfig, McpHttpServerConfig, McpSdkServerConfig, McpServerConfigForProcessTransport, McpServerStatus, McpServerStatusConfig, McpSetServersResult, OAuthToken, } from './mcp.js';
24
24
  export type { SDKAssistantMessage, SDKToolNonExecutionKind, SDKToolResultMeta, SDKMessageOrigin, SDKUserMessage, SDKUserMessageReplay, SDKResultSuccess, SDKResultError, SDKResultMessage, SDKFileAttachment, SDKSystemMessage, SDKArtifactInfo, SDKArtifactUpdateMessage, SDKAvailableModelsUpdateMessage, SDKCommandsChangedMessage, SDKPartialAssistantMessage, SDKCompactBoundaryMessage, SDKStatusMessage, SDKAPIRetryMessage, SDKModelQueueStatusMessage, SDKControlRequestProgressMessage, SDKCommandLifecycleMessage, SDKHookStartedMessage, SDKHookProgressMessage, SDKHookResponseMessage, SDKTaskNotificationMessage, SDKTaskStartedMessage, SDKTaskProgressMessage, SDKTaskUpdatedMessage, SDKBackgroundTasksChangedMessage, SDKSessionStateChangedMessage, SDKPlanModeChangedMessage, SDKGoalUpdatedMessage, SDKGoalClearedMessage, SDKSessionTitleChangedMessage, SDKFilesPersistedEvent, SDKElicitationCompleteMessage, SDKPromptSuggestionMessage, SDKCloudAgentEventMessage, SDKMemoryGenerationMessage, SDKMemoryConsumptionMessage, SDKSkillEvolutionMessage, SDKPermissionDenial, SDKPermissionDeniedMessage, SDKPermissionDeniedReasonType, SDKMessage, } from './messages.js';
25
25
  export type { BaseHookInput, PreToolUseHookInput, PostToolUseHookInput, PostToolUseFailureHookInput, UserPromptSubmitHookInput, SessionStartHookInput, SessionEndHookInput, StopHookInput, StopFailureHookInput, SubagentStartHookInput, SubagentStopHookInput, PreCompactHookInput, PostCompactHookInput, PermissionRequestHookInput, PermissionDeniedHookInput, SetupHookInput, TeammateIdleHookInput, TaskCreatedHookInput, TaskCompletedHookInput, ElicitationHookInput, ElicitationResultHookInput, ConfigChangeHookInput, WorktreeCreateHookInput, WorktreeRemoveHookInput, InstructionsLoadedHookInput, CwdChangedHookInput, FileChangedHookInput, HookInput, PreToolUseHookSpecificOutput, PostToolUseHookSpecificOutput, PostToolUseFailureHookSpecificOutput, UserPromptSubmitHookSpecificOutput, SessionStartHookSpecificOutput, SetupHookSpecificOutput, SubagentStartHookSpecificOutput, PermissionRequestHookSpecificOutput, ElicitationHookSpecificOutput, ElicitationResultHookSpecificOutput, CwdChangedHookSpecificOutput, FileChangedHookSpecificOutput, WorktreeCreateHookSpecificOutput, SyncHookJSONOutput, AsyncHookJSONOutput, HookJSONOutput, HookEvent, } from './hooks.js';
26
26
  export type { AgentMcpServerSpec, AgentDefinition, AgentInfo, AgentMemoryScope, } from './agents.js';
27
27
  export { QoderModelPurpose } from './control.js';
28
- export type { SDKControlRequest, SDKControlResponse, SDKControlCancelRequest, DaemonEventMessage, SDKControlInterruptRequest, SDKControlInterruptResponse, SDKControlPermissionRequest, SDKControlInitializeRequest, SDKControlSetPermissionModeRequest, SDKControlSetModelRequest, SDKControlGenerateSessionTitleRequest, SDKControlGenerateSessionTitleResponse, SideQuestionHistoryEntry, AskSideQuestionOptions, SideQuestionRefusalFallback, SideQuestionResult, SDKControlSideQuestionRequest, SDKControlSideQuestionResponse, SDKControlAddDirectoriesRequest, SDKControlAddDirectoriesResponse, SDKControlGetModelPolicyRequest, SDKControlGetModelPolicyResponse, SDKControlSetMaxThinkingTokensRequest, SDKControlMcpStatusRequest, SDKControlGetContextUsageRequest, SDKControlGetUsageInfoRequest, SDKControlGetUsageInfoResponse, SDKControlAccountInfoRequest, SDKHookCallbackRequest, SDKControlMcpMessageRequest, SDKControlRewindFilesRequest, SDKControlRewindRequest, SDKControlCancelAsyncMessageRequest, SDKControlSeedReadStateRequest, SDKControlMcpSetServersRequest, SDKControlReloadPluginsRequest, SDKControlReloadSkillsRequest, SDKControlMcpReconnectRequest, SDKControlMcpToggleRequest, SDKControlApplyFlagSettingsRequest, SDKControlGetSettingsRequest, SDKControlElicitationRequest, SDKControlEndSessionRequest, SDKControlChannelEnableRequest, SDKControlMcpInjectTokenRequest, SDKControlMcpAuthenticateRequest, SDKControlMcpOAuthCallbackUrlRequest, SDKControlMcpClearAuthRequest, SDKPlanModeSnapshot, SDKControlSetPlanModeRequest, SDKControlSetPlanModeResponse, SDKControlGetPlanModeRequest, SDKControlGetPlanModeResponse, SDKGoalStatus, SDKGoalSnapshot, SDKControlSetGoalRequest, SDKControlSetGoalResponse, SDKControlSetGoalMaxTurnsRequest, SDKControlSetGoalMaxTurnsResponse, SDKControlGetGoalRequest, SDKControlGetGoalResponse, SDKControlClearGoalRequest, SDKControlClearGoalResponse, SDKControlRequestInner, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlReloadPluginsResponse, SDKControlReloadSkillsResponse, SDKControlMcpStatusResponse, SDKControlMcpSetServersResponse, SDKControlMcpAuthenticateResponse, SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, SDKControlListByokConfigsRequest, SDKControlListByokConfigsResponse, SDKControlCreateByokConfigRequest, SDKControlCreateByokConfigResponse, SDKControlUpdateByokConfigRequest, SDKControlDeleteByokConfigRequest, SDKControlCheckByokConfigRequest, SDKControlCheckByokConfigResponse, BYOKModelValidationInput, BYOKProviderInfo, BYOKFieldInfo, BYOKModelTypeInfo, BYOKModelInfo, ByokProtocol, ByokModelConfigInfo, CustomByokProviderConfigInfo, ByokConfigInfo, ByokModelConfigInput, CustomByokProviderThinkingMode, CustomByokProviderReasoningEffortLevel, CustomByokProviderThinkingCapabilitiesInput, CustomByokProviderModelCapabilitiesInput, CustomByokProviderModelInput, CustomByokProviderConfigInput, CreateByokConfigInput, UpdateByokModelConfigInput, UpdateCustomByokProviderConfigInput, UpdateByokConfigInput, DeleteByokConfigInput, CheckByokConfigInput, ByokConfigReference, ByokConfigCheckResult, CustomModel, SDKControlListPluginsRequest, SDKControlListPluginsResponse, SDKControlStopTaskRequest, SDKControlBackgroundTasksRequest, SDKControlBackgroundTasksResponse, SDKControlMemoryShouldGenerateRequest, SDKControlFlushMemoryRequest, SDKControlRefreshMemoryRequest, SDKControlSkillEvolutionShouldReviewRequest, SDKControlFlushSkillEvolutionRequest, SDKKeepAliveMessage, StdoutMessage, ControlMcpServerConfig, } from './control.js';
28
+ export type { SDKControlRequest, SDKControlResponse, SDKControlCancelRequest, SDKControlInterruptRequest, SDKControlInterruptResponse, SDKControlPermissionRequest, SDKControlInitializeRequest, SDKControlResolveSessionArtifactsRequest, SDKControlSetPermissionModeRequest, SDKControlSetModelRequest, SDKControlGenerateSessionTitleRequest, SDKControlGenerateSessionTitleResponse, SideQuestionHistoryEntry, AskSideQuestionOptions, SideQuestionRefusalFallback, SideQuestionResult, SDKControlSideQuestionRequest, SDKControlSideQuestionResponse, SDKControlAddDirectoriesRequest, SDKControlAddDirectoriesResponse, SDKControlGetModelPolicyRequest, SDKControlGetModelPolicyResponse, SDKControlSetMaxThinkingTokensRequest, SDKControlMcpStatusRequest, SDKControlGetContextUsageRequest, SDKControlGetUsageInfoRequest, SDKControlGetUsageInfoResponse, SDKControlAccountInfoRequest, SDKHookCallbackRequest, SDKControlMcpMessageRequest, SDKControlRewindFilesRequest, SDKControlRewindRequest, SDKControlCancelAsyncMessageRequest, SDKControlSeedReadStateRequest, SDKControlMcpSetServersRequest, SDKControlReloadPluginsRequest, SDKControlReloadSkillsRequest, SDKControlMcpReconnectRequest, SDKControlMcpToggleRequest, SDKControlApplyFlagSettingsRequest, SDKControlGetSettingsRequest, SDKControlElicitationRequest, SDKControlEndSessionRequest, SDKControlChannelEnableRequest, SDKControlEnableRemoteProjectionRequest, SDKControlDisableRemoteProjectionRequest, SDKControlMcpInjectTokenRequest, SDKControlMcpAuthenticateRequest, SDKControlMcpOAuthCallbackUrlRequest, SDKControlMcpClearAuthRequest, SDKPlanModeSnapshot, SDKControlSetPlanModeRequest, SDKControlSetPlanModeResponse, SDKControlGetPlanModeRequest, SDKControlGetPlanModeResponse, SDKGoalStatus, SDKGoalSnapshot, SDKControlSetGoalRequest, SDKControlSetGoalResponse, SDKControlSetGoalMaxTurnsRequest, SDKControlSetGoalMaxTurnsResponse, SDKControlGetGoalRequest, SDKControlGetGoalResponse, SDKControlClearGoalRequest, SDKControlClearGoalResponse, SDKControlRequestInner, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlReloadPluginsResponse, SDKControlReloadSkillsResponse, SDKControlMcpStatusResponse, SDKControlMcpSetServersResponse, SDKControlMcpAuthenticateResponse, SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, SDKControlListByokConfigsRequest, SDKControlListByokConfigsResponse, SDKControlCreateByokConfigRequest, SDKControlCreateByokConfigResponse, SDKControlUpdateByokConfigRequest, SDKControlDeleteByokConfigRequest, SDKControlCheckByokConfigRequest, SDKControlCheckByokConfigResponse, BYOKModelValidationInput, BYOKLocalizedName, BYOKProviderInfo, BYOKFieldInfo, BYOKModelTypeInfo, BYOKModelInfo, ByokProtocol, ByokModelConfigInfo, CustomByokProviderConfigInfo, ByokConfigInfo, ByokModelConfigInput, CustomByokProviderThinkingMode, CustomByokProviderReasoningEffortLevel, CustomByokProviderThinkingCapabilitiesInput, CustomByokProviderModelCapabilitiesInput, CustomByokProviderModelInput, CustomByokProviderConfigInput, CreateByokConfigInput, UpdateByokModelConfigInput, UpdateCustomByokProviderConfigInput, UpdateByokConfigInput, DeleteByokConfigInput, CheckByokConfigInput, ByokConfigReference, ByokConfigCheckResult, CustomModel, SDKControlListPluginsRequest, SDKControlListPluginsResponse, SDKControlStopTaskRequest, SDKControlBackgroundTasksRequest, SDKControlBackgroundTasksResponse, SDKControlMemoryShouldGenerateRequest, SDKControlFlushMemoryRequest, SDKControlRefreshMemoryRequest, SDKControlSkillEvolutionShouldReviewRequest, SDKControlFlushSkillEvolutionRequest, SDKKeepAliveMessage, StdoutMessage, ControlMcpServerConfig, } from './control.js';
@@ -529,6 +529,10 @@ export type SDKArtifactInfo = {
529
529
  path: string;
530
530
  display_path: string;
531
531
  name: string;
532
+ group?: {
533
+ key: string;
534
+ name: string;
535
+ };
532
536
  relative_path?: string;
533
537
  size?: number;
534
538
  mime?: string;
@@ -11,6 +11,23 @@
11
11
  */
12
12
  export type PermissionMode = 'default' | 'acceptEdits' | 'bypassPermissions' | 'yolo' | 'plan' | 'dontAsk' | 'auto';
13
13
  export type PermissionBehavior = 'allow' | 'deny' | 'ask';
14
+ export type PermissionScope = 'once' | 'session' | 'persist';
15
+ export type CanUseToolPermissionKind = 'repeated_tool_call';
16
+ export type CanUseToolPermissionOption = {
17
+ outcome: 'proceed_once' | 'proceed_always' | 'proceed_always_and_save' | 'cancel';
18
+ name: string;
19
+ allowed: boolean;
20
+ };
21
+ export type CanUseToolPermissionDetails = {
22
+ type: 'repeated_tool_call';
23
+ title: string;
24
+ toolName: string;
25
+ repeatCount: number;
26
+ threshold: number;
27
+ inputPreview: string;
28
+ } | (Record<string, unknown> & {
29
+ type: string;
30
+ });
14
31
  export type PermissionDecisionClassification = 'user_temporary' | 'user_permanent' | 'user_reject';
15
32
  export type PermissionUpdateDestination = 'userSettings' | 'projectSettings' | 'localSettings' | 'session' | 'cliArg';
16
33
  export type PermissionRuleValue = {
@@ -47,6 +64,7 @@ export type PermissionUpdate = {
47
64
  };
48
65
  export type PermissionResult = {
49
66
  behavior: 'allow';
67
+ permissionScope?: PermissionScope;
50
68
  updatedInput?: Record<string, unknown>;
51
69
  updatedPermissions?: PermissionUpdate[];
52
70
  toolUseID?: string;
@@ -20,11 +20,11 @@
20
20
  *
21
21
  * 3. Implements all Query interface methods for the consumer.
22
22
  */
23
- import type { DiagnosticsSink } from '../core/sdk-diagnostics.js';
23
+ import { type DiagnosticsSink } from '../core/sdk-diagnostics.js';
24
24
  import type { ModelPromptPatches } from '../protocol/model-prompt-patches.js';
25
25
  import type { Transport } from '../core/transport.js';
26
26
  import type { SDKMessage, SDKUserMessage } from '../types/messages.js';
27
- import type { InternalQuery, OnElicitation } from '../types/options.js';
27
+ import type { InternalQuery, OnElicitation, RemoteProjectionCheckpoint, RemoteProjectionEnableOptions } from '../types/options.js';
28
28
  import type { FetchJobToken, FetchServiceAccountToken } from '../types/auth.js';
29
29
  import type { SDKPlanModeSnapshot, SDKGoalSnapshot, SDKGoalStatus, SDKControlInterruptResponse, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlGenerateSessionTitleResponse, AskSideQuestionOptions, SideQuestionResult, SDKControlAddDirectoriesResponse, SDKControlReloadPluginsResponse, SDKControlReloadSkillsResponse } from '../types/control.js';
30
30
  import type { PermissionMode, CanUseTool } from '../types/permissions.js';
@@ -42,6 +42,7 @@ import type { ModelInfo, SlashCommand, AccountInfo, UsageInfo } from '../types/c
42
42
  import type { ModelPolicyProvider } from '../types/model-policy-provider.js';
43
43
  import type { MemoryRuntimeCallbacks, SerializableMemoryConfig } from '../types/memory.js';
44
44
  import type { SkillEvolutionRuntimeCallbacks, SerializableEvolutionConfig } from '../types/skill-evolution.js';
45
+ import type { ResolveSessionArtifacts } from '../types/artifacts.js';
45
46
  import type { BYOKModelValidationInput, BYOKProviderInfo, ByokConfigCheckResult, ByokConfigInfo, ByokConfigReference, CheckByokConfigInput, CreateByokConfigInput, DeleteByokConfigInput, UpdateByokConfigInput } from '../types/byok.js';
46
47
  /** Init config passed to the initialize control request. */
47
48
  type InitConfig = {
@@ -61,8 +62,13 @@ type InitConfig = {
61
62
  independentPlanModeControls?: boolean;
62
63
  /** Initial shared-daemon Permission, applied as part of initialize. */
63
64
  permissionMode?: PermissionMode;
64
- /** Use the daemon subscribe result instead of issuing Query initialize. */
65
- attachedInitialization?: Promise<SDKControlInitializeResponse>;
65
+ /** Resolves transport-specific initialization settings before initialize. */
66
+ beforeInitialize?: () => Promise<void>;
67
+ /**
68
+ * 远端创建的会话:不向 worker 发 initialize 控制帧,
69
+ * 初始化结果从流中的 init 帧解析(daemon 侧负责驱动 worker 初始化)。
70
+ */
71
+ resolveInitializationFromStream?: boolean;
66
72
  /** Resolve initialization only after the Fork transcript is durable. */
67
73
  requireSessionStoreForkBarrier?: boolean;
68
74
  };
@@ -74,8 +80,9 @@ export declare class QueryRunner implements InternalQuery {
74
80
  private static readonly GOAL_CAPABILITY;
75
81
  private static readonly GOAL_MAX_TURNS_CAPABILITY;
76
82
  private static readonly PLAN_MODE_CAPABILITY;
77
- private static readonly BYOK_CONFIG_MANAGEMENT_CAPABILITY;
78
83
  private static readonly SESSION_STORE_FORK_BARRIER_CAPABILITY;
84
+ private static readonly BYOK_CONFIG_MANAGEMENT_CAPABILITY;
85
+ private static readonly REMOTE_PROJECTION_REQUEST_ID_PREFIX;
79
86
  private readonly transport;
80
87
  private readonly inputStream;
81
88
  private readonly pendingRequests;
@@ -102,6 +109,8 @@ export declare class QueryRunner implements InternalQuery {
102
109
  private readonly transcriptMirrorBatcher?;
103
110
  private readonly memoryCallbacks?;
104
111
  private readonly skillEvolutionCallbacks?;
112
+ private readonly resolveSessionArtifacts?;
113
+ private resolveStreamInitialization;
105
114
  private initResponse?;
106
115
  private latestCommands;
107
116
  private initializationPromise?;
@@ -125,7 +134,7 @@ export declare class QueryRunner implements InternalQuery {
125
134
  private skillEvolutionFlushPromise?;
126
135
  private closePromise?;
127
136
  private sessionStoreForkBarrierComplete;
128
- constructor(transport: Transport, isSingleTurn: boolean, canUseTool?: CanUseTool, hooks?: Partial<Record<InternalHookEvent, HookCallbackMatcher[]>>, abortController?: AbortController, sdkMcpServers?: Map<string, McpServer>, initConfig?: InitConfig, onElicitation?: OnElicitation, diagnostics?: DiagnosticsSink, onAuthExpired?: () => void, controlRequestTimeoutMs?: number, sdkMcpTransports?: Map<string, SdkMcpTransport>, pendingMcpResponses?: Map<string, PendingMcpResponse>, fetchJobToken?: FetchJobToken, resolveModel?: ModelPolicyProvider, resolveModelTimeoutMs?: number, sessionStore?: SessionStore, sessionStoreFlush?: SessionStoreFlush, sdkMcpToolOverrides?: Record<string, Record<string, McpToolRuntimeOverride>>, fetchServiceAccountToken?: FetchServiceAccountToken, memoryCallbacks?: MemoryRuntimeCallbacks, skillEvolutionCallbacks?: SkillEvolutionRuntimeCallbacks);
137
+ constructor(transport: Transport, isSingleTurn: boolean, canUseTool?: CanUseTool, hooks?: Partial<Record<InternalHookEvent, HookCallbackMatcher[]>>, abortController?: AbortController, sdkMcpServers?: Map<string, McpServer>, initConfig?: InitConfig, onElicitation?: OnElicitation, diagnostics?: DiagnosticsSink, onAuthExpired?: () => void, controlRequestTimeoutMs?: number, sdkMcpTransports?: Map<string, SdkMcpTransport>, pendingMcpResponses?: Map<string, PendingMcpResponse>, fetchJobToken?: FetchJobToken, resolveModel?: ModelPolicyProvider, resolveModelTimeoutMs?: number, sessionStore?: SessionStore, sessionStoreFlush?: SessionStoreFlush, sdkMcpToolOverrides?: Record<string, Record<string, McpToolRuntimeOverride>>, fetchServiceAccountToken?: FetchServiceAccountToken, memoryCallbacks?: MemoryRuntimeCallbacks, skillEvolutionCallbacks?: SkillEvolutionRuntimeCallbacks, resolveSessionArtifacts?: ResolveSessionArtifacts);
129
138
  private getRecord;
130
139
  private normalizeLogPreview;
131
140
  private extractMessagePreview;
@@ -234,6 +243,8 @@ export declare class QueryRunner implements InternalQuery {
234
243
  initializationResult(): Promise<SDKControlInitializeResponse>;
235
244
  private replaceLatestCommands;
236
245
  private getLatestCommands;
246
+ /** 远端创建的会话:等流中的 init 帧,不向 worker 发 initialize。 */
247
+ private waitForStreamInitialization;
237
248
  /**
238
249
  * Stream user messages into the session.
239
250
  *
@@ -267,10 +278,6 @@ export declare class QueryRunner implements InternalQuery {
267
278
  status?: SDKGoalStatus;
268
279
  creditsBudget?: number | null;
269
280
  }): Promise<SDKGoalSnapshot | null>;
270
- /**
271
- * Update the maximum turns copied into Goals created after this call.
272
- * The current Goal is unchanged; null restores the CLI built-in value.
273
- */
274
281
  setGoalMaxTurns(maxTurns: number | null): Promise<number>;
275
282
  /** Read the current goal, or null when the session has none. */
276
283
  getGoal(): Promise<SDKGoalSnapshot | null>;
@@ -281,8 +288,6 @@ export declare class QueryRunner implements InternalQuery {
281
288
  /** Read the authoritative Plan Mode state from the running CLI session. */
282
289
  getPlanMode(): Promise<SDKPlanModeSnapshot>;
283
290
  private requireCliCapability;
284
- /** Apply init-only configuration that an attached daemon did not consume. */
285
- private applyAttachedGoalMaxTurns;
286
291
  /**
287
292
  * Set the permission mode.
288
293
  */
@@ -292,6 +297,12 @@ export declare class QueryRunner implements InternalQuery {
292
297
  * Set the model.
293
298
  */
294
299
  setModel(model?: string): Promise<void>;
300
+ /** 启用当前 worker 会话的 Remote Control 事件投影。 */
301
+ enableRemoteProjection(remoteSessionId: string, options?: RemoteProjectionEnableOptions): Promise<void>;
302
+ /** 关闭当前 worker 会话的 Remote Control 事件投影。 */
303
+ disableRemoteProjection(options?: {
304
+ timeoutMs?: number;
305
+ }): Promise<RemoteProjectionCheckpoint | undefined>;
295
306
  setProxy(proxy?: string | null): Promise<void>;
296
307
  /**
297
308
  * Generate a concise display title for the current session.
@@ -368,7 +379,6 @@ export declare class QueryRunner implements InternalQuery {
368
379
  * Reload plugins.
369
380
  */
370
381
  reloadPlugins(): Promise<SDKControlReloadPluginsResponse>;
371
- /** Rescan Skills and return the CLI's displayable, user-invocable snapshot. */
372
382
  reloadSkills(): Promise<SDKControlReloadSkillsResponse>;
373
383
  listPlugins(): Promise<PluginDetails[]>;
374
384
  /**
@@ -467,10 +477,4 @@ export declare class QueryRunner implements InternalQuery {
467
477
  */
468
478
  [Symbol.asyncDispose](): Promise<void>;
469
479
  }
470
- export declare function createAttachedQueryRunner(options: {
471
- transport: Transport;
472
- initialization: Promise<SDKControlInitializeResponse>;
473
- canUseTool?: CanUseTool;
474
- onElicitation?: OnElicitation;
475
- }): InternalQuery;
476
480
  export {};
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 1,
3
3
  "brand": "global",
4
- "sdkVersion": "1.0.35",
4
+ "sdkVersion": "1.0.36",
5
5
  "qoderCliVersion": "1.1.46",
6
6
  "defaultTransport": "worker",
7
7
  "workerRuntime": {
@@ -10,7 +10,7 @@
10
10
  "source": "qodercli-worker-runtime",
11
11
  "urlTemplate": "https://download.qoder.com/qodercli/releases/1.1.46/qodercli-worker-runtime-{target}.tgz",
12
12
  "artifactNameTemplate": "qodercli-worker-runtime-{target}.tgz",
13
- "sdkVersion": "1.0.35",
13
+ "sdkVersion": "1.0.36",
14
14
  "qoderCliVersion": "1.1.46"
15
15
  }
16
16
  }
@@ -0,0 +1,31 @@
1
+ export interface ArtifactGroup {
2
+ key: string;
3
+ name: string;
4
+ }
5
+ export interface SessionArtifactBase {
6
+ path: string;
7
+ displayPath: string;
8
+ name: string;
9
+ group?: ArtifactGroup;
10
+ relativePath?: string;
11
+ size?: number;
12
+ mime?: string;
13
+ mtime?: number;
14
+ }
15
+ export type SessionArtifact = SessionArtifactBase & ({
16
+ kind: 'presented';
17
+ } | {
18
+ kind: 'changed';
19
+ additions: number;
20
+ deletions: number;
21
+ isNew: boolean;
22
+ });
23
+ export interface ResolveSessionArtifactsResult {
24
+ artifacts: readonly SessionArtifact[];
25
+ }
26
+ /**
27
+ * Returns the App-owned cumulative Artifact snapshot for a daemon-backed
28
+ * Session. A successful result replaces the CLI snapshot; an empty array
29
+ * clears it. Throwing or rejecting leaves the CLI snapshot in effect.
30
+ */
31
+ export type ResolveSessionArtifacts = (localSessionId: string, cwd: string) => ResolveSessionArtifactsResult | Promise<ResolveSessionArtifactsResult>;
@@ -10,4 +10,4 @@
10
10
  * module — defining it once on the protocol avoids snake/camel drift across
11
11
  * SDK and CLI.
12
12
  */
13
- export type { SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, SDKControlListByokConfigsRequest, SDKControlListByokConfigsResponse, SDKControlCreateByokConfigRequest, SDKControlCreateByokConfigResponse, SDKControlUpdateByokConfigRequest, SDKControlDeleteByokConfigRequest, SDKControlCheckByokConfigRequest, SDKControlCheckByokConfigResponse, BYOKModelValidationInput, CustomModel, BYOKProviderInfo, BYOKFieldInfo, BYOKModelTypeInfo, BYOKModelInfo, ByokProtocol, ByokModelConfigInfo, CustomByokProviderConfigInfo, ByokConfigInfo, ByokModelConfigInput, CustomByokProviderThinkingMode, CustomByokProviderReasoningEffortLevel, CustomByokProviderThinkingCapabilitiesInput, CustomByokProviderModelCapabilitiesInput, CustomByokProviderModelInput, CustomByokProviderConfigInput, CreateByokConfigInput, UpdateByokModelConfigInput, UpdateCustomByokProviderConfigInput, UpdateByokConfigInput, DeleteByokConfigInput, CheckByokConfigInput, ByokConfigReference, ByokConfigCheckResult, } from '../protocol/index.js';
13
+ export type { SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, SDKControlListByokConfigsRequest, SDKControlListByokConfigsResponse, SDKControlCreateByokConfigRequest, SDKControlCreateByokConfigResponse, SDKControlUpdateByokConfigRequest, SDKControlDeleteByokConfigRequest, SDKControlCheckByokConfigRequest, SDKControlCheckByokConfigResponse, BYOKModelValidationInput, CustomModel, BYOKLocalizedName, BYOKProviderInfo, BYOKFieldInfo, BYOKModelTypeInfo, BYOKModelInfo, ByokProtocol, ByokModelConfigInfo, CustomByokProviderConfigInfo, ByokConfigInfo, ByokModelConfigInput, CustomByokProviderThinkingMode, CustomByokProviderReasoningEffortLevel, CustomByokProviderThinkingCapabilitiesInput, CustomByokProviderModelCapabilitiesInput, CustomByokProviderModelInput, CustomByokProviderConfigInput, CreateByokConfigInput, UpdateByokModelConfigInput, UpdateCustomByokProviderConfigInput, UpdateByokConfigInput, DeleteByokConfigInput, CheckByokConfigInput, ByokConfigReference, ByokConfigCheckResult, } from '../protocol/index.js';
@@ -5,7 +5,7 @@
5
5
  * shim so existing SDK consumer imports keep working.
6
6
  */
7
7
  export type { QoderModelPurpose } from '../protocol/index.js';
8
- export type { SDKControlRequest, SDKControlResponse, SDKControlCancelRequest, SDKControlInterruptRequest, SDKControlInterruptResponse, SDKControlPermissionRequest, SDKControlInitializeRequest, SDKControlSetPermissionModeRequest, SDKControlSetModelRequest, SDKPlanModeSnapshot, SDKControlSetPlanModeRequest, SDKControlSetPlanModeResponse, SDKControlGetPlanModeRequest, SDKControlGetPlanModeResponse, SDKControlSetGoalRequest, SDKControlSetGoalResponse, SDKControlSetGoalMaxTurnsRequest, SDKControlSetGoalMaxTurnsResponse, SDKControlGetGoalRequest, SDKControlGetGoalResponse, SDKControlClearGoalRequest, SDKControlClearGoalResponse, SDKGoalSnapshot, SDKGoalStatus, SDKControlGenerateSessionTitleRequest, SDKControlGenerateSessionTitleResponse, SideQuestionHistoryEntry, AskSideQuestionOptions, SideQuestionRefusalFallback, SideQuestionResult, SDKControlSideQuestionRequest, SDKControlSideQuestionResponse, SDKControlAddDirectoriesRequest, SDKControlAddDirectoriesResponse, SDKControlGetModelPolicyRequest, SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, SDKControlListByokConfigsRequest, SDKControlListByokConfigsResponse, SDKControlCreateByokConfigRequest, SDKControlCreateByokConfigResponse, SDKControlUpdateByokConfigRequest, SDKControlDeleteByokConfigRequest, SDKControlCheckByokConfigRequest, SDKControlCheckByokConfigResponse, SDKControlSetMaxThinkingTokensRequest, SDKControlMcpStatusRequest, SDKControlGetContextUsageRequest, SDKControlGetUsageInfoRequest, SDKControlGetUsageInfoResponse, SDKControlAccountInfoRequest, SDKHookCallbackRequest, SDKControlMcpMessageRequest, SDKControlRewindFilesRequest, SDKControlRewindRequest, SDKControlCancelAsyncMessageRequest, SDKControlSeedReadStateRequest, SDKControlMcpSetServersRequest, SDKControlReloadPluginsRequest, SDKControlReloadSkillsRequest, SDKControlMcpReconnectRequest, SDKControlMcpToggleRequest, SDKControlApplyFlagSettingsRequest, SDKControlGetSettingsRequest, SDKControlElicitationRequest, SDKControlEndSessionRequest, SDKControlChannelEnableRequest, SDKControlMcpInjectTokenRequest, SDKControlMcpAuthenticateRequest, SDKControlMcpOAuthCallbackUrlRequest, SDKControlMcpClearAuthRequest, SDKControlRequestInner, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlReloadPluginsResponse, SDKControlReloadSkillsResponse, SDKControlListPluginsRequest, SDKControlListPluginsResponse, SDKControlStopTaskRequest, SDKControlBackgroundTasksRequest, SDKControlBackgroundTasksResponse, SDKControlMemoryShouldGenerateRequest, SDKControlFlushMemoryRequest, SDKControlRefreshMemoryRequest, SDKControlSkillEvolutionShouldReviewRequest, SDKControlFlushSkillEvolutionRequest, SDKControlMcpStatusResponse, SDKControlMcpSetServersResponse, SDKKeepAliveMessage, StdoutMessage, ControlMcpServerConfig, BYOKModelValidationInput, } from '../protocol/index.js';
8
+ export type { SDKControlRequest, SDKControlResponse, SDKControlCancelRequest, SDKControlInterruptRequest, SDKControlInterruptResponse, SDKControlPermissionRequest, SDKControlInitializeRequest, SDKControlResolveSessionArtifactsRequest, SDKControlSetPermissionModeRequest, SDKControlSetModelRequest, SDKPlanModeSnapshot, SDKControlSetPlanModeRequest, SDKControlSetPlanModeResponse, SDKControlGetPlanModeRequest, SDKControlGetPlanModeResponse, SDKControlSetGoalRequest, SDKControlSetGoalResponse, SDKControlSetGoalMaxTurnsRequest, SDKControlSetGoalMaxTurnsResponse, SDKControlGetGoalRequest, SDKControlGetGoalResponse, SDKControlClearGoalRequest, SDKControlClearGoalResponse, SDKGoalSnapshot, SDKGoalStatus, SDKControlGenerateSessionTitleRequest, SDKControlGenerateSessionTitleResponse, SideQuestionHistoryEntry, AskSideQuestionOptions, SideQuestionRefusalFallback, SideQuestionResult, SDKControlSideQuestionRequest, SDKControlSideQuestionResponse, SDKControlAddDirectoriesRequest, SDKControlAddDirectoriesResponse, SDKControlGetModelPolicyRequest, SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, SDKControlListByokConfigsRequest, SDKControlListByokConfigsResponse, SDKControlCreateByokConfigRequest, SDKControlCreateByokConfigResponse, SDKControlUpdateByokConfigRequest, SDKControlDeleteByokConfigRequest, SDKControlCheckByokConfigRequest, SDKControlCheckByokConfigResponse, SDKControlSetMaxThinkingTokensRequest, SDKControlMcpStatusRequest, SDKControlGetContextUsageRequest, SDKControlGetUsageInfoRequest, SDKControlGetUsageInfoResponse, SDKControlAccountInfoRequest, SDKHookCallbackRequest, SDKControlMcpMessageRequest, SDKControlRewindFilesRequest, SDKControlRewindRequest, SDKControlCancelAsyncMessageRequest, SDKControlSeedReadStateRequest, SDKControlMcpSetServersRequest, SDKControlReloadPluginsRequest, SDKControlReloadSkillsRequest, SDKControlMcpReconnectRequest, SDKControlMcpToggleRequest, SDKControlApplyFlagSettingsRequest, SDKControlGetSettingsRequest, SDKControlElicitationRequest, SDKControlEndSessionRequest, SDKControlChannelEnableRequest, SDKControlEnableRemoteProjectionRequest, SDKControlDisableRemoteProjectionRequest, SDKControlMcpInjectTokenRequest, SDKControlMcpAuthenticateRequest, SDKControlMcpOAuthCallbackUrlRequest, SDKControlMcpClearAuthRequest, SDKControlRequestInner, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlReloadPluginsResponse, SDKControlReloadSkillsResponse, SDKControlListPluginsRequest, SDKControlListPluginsResponse, SDKControlStopTaskRequest, SDKControlBackgroundTasksRequest, SDKControlBackgroundTasksResponse, SDKControlMemoryShouldGenerateRequest, SDKControlFlushMemoryRequest, SDKControlRefreshMemoryRequest, SDKControlSkillEvolutionShouldReviewRequest, SDKControlFlushSkillEvolutionRequest, SDKControlMcpStatusResponse, SDKControlMcpSetServersResponse, SDKKeepAliveMessage, StdoutMessage, ControlMcpServerConfig, BYOKModelValidationInput, } from '../protocol/index.js';
9
9
  /** Wire format for fetch_job_token inbound control request from CLI. */
10
10
  export type FetchJobTokenWireRequest = {
11
11
  subtype: 'fetch_job_token';
@@ -5,6 +5,7 @@
5
5
  export * from './common.js';
6
6
  export * from './messages.js';
7
7
  export * from './memory.js';
8
+ export * from './artifacts.js';
8
9
  export type { DefaultRuntimeTransport } from '../core/default-runtime.js';
9
10
  export type { QueryTransportCreateOptions, QueryTransportProviderOption, } from '../core/query-transport.js';
10
11
  export type { ProcessTransportOptions } from '../core/process-transport.js';
@@ -21,7 +21,7 @@ import type { MemoryOptions } from './memory.js';
21
21
  import type { EvolutionOptions } from './skill-evolution.js';
22
22
  import type { SDKGoalSnapshot, SDKGoalStatus, SDKPlanModeSnapshot } from '../protocol/control.js';
23
23
  import type { Daemon } from '../daemon/start-daemon.js';
24
- import type { SessionExtra } from '../daemon/session-metadata.js';
24
+ import type { ResolveSessionArtifacts } from './artifacts.js';
25
25
  export type { CanUseTool };
26
26
  export type { AuthOptions };
27
27
  export type ElicitationRequest = {
@@ -70,10 +70,14 @@ export type Options = {
70
70
  * `abort()` closes the session and ends message iteration.
71
71
  */
72
72
  abortController?: AbortController;
73
- /** Route this Query through a shared local daemon started by startDaemon(). */
73
+ /** Route this Query through a caller-provided daemon instance. */
74
74
  daemon?: Daemon;
75
- /** Opaque, JSON-safe metadata attached to this daemon-backed Session. */
76
- extra?: SessionExtra;
75
+ /**
76
+ * Resolve the App-owned cumulative Artifact snapshot for this daemon-backed
77
+ * Query. A successful result replaces the CLI snapshot; a rejected callback
78
+ * falls back to the CLI snapshot.
79
+ */
80
+ resolveSessionArtifacts?: ResolveSessionArtifacts;
77
81
  /**
78
82
  * Authentication configuration for the qodercli child process.
79
83
  *
@@ -94,7 +98,8 @@ export type Options = {
94
98
  * integration. Prefer the `jobToken(fetchJobToken)` helper in host code.
95
99
  *
96
100
  * Required for direct `query()` sessions. A Query using `options.daemon`
97
- * reuses the authentication bound by `startDaemon()` and must omit this field.
101
+ * inherits authentication configured when the daemon was started and must
102
+ * omit this field.
98
103
  */
99
104
  auth?: InternalAuthOptions;
100
105
  additionalDirectories?: string[];
@@ -369,6 +374,18 @@ export interface SpawnedProcess {
369
374
  off(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): void;
370
375
  off(event: 'error', listener: (error: Error) => void): void;
371
376
  }
377
+ /** 控制 worker 级远程事件投影的启用选项。 */
378
+ export interface RemoteProjectionEnableOptions {
379
+ suppressInitialIdleStateEvents?: boolean;
380
+ skipInitialFlush?: boolean;
381
+ fromSequenceNum?: number;
382
+ timeoutMs?: number;
383
+ }
384
+ /** 关闭远程事件投影时返回的可恢复游标。 */
385
+ export interface RemoteProjectionCheckpoint {
386
+ remoteSessionId: string;
387
+ lastSequenceNum: number;
388
+ }
372
389
  /**
373
390
  * Query 公开接口。
374
391
  *
@@ -446,6 +463,16 @@ export interface Query extends AsyncGenerator<SDKMessage, void> {
446
463
  getPlanMode?(): Promise<SDKPlanModeSnapshot>;
447
464
  setPermissionMode(mode: PermissionMode): Promise<void>;
448
465
  setModel(model?: string): Promise<void>;
466
+ /**
467
+ * 启用该会话的远程事件投影。仅支持广告此控制能力的本地 CLI transport。
468
+ */
469
+ enableRemoteProjection?(remoteSessionId: string, options?: RemoteProjectionEnableOptions): Promise<void>;
470
+ /**
471
+ * 关闭该会话的远程事件投影,并返回可用于恢复投影的游标(若 worker 提供)。
472
+ */
473
+ disableRemoteProjection?(options?: {
474
+ timeoutMs?: number;
475
+ }): Promise<RemoteProjectionCheckpoint | undefined>;
449
476
  /**
450
477
  * Set or clear the proxy for the running qodercli session.
451
478
  *
@@ -5,8 +5,8 @@
5
5
  * `../protocol/`. This file adds SDK-local types — the `CanUseTool`
6
6
  * callback shape — which never crosses the JSONL boundary.
7
7
  */
8
- export type { PermissionBehavior, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue, } from '../protocol/index.js';
9
- import type { PermissionBehavior, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue } from '../protocol/index.js';
8
+ export type { PermissionBehavior, PermissionScope, CanUseToolPermissionKind, CanUseToolPermissionOption, CanUseToolPermissionDetails, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue, } from '../protocol/index.js';
9
+ import type { PermissionBehavior, PermissionScope, CanUseToolPermissionKind, CanUseToolPermissionOption, CanUseToolPermissionDetails, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue } from '../protocol/index.js';
10
10
  /**
11
11
  * Permission mode for controlling how tool executions are handled.
12
12
  */
@@ -41,6 +41,7 @@ export type PermissionUpdate = {
41
41
  };
42
42
  export type PermissionResult = {
43
43
  behavior: 'allow';
44
+ permissionScope?: PermissionScope;
44
45
  updatedInput?: Record<string, unknown>;
45
46
  updatedPermissions?: PermissionUpdate[];
46
47
  toolUseID?: string;
@@ -62,5 +63,8 @@ export type CanUseToolOptions = {
62
63
  description?: string;
63
64
  toolUseID: string;
64
65
  agentID?: string;
66
+ permissionKind?: CanUseToolPermissionKind;
67
+ permissionOptions?: CanUseToolPermissionOption[];
68
+ details?: CanUseToolPermissionDetails;
65
69
  };
66
70
  export type CanUseTool = (toolName: string, input: Record<string, unknown>, options: CanUseToolOptions) => Promise<PermissionResult>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qoder-ai/qoder-agent-sdk",
3
- "version": "1.0.35",
3
+ "version": "1.0.36",
4
4
  "description": "TypeScript SDK for building Qoder-powered coding agents.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,3 +0,0 @@
1
- import { type DaemonRequestHandler } from './daemon-connection.js';
2
- import { type ResolveRemoteSessionLaunch } from './session-metadata.js';
3
- export declare function createRemoteSessionLaunchRequestHandler(resolveLaunch: ResolveRemoteSessionLaunch, callbackTimeoutMs?: number): DaemonRequestHandler;
@@ -1,19 +0,0 @@
1
- export type SessionExtraValue = string | number | boolean | null | readonly SessionExtraValue[] | {
2
- readonly [key: string]: SessionExtraValue;
3
- };
4
- /** Opaque, JSON-safe metadata owned by the Host application. */
5
- export type SessionExtra = Readonly<Record<string, SessionExtraValue>>;
6
- /** Replaces the complete metadata snapshot for one Session. */
7
- export interface SessionMetadataUpdate {
8
- extra: SessionExtra;
9
- }
10
- export interface RemoteSessionLaunchRequest {
11
- remoteSessionId: string;
12
- extra?: SessionExtra;
13
- }
14
- export interface RemoteSessionLaunch {
15
- cwd: string;
16
- additionalDirectories?: readonly string[];
17
- }
18
- export type ResolveRemoteSessionLaunch = (request: RemoteSessionLaunchRequest) => Promise<RemoteSessionLaunch>;
19
- export declare function normalizeSessionExtra(value: SessionExtra, path?: string): SessionExtra;
@@ -1,10 +0,0 @@
1
- import type { DaemonSessionStore } from "./session-store-rpc.js";
2
- export interface SessionRegistrationStore {
3
- readonly store: DaemonSessionStore;
4
- flush(): Promise<void>;
5
- dispose(): void;
6
- }
7
- export declare function createSessionRegistrationStore(store: DaemonSessionStore, options: {
8
- sync: (localSessionIds: string[]) => Promise<void>;
9
- retryDelaysMs?: readonly number[];
10
- }): SessionRegistrationStore;
@@ -1,45 +0,0 @@
1
- import type { SessionKey, SessionStore, SessionStoreEntry } from "../session/session-store.js";
2
- import { DaemonRequestError, type DaemonRequestHandler } from "./daemon-connection.js";
3
- import type { JsonObject } from "./protocol.js";
4
- import { type SessionExtra, type SessionMetadataUpdate } from "./session-metadata.js";
5
- export declare const DEFAULT_SESSION_STORE_MAX_PAYLOAD_BYTES: number;
6
- export interface DaemonSessionStore extends SessionStore {
7
- listAllSessions(): Promise<readonly DaemonSessionSummary[]>;
8
- /**
9
- * Persists a complete replacement of one Session's metadata. Implementations
10
- * must use upsert semantics: the daemon may call this before the first
11
- * transcript entry exists, and listAllSessions() must later return the same
12
- * extra snapshot.
13
- */
14
- updateSessionMetadata?(key: Omit<SessionKey, "subpath">, update: SessionMetadataUpdate): Promise<void>;
15
- }
16
- export interface DaemonSessionSummary {
17
- key: SessionKey;
18
- title: string;
19
- lastActiveAt: string;
20
- cwd: string;
21
- extra?: SessionExtra;
22
- }
23
- export interface DaemonSessionStoreRpcOptions {
24
- callbackTimeoutMs?: number;
25
- maxEntriesPerPage?: number;
26
- maxPayloadBytes?: number;
27
- }
28
- /**
29
- * Returns the UTF-8 wire size of one SessionStore entry when transported as a
30
- * single-item page or append batch, including the surrounding array brackets.
31
- */
32
- export declare function measureSessionStoreEntryPayloadBytes(entry: SessionStoreEntry): number;
33
- export type DaemonSessionStoreRequestHandler = DaemonRequestHandler & {
34
- dispose(): Promise<void>;
35
- };
36
- export declare class DaemonSessionStoreRpcError extends DaemonRequestError {
37
- constructor(options: {
38
- code: string;
39
- message: string;
40
- retryable?: boolean;
41
- operation?: string;
42
- details?: JsonObject;
43
- });
44
- }
45
- export declare function createDaemonSessionStoreRequestHandler(store: DaemonSessionStore, options?: DaemonSessionStoreRpcOptions): DaemonSessionStoreRequestHandler;