@qoder-ai/qoder-agent-sdk 1.0.25 → 1.0.26

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.
@@ -21,6 +21,7 @@ import type { AccountInfo, FastModeState, ModelInfo, SessionCreditsUsage, SlashC
21
21
  import type { PluginDetails } from '../types/plugins.js';
22
22
  import type { ModelPromptPatches } from './model-prompt-patches.js';
23
23
  import type { EffectiveMemoryConfig, MemoryGenerationGateInput, SerializableMemoryConfig } from './memory.js';
24
+ import type { EffectiveEvolutionConfig, SkillEvolutionGateInput, SerializableEvolutionConfig } from './skill-evolution.js';
24
25
  export type SDKControlRequest = {
25
26
  type: 'control_request';
26
27
  request_id: string;
@@ -115,6 +116,7 @@ export type SDKControlInitializeRequest = {
115
116
  initializeTimeoutMs?: number;
116
117
  agentProgressSummaries?: boolean;
117
118
  memory?: SerializableMemoryConfig;
119
+ evolution?: SerializableEvolutionConfig;
118
120
  hooks?: Partial<Record<HookEvent, Array<{
119
121
  hookCallbackIds: string[];
120
122
  timeout?: number;
@@ -133,9 +135,17 @@ export type SDKControlMemoryShouldGenerateRequest = {
133
135
  callbackId: string;
134
136
  input: MemoryGenerationGateInput;
135
137
  };
138
+ export type SDKControlSkillEvolutionShouldReviewRequest = {
139
+ subtype: 'skill_evolution_should_review';
140
+ callbackId: string;
141
+ input: SkillEvolutionGateInput;
142
+ };
136
143
  export type SDKControlFlushMemoryRequest = {
137
144
  type: 'flush_memory';
138
145
  };
146
+ export type SDKControlFlushSkillEvolutionRequest = {
147
+ type: 'flush_skill_evolution';
148
+ };
139
149
  export type SDKControlRefreshMemoryRequest = {
140
150
  type: 'refresh_memory';
141
151
  };
@@ -253,6 +263,10 @@ export type SDKControlGetModelPolicyRequest = {
253
263
  turnIndex: number;
254
264
  /** Current agent ID (for subagent scenarios). */
255
265
  agentId?: string;
266
+ /** Stable agent type (for subagent scenarios). */
267
+ agentType?: string;
268
+ /** Model already selected by the CLI before applying host policy. */
269
+ resolvedModel?: string;
256
270
  /** Context window usage ratio (0~1). */
257
271
  contextUsage?: number;
258
272
  /** Estimated input token count for this prompt. */
@@ -273,8 +287,8 @@ export type SDKControlGetModelPolicyRequest = {
273
287
  */
274
288
  export type SDKControlGetModelPolicyResponse = {
275
289
  type: 'get_model_policy';
276
- /** The model to use for this request. */
277
- model: string;
290
+ /** Optional model override. Omitted means keep the CLI-resolved model. */
291
+ model?: string;
278
292
  /** Optional per-request model policy parameters (contextWindow, reasoningEffort). */
279
293
  parameters?: Record<string, unknown>;
280
294
  /**
@@ -558,6 +572,25 @@ export type SDKControlBackgroundTasksResponse = {
558
572
  /** Present for a targeted tool use. Bulk backgrounding may omit the body. */
559
573
  backgrounded?: boolean;
560
574
  };
575
+ /** Structured snapshot of the main session's independent Plan Mode state. */
576
+ export type SDKPlanModeSnapshot = {
577
+ active: boolean;
578
+ };
579
+ /** Enter or leave Plan Mode without changing the tool permission mode. */
580
+ export type SDKControlSetPlanModeRequest = {
581
+ subtype: 'set_plan_mode';
582
+ active: boolean;
583
+ };
584
+ export type SDKControlSetPlanModeResponse = {
585
+ plan_mode: SDKPlanModeSnapshot;
586
+ };
587
+ /** Read the authoritative Plan Mode state from the running CLI session. */
588
+ export type SDKControlGetPlanModeRequest = {
589
+ subtype: 'get_plan_mode';
590
+ };
591
+ export type SDKControlGetPlanModeResponse = {
592
+ plan_mode: SDKPlanModeSnapshot;
593
+ };
561
594
  /** Lifecycle status of a goal (aligned with the CLI goal state machine). */
562
595
  export type SDKGoalStatus = 'active' | 'paused' | 'blocked' | 'usage_limited' | 'budget_limited' | 'complete';
563
596
  /** Structured snapshot of the current goal. */
@@ -599,7 +632,7 @@ export type SDKControlClearGoalRequest = {
599
632
  export type SDKControlClearGoalResponse = {
600
633
  cleared: boolean;
601
634
  };
602
- 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 | SDKControlMcpReconnectRequest | SDKControlMcpToggleRequest | SDKControlApplyFlagSettingsRequest | SDKControlGetSettingsRequest | SDKControlElicitationRequest | SDKControlEndSessionRequest | SDKControlChannelEnableRequest | SDKControlMcpInjectTokenRequest | SDKControlMcpAuthenticateRequest | SDKControlMcpOAuthCallbackUrlRequest | SDKControlMcpClearAuthRequest | SDKControlGetByokConfigRequest | SDKControlValidateByokModelRequest | SDKControlListPluginsRequest | SDKControlStopTaskRequest | SDKControlBackgroundTasksRequest | SDKControlMemoryShouldGenerateRequest | SDKControlFlushMemoryRequest | SDKControlRefreshMemoryRequest | SDKControlSetGoalRequest | SDKControlGetGoalRequest | SDKControlClearGoalRequest;
635
+ 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 | SDKControlMcpReconnectRequest | SDKControlMcpToggleRequest | SDKControlApplyFlagSettingsRequest | SDKControlGetSettingsRequest | SDKControlElicitationRequest | SDKControlEndSessionRequest | SDKControlChannelEnableRequest | SDKControlMcpInjectTokenRequest | SDKControlMcpAuthenticateRequest | SDKControlMcpOAuthCallbackUrlRequest | SDKControlMcpClearAuthRequest | SDKControlGetByokConfigRequest | SDKControlValidateByokModelRequest | SDKControlListPluginsRequest | SDKControlStopTaskRequest | SDKControlBackgroundTasksRequest | SDKControlMemoryShouldGenerateRequest | SDKControlFlushMemoryRequest | SDKControlSkillEvolutionShouldReviewRequest | SDKControlFlushSkillEvolutionRequest | SDKControlRefreshMemoryRequest | SDKControlSetPlanModeRequest | SDKControlGetPlanModeRequest | SDKControlSetGoalRequest | SDKControlGetGoalRequest | SDKControlClearGoalRequest;
603
636
  export type SDKControlInitializeResponse = {
604
637
  commands: SlashCommand[];
605
638
  agents: AgentInfo[];
@@ -616,6 +649,7 @@ export type SDKControlInitializeResponse = {
616
649
  /** Optional features implemented by the connected CLI control channel. */
617
650
  capabilities?: string[];
618
651
  memory?: EffectiveMemoryConfig;
652
+ evolution?: EffectiveEvolutionConfig;
619
653
  };
620
654
  export type SDKControlGetContextUsageResponse = {
621
655
  model: string;
@@ -18,10 +18,11 @@ export type { UUID, BetaMessage, BetaRawMessageStreamEvent, BetaUsage, BetaStopR
18
18
  export type { AICodeTrackingLaunchOptions, QoderAgentLaunchOptions, QoderCliFlagSettings, } from './launch.js';
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
+ export type { EffectiveEvolutionConfig, EffectiveSkillEvolutionConfig, SerializableEvolutionConfig, SerializableSkillEvolutionConfig, SerializableSkillEvolutionGenerationOptions, SkillEvolutionGateInput, SkillEvolutionGateResult, SkillEvolutionMode, SkillEvolutionResult, SkillEvolutionSuggestion, } from './skill-evolution.js';
21
22
  export type { PermissionMode, PermissionBehavior, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue, PermissionUpdate, PermissionResult, } from './permissions.js';
22
23
  export type { McpStdioServerConfig, McpSSEServerConfig, McpHttpServerConfig, McpSdkServerConfig, McpServerConfigForProcessTransport, McpServerStatus, McpServerStatusConfig, McpSetServersResult, OAuthToken, } from './mcp.js';
23
- export type { SDKAssistantMessage, SDKToolNonExecutionKind, SDKToolResultMeta, SDKUserMessage, SDKUserMessageReplay, SDKResultSuccess, SDKResultError, SDKResultMessage, SDKFileAttachment, SDKSystemMessage, SDKPartialAssistantMessage, SDKCompactBoundaryMessage, SDKStatusMessage, SDKAPIRetryMessage, SDKModelQueueStatusMessage, SDKControlRequestProgressMessage, SDKHookStartedMessage, SDKHookProgressMessage, SDKHookResponseMessage, SDKTaskNotificationMessage, SDKTaskStartedMessage, SDKTaskProgressMessage, SDKTaskUpdatedMessage, SDKBackgroundTasksChangedMessage, SDKSessionStateChangedMessage, SDKGoalUpdatedMessage, SDKGoalClearedMessage, SDKSessionTitleChangedMessage, SDKFilesPersistedEvent, SDKElicitationCompleteMessage, SDKPromptSuggestionMessage, SDKCloudAgentEventMessage, SDKMemoryGenerationMessage, SDKMemoryConsumptionMessage, SDKPermissionDenial, SDKPermissionDeniedMessage, SDKPermissionDeniedReasonType, SDKMessage, } from './messages.js';
24
+ export type { SDKAssistantMessage, SDKToolNonExecutionKind, SDKToolResultMeta, SDKUserMessage, SDKUserMessageReplay, SDKResultSuccess, SDKResultError, SDKResultMessage, SDKFileAttachment, SDKSystemMessage, SDKPartialAssistantMessage, SDKCompactBoundaryMessage, SDKStatusMessage, SDKAPIRetryMessage, SDKModelQueueStatusMessage, SDKControlRequestProgressMessage, 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';
24
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';
25
26
  export type { AgentMcpServerSpec, AgentDefinition, AgentInfo, AgentMemoryScope, } from './agents.js';
26
27
  export { QoderModelPurpose } from './control.js';
27
- export type { SDKControlRequest, SDKControlResponse, SDKControlCancelRequest, 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, SDKControlMcpReconnectRequest, SDKControlMcpToggleRequest, SDKControlApplyFlagSettingsRequest, SDKControlGetSettingsRequest, SDKControlElicitationRequest, SDKControlEndSessionRequest, SDKControlChannelEnableRequest, SDKControlMcpInjectTokenRequest, SDKControlMcpAuthenticateRequest, SDKControlMcpOAuthCallbackUrlRequest, SDKControlMcpClearAuthRequest, SDKGoalStatus, SDKGoalSnapshot, SDKControlSetGoalRequest, SDKControlSetGoalResponse, SDKControlGetGoalRequest, SDKControlGetGoalResponse, SDKControlClearGoalRequest, SDKControlClearGoalResponse, SDKControlRequestInner, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlReloadPluginsResponse, SDKControlMcpStatusResponse, SDKControlMcpSetServersResponse, SDKControlMcpAuthenticateResponse, SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, BYOKModelValidationInput, BYOKProviderInfo, BYOKFieldInfo, BYOKModelTypeInfo, BYOKModelInfo, CustomModel, SDKControlListPluginsRequest, SDKControlListPluginsResponse, SDKControlStopTaskRequest, SDKControlBackgroundTasksRequest, SDKControlBackgroundTasksResponse, SDKControlMemoryShouldGenerateRequest, SDKControlFlushMemoryRequest, SDKControlRefreshMemoryRequest, SDKKeepAliveMessage, StdoutMessage, ControlMcpServerConfig, } from './control.js';
28
+ export type { SDKControlRequest, SDKControlResponse, SDKControlCancelRequest, 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, SDKControlMcpReconnectRequest, SDKControlMcpToggleRequest, SDKControlApplyFlagSettingsRequest, SDKControlGetSettingsRequest, SDKControlElicitationRequest, SDKControlEndSessionRequest, SDKControlChannelEnableRequest, SDKControlMcpInjectTokenRequest, SDKControlMcpAuthenticateRequest, SDKControlMcpOAuthCallbackUrlRequest, SDKControlMcpClearAuthRequest, SDKPlanModeSnapshot, SDKControlSetPlanModeRequest, SDKControlSetPlanModeResponse, SDKControlGetPlanModeRequest, SDKControlGetPlanModeResponse, SDKGoalStatus, SDKGoalSnapshot, SDKControlSetGoalRequest, SDKControlSetGoalResponse, SDKControlGetGoalRequest, SDKControlGetGoalResponse, SDKControlClearGoalRequest, SDKControlClearGoalResponse, SDKControlRequestInner, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlReloadPluginsResponse, SDKControlMcpStatusResponse, SDKControlMcpSetServersResponse, SDKControlMcpAuthenticateResponse, SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, BYOKModelValidationInput, BYOKProviderInfo, BYOKFieldInfo, BYOKModelTypeInfo, BYOKModelInfo, CustomModel, SDKControlListPluginsRequest, SDKControlListPluginsResponse, SDKControlStopTaskRequest, SDKControlBackgroundTasksRequest, SDKControlBackgroundTasksResponse, SDKControlMemoryShouldGenerateRequest, SDKControlFlushMemoryRequest, SDKControlRefreshMemoryRequest, SDKControlSkillEvolutionShouldReviewRequest, SDKControlFlushSkillEvolutionRequest, SDKKeepAliveMessage, StdoutMessage, ControlMcpServerConfig, } from './control.js';
@@ -1 +1 @@
1
- var a="1.2.0";var r=["l1StaticCheck","l2LightweightScan","l3DeepScan"];function i(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("securityScan must be an object.");let t=new Set(r),s=Object.keys(e).filter(o=>!t.has(o));if(s.length>0)throw new TypeError(`securityScan contains unknown option${s.length===1?"":"s"}: ${s.join(", ")}.`);for(let o of r){let n=e[o];if(n!==void 0&&typeof n!="boolean")throw new TypeError(`securityScan.${o} must be a boolean.`)}return{l1StaticCheck:e.l1StaticCheck??!1,l2LightweightScan:e.l2LightweightScan??!1,l3DeepScan:e.l3DeepScan??!1}}function p(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function l(e={}){let t={...e.settings??{}},s=e.aiCodeTracking?.installGitCommitHook;if(s!==void 0){let o=t.aiCodeTracking;t.aiCodeTracking={...p(o)?o:{},installGitCommitHook:s}}return e.securityScan!==void 0&&(t.securityScan=i(e.securityScan)),t}function u(e={}){let t=l(e);return Object.keys(t).length===0?[]:["--settings",JSON.stringify(t)]}var S={Main:"main",Plan:"plan",Task:"task",Compact:"compact",Title:"title",Suggestion:"suggestion",Generate:"generate",HookPrompt:"hook_prompt",Subagent:"subagent",WebFetch:"web_fetch",ImageGen:"image_gen",Compression:"compression",Utility:"utility"};export{S as QoderModelPurpose,a as WIRE_PROTOCOL_VERSION,l as buildQoderCliFlagSettings,u as buildQoderCliFlagSettingsArgs};
1
+ var a="1.3.0";var r=["l1StaticCheck","l2LightweightScan","l3DeepScan"];function i(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("securityScan must be an object.");let t=new Set(r),n=Object.keys(e).filter(o=>!t.has(o));if(n.length>0)throw new TypeError(`securityScan contains unknown option${n.length===1?"":"s"}: ${n.join(", ")}.`);for(let o of r){let s=e[o];if(s!==void 0&&typeof s!="boolean")throw new TypeError(`securityScan.${o} must be a boolean.`)}return{l1StaticCheck:e.l1StaticCheck??!1,l2LightweightScan:e.l2LightweightScan??!1,l3DeepScan:e.l3DeepScan??!1}}function p(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function l(e={}){let t={...e.settings??{}},n=e.aiCodeTracking?.installGitCommitHook;if(n!==void 0){let o=t.aiCodeTracking;t.aiCodeTracking={...p(o)?o:{},installGitCommitHook:n}}return e.securityScan!==void 0&&(t.securityScan=i(e.securityScan)),t}function u(e={}){let t=l(e);return Object.keys(t).length===0?[]:["--settings",JSON.stringify(t)]}var S={Main:"main",Plan:"plan",Task:"task",Compact:"compact",Title:"title",Suggestion:"suggestion",Generate:"generate",HookPrompt:"hook_prompt",Subagent:"subagent",WebFetch:"web_fetch",ImageGen:"image_gen",Compression:"compression",Utility:"utility"};export{S as QoderModelPurpose,a as WIRE_PROTOCOL_VERSION,l as buildQoderCliFlagSettings,u as buildQoderCliFlagSettingsArgs};
@@ -14,7 +14,8 @@
14
14
  import type { BetaMessage, BetaRawMessageStreamEvent, MessageParam, UUID, SDKAssistantMessageError, FastModeState, ApiKeySource, ModelUsage, NonNullableUsage, PluginInfo, SDKStatus } from './common.js';
15
15
  import type { PermissionMode } from './permissions.js';
16
16
  import type { MemoryConsumptionResult, MemoryGenerationResult } from './memory.js';
17
- import type { SDKGoalSnapshot } from './control.js';
17
+ import type { SkillEvolutionResult } from './skill-evolution.js';
18
+ import type { SDKGoalSnapshot, SDKPlanModeSnapshot } from './control.js';
18
19
  export type SDKAssistantMessage = {
19
20
  type: 'assistant';
20
21
  message: BetaMessage;
@@ -365,6 +366,17 @@ export type SDKBackgroundTasksChangedMessage = {
365
366
  uuid: UUID;
366
367
  session_id: string;
367
368
  };
369
+ /**
370
+ * The main session entered or left Plan Mode.
371
+ * Requires the CLI `plan_mode_v1` capability.
372
+ */
373
+ export type SDKPlanModeChangedMessage = {
374
+ type: 'system';
375
+ subtype: 'plan_mode_changed';
376
+ plan_mode: SDKPlanModeSnapshot;
377
+ uuid: UUID;
378
+ session_id: string;
379
+ };
368
380
  /**
369
381
  * Goal state changed (created / redirected / transitioned / budget update).
370
382
  * Requires the CLI `goal_v1` capability.
@@ -458,6 +470,13 @@ export type SDKMemoryConsumptionMessage = {
458
470
  uuid: UUID;
459
471
  session_id: string;
460
472
  };
473
+ export type SDKSkillEvolutionMessage = {
474
+ type: 'system';
475
+ subtype: 'skill_evolution';
476
+ result: SkillEvolutionResult;
477
+ uuid: UUID;
478
+ session_id: string;
479
+ };
461
480
  export type SDKPermissionDenial = {
462
481
  tool_name: string;
463
482
  tool_use_id: string;
@@ -479,4 +498,4 @@ export type SDKPermissionDeniedMessage = {
479
498
  decision_reason_type?: SDKPermissionDeniedReasonType;
480
499
  decision_reason?: string;
481
500
  };
482
- export type SDKMessage = SDKAssistantMessage | SDKUserMessage | SDKUserMessageReplay | SDKResultMessage | SDKSystemMessage | SDKPermissionDeniedMessage | SDKPartialAssistantMessage | SDKCompactBoundaryMessage | SDKStatusMessage | SDKAPIRetryMessage | SDKModelQueueStatusMessage | SDKControlRequestProgressMessage | SDKHookStartedMessage | SDKHookProgressMessage | SDKHookResponseMessage | SDKTaskNotificationMessage | SDKTaskStartedMessage | SDKTaskProgressMessage | SDKTaskUpdatedMessage | SDKBackgroundTasksChangedMessage | SDKSessionStateChangedMessage | SDKGoalUpdatedMessage | SDKGoalClearedMessage | SDKSessionTitleChangedMessage | SDKFilesPersistedEvent | SDKElicitationCompleteMessage | SDKPromptSuggestionMessage | SDKCloudAgentEventMessage | SDKMemoryGenerationMessage | SDKMemoryConsumptionMessage;
501
+ export type SDKMessage = SDKAssistantMessage | SDKUserMessage | SDKUserMessageReplay | SDKResultMessage | SDKSystemMessage | SDKPermissionDeniedMessage | SDKPartialAssistantMessage | SDKCompactBoundaryMessage | SDKStatusMessage | SDKAPIRetryMessage | SDKModelQueueStatusMessage | SDKControlRequestProgressMessage | SDKHookStartedMessage | SDKHookProgressMessage | SDKHookResponseMessage | SDKTaskNotificationMessage | SDKTaskStartedMessage | SDKTaskProgressMessage | SDKTaskUpdatedMessage | SDKBackgroundTasksChangedMessage | SDKSessionStateChangedMessage | SDKPlanModeChangedMessage | SDKGoalUpdatedMessage | SDKGoalClearedMessage | SDKSessionTitleChangedMessage | SDKFilesPersistedEvent | SDKElicitationCompleteMessage | SDKPromptSuggestionMessage | SDKCloudAgentEventMessage | SDKMemoryGenerationMessage | SDKMemoryConsumptionMessage | SDKSkillEvolutionMessage;
@@ -0,0 +1,67 @@
1
+ import type { NonNullableUsage } from './common.js';
2
+ export type SkillEvolutionMode = 'native' | 'custom';
3
+ export type SkillEvolutionGateInput = {
4
+ sessionId: string;
5
+ requestId?: string;
6
+ requestSetId?: string;
7
+ turnIndex: number;
8
+ cwd: string;
9
+ prompt: string;
10
+ response: string;
11
+ };
12
+ export type SkillEvolutionGateResult = {
13
+ run: boolean;
14
+ reason?: string;
15
+ };
16
+ export type SerializableSkillEvolutionGenerationOptions = {
17
+ enabled?: boolean;
18
+ prompt?: string;
19
+ maxSuggestions?: number;
20
+ turnComplete?: {
21
+ enabled?: boolean;
22
+ reviewThreshold?: number;
23
+ shouldReviewCallbackId?: string;
24
+ timeoutMs?: number;
25
+ onGateError?: 'skip' | 'report_failed';
26
+ };
27
+ };
28
+ export type SerializableSkillEvolutionConfig = {
29
+ requester: 'sdk';
30
+ mode: SkillEvolutionMode;
31
+ generation?: SerializableSkillEvolutionGenerationOptions;
32
+ };
33
+ export type SerializableEvolutionConfig = {
34
+ skill?: SerializableSkillEvolutionConfig;
35
+ };
36
+ export type EffectiveSkillEvolutionConfig = {
37
+ enabled: boolean;
38
+ requester: 'sdk';
39
+ mode: SkillEvolutionMode;
40
+ generationEnabled: boolean;
41
+ turnCompleteEnabled: boolean;
42
+ reviewThreshold: number;
43
+ cooldownMs: number;
44
+ maxSuggestions: number;
45
+ };
46
+ export type EffectiveEvolutionConfig = {
47
+ skill?: EffectiveSkillEvolutionConfig;
48
+ };
49
+ export type SkillEvolutionSuggestion = {
50
+ skillName: string;
51
+ action: 'create' | 'update';
52
+ summary: string;
53
+ confidence: number;
54
+ rationale?: string;
55
+ };
56
+ export type SkillEvolutionResult = {
57
+ status: 'suggested' | 'no_change' | 'skipped' | 'failed';
58
+ attemptId: string;
59
+ reason?: string;
60
+ origin: 'turn_complete';
61
+ reviewScore?: number;
62
+ sourceRequestIds?: string[];
63
+ modelRequestIds?: string[];
64
+ suggestions: SkillEvolutionSuggestion[];
65
+ durationMs: number;
66
+ usage?: NonNullableUsage;
67
+ };
@@ -21,5 +21,5 @@
21
21
  * `system/init` JSONL message. The SDK validates it against the
22
22
  * version it was built against using semver.
23
23
  */
24
- export declare const WIRE_PROTOCOL_VERSION: "1.2.0";
24
+ export declare const WIRE_PROTOCOL_VERSION: "1.3.0";
25
25
  export type WireProtocolVersion = string;
@@ -26,7 +26,7 @@ import type { Transport } from '../core/transport.js';
26
26
  import type { SDKMessage, SDKUserMessage } from '../types/messages.js';
27
27
  import type { InternalQuery, OnElicitation } from '../types/options.js';
28
28
  import type { FetchJobToken, FetchServiceAccountToken } from '../types/auth.js';
29
- import type { SDKGoalSnapshot, SDKGoalStatus, SDKControlInterruptResponse, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlGenerateSessionTitleResponse, AskSideQuestionOptions, SideQuestionResult, SDKControlAddDirectoriesResponse, SDKControlReloadPluginsResponse } from '../types/control.js';
29
+ import type { SDKPlanModeSnapshot, SDKGoalSnapshot, SDKGoalStatus, SDKControlInterruptResponse, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlGenerateSessionTitleResponse, AskSideQuestionOptions, SideQuestionResult, SDKControlAddDirectoriesResponse, SDKControlReloadPluginsResponse } from '../types/control.js';
30
30
  import type { PermissionMode, CanUseTool } from '../types/permissions.js';
31
31
  import type { HookCallbackMatcher } from '../types/hooks.js';
32
32
  import type { HookEvent as InternalHookEvent } from '../protocol/index.js';
@@ -41,6 +41,7 @@ import type { PluginDetails } from '../types/plugins.js';
41
41
  import type { ModelInfo, SlashCommand, AccountInfo, UsageInfo } from '../types/common.js';
42
42
  import type { ModelPolicyProvider } from '../types/model-policy-provider.js';
43
43
  import type { MemoryRuntimeCallbacks, SerializableMemoryConfig } from '../types/memory.js';
44
+ import type { SkillEvolutionRuntimeCallbacks, SerializableEvolutionConfig } from '../types/skill-evolution.js';
44
45
  import type { BYOKModelValidationInput, BYOKProviderInfo } from '../types/byok.js';
45
46
  /** Init config passed to the initialize control request. */
46
47
  type InitConfig = {
@@ -49,9 +50,11 @@ type InitConfig = {
49
50
  modelRequestPatches?: ModelPromptPatches;
50
51
  agents?: Record<string, AgentDefinition>;
51
52
  skills?: string[];
53
+ planMode?: boolean;
52
54
  promptSuggestions?: boolean;
53
55
  enableFileCheckpointing?: boolean;
54
56
  memory?: SerializableMemoryConfig;
57
+ evolution?: SerializableEvolutionConfig;
55
58
  customContext?: Record<string, string>;
56
59
  };
57
60
  export declare class QueryRunner implements InternalQuery {
@@ -60,6 +63,7 @@ export declare class QueryRunner implements InternalQuery {
60
63
  private static readonly BACKGROUND_TASKS_CAPABILITY;
61
64
  private static readonly SIDE_QUESTION_CAPABILITY;
62
65
  private static readonly GOAL_CAPABILITY;
66
+ private static readonly PLAN_MODE_CAPABILITY;
63
67
  private readonly transport;
64
68
  private readonly inputStream;
65
69
  private readonly pendingRequests;
@@ -85,9 +89,16 @@ export declare class QueryRunner implements InternalQuery {
85
89
  private readonly resolveModelTimeoutMs;
86
90
  private readonly transcriptMirrorBatcher?;
87
91
  private readonly memoryCallbacks?;
92
+ private readonly skillEvolutionCallbacks?;
88
93
  private initResponse?;
89
94
  private initializationPromise?;
90
95
  private resultMessage?;
96
+ /**
97
+ * True only while the latest completed turn is an error result and no newer
98
+ * user or assistant turn has started. A following exit code 1 is the shell
99
+ * status for that structured result, not a second SDK failure.
100
+ */
101
+ private pendingErrorResultExit;
91
102
  private readLoopPromise?;
92
103
  private closed;
93
104
  private authExpiredFired;
@@ -97,9 +108,10 @@ export declare class QueryRunner implements InternalQuery {
97
108
  private firstResultReceived;
98
109
  private firstResultReceivedResolve?;
99
110
  private memoryFlushPromise?;
100
- private memoryEndInputPromise?;
111
+ private endInputFlushPromise?;
112
+ private skillEvolutionFlushPromise?;
101
113
  private closePromise?;
102
- 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);
114
+ 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);
103
115
  private getRecord;
104
116
  private normalizeLogPreview;
105
117
  private extractMessagePreview;
@@ -121,10 +133,12 @@ export declare class QueryRunner implements InternalQuery {
121
133
  * this method finishes and signals the consumer queue.
122
134
  */
123
135
  private readMessages;
136
+ private isStructuredResultExit;
124
137
  private notifyAuthExpiredIfNeeded;
125
138
  private dispatchMemoryCallbacks;
126
- private flushMemoryBeforeEndInput;
127
- private performFlushMemoryBeforeEndInput;
139
+ private dispatchSkillEvolutionCallbacks;
140
+ private flushBeforeEndInput;
141
+ private performFlushBeforeEndInput;
128
142
  /**
129
143
  * Send a control request to the CLI and wait for the response.
130
144
  *
@@ -239,6 +253,10 @@ export declare class QueryRunner implements InternalQuery {
239
253
  getGoal(): Promise<SDKGoalSnapshot | null>;
240
254
  /** Clear the session goal. Returns whether a goal was actually cleared. */
241
255
  clearGoal(): Promise<boolean>;
256
+ /** Enter or leave Plan Mode without changing the current permission mode. */
257
+ setPlanMode(active: boolean): Promise<SDKPlanModeSnapshot>;
258
+ /** Read the authoritative Plan Mode state from the running CLI session. */
259
+ getPlanMode(): Promise<SDKPlanModeSnapshot>;
242
260
  private requireCliCapability;
243
261
  /**
244
262
  * Set the permission mode.
@@ -339,6 +357,9 @@ export declare class QueryRunner implements InternalQuery {
339
357
  */
340
358
  seedReadState(path: string, mtime: number): Promise<void>;
341
359
  flushMemory(): Promise<void>;
360
+ flushSkillEvolution(): Promise<void>;
361
+ private performSkillEvolutionFlush;
362
+ private requireSkillEvolutionEnabled;
342
363
  private performMemoryFlush;
343
364
  refreshMemory(): Promise<void>;
344
365
  private requireSdkMemoryEnabled;
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "version": 1,
3
3
  "brand": "global",
4
- "sdkVersion": "1.0.25",
5
- "qoderCliVersion": "1.1.26",
4
+ "sdkVersion": "1.0.26",
5
+ "qoderCliVersion": "1.1.31",
6
6
  "defaultTransport": "worker",
7
7
  "workerRuntime": {
8
8
  "packaged": false,
9
9
  "delivery": "install",
10
10
  "source": "qodercli-worker-runtime",
11
- "urlTemplate": "https://download.qoder.com/qodercli/releases/1.1.26/qodercli-worker-runtime-{target}.tgz",
11
+ "urlTemplate": "https://download.qoder.com/qodercli/releases/1.1.31/qodercli-worker-runtime-{target}.tgz",
12
12
  "artifactNameTemplate": "qodercli-worker-runtime-{target}.tgz",
13
- "sdkVersion": "1.0.25",
14
- "qoderCliVersion": "1.1.26"
13
+ "sdkVersion": "1.0.26",
14
+ "qoderCliVersion": "1.1.31"
15
15
  }
16
16
  }
@@ -1,4 +1,41 @@
1
- import type { SDKSessionInfo, SessionMessage, ListSessionsOptions, GetSessionInfoOptions, GetSessionMessagesOptions, GetSubagentMessagesOptions, ListSubagentsOptions, SessionMutationOptions } from '../types/session.js';
1
+ import type { SDKSessionInfo, SessionMessage, ListSessionsOptions, GetSessionInfoOptions, GetSessionMessagesOptions, GetSubagentMessagesOptions, ListSubagentsOptions, SessionMutationOptions, SessionMessageView } from '../types/session.js';
2
+ type TranscriptEntry = {
3
+ type: string;
4
+ uuid: string;
5
+ sessionId?: string;
6
+ session_id?: string;
7
+ parentUuid?: string | null;
8
+ logicalParentUuid?: string | null;
9
+ isSidechain?: boolean;
10
+ isMeta?: boolean;
11
+ isCompactSummary?: boolean;
12
+ teamName?: string;
13
+ timestamp?: string;
14
+ subtype?: string;
15
+ message?: unknown;
16
+ isApiErrorMessage?: unknown;
17
+ toolUseResult?: unknown;
18
+ toolDenialKind?: unknown;
19
+ userFeedback?: unknown;
20
+ compactMetadata?: {
21
+ trigger?: 'manual' | 'auto';
22
+ preTokens?: number;
23
+ pre_tokens?: number;
24
+ postTokens?: number;
25
+ post_tokens?: number;
26
+ messagesSummarized?: number;
27
+ messages_summarized?: number;
28
+ durationMs?: number;
29
+ duration_ms?: number;
30
+ preservedSegment?: {
31
+ headUuid?: string;
32
+ anchorUuid?: string;
33
+ tailUuid?: string;
34
+ };
35
+ };
36
+ };
37
+ /** Builds one active transcript lineage for SDK readers and persisted forks. */
38
+ export declare function buildSessionTranscriptChain(entries: readonly unknown[], sessionId: string, view: SessionMessageView): TranscriptEntry[];
2
39
  /**
3
40
  * List sessions with metadata.
4
41
  *
@@ -37,8 +74,8 @@ export declare function getSessionInfo(sessionId: string, options?: GetSessionIn
37
74
  * Parses the JSONL transcript, follows the session's persisted active leaf
38
75
  * (falling back to the latest main leaf for legacy transcripts), and returns
39
76
  * visible user/assistant messages in chronological order. Supports pagination
40
- * via offset/limit. Set `includeSystemMessages` to include chain system entries
41
- * such as compact boundaries.
77
+ * via offset/limit. Runtime view is the default. Historical view crosses
78
+ * compact boundaries while omitting compact boundary and summary records.
42
79
  *
43
80
  * @param sessionId - The session UUID
44
81
  * @param options.dir - Restrict search to this working directory
@@ -99,4 +136,5 @@ export declare function listSubagents(sessionId: string, options?: ListSubagents
99
136
  */
100
137
  export declare function getSubagentMessages(sessionId: string, agentId: string, options?: GetSubagentMessagesOptions): Promise<SessionMessage[]>;
101
138
  /** Delete a session and all child transcripts from a local or external store. */
102
- export declare function deleteSession(sessionId: string, options?: SessionMutationOptions): Promise<void>;
139
+ export declare function deleteSession(sessionId: string, options?: SessionMutationOptions): Promise<void>;
140
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { SkillEvolutionOptions, PreparedSkillEvolutionOptions } from '../types/skill-evolution.js';
2
+ export declare function prepareSkillEvolutionOptions(options: SkillEvolutionOptions | undefined): PreparedSkillEvolutionOptions;
@@ -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, SDKControlSetGoalRequest, SDKControlSetGoalResponse, SDKControlGetGoalRequest, SDKControlGetGoalResponse, SDKControlClearGoalRequest, SDKControlClearGoalResponse, SDKGoalSnapshot, SDKGoalStatus, SDKControlGenerateSessionTitleRequest, SDKControlGenerateSessionTitleResponse, SideQuestionHistoryEntry, AskSideQuestionOptions, SideQuestionRefusalFallback, SideQuestionResult, SDKControlSideQuestionRequest, SDKControlSideQuestionResponse, SDKControlAddDirectoriesRequest, SDKControlAddDirectoriesResponse, SDKControlGetModelPolicyRequest, SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, SDKControlSetMaxThinkingTokensRequest, SDKControlMcpStatusRequest, SDKControlGetContextUsageRequest, SDKControlGetUsageInfoRequest, SDKControlGetUsageInfoResponse, SDKControlAccountInfoRequest, SDKHookCallbackRequest, SDKControlMcpMessageRequest, SDKControlRewindFilesRequest, SDKControlRewindRequest, SDKControlCancelAsyncMessageRequest, SDKControlSeedReadStateRequest, SDKControlMcpSetServersRequest, SDKControlReloadPluginsRequest, SDKControlMcpReconnectRequest, SDKControlMcpToggleRequest, SDKControlApplyFlagSettingsRequest, SDKControlGetSettingsRequest, SDKControlElicitationRequest, SDKControlEndSessionRequest, SDKControlChannelEnableRequest, SDKControlMcpInjectTokenRequest, SDKControlMcpAuthenticateRequest, SDKControlMcpOAuthCallbackUrlRequest, SDKControlMcpClearAuthRequest, SDKControlRequestInner, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlReloadPluginsResponse, SDKControlListPluginsRequest, SDKControlListPluginsResponse, SDKControlStopTaskRequest, SDKControlBackgroundTasksRequest, SDKControlBackgroundTasksResponse, SDKControlMemoryShouldGenerateRequest, SDKControlFlushMemoryRequest, SDKControlRefreshMemoryRequest, SDKControlMcpStatusResponse, SDKControlMcpSetServersResponse, SDKKeepAliveMessage, StdoutMessage, ControlMcpServerConfig, BYOKModelValidationInput, } from '../protocol/index.js';
8
+ export type { SDKControlRequest, SDKControlResponse, SDKControlCancelRequest, SDKControlInterruptRequest, SDKControlInterruptResponse, SDKControlPermissionRequest, SDKControlInitializeRequest, SDKControlSetPermissionModeRequest, SDKControlSetModelRequest, SDKPlanModeSnapshot, SDKControlSetPlanModeRequest, SDKControlSetPlanModeResponse, SDKControlGetPlanModeRequest, SDKControlGetPlanModeResponse, SDKControlSetGoalRequest, SDKControlSetGoalResponse, SDKControlGetGoalRequest, SDKControlGetGoalResponse, SDKControlClearGoalRequest, SDKControlClearGoalResponse, SDKGoalSnapshot, SDKGoalStatus, SDKControlGenerateSessionTitleRequest, SDKControlGenerateSessionTitleResponse, SideQuestionHistoryEntry, AskSideQuestionOptions, SideQuestionRefusalFallback, SideQuestionResult, SDKControlSideQuestionRequest, SDKControlSideQuestionResponse, SDKControlAddDirectoriesRequest, SDKControlAddDirectoriesResponse, SDKControlGetModelPolicyRequest, SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, SDKControlSetMaxThinkingTokensRequest, SDKControlMcpStatusRequest, SDKControlGetContextUsageRequest, SDKControlGetUsageInfoRequest, SDKControlGetUsageInfoResponse, SDKControlAccountInfoRequest, SDKHookCallbackRequest, SDKControlMcpMessageRequest, SDKControlRewindFilesRequest, SDKControlRewindRequest, SDKControlCancelAsyncMessageRequest, SDKControlSeedReadStateRequest, SDKControlMcpSetServersRequest, SDKControlReloadPluginsRequest, SDKControlMcpReconnectRequest, SDKControlMcpToggleRequest, SDKControlApplyFlagSettingsRequest, SDKControlGetSettingsRequest, SDKControlElicitationRequest, SDKControlEndSessionRequest, SDKControlChannelEnableRequest, SDKControlMcpInjectTokenRequest, SDKControlMcpAuthenticateRequest, SDKControlMcpOAuthCallbackUrlRequest, SDKControlMcpClearAuthRequest, SDKControlRequestInner, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlReloadPluginsResponse, 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,11 +5,11 @@
5
5
  * `../protocol/`. The SDK-local HookEvent/HookInput contract is
6
6
  * intentionally narrowed to events supported by SDK user configuration.
7
7
  */
8
- export type { BaseHookInput, PreToolUseHookInput, PostToolUseHookInput, PostToolUseFailureHookInput, UserPromptSubmitHookInput, SessionStartHookInput, SessionEndHookInput, StopHookInput, SubagentStartHookInput, SubagentStopHookInput, PreCompactHookInput, PostCompactHookInput, PermissionRequestHookInput, PermissionDeniedHookInput, InstructionsLoadedHookInput, CwdChangedHookInput, FileChangedHookInput, PostToolUseFailureHookSpecificOutput, UserPromptSubmitHookSpecificOutput, SessionStartHookSpecificOutput, SubagentStartHookSpecificOutput, PermissionRequestHookSpecificOutput, CwdChangedHookSpecificOutput, FileChangedHookSpecificOutput, } from '../protocol/index.js';
9
- import type { AsyncHookJSONOutput as ProtocolAsyncHookJSONOutput, CwdChangedHookSpecificOutput, FileChangedHookSpecificOutput, HookInput as ProtocolHookInput, PostToolUseHookSpecificOutput as ProtocolPostToolUseHookSpecificOutput, PostToolUseFailureHookSpecificOutput, PreToolUseHookSpecificOutput as ProtocolPreToolUseHookSpecificOutput, PermissionRequestHookSpecificOutput, SessionStartHookSpecificOutput, SubagentStartHookSpecificOutput, SyncHookJSONOutput as ProtocolSyncHookJSONOutput, UserPromptSubmitHookSpecificOutput } from '../protocol/index.js';
8
+ export type { BaseHookInput, PreToolUseHookInput, PostToolUseHookInput, PostToolUseFailureHookInput, UserPromptSubmitHookInput, SessionStartHookInput, SessionEndHookInput, StopHookInput, SubagentStartHookInput, SubagentStopHookInput, PreCompactHookInput, PostCompactHookInput, PermissionRequestHookInput, PermissionDeniedHookInput, InstructionsLoadedHookInput, WorktreeCreateHookInput, WorktreeRemoveHookInput, CwdChangedHookInput, FileChangedHookInput, PostToolUseFailureHookSpecificOutput, UserPromptSubmitHookSpecificOutput, SessionStartHookSpecificOutput, SubagentStartHookSpecificOutput, PermissionRequestHookSpecificOutput, WorktreeCreateHookSpecificOutput, CwdChangedHookSpecificOutput, FileChangedHookSpecificOutput, } from '../protocol/index.js';
9
+ import type { AsyncHookJSONOutput as ProtocolAsyncHookJSONOutput, CwdChangedHookSpecificOutput, FileChangedHookSpecificOutput, HookInput as ProtocolHookInput, PostToolUseHookSpecificOutput as ProtocolPostToolUseHookSpecificOutput, PostToolUseFailureHookSpecificOutput, PreToolUseHookSpecificOutput as ProtocolPreToolUseHookSpecificOutput, PermissionRequestHookSpecificOutput, SessionStartHookSpecificOutput, SubagentStartHookSpecificOutput, WorktreeCreateHookSpecificOutput, SyncHookJSONOutput as ProtocolSyncHookJSONOutput, UserPromptSubmitHookSpecificOutput } from '../protocol/index.js';
10
10
  import type { HookEventConst } from '../core/constants.js';
11
11
  /**
12
- * The 16 publicly supported hook events available to SDK users.
12
+ * The publicly supported hook events available to SDK users.
13
13
  * Internal/experimental events are handled at runtime but not exposed
14
14
  * in the user-facing configuration type.
15
15
  */
@@ -26,7 +26,7 @@ export type PostToolUseHookSpecificOutput = Omit<ProtocolPostToolUseHookSpecific
26
26
  updatedMCPToolOutput?: string;
27
27
  };
28
28
  export type AsyncHookJSONOutput = ProtocolAsyncHookJSONOutput;
29
- export type HookSpecificOutput = PreToolUseHookSpecificOutput | PostToolUseHookSpecificOutput | PostToolUseFailureHookSpecificOutput | UserPromptSubmitHookSpecificOutput | SessionStartHookSpecificOutput | SubagentStartHookSpecificOutput | PermissionRequestHookSpecificOutput | CwdChangedHookSpecificOutput | FileChangedHookSpecificOutput;
29
+ export type HookSpecificOutput = PreToolUseHookSpecificOutput | PostToolUseHookSpecificOutput | PostToolUseFailureHookSpecificOutput | UserPromptSubmitHookSpecificOutput | SessionStartHookSpecificOutput | SubagentStartHookSpecificOutput | PermissionRequestHookSpecificOutput | WorktreeCreateHookSpecificOutput | CwdChangedHookSpecificOutput | FileChangedHookSpecificOutput;
30
30
  export type SyncHookJSONOutput = Omit<ProtocolSyncHookJSONOutput, 'hookSpecificOutput'> & {
31
31
  hookSpecificOutput?: HookSpecificOutput;
32
32
  };
@@ -12,7 +12,7 @@ export type { WorkerRuntimeTransportOptions, WorkerTransportOptions, } from '../
12
12
  export type { QueryTransportProvider, Transport, } from '../core/transport.js';
13
13
  export type { ElicitationRequest, ElicitationResult, OnElicitation, PromptRequestOption, PromptRequest, PromptResponse, SecurityScanOptions, Options, QueryTransportOptions, SpawnOptions, SpawnedProcess, Query, } from './options.js';
14
14
  export * from './permissions.js';
15
- export type { HookEvent, HookPermissionDecision, HookCallback, HookCallbackMatcher, HookInput, HookSpecificOutput, HookJSONOutput, AsyncHookJSONOutput, SyncHookJSONOutput, BaseHookInput, PreToolUseHookInput, PostToolUseHookInput, PostToolUseFailureHookInput, UserPromptSubmitHookInput, SessionStartHookInput, SessionEndHookInput, StopHookInput, SubagentStartHookInput, SubagentStopHookInput, PreCompactHookInput, PostCompactHookInput, PermissionRequestHookInput, InstructionsLoadedHookInput, CwdChangedHookInput, FileChangedHookInput, PreToolUseHookSpecificOutput, PostToolUseHookSpecificOutput, PostToolUseFailureHookSpecificOutput, UserPromptSubmitHookSpecificOutput, SessionStartHookSpecificOutput, SubagentStartHookSpecificOutput, PermissionRequestHookSpecificOutput, CwdChangedHookSpecificOutput, FileChangedHookSpecificOutput, } from './hooks.js';
15
+ export type { HookEvent, HookPermissionDecision, HookCallback, HookCallbackMatcher, HookInput, HookSpecificOutput, HookJSONOutput, AsyncHookJSONOutput, SyncHookJSONOutput, BaseHookInput, PreToolUseHookInput, PostToolUseHookInput, PostToolUseFailureHookInput, UserPromptSubmitHookInput, SessionStartHookInput, SessionEndHookInput, StopHookInput, SubagentStartHookInput, SubagentStopHookInput, PreCompactHookInput, PostCompactHookInput, PermissionRequestHookInput, PermissionDeniedHookInput, InstructionsLoadedHookInput, WorktreeCreateHookInput, WorktreeRemoveHookInput, CwdChangedHookInput, FileChangedHookInput, PreToolUseHookSpecificOutput, PostToolUseHookSpecificOutput, PostToolUseFailureHookSpecificOutput, UserPromptSubmitHookSpecificOutput, SessionStartHookSpecificOutput, SubagentStartHookSpecificOutput, PermissionRequestHookSpecificOutput, WorktreeCreateHookSpecificOutput, CwdChangedHookSpecificOutput, FileChangedHookSpecificOutput, } from './hooks.js';
16
16
  export * from './mcp.js';
17
17
  export * from './agents.js';
18
18
  export * from './session.js';
@@ -9,7 +9,7 @@ import type { SDKMessage as ProtocolSDKMessage, SDKStatusMessage as ProtocolSDKS
9
9
  import type { MessageParam, UUID } from './common.js';
10
10
  import type { PermissionMode } from './permissions.js';
11
11
  import type { SessionKey } from '../session/session-store.js';
12
- export type { SDKAssistantMessage, SDKResultSuccess, SDKResultError, SDKResultMessage, SDKPartialAssistantMessage, SDKCompactBoundaryMessage, SDKAPIRetryMessage, SDKModelQueueStatusMessage, SDKControlRequestProgressMessage, SDKHookStartedMessage, SDKHookProgressMessage, SDKHookResponseMessage, SDKTaskNotificationMessage, SDKTaskStartedMessage, SDKTaskProgressMessage, SDKTaskUpdatedMessage, SDKBackgroundTasksChangedMessage, SDKSessionStateChangedMessage, SDKSessionTitleChangedMessage, SDKFilesPersistedEvent, SDKElicitationCompleteMessage, SDKPromptSuggestionMessage, SDKCloudAgentEventMessage, SDKMemoryGenerationMessage, SDKMemoryConsumptionMessage, SDKPermissionDenial, SDKToolNonExecutionKind, SDKToolResultMeta, } from '../protocol/index.js';
12
+ export type { SDKAssistantMessage, SDKResultSuccess, SDKResultError, SDKResultMessage, SDKPartialAssistantMessage, SDKCompactBoundaryMessage, SDKAPIRetryMessage, SDKModelQueueStatusMessage, SDKControlRequestProgressMessage, SDKHookStartedMessage, SDKHookProgressMessage, SDKHookResponseMessage, SDKTaskNotificationMessage, SDKTaskStartedMessage, SDKTaskProgressMessage, SDKTaskUpdatedMessage, SDKBackgroundTasksChangedMessage, SDKSessionStateChangedMessage, SDKPlanModeChangedMessage, SDKSessionTitleChangedMessage, SDKFilesPersistedEvent, SDKElicitationCompleteMessage, SDKPromptSuggestionMessage, SDKCloudAgentEventMessage, SDKMemoryGenerationMessage, SDKMemoryConsumptionMessage, SDKSkillEvolutionMessage, SDKPermissionDenial, SDKToolNonExecutionKind, SDKToolResultMeta, } from '../protocol/index.js';
13
13
  export type SDKUserMessage = {
14
14
  type: 'user';
15
15
  message: MessageParam;
@@ -28,6 +28,12 @@ export interface ModelPolicyContext {
28
28
  sessionId: string;
29
29
  /** Current conversation turn index (0-based) */
30
30
  turnIndex: number;
31
+ /** Sub-agent runtime ID (undefined for main session or older CLI versions). */
32
+ agentId?: string;
33
+ /** Stable sub-agent type, for example `bash-agent`. */
34
+ agentType?: string;
35
+ /** Model already selected by the CLI before the host policy runs. */
36
+ resolvedModel?: string;
31
37
  /** Available models provided by CLI on each `get_model_policy` request (real-time) */
32
38
  availableModels: ModelInfo[];
33
39
  }
@@ -43,7 +49,7 @@ export interface ModelPolicyResult {
43
49
  * The SDK extracts `model` as the identifier and forwards the rest
44
50
  * as `custom_model` on the wire.
45
51
  */
46
- model: string | (CustomModel & {
52
+ model?: string | (CustomModel & {
47
53
  model: string;
48
54
  });
49
55
  /** Optional per-request model policy parameters (contextWindow, reasoningEffort). */
@@ -66,4 +72,4 @@ export interface ModelPolicyResult {
66
72
  * If the callback throws or times out, the error is propagated to the SDK
67
73
  * caller — no silent fallback occurs.
68
74
  */
69
- export type ModelPolicyProvider = (context: ModelPolicyContext) => ModelPolicyResult | Promise<ModelPolicyResult>;
75
+ export type ModelPolicyProvider = (context: ModelPolicyContext) => ModelPolicyResult | undefined | Promise<ModelPolicyResult | undefined>;