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

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.
@@ -558,7 +558,48 @@ export type SDKControlBackgroundTasksResponse = {
558
558
  /** Present for a targeted tool use. Bulk backgrounding may omit the body. */
559
559
  backgrounded?: boolean;
560
560
  };
561
- 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;
561
+ /** Lifecycle status of a goal (aligned with the CLI goal state machine). */
562
+ export type SDKGoalStatus = 'active' | 'paused' | 'blocked' | 'usage_limited' | 'budget_limited' | 'complete';
563
+ /** Structured snapshot of the current goal. */
564
+ export type SDKGoalSnapshot = {
565
+ id: string;
566
+ objective: string;
567
+ status: SDKGoalStatus;
568
+ turns_used: number;
569
+ max_turns?: number;
570
+ time_used_seconds: number;
571
+ credits_budget?: number;
572
+ credits_used?: number;
573
+ created_at: number;
574
+ updated_at: number;
575
+ };
576
+ /**
577
+ * Create, redirect, transition, or re-budget the session goal. Omitted fields
578
+ * are left unchanged; `credits_budget: null` explicitly clears the budget.
579
+ * Setting `status: 'active'` while the session is idle starts the goal loop.
580
+ */
581
+ export type SDKControlSetGoalRequest = {
582
+ subtype: 'set_goal';
583
+ objective?: string;
584
+ status?: SDKGoalStatus;
585
+ credits_budget?: number | null;
586
+ };
587
+ export type SDKControlSetGoalResponse = {
588
+ goal: SDKGoalSnapshot | null;
589
+ };
590
+ export type SDKControlGetGoalRequest = {
591
+ subtype: 'get_goal';
592
+ };
593
+ export type SDKControlGetGoalResponse = {
594
+ goal: SDKGoalSnapshot | null;
595
+ };
596
+ export type SDKControlClearGoalRequest = {
597
+ subtype: 'clear_goal';
598
+ };
599
+ export type SDKControlClearGoalResponse = {
600
+ cleared: boolean;
601
+ };
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;
562
603
  export type SDKControlInitializeResponse = {
563
604
  commands: SlashCommand[];
564
605
  agents: AgentInfo[];
@@ -20,8 +20,8 @@ export { buildQoderCliFlagSettings, buildQoderCliFlagSettingsArgs, } from './lau
20
20
  export type { EffectiveMemoryConfig, MemoryConsumptionFile, MemoryConsumptionResult, MemoryGenerationFailedFile, MemoryGenerationGateInput, MemoryGenerationGateResult, MemoryGenerationResult, MemoryMode, MemoryRoot, MemoryRootAccess, SerializableMemoryConfig, SerializableMemoryConsumptionOptions, SerializableMemoryGenerationOptions, } from './memory.js';
21
21
  export type { PermissionMode, PermissionBehavior, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue, PermissionUpdate, PermissionResult, } from './permissions.js';
22
22
  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, SDKSessionTitleChangedMessage, SDKFilesPersistedEvent, SDKElicitationCompleteMessage, SDKPromptSuggestionMessage, SDKCloudAgentEventMessage, SDKMemoryGenerationMessage, SDKMemoryConsumptionMessage, SDKPermissionDenial, SDKPermissionDeniedMessage, SDKPermissionDeniedReasonType, SDKMessage, } from './messages.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
24
  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
25
  export type { AgentMcpServerSpec, AgentDefinition, AgentInfo, AgentMemoryScope, } from './agents.js';
26
26
  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, 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';
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';
@@ -1 +1 @@
1
- var p="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 a(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={...a(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,p as WIRE_PROTOCOL_VERSION,l as buildQoderCliFlagSettings,u as buildQoderCliFlagSettingsArgs};
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};
@@ -69,6 +69,10 @@ export type SerializableMemoryConsumptionOptions = {
69
69
  type SerializableMemoryConfigBase = {
70
70
  /** Marks this memory configuration as originating from the Agent SDK. */
71
71
  requester: 'sdk';
72
+ /** Query-level PROJECT-scope override. Omit to use the SDK native default (`true`). */
73
+ projectScope?: boolean;
74
+ /** Query-level USER-scope override. Omit to use the SDK native default (`true`). */
75
+ userScope?: boolean;
72
76
  };
73
77
  export type SerializableMemoryConfig = SerializableMemoryConfigBase & ({
74
78
  mode: 'native';
@@ -14,6 +14,7 @@
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
18
  export type SDKAssistantMessage = {
18
19
  type: 'assistant';
19
20
  message: BetaMessage;
@@ -364,6 +365,28 @@ export type SDKBackgroundTasksChangedMessage = {
364
365
  uuid: UUID;
365
366
  session_id: string;
366
367
  };
368
+ /**
369
+ * Goal state changed (created / redirected / transitioned / budget update).
370
+ * Requires the CLI `goal_v1` capability.
371
+ */
372
+ export type SDKGoalUpdatedMessage = {
373
+ type: 'system';
374
+ subtype: 'goal_updated';
375
+ goal: SDKGoalSnapshot;
376
+ /** Why the goal changed, e.g. 'safety-limit' or 'blocked'. */
377
+ reason?: string;
378
+ uuid: UUID;
379
+ session_id: string;
380
+ };
381
+ /** Goal was cleared. Requires the CLI `goal_v1` capability. */
382
+ export type SDKGoalClearedMessage = {
383
+ type: 'system';
384
+ subtype: 'goal_cleared';
385
+ goal_id: string;
386
+ reason?: string;
387
+ uuid: UUID;
388
+ session_id: string;
389
+ };
367
390
  export type SDKSessionStateChangedMessage = {
368
391
  type: 'system';
369
392
  subtype: 'session_state_changed';
@@ -456,4 +479,4 @@ export type SDKPermissionDeniedMessage = {
456
479
  decision_reason_type?: SDKPermissionDeniedReasonType;
457
480
  decision_reason?: string;
458
481
  };
459
- export type SDKMessage = SDKAssistantMessage | SDKUserMessage | SDKUserMessageReplay | SDKResultMessage | SDKSystemMessage | SDKPermissionDeniedMessage | SDKPartialAssistantMessage | SDKCompactBoundaryMessage | SDKStatusMessage | SDKAPIRetryMessage | SDKModelQueueStatusMessage | SDKControlRequestProgressMessage | SDKHookStartedMessage | SDKHookProgressMessage | SDKHookResponseMessage | SDKTaskNotificationMessage | SDKTaskStartedMessage | SDKTaskProgressMessage | SDKTaskUpdatedMessage | SDKBackgroundTasksChangedMessage | SDKSessionStateChangedMessage | SDKSessionTitleChangedMessage | SDKFilesPersistedEvent | SDKElicitationCompleteMessage | SDKPromptSuggestionMessage | SDKCloudAgentEventMessage | SDKMemoryGenerationMessage | SDKMemoryConsumptionMessage;
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;
@@ -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 { SDKControlInterruptResponse, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlGenerateSessionTitleResponse, AskSideQuestionOptions, SideQuestionResult, SDKControlAddDirectoriesResponse, SDKControlReloadPluginsResponse } from '../types/control.js';
29
+ import type { 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';
@@ -59,6 +59,7 @@ export declare class QueryRunner implements InternalQuery {
59
59
  private static readonly INITIALIZE_TIMEOUT_MS;
60
60
  private static readonly BACKGROUND_TASKS_CAPABILITY;
61
61
  private static readonly SIDE_QUESTION_CAPABILITY;
62
+ private static readonly GOAL_CAPABILITY;
62
63
  private readonly transport;
63
64
  private readonly inputStream;
64
65
  private readonly pendingRequests;
@@ -221,6 +222,23 @@ export declare class QueryRunner implements InternalQuery {
221
222
  stopTask(taskId: string): Promise<void>;
222
223
  /** Move one or all eligible foreground tasks into the background. */
223
224
  backgroundTasks(toolUseId?: string): Promise<boolean>;
225
+ /**
226
+ * Create, redirect, transition, or re-budget the session goal.
227
+ *
228
+ * Omitted fields are left unchanged; `creditsBudget: null` explicitly
229
+ * clears the credits budget. Setting `status: 'active'` while the session
230
+ * is idle starts the goal loop. Returns the goal snapshot after the change
231
+ * (null only if no goal exists afterwards).
232
+ */
233
+ setGoal(params: {
234
+ objective?: string;
235
+ status?: SDKGoalStatus;
236
+ creditsBudget?: number | null;
237
+ }): Promise<SDKGoalSnapshot | null>;
238
+ /** Read the current goal, or null when the session has none. */
239
+ getGoal(): Promise<SDKGoalSnapshot | null>;
240
+ /** Clear the session goal. Returns whether a goal was actually cleared. */
241
+ clearGoal(): Promise<boolean>;
224
242
  private requireCliCapability;
225
243
  /**
226
244
  * Set the permission mode.
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "version": 1,
3
3
  "brand": "global",
4
- "sdkVersion": "1.0.24",
5
- "qoderCliVersion": "1.1.25",
4
+ "sdkVersion": "1.0.25",
5
+ "qoderCliVersion": "1.1.26",
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.25/qodercli-worker-runtime-{target}.tgz",
11
+ "urlTemplate": "https://download.qoder.com/qodercli/releases/1.1.26/qodercli-worker-runtime-{target}.tgz",
12
12
  "artifactNameTemplate": "qodercli-worker-runtime-{target}.tgz",
13
- "sdkVersion": "1.0.24",
14
- "qoderCliVersion": "1.1.25"
13
+ "sdkVersion": "1.0.25",
14
+ "qoderCliVersion": "1.1.26"
15
15
  }
16
16
  }
@@ -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, 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, 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';
9
9
  /** Wire format for fetch_job_token inbound control request from CLI. */
10
10
  export type FetchJobTokenWireRequest = {
11
11
  subtype: 'fetch_job_token';
@@ -40,13 +40,28 @@ export type MemoryConsumptionOptions = {
40
40
  onResult?: (result: MemoryConsumptionResult) => void | Promise<void>;
41
41
  };
42
42
  export type MemoryOptions = {
43
- /** Uses CLI-native generation and consumption. Only result callbacks may be supplied. */
43
+ /** An empty object disables SDK memory, equivalent to omitting options.memory. */
44
+ mode?: never;
45
+ projectScope?: never;
46
+ userScope?: never;
47
+ generation?: never;
48
+ consumption?: never;
49
+ } | {
50
+ /** Uses CLI-native generation and consumption; only scope switches and result callbacks are configurable. */
44
51
  mode: 'native';
52
+ /** Enables or disables the CLI PROJECT scope for this Query. Defaults to `true`. */
53
+ projectScope?: boolean;
54
+ /** Enables or disables the CLI USER scope for this Query. Defaults to `true`. */
55
+ userScope?: boolean;
45
56
  generation?: Pick<MemoryGenerationOptions, 'onResult'>;
46
57
  consumption?: Pick<MemoryConsumptionOptions, 'onResult'>;
47
58
  } | {
48
59
  /** Applies supplied overrides and inherits omitted behavior from the CLI. */
49
60
  mode: 'custom';
61
+ /** Enables or disables the CLI PROJECT scope for inherited native behavior. Defaults to `true`. */
62
+ projectScope?: boolean;
63
+ /** Enables or disables the CLI USER scope for inherited native behavior. Defaults to `true`. */
64
+ userScope?: boolean;
50
65
  /** Memory generation overrides. Omit to use CLI generation defaults. */
51
66
  generation?: MemoryGenerationOptions;
52
67
  /** Memory consumption overrides. Omit to use CLI consumption defaults. */
@@ -18,6 +18,7 @@ import type { PluginDetails } from './plugins.js';
18
18
  import type { SessionStore, SessionStoreFlush } from '../session/session-store.js';
19
19
  import type { ModelPromptPatches } from '../protocol/model-prompt-patches.js';
20
20
  import type { MemoryOptions } from './memory.js';
21
+ import type { SDKGoalSnapshot, SDKGoalStatus } from '../protocol/control.js';
21
22
  export type { CanUseTool };
22
23
  export type { AuthOptions };
23
24
  export type ElicitationRequest = {
@@ -154,6 +155,22 @@ export type Options = {
154
155
  * environment.
155
156
  */
156
157
  proxy?: string;
158
+ /**
159
+ * VPC private-deployment endpoint for the qodercli child process (CN
160
+ * deployments only).
161
+ *
162
+ * Accepts either a bare instance name (`acme`) or a full VPC domain
163
+ * (`acme.vpc.qoder.com.cn`, `acme-gateway.vpc.qoder.com.cn`,
164
+ * `acme-openapi.vpc.qoder.com.cn`). When set, the SDK writes this value to
165
+ * the `QODERCN_VPC_ENDPOINT` (CN) / `QODER_VPC_ENDPOINT` (Global)
166
+ * environment variable, which the CLI reads at highest priority — above any
167
+ * `vpcInstanceName` in `settings.json` — to derive its inference, OpenAPI,
168
+ * and base endpoints locally without remote endpoint election.
169
+ *
170
+ * VPC mode only activates in CN builds of the CLI; the value is ignored by
171
+ * Global builds.
172
+ */
173
+ vpcEndpoint?: string;
157
174
  env?: {
158
175
  [envVar: string]: string | undefined;
159
176
  };
@@ -370,6 +387,22 @@ export interface Query extends AsyncGenerator<SDKMessage, void> {
370
387
  * eligible foreground executions are targeted.
371
388
  */
372
389
  backgroundTasks(toolUseId?: string): Promise<boolean>;
390
+ /**
391
+ * Create, redirect, transition, or re-budget the session goal. Omitted
392
+ * fields are left unchanged; `creditsBudget: null` explicitly clears the
393
+ * budget. Setting `status: 'active'` while the session is idle starts the
394
+ * goal loop. Requires the CLI `goal_v1` capability. Only present on the
395
+ * local CLI transport; absent on cloud-agent queries.
396
+ */
397
+ setGoal?(params: {
398
+ objective?: string;
399
+ status?: SDKGoalStatus;
400
+ creditsBudget?: number | null;
401
+ }): Promise<SDKGoalSnapshot | null>;
402
+ /** Read the current goal, or null when the session has none. */
403
+ getGoal?(): Promise<SDKGoalSnapshot | null>;
404
+ /** Clear the session goal; returns whether a goal was cleared. */
405
+ clearGoal?(): Promise<boolean>;
373
406
  setPermissionMode(mode: PermissionMode): Promise<void>;
374
407
  setModel(model?: string): Promise<void>;
375
408
  /**
@@ -1,4 +1,15 @@
1
1
  import type { PluginInfo } from '../protocol/common.js';
2
+ /** Plugin installation scopes that can be changed through the CLI. */
3
+ export type PluginScope = 'user' | 'project' | 'local';
4
+ export type PluginToggleOptions = {
5
+ /** Directory used to resolve project and local plugin state. */
6
+ cwd?: string;
7
+ /** Omit to let qodercli infer the installed plugin's scope. */
8
+ scope?: PluginScope;
9
+ /** Optional qodercli executable or qoder Worker runtime entry override. */
10
+ cliPath?: string;
11
+ env?: Record<string, string>;
12
+ };
2
13
  export type PluginResources = {
3
14
  skills: {
4
15
  name: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qoder-ai/qoder-agent-sdk",
3
- "version": "1.0.24",
3
+ "version": "1.0.25",
4
4
  "description": "TypeScript SDK for building Qoder-powered coding agents.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -50,7 +50,7 @@
50
50
  "peerDependencies": {
51
51
  "zod": "^3.25.0 || ^4.0.0"
52
52
  },
53
- "qoderCliVersion": "1.1.25",
53
+ "qoderCliVersion": "1.1.26",
54
54
  "qoderSdkBrand": "global",
55
55
  "license": "SEE LICENSE IN LICENSE"
56
56
  }