@qoder-ai/qoder-agent-sdk 1.0.23 → 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.
package/README.md CHANGED
@@ -213,6 +213,30 @@ for await (const message of q) {
213
213
  }
214
214
  ```
215
215
 
216
+ ## Code Security
217
+
218
+ Built-in code security is disabled by default in SDK sessions. Enable only the
219
+ capabilities the integration needs:
220
+
221
+ ```ts
222
+ const q = query({
223
+ prompt: "Review this repository for security issues.",
224
+ options: {
225
+ auth: qodercliAuth(),
226
+ cwd: process.cwd(),
227
+ securityScan: {
228
+ l1StaticCheck: true,
229
+ l2LightweightScan: true,
230
+ l3DeepScan: false,
231
+ },
232
+ },
233
+ });
234
+ ```
235
+
236
+ Omitted switches remain disabled. The top-level option is authoritative for
237
+ the SDK session. Enabling any switch also makes the native security skill
238
+ available; project and file scans do not have a separate switch.
239
+
216
240
  ## Tools and Permissions
217
241
 
218
242
  Qoder Agent can use tools such as file reads, file edits, shell commands, and
@@ -1,6 +1,16 @@
1
1
  export type SdkBrand = 'global' | 'cn';
2
2
  export declare const SDK_BRAND: SdkBrand;
3
3
  export declare const IS_CN_SDK: boolean;
4
+ /**
5
+ * Prefix for all Qoder environment variables recognized by the CLI.
6
+ * Global builds use `QODER_`, CN builds use `QODERCN_`.
7
+ */
8
+ export declare const SDK_BRAND_ENV_PREFIX: string;
9
+ /**
10
+ * Environment variable the CLI reads to resolve a VPC private-deployment
11
+ * endpoint. VPC mode only activates in CN builds.
12
+ */
13
+ export declare const SDK_VPC_ENDPOINT_ENV: string;
4
14
  export declare const SDK_BRAND_CONFIG: {
5
15
  productName: string;
6
16
  packageName: string;
@@ -40,11 +40,12 @@ export declare const CLI_EXIT_CODE_AUTH_ERROR = 41;
40
40
  * `options.tools`.
41
41
  *
42
42
  * Keep this list explicit so new qodercli built-ins do not automatically
43
- * become SDK-visible. Goal, cron, workflow, plan-mode transition, Bash PTY,
44
- * worktree, topic, and background-task control tools remain opt-in via
45
- * `options.tools`.
43
+ * become SDK-visible. UpdateGoal is included so an active goal started through
44
+ * the SDK control plane can terminate itself. Goal creation/read, cron,
45
+ * workflow, plan-mode transition, Bash PTY, worktree, topic, and
46
+ * background-task control tools remain opt-in via `options.tools`.
46
47
  */
47
- export declare const SDK_DEFAULT_TOOLS: readonly ["Agent", "AskUserQuestion", "Bash", "Edit", "Glob", "Grep", "ImageGen", "ImageSearch", "NotebookEdit", "Read", "Skill", "TaskCreate", "TaskGet", "TaskUpdate", "TaskList", "WebFetch", "WebSearch", "Write"];
48
+ export declare const SDK_DEFAULT_TOOLS: readonly ["Agent", "AskUserQuestion", "Bash", "Edit", "Glob", "Grep", "ImageGen", "ImageSearch", "NotebookEdit", "Read", "Skill", "TaskCreate", "TaskGet", "TaskUpdate", "TaskList", "UpdateGoal", "WebFetch", "WebSearch", "Write"];
48
49
  export declare const SDK_TASK_TOOLS: readonly ["TaskCreate", "TaskGet", "TaskUpdate", "TaskList"];
49
50
  /**
50
51
  * Resolve the SDK's curated default tool surface against qodercli's Task
@@ -15,7 +15,7 @@ import type { SdkPluginConfig, ToolConfig } from '../types/common.js';
15
15
  import type { PermissionMode } from '../types/permissions.js';
16
16
  import type { McpServerConfigForProcessTransport, McpServerToolPolicy } from '../types/mcp.js';
17
17
  import type { InternalAuthOptions } from '../types/auth.js';
18
- import type { SpawnedProcess, SpawnOptions, SettingSource } from '../types/options.js';
18
+ import type { SecurityScanOptions, SpawnedProcess, SpawnOptions, SettingSource } from '../types/options.js';
19
19
  import type { DiagnosticsSink } from './sdk-diagnostics.js';
20
20
  export declare class QoderCliProcessError extends Error {
21
21
  readonly code: "QODER_CLI_PROCESS_ERROR";
@@ -47,6 +47,11 @@ export interface ProcessTransportOptions {
47
47
  /** Custom environment variables (defaults to process.env) */
48
48
  env?: Record<string, string | undefined>;
49
49
  proxy?: string;
50
+ /**
51
+ * VPC private-deployment endpoint (CN deployments only). Written to the
52
+ * `QODERCN_VPC_ENDPOINT` / `QODER_VPC_ENDPOINT` env var for the child.
53
+ */
54
+ vpcEndpoint?: string;
50
55
  /** stderr handling mode */
51
56
  stderr?: 'inherit' | 'pipe' | 'ignore';
52
57
  /** Optional callback for child-process stderr output */
@@ -93,6 +98,7 @@ export interface ProcessTransportOptions {
93
98
  allowedMcpServerNames?: string[];
94
99
  strictMcpConfig?: boolean;
95
100
  settings?: string | Record<string, unknown>;
101
+ securityScan?: SecurityScanOptions;
96
102
  settingSources?: SettingSource[];
97
103
  additionalDirectories?: string[];
98
104
  plugins?: SdkPluginConfig[];
@@ -0,0 +1,14 @@
1
+ export interface RuntimeCommandOptions {
2
+ pathToQoderCLIExecutable?: string;
3
+ cwd?: string;
4
+ env?: Record<string, string | undefined>;
5
+ signal?: AbortSignal;
6
+ timeoutMs?: number;
7
+ }
8
+ export interface RuntimeCommandResult {
9
+ stdout: string;
10
+ stderr: string;
11
+ exitCode: number;
12
+ }
13
+ /** Run a standalone qodercli subcommand using the packaged runtime carrier. */
14
+ export declare function runRuntimeCommand(args: string[], options?: RuntimeCommandOptions): Promise<RuntimeCommandResult>;
@@ -4,7 +4,7 @@ import type { InternalAuthOptions } from '../types/auth.js';
4
4
  import type { PermissionMode } from '../types/permissions.js';
5
5
  import type { McpServerConfigForProcessTransport } from '../protocol/mcp.js';
6
6
  import type { McpServerToolPolicy } from '../types/mcp.js';
7
- import type { SettingSource } from '../types/options.js';
7
+ import type { SecurityScanOptions, SettingSource } from '../types/options.js';
8
8
  export declare class AuthAccessTokenEnvVarError extends Error {
9
9
  readonly code: "auth_access_token_env_var_not_configured";
10
10
  constructor(envVar: string);
@@ -21,6 +21,7 @@ export interface RuntimeLaunchOptions {
21
21
  cwd?: string;
22
22
  env?: Record<string, string | undefined>;
23
23
  proxy?: string;
24
+ vpcEndpoint?: string;
24
25
  auth?: InternalAuthOptions;
25
26
  model?: string;
26
27
  debug?: boolean;
@@ -50,6 +51,7 @@ export interface RuntimeLaunchOptions {
50
51
  allowedMcpServerNames?: string[];
51
52
  strictMcpConfig?: boolean;
52
53
  settings?: string | Record<string, unknown>;
54
+ securityScan?: SecurityScanOptions;
53
55
  settingSources?: SettingSource[];
54
56
  additionalDirectories?: string[];
55
57
  plugins?: SdkPluginConfig[];
@@ -79,6 +81,7 @@ export declare class RuntimeLaunchOptionsBuilder {
79
81
  buildArgs(): string[];
80
82
  private buildSettingsArg;
81
83
  private applyFileCheckpointingSetting;
84
+ private applySecurityScanSetting;
82
85
  private applySettingsCompatibility;
83
86
  private toQoderDefaultPermissionMode;
84
87
  private applyAdditionalDirectories;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { SecurityScanOptions } from '../types/options.js';
7
+ export declare function normalizeSecurityScanOptions(value: SecurityScanOptions): Required<SecurityScanOptions>;
@@ -0,0 +1,16 @@
1
+ import type { PreparedWorkerRuntimePath } from './worker-runtime-assets.js';
2
+ export declare const WORKER_CWD_ENV = "QODER_WORKER_CWD";
3
+ export interface WorkerRuntimeLaunchContext {
4
+ env: Record<string, string>;
5
+ workerData: Record<string, unknown>;
6
+ }
7
+ /**
8
+ * Build the environment and workerData contract consumed by qoderWorkerRuntime.
9
+ * Query transports and one-shot commands must use the same contract so cwd and
10
+ * sidecar assets resolve identically in both launch modes.
11
+ */
12
+ export declare function buildWorkerRuntimeLaunchContext(preparedRuntime: PreparedWorkerRuntimePath, options: {
13
+ cwd: string;
14
+ env: Record<string, string>;
15
+ workerData?: Record<string, unknown>;
16
+ }): WorkerRuntimeLaunchContext;
@@ -0,0 +1,2 @@
1
+ export declare function resolveQoderWorkerRuntimePath(explicitPath?: string): string;
2
+ export declare function hasResolvableQoderWorkerRuntime(explicitPath?: string): boolean;
@@ -11,6 +11,8 @@ import type { ProcessTransportOptions } from './process-transport.js';
11
11
  import type { StdoutMessage } from '../types/control.js';
12
12
  import type { DiagnosticsSink } from './sdk-diagnostics.js';
13
13
  import { type RuntimeLaunchOptions } from './runtime-launch-options.js';
14
+ import { hasResolvableQoderWorkerRuntime, resolveQoderWorkerRuntimePath } from './worker-runtime-path.js';
15
+ export { hasResolvableQoderWorkerRuntime, resolveQoderWorkerRuntimePath };
14
16
  export declare class QoderWorkerRuntimeError extends Error {
15
17
  readonly code: "QODER_WORKER_RUNTIME_ERROR";
16
18
  readonly exitCode?: number;
@@ -93,6 +95,4 @@ export declare class WorkerRuntimeTransport implements Transport {
93
95
  private cleanupAbortListener;
94
96
  private cleanupAuthPayload;
95
97
  private fireAuthExpired;
96
- }
97
- export declare function resolveQoderWorkerRuntimePath(explicitPath?: string): string;
98
- export declare function hasResolvableQoderWorkerRuntime(explicitPath?: string): boolean;
98
+ }
@@ -1,17 +1,11 @@
1
- import type { PluginDetails, InstallPluginResult, PluginValidationReport, ValidatePluginOptions, UninstallPluginResult } from '../types/plugins.js';
1
+ import type { PluginDetails, InstallPluginResult, PluginToggleOptions, PluginValidationReport, ValidatePluginOptions, UninstallPluginResult } from '../types/plugins.js';
2
2
  export declare function listPlugins(opts?: {
3
3
  orgId?: string;
4
4
  cliPath?: string;
5
5
  env?: Record<string, string>;
6
6
  }): Promise<PluginDetails[]>;
7
- export declare function enablePlugin(id: string, opts?: {
8
- cliPath?: string;
9
- env?: Record<string, string>;
10
- }): Promise<void>;
11
- export declare function disablePlugin(id: string, opts?: {
12
- cliPath?: string;
13
- env?: Record<string, string>;
14
- }): Promise<void>;
7
+ export declare function enablePlugin(id: string, opts?: PluginToggleOptions): Promise<void>;
8
+ export declare function disablePlugin(id: string, opts?: PluginToggleOptions): Promise<void>;
15
9
  export declare function installPlugin(path: string, opts?: {
16
10
  cliPath?: string;
17
11
  env?: Record<string, string>;
package/dist/index.d.ts CHANGED
@@ -70,7 +70,7 @@ export { importSessionToStore } from './session/session-import.js';
70
70
  export type { ImportSessionToStoreOptions } from './session/session-import.js';
71
71
  export type { SessionKey, SessionStore, SessionStoreEntry, SessionStoreFlush, } from './session/session-store.js';
72
72
  export { listPlugins, enablePlugin, disablePlugin, installPlugin, uninstallPlugin, validatePlugin, } from './global/plugins.js';
73
- export type { PluginDetails, PluginResources, InstallPluginResult, UninstallPluginResult, PluginValidationSeverity, PluginValidationPhase, PluginValidationPosition, PluginValidationLocation, PluginValidationDiagnostic, PluginValidationReport, ValidatePluginOptions, } from './types/plugins.js';
73
+ export type { PluginScope, PluginToggleOptions, PluginDetails, PluginResources, InstallPluginResult, UninstallPluginResult, PluginValidationSeverity, PluginValidationPhase, PluginValidationPosition, PluginValidationLocation, PluginValidationDiagnostic, PluginValidationReport, ValidatePluginOptions, } from './types/plugins.js';
74
74
  export { submitFeedback } from './feedback.js';
75
75
  export type { SubmitFeedbackParams, SubmitFeedbackOptions, IntegrationMode, } from './feedback.js';
76
76
  export { AbortError, ModelPolicyTimeoutError, ProtocolVersionMismatchError, UnsupportedCliCapabilityError, } from './core/errors.js';
@@ -86,13 +86,14 @@ export type { AccessTokenInput, AuthOptions, FetchServiceAccountToken, ServiceAc
86
86
  */
87
87
  export type { FetchJobToken, JobTokenAuthOptions, JobTokenRequest, JobTokenResult, } from './types/auth.js';
88
88
  export type { AccountInfo, UsageAddOnQuotaBucket, UsageInfo, UsageOrgResourcePackage, UsageQuotaBucket, SessionCreditsUsage, ApiKeySource, ExitReason, FastModeState, ConfigScope, SettingSource, SDKAssistantMessageError, SDKStatus, EffortLevel, ThinkingAdaptive, ThinkingEnabled, ThinkingDisabled, ThinkingConfig, ModelInfo, ModelSource, ServerModelJson, ServerModelJsonValue, ModelStrategy, ModelPromotion, LocalizedModelText, ModelContextConfig, ModelContextWindowEntry, ModelEffortEntry, ModelThinkingConfig, ModelThinkingDisabled, ModelThinkingEnabled, ModelUsage, NonNullableUsage, SlashCommand, ToolConfig, SdkPluginConfig, } from './types/common.js';
89
- export type { SDKMessage, SDKAssistantMessage, SDKToolNonExecutionKind, SDKToolResultMeta, SDKUserMessage, SDKUserMessageReplay, SDKResultMessage, SDKResultSuccess, SDKResultError, SDKSystemMessage, SDKSystemInitMessage, SDKSystemMessageSubtype, SDKSystemMessageBySubtype, SDKPartialAssistantMessage, SDKCompactBoundaryMessage, SDKStatusMessage, SDKAPIRetryMessage, SDKHookStartedMessage, SDKHookProgressMessage, SDKHookResponseMessage, SDKPermissionDeniedMessage, SDKMirrorErrorMessage, SDKTaskNotificationMessage, SDKTaskStartedMessage, SDKTaskProgressMessage, SDKTaskUpdatedMessage, SDKBackgroundTasksChangedMessage, SDKSessionStateChangedMessage, SDKSessionTitleChangedMessage, SDKFilesPersistedEvent, SDKElicitationCompleteMessage, SDKPromptSuggestionMessage, SDKCloudAgentEventMessage, SDKPermissionDenial, } from './types/messages.js';
89
+ export type { SDKMessage, SDKAssistantMessage, SDKToolNonExecutionKind, SDKToolResultMeta, SDKUserMessage, SDKUserMessageReplay, SDKResultMessage, SDKResultSuccess, SDKResultError, SDKSystemMessage, SDKSystemInitMessage, SDKSystemMessageSubtype, SDKSystemMessageBySubtype, SDKPartialAssistantMessage, SDKCompactBoundaryMessage, SDKStatusMessage, SDKAPIRetryMessage, SDKModelQueueStatusMessage, SDKControlRequestProgressMessage, SDKHookStartedMessage, SDKHookProgressMessage, SDKHookResponseMessage, SDKPermissionDeniedMessage, SDKMirrorErrorMessage, SDKTaskNotificationMessage, SDKTaskStartedMessage, SDKTaskProgressMessage, SDKTaskUpdatedMessage, SDKBackgroundTasksChangedMessage, SDKSessionStateChangedMessage, SDKSessionTitleChangedMessage, SDKFilesPersistedEvent, SDKElicitationCompleteMessage, SDKPromptSuggestionMessage, SDKCloudAgentEventMessage, SDKMemoryGenerationMessage, SDKMemoryConsumptionMessage, SDKPermissionDenial, } from './types/messages.js';
90
90
  export type { DefaultRuntimeTransport, } from './core/default-runtime.js';
91
91
  export type { QueryTransportCreateOptions, QueryTransportProviderOption, } from './core/query-transport.js';
92
92
  export type { ProcessTransportOptions } from './core/process-transport.js';
93
93
  export type { WorkerRuntimeTransportOptions, WorkerTransportOptions, } from './core/worker-transport.js';
94
94
  export type { QueryTransportProvider, Transport, } from './core/transport.js';
95
- export type { Options, QueryTransportOptions, Query, SpawnOptions, SpawnedProcess, ElicitationRequest, ElicitationResult, OnElicitation, PromptRequest, PromptRequestOption, PromptResponse, CanUseTool, } from './types/options.js';
95
+ export type { Options, QueryTransportOptions, Query, SpawnOptions, SpawnedProcess, ElicitationRequest, ElicitationResult, OnElicitation, PromptRequest, PromptRequestOption, PromptResponse, CanUseTool, SecurityScanOptions, } from './types/options.js';
96
+ export type { EffectiveMemoryConfig, MemoryConsumptionFile, MemoryConsumptionOptions, MemoryConsumptionResult, MemoryGenerationGateInput, MemoryGenerationGateResult, MemoryGenerationOptions, MemoryGenerationFailedFile, MemoryGenerationResult, MemoryMode, MemoryOptions, MemoryRoot, MemoryRootAccess, MemoryShouldGenerate, } from './types/memory.js';
96
97
  export type { AgentCreateParams, BetaManagedAgentsAgentToolName, BetaManagedAgentsAgentToolset20260401Params, BetaManagedAgentsCustomSkillParams, BetaManagedAgentsFileResourceParams, BetaManagedAgentsModel, BetaManagedAgentsSkillParams, BetaManagedAgentsURLMCPServerParams, CloudAgentOptions, CloudAgentReference, CloudAgentStreamOptions, CloudSessionResource, CloudSessionCreateParams, CloudSessionCreateReference, CloudSessionExistingReference, CloudSessionReference, SessionCreateParams, } from './types/cloud-agent.js';
97
98
  export type { SettingSource as SettingSourceFromOptions } from './types/options.js';
98
99
  export type { PermissionMode, PermissionBehavior, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue, PermissionUpdate, PermissionResult, CanUseToolOptions, } from './types/permissions.js';
@@ -103,7 +104,7 @@ export type { SDKSessionInfo, SessionMessage, ListSessionsOptions, GetSessionInf
103
104
  export type { Settings, ResolveSettingsOptions, ResolvedSettingSource, ResolvedSettings, ResolvedSettingsSource, SettingsProvenanceEntry, } from './types/settings.js';
104
105
  export { filterEscalatingDefaultMode } from './types/settings.js';
105
106
  export type { QoderModelPurpose } from './types/control.js';
106
- export type { SDKControlRequest, SDKControlResponse, SDKControlInterruptResponse, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlGetUsageInfoRequest, SDKControlGetUsageInfoResponse, SDKControlAddDirectoriesResponse, SDKControlReloadPluginsResponse, SDKControlStopTaskRequest, SDKControlBackgroundTasksRequest, SDKControlBackgroundTasksResponse, } from './types/control.js';
107
+ export type { SDKControlRequest, SDKControlResponse, SDKControlInterruptResponse, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlGetUsageInfoRequest, SDKControlGetUsageInfoResponse, SideQuestionHistoryEntry, AskSideQuestionOptions, SideQuestionRefusalFallback, SideQuestionResult, SDKControlAddDirectoriesResponse, SDKControlReloadPluginsResponse, SDKControlStopTaskRequest, SDKControlBackgroundTasksRequest, SDKControlBackgroundTasksResponse, } from './types/control.js';
107
108
  export type { SDKControlGetModelPolicyRequest, SDKControlGetModelPolicyResponse, SDKCapabilities, ModelPolicyContext, ModelPolicyResult, ModelPolicyProvider, } from './types/model-policy-provider.js';
108
109
  export type { SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, BYOKModelValidationInput, BYOKProviderInfo, BYOKModelTypeInfo, BYOKModelInfo, CustomModel, } from './types/byok.js';
109
110
  export { isBashToolBackgroundLaunchResult } from './types/tools.js';