/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. *--------------------------------------------------------------------------------------------*/ package com.github.copilot.sdk.json; import java.util.List; import java.util.Map; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; /** * Internal request object for creating a new session. *

* This is a low-level class for JSON-RPC communication. For creating sessions, * use * {@link com.github.copilot.sdk.CopilotClient#createSession(SessionConfig)}. * * @see com.github.copilot.sdk.CopilotClient#createSession(SessionConfig) * @see SessionConfig * @since 1.0.0 */ @JsonInclude(JsonInclude.Include.NON_NULL) public final class CreateSessionRequest { @JsonProperty("model") private String model; @JsonProperty("sessionId") private String sessionId; @JsonProperty("reasoningEffort") private String reasoningEffort; @JsonProperty("tools") private List tools; @JsonProperty("systemMessage") private SystemMessageConfig systemMessage; @JsonProperty("availableTools") private List availableTools; @JsonProperty("excludedTools") private List excludedTools; @JsonProperty("provider") private ProviderConfig provider; @JsonProperty("requestPermission") private Boolean requestPermission; @JsonProperty("requestUserInput") private Boolean requestUserInput; @JsonProperty("hooks") private Boolean hooks; @JsonProperty("workingDirectory") private String workingDirectory; @JsonProperty("streaming") private Boolean streaming; @JsonProperty("mcpServers") private Map mcpServers; @JsonProperty("customAgents") private List customAgents; @JsonProperty("infiniteSessions") private InfiniteSessionConfig infiniteSessions; @JsonProperty("skillDirectories") private List skillDirectories; @JsonProperty("disabledSkills") private List disabledSkills; @JsonProperty("configDir") private String configDir; /** Gets the model name. @return the model */ public String getModel() { return model; } /** Sets the model name. @param model the model */ public void setModel(String model) { this.model = model; } /** Gets the session ID. @return the session ID */ public String getSessionId() { return sessionId; } /** Sets the session ID. @param sessionId the session ID */ public void setSessionId(String sessionId) { this.sessionId = sessionId; } /** Gets the reasoning effort. @return the reasoning effort level */ public String getReasoningEffort() { return reasoningEffort; } /** * Sets the reasoning effort. @param reasoningEffort the reasoning effort level */ public void setReasoningEffort(String reasoningEffort) { this.reasoningEffort = reasoningEffort; } /** Gets the tools. @return the tool definitions */ public List getTools() { return tools; } /** Sets the tools. @param tools the tool definitions */ public void setTools(List tools) { this.tools = tools; } /** Gets the system message config. @return the config */ public SystemMessageConfig getSystemMessage() { return systemMessage; } /** Sets the system message config. @param systemMessage the config */ public void setSystemMessage(SystemMessageConfig systemMessage) { this.systemMessage = systemMessage; } /** Gets available tools. @return the tool names */ public List getAvailableTools() { return availableTools; } /** Sets available tools. @param availableTools the tool names */ public void setAvailableTools(List availableTools) { this.availableTools = availableTools; } /** Gets excluded tools. @return the tool names */ public List getExcludedTools() { return excludedTools; } /** Sets excluded tools. @param excludedTools the tool names */ public void setExcludedTools(List excludedTools) { this.excludedTools = excludedTools; } /** Gets the provider config. @return the provider */ public ProviderConfig getProvider() { return provider; } /** Sets the provider config. @param provider the provider */ public void setProvider(ProviderConfig provider) { this.provider = provider; } /** Gets request permission flag. @return the flag */ public Boolean getRequestPermission() { return requestPermission; } /** Sets request permission flag. @param requestPermission the flag */ public void setRequestPermission(Boolean requestPermission) { this.requestPermission = requestPermission; } /** Gets request user input flag. @return the flag */ public Boolean getRequestUserInput() { return requestUserInput; } /** Sets request user input flag. @param requestUserInput the flag */ public void setRequestUserInput(Boolean requestUserInput) { this.requestUserInput = requestUserInput; } /** Gets hooks flag. @return the flag */ public Boolean getHooks() { return hooks; } /** Sets hooks flag. @param hooks the flag */ public void setHooks(Boolean hooks) { this.hooks = hooks; } /** Gets working directory. @return the working directory */ public String getWorkingDirectory() { return workingDirectory; } /** Sets working directory. @param workingDirectory the working directory */ public void setWorkingDirectory(String workingDirectory) { this.workingDirectory = workingDirectory; } /** Gets streaming flag. @return the flag */ public Boolean getStreaming() { return streaming; } /** Sets streaming flag. @param streaming the flag */ public void setStreaming(Boolean streaming) { this.streaming = streaming; } /** Gets MCP servers. @return the servers map */ public Map getMcpServers() { return mcpServers; } /** Sets MCP servers. @param mcpServers the servers map */ public void setMcpServers(Map mcpServers) { this.mcpServers = mcpServers; } /** Gets custom agents. @return the agents */ public List getCustomAgents() { return customAgents; } /** Sets custom agents. @param customAgents the agents */ public void setCustomAgents(List customAgents) { this.customAgents = customAgents; } /** Gets infinite sessions config. @return the config */ public InfiniteSessionConfig getInfiniteSessions() { return infiniteSessions; } /** Sets infinite sessions config. @param infiniteSessions the config */ public void setInfiniteSessions(InfiniteSessionConfig infiniteSessions) { this.infiniteSessions = infiniteSessions; } /** Gets skill directories. @return the skill directories */ public List getSkillDirectories() { return skillDirectories; } /** Sets skill directories. @param skillDirectories the directories */ public void setSkillDirectories(List skillDirectories) { this.skillDirectories = skillDirectories; } /** Gets disabled skills. @return the disabled skill names */ public List getDisabledSkills() { return disabledSkills; } /** Sets disabled skills. @param disabledSkills the skill names to disable */ public void setDisabledSkills(List disabledSkills) { this.disabledSkills = disabledSkills; } /** Gets config directory. @return the config directory path */ public String getConfigDir() { return configDir; } /** Sets config directory. @param configDir the config directory path */ public void setConfigDir(String configDir) { this.configDir = configDir; } }