/** * Qoder Agent SDK * * TypeScript SDK for programmatic access to qodercli capabilities. * * The SDK talks to the configured Qoder runtime transport using a * bidirectional JSON line protocol. * * @example Basic usage * ```typescript * import { query } from 'qoder-agent-sdk'; * * for await (const message of query({ prompt: 'Hello, Qoder!' })) { * console.log(message); * } * ``` * * @example Multi-turn conversation * ```typescript * import { query } from 'qoder-agent-sdk'; * * async function* userMessages() { * yield { type: 'user', message: { role: 'user', content: 'Hello' }, parent_tool_use_id: null }; * // ... yield more messages * } * * for await (const message of query({ prompt: userMessages(), options: { model: 'performance' } })) { * console.log(message); * } * ``` * * @example With MCP server * ```typescript * import { query, createSdkMcpServer, tool } from 'qoder-agent-sdk'; * import { z } from 'zod/v4'; * * const server = createSdkMcpServer({ * name: 'my-tools', * tools: [ * tool('greet', 'Say hello', { name: z.string() }, async (args) => ({ * content: [{ type: 'text', text: `Hello, ${args.name}!` }] * })) * ] * }); * * for await (const msg of query({ * prompt: 'Use the greet tool to say hi to Alice', * options: { mcpServers: { 'my-tools': server } } * })) { * console.log(msg); * } * ``` */ export { query } from './query/query.js'; export { startup } from './query/startup.js'; export type { StartupParams, WarmQuery } from './query/startup.js'; export { resolveSettings } from './settings/resolve-settings.js'; export { initDaemon, shutdownDaemon } from './daemon/global-daemon.js'; export type { DaemonFallbackReason, DaemonInitResult, InitDaemonOptions, } from './daemon/global-daemon.js'; export { startDaemon } from './daemon/start-daemon.js'; export type { Daemon, DaemonState, DaemonSessionInfo, SessionRuntimeState, StartDaemonOptions, } from './daemon/start-daemon.js'; export type { DaemonGetModelsParams, DaemonValidateByokModelParams, } from './daemon/protocol.js'; export { DEFAULT_RUNTIME_TRANSPORT, } from './core/default-runtime.js'; export { ProcessTransport, QoderCliProcessError, } from './core/process-transport.js'; export { hasResolvableQoderWorkerRuntime, QoderWorkerRuntimeError, WorkerTransport, resolveQoderWorkerRuntimePath, } from './core/worker-transport.js'; export { DEFAULT_ACCESS_TOKEN_ENV_VAR, DEFAULT_SERVICE_ACCOUNT_ENV_VAR, accessToken, accessTokenFromEnv, jobToken, qodercliAuth, serviceAccount, serviceAccountFromEnv, } from './auth.js'; export { createSdkMcpServer, tool } from './mcp/sdk-mcp-server.js'; export type { AnyZodRawShape, InferShape, SdkMcpToolDefinition, ToolExtras, CreateSdkMcpServerOptions, } from './mcp/sdk-mcp-server.js'; export type { CallToolResult } from '@modelcontextprotocol/sdk/types.js'; export type { ToolAnnotations } from '@modelcontextprotocol/sdk/types.js'; export { listSessions, getSessionInfo, getSessionMessages, getSubagentMessages, listSubagents, renameSession, tagSession, deleteSession, } from './session/session-manager.js'; export { forkSession } from './session/session-fork.js'; export { InMemorySessionStore } from './session/session-store.js'; export { importSessionToStore } from './session/session-import.js'; export type { ImportSessionToStoreOptions } from './session/session-import.js'; export type { SessionKey, SessionStore, SessionStoreEntry, SessionStoreFlush, } from './session/session-store.js'; export { listPlugins, enablePlugin, disablePlugin, installPlugin, uninstallPlugin, validatePlugin, } from './global/plugins.js'; export type { PluginScope, ListPluginsOptions, PluginToggleOptions, InstallPluginOptions, UninstallPluginOptions, PluginDetails, PluginResources, InstallPluginResult, UninstallPluginResult, PluginValidationSeverity, PluginValidationPhase, PluginValidationPosition, PluginValidationLocation, PluginValidationDiagnostic, PluginValidationReport, ValidatePluginOptions, } from './types/plugins.js'; export { submitFeedback } from './feedback.js'; export type { SubmitFeedbackParams, SubmitFeedbackOptions, IntegrationMode, } from './feedback.js'; export type { HostActionOptions, HostActionParams } from './types/host-action.js'; export type { HostAction, HostActionEvent, } from './protocol/feedback.js'; export { AbortError, ControlRequestError, CONTROL_REQUEST_TIMEOUT_CODE, ModelPolicyTimeoutError, ProtocolVersionMismatchError, UnsupportedCliCapabilityError, } from './core/errors.js'; export { DaemonRpcError } from './daemon/daemon-connection.js'; export { AuthAccessTokenEnvVarError, AuthServiceAccountEnvVarError, } from './core/runtime-launch-options.js'; export { WIRE_PROTOCOL_VERSION } from './protocol/version.js'; export type { ModelPromptPatch, ModelPromptPatches, } from './protocol/model-prompt-patches.js'; export { HOOK_EVENTS, EXIT_REASONS } from './core/constants.js'; import * as coreTypes from './types/index.js'; export { coreTypes }; export type { AccessTokenInput, AuthOptions, FetchServiceAccountToken, ServiceAccountAuthOptions, ServiceAccountCredentials, ServiceAccountKeyInput, ServiceAccountTokenResult, } from './types/auth.js'; /** * @internal Internal auth types for first-party host integration, not general public use. */ export type { FetchJobToken, JobTokenAuthOptions, JobTokenRequest, JobTokenResult, } from './types/auth.js'; export type { Base64ImageSource, UrlImageSource, URLImageSource, ImageSource, ImageContentBlock, ImageBlockParam, ContentBlock, MessageParam, AccountInfo, UsageAddOnQuotaBucket, UsageInfo, UsageOrgResourcePackage, UsageQuotaBucket, SessionCreditsUsage, ApiKeySource, ExitReason, FastModeState, ConfigScope, SettingSource, SDKAssistantMessageError, SDKStatus, EffortLevel, ThinkingAdaptive, ThinkingEnabled, ThinkingDisabled, ThinkingConfig, ModelInfo, ModelSource, ServerModelJson, ServerModelJsonValue, ModelStrategy, ModelPromotion, LocalizedModelText, ModelContextConfig, ModelContextWindowEntry, ModelEffortEntry, ModelThinkingConfig, ModelThinkingDisabled, ModelThinkingEnabled, ModelUsage, NonNullableUsage, SlashCommand, ToolConfig, SdkPluginConfig, } from './types/common.js'; export type { SDKMessage, SDKAssistantMessage, SDKToolNonExecutionKind, SDKToolResultMeta, SDKMessageOrigin, SDKSelectedSkill, SDKArtifactInfo, SDKArtifactUpdateMessage, SDKAvailableModelsUpdateMessage, SDKCommandsChangedMessage, SDKUserMessage, SDKUserMessageReplay, SDKResultMessage, SDKResultSuccess, SDKResultError, SDKSystemMessage, SDKSystemInitMessage, SDKSystemMessageSubtype, SDKSystemMessageBySubtype, SDKPartialAssistantMessage, SDKCompactBoundaryMessage, SDKStatusMessage, SDKAPIRetryMessage, SDKModelQueueStatusMessage, SDKControlRequestProgressMessage, SDKCommandLifecycleMessage, SDKHookStartedMessage, SDKHookProgressMessage, SDKHookResponseMessage, SDKPermissionDeniedMessage, SDKMirrorErrorMessage, SDKTaskNotificationMessage, SDKTaskStartedMessage, SDKTaskProgressMessage, SDKTaskUpdatedMessage, SDKBackgroundTasksChangedMessage, SDKSessionStateChangedMessage, SDKPlanModeChangedMessage, SDKSessionTitleChangedMessage, SDKFilesPersistedEvent, SDKElicitationCompleteMessage, SDKPromptSuggestionMessage, SDKCloudAgentEventMessage, SDKMemoryGenerationMessage, SDKMemoryConsumptionMessage, SDKSkillEvolutionMessage, SDKAgentsMdSizeWarningMessage, SDKPermissionDenial, } from './types/messages.js'; export type { DefaultRuntimeTransport, } from './core/default-runtime.js'; export type { QueryTransportCreateOptions, QueryTransportProviderOption, } from './core/query-transport.js'; export type { ProcessTransportOptions } from './core/process-transport.js'; export type { WorkerRuntimeTransportOptions, WorkerTransportOptions, } from './core/worker-transport.js'; export type { QueryTransportProvider, Transport, } from './core/transport.js'; export type { Options, QueryTransportOptions, Query, RemoteProjectionEnableOptions, RemoteProjectionCheckpoint, SpawnOptions, SpawnedProcess, ElicitationRequest, ElicitationResult, OnElicitation, PromptRequest, PromptRequestOption, PromptResponse, CanUseTool, SecurityScanOptions, } from './types/options.js'; export type { ArtifactGroup, SessionArtifactBase, SessionArtifact, ResolveSessionArtifactsResult, ResolveSessionArtifacts, } from './types/artifacts.js'; export type { EffectiveMemoryConfig, MemoryConsumptionFile, MemoryConsumptionOptions, MemoryConsumptionResult, MemoryGenerationGateInput, MemoryGenerationGateResult, MemoryGenerationOptions, MemoryGenerationFailedFile, MemoryGenerationResult, MemoryMode, MemoryOptions, MemoryRoot, MemoryRootAccess, MemoryShouldGenerate, } from './types/memory.js'; export type { EffectiveEvolutionConfig, EffectiveSkillEvolutionConfig, EvolutionOptions, SkillEvolutionGateInput, SkillEvolutionGateResult, SkillEvolutionGenerationOptions, SkillEvolutionMode, SkillEvolutionOptions, SkillEvolutionResult, SkillEvolutionShouldReview, SkillEvolutionSuggestion, } from './types/skill-evolution.js'; export { MAX_SKILL_EVOLUTION_REVIEW_THRESHOLD } from './types/skill-evolution.js'; export type { AgentCreateParams, BetaManagedAgentsAgentToolName, BetaManagedAgentsAgentToolset20260401Params, BetaManagedAgentsCustomSkillParams, BetaManagedAgentsFileResourceParams, BetaManagedAgentsModel, BetaManagedAgentsSkillParams, BetaManagedAgentsURLMCPServerParams, CloudAgentOptions, CloudAgentReference, CloudAgentStreamOptions, CloudSessionResource, CloudSessionCreateParams, CloudSessionCreateReference, CloudSessionExistingReference, CloudSessionReference, SessionCreateParams, } from './types/cloud-agent.js'; export type { SettingSource as SettingSourceFromOptions } from './types/options.js'; export type { PermissionMode, PermissionBehavior, PermissionScope, CanUseToolPermissionKind, CanUseToolPermissionOption, CanUseToolPermissionDetails, PermissionDecisionClassification, PermissionUpdateDestination, PermissionRuleValue, PermissionUpdate, PermissionResult, CanUseToolOptions, } from './types/permissions.js'; 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 './types/hooks.js'; export type { McpStdioServerConfig, McpSSEServerConfig, McpHttpServerConfig, McpSdkServerConfig, McpSdkServerConfigWithInstance, McpServerConfig, McpServerToolPolicy, McpServerConfigForProcessTransport, McpServerStatus, McpServerStatusConfig, } from './types/mcp.js'; export type { AgentDefinition, AgentInfo, AgentMemoryScope, AgentMcpServerSpec, } from './types/agents.js'; export type { SDKSessionInfo, SessionMessage, SessionMessageView, ListSessionsOptions, GetSessionInfoOptions, GetSessionMessagesOptions, GetSubagentMessagesOptions, ListSubagentsOptions, SessionMutationOptions, ForkSessionOptions, ForkSessionResult, RewindFilesResult, RewindScope, RewindStatus, RewindFileFailure, RewindResult, } from './types/session.js'; export type { Settings, ResolveSettingsOptions, ResolvedSettingSource, ResolvedSettings, ResolvedSettingsSource, SettingsProvenanceEntry, } from './types/settings.js'; export { filterEscalatingDefaultMode } from './types/settings.js'; export type { QoderModelPurpose } from './types/control.js'; export type { SDKControlRequest, SDKControlResponse, SDKControlInterruptResponse, SDKControlInitializeResponse, SDKControlGetContextUsageResponse, SDKControlGetUsageInfoRequest, SDKControlGetUsageInfoResponse, SideQuestionHistoryEntry, AskSideQuestionOptions, SideQuestionRefusalFallback, SideQuestionResult, SDKControlAddDirectoriesResponse, SDKControlReloadPluginsResponse, SDKControlReloadSkillsRequest, SDKControlReloadSkillsResponse, SDKControlStopTaskRequest, SDKControlBackgroundTasksRequest, SDKControlBackgroundTasksResponse, SDKPlanModeSnapshot, } from './types/control.js'; export type { SDKControlGetModelPolicyRequest, SDKControlGetModelPolicyResponse, SDKCapabilities, ModelPolicyContext, ModelPolicyParameters, ModelPolicyResult, ModelPolicyProvider, } from './types/model-policy-provider.js'; export type { SDKControlGetByokConfigRequest, SDKControlGetByokConfigResponse, SDKControlValidateByokModelRequest, SDKControlValidateByokModelResponse, SDKControlListByokConfigsRequest, SDKControlListByokConfigsResponse, SDKControlCreateByokConfigRequest, SDKControlCreateByokConfigResponse, SDKControlUpdateByokConfigRequest, SDKControlDeleteByokConfigRequest, SDKControlCheckByokConfigRequest, SDKControlCheckByokConfigResponse, BYOKModelValidationInput, BYOKLocalizedName, BYOKProviderInfo, BYOKModelTypeInfo, BYOKModelInfo, ByokProtocol, ByokModelConfigInfo, CustomByokProviderConfigInfo, ByokConfigInfo, ByokModelConfigInput, CustomByokProviderThinkingMode, CustomByokProviderReasoningEffortLevel, CustomByokProviderThinkingCapabilitiesInput, CustomByokProviderModelCapabilitiesInput, CustomByokProviderModelInput, CustomByokProviderConfigInput, CreateByokConfigInput, UpdateByokModelConfigInput, UpdateCustomByokProviderConfigInput, UpdateByokConfigInput, DeleteByokConfigInput, CheckByokConfigInput, ByokConfigReference, ByokConfigCheckResult, CustomModel, } from './types/byok.js'; export { isBashToolBackgroundLaunchResult } from './types/tools.js'; export type { AgentInput, AgentOutput, AgentToolCompletionResult, AgentToolBackgroundLaunchResult, AgentToolTeammateSpawnedResult, BashInput, BashToolBackgroundLaunchResult, FileReadInput, FileReadOutput, FileEditInput, FileWriteInput, GlobInput, GrepInput, WebFetchInput, WebSearchInput, AskUserQuestionInput, NotebookEditInput, TaskCreateInput, TaskCreateOutput, TaskGetInput, TaskGetOutput, TaskUpdateInput, TaskUpdateOutput, TaskListInput, TaskListOutput, ExitPlanModeInput, TodoWriteInput, ToolInputSchemas, ToolOutputSchemas, } from './types/tools.js'; export type { FeedbackResult } from './types/account.js';