/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
*--------------------------------------------------------------------------------------------*/
/**
* Core classes for the GitHub Copilot SDK for Java.
*
*
* This package provides the main entry points for interacting with GitHub
* Copilot programmatically. The SDK enables Java applications to leverage
* Copilot's agentic capabilities, including multi-turn conversations, tool
* execution, and AI-powered code generation.
*
*
Main Classes
*
* - {@link com.github.copilot.sdk.CopilotClient} - The main client for
* connecting to and communicating with the Copilot CLI. Manages the lifecycle
* of the CLI process and provides methods for creating sessions, querying
* models, and checking authentication status.
* - {@link com.github.copilot.sdk.CopilotSession} - Represents a single
* conversation session with Copilot. Sessions maintain context across multiple
* messages and support streaming responses, tool invocations, and event
* handling.
* - {@link com.github.copilot.sdk.JsonRpcClient} - Low-level JSON-RPC client
* for communication with the Copilot CLI process.
*
*
* Quick Start
*
* {@code
* try (var client = new CopilotClient()) {
* client.start().get();
*
* var session = client.createSession(new SessionConfig().setModel("gpt-4.1")).get();
*
* session.on(AssistantMessageEvent.class, msg -> {
* System.out.println(msg.getData().content());
* });
*
* session.send(new MessageOptions().setPrompt("Hello, Copilot!")).get();
* }
* }
*
* Related Packages
*
* - {@link com.github.copilot.sdk.events} - Event types emitted during
* session processing
* - {@link com.github.copilot.sdk.json} - Configuration and data transfer
* objects
*
*
* @see com.github.copilot.sdk.CopilotClient
* @see com.github.copilot.sdk.CopilotSession
* @see GitHub
* Repository
*/
package com.github.copilot.sdk;