@@ -6,6 +6,27 @@ C++ SDK for interacting with the Copilot CLI agent runtime (JSON-RPC over stdio
66[ ![ C++20] ( https://img.shields.io/badge/C%2B%2B-20-blue )] ( )
77[ ![ License] ( https://img.shields.io/badge/license-MIT-green )] ( )
88
9+ ## Version 0.4.2
10+
11+ Targets Copilot CLI 1.0.102-1 and SDK protocol version 3.
12+
13+ - Correlate message waiters with the originating request, including sub-agent,
14+ abort, and autopilot events; receive structured JSON with ` response_schema `
15+ and ` send_and_wait_structured ` .
16+ - Replace session tools at runtime with ` Session::set_tools ` ; use tool namespaces
17+ and per-invocation agent/request identifiers.
18+ - Supply session skill providers, installation confirmation handlers, and extension
19+ launch providers. Handle MCP authentication token updates or runtime refresh.
20+ - Configure diagnostics, agent/hook directories, sandboxing, image generation,
21+ transcript recovery, and the expanded provider/agent options.
22+ - Cancel incoming JSON-RPC requests and run request callbacks independently of the
23+ reader. Retire session callbacks on teardown and shut down owned runtimes gracefully.
24+ - Use generated binary SessionFs request/result types and report partial writes
25+ with ` SessionFsError::write_changed ` .
26+
27+ Known limitations: experimental AHP hosting is not implemented. The in-process
28+ macOS UI-thread dispatcher is not provided.
29+
930## Build
1031
1132Requirements: CMake 3.20+ and a C++20 compiler.
@@ -15,29 +36,11 @@ cmake -S . -B build
1536cmake --build build --config Release
1637```
1738
18- ## Tests
19-
20- Unit tests:
21-
22- ``` sh
23- ctest --test-dir build -C Release --output-on-failure
24- ```
25-
26- E2E tests (real Copilot CLI):
27- - Require ` copilot ` to be installed and authenticated.
28- - To disable E2E tests in CI/non-interactive runs, set ` COPILOT_SDK_CPP_SKIP_E2E=1 ` .
29-
30- Snapshot conformance tests (optional):
31- - Require Python 3 and the upstream ` copilot-sdk ` snapshots directory.
32- - Install Python deps: ` python -m pip install --user -r tests/snapshot_tests/requirements.txt `
33- - Enable with ` -DCOPILOT_BUILD_SNAPSHOT_TESTS=ON ` and set ` -DCOPILOT_SDK_CPP_SNAPSHOT_DIR=... ` if auto-detection fails.
34- - Run: ` cmake --build build --target run_snapshot_tests --config Release `
35-
3639## Official protocol baseline and code generation
3740
3841` schemas/official-baseline.json ` pins the official SDK commit, protocol version,
39- schema hashes, and the complete generated surface: 1,203 API definitions, 494
40- session-event definitions, 363 RPC methods, and 122 event variants. Generated
42+ schema hashes, and the complete generated surface: 1,899 API definitions, 679
43+ session-event definitions, 619 RPC methods, and 163 event variants. Generated
4144wire-preserving types live under ` include/copilot/generated/ ` ; the existing
4245handwritten public API remains the ergonomic layer.
4346
@@ -73,8 +76,8 @@ Advanced parity includes:
7376 ` copilot_runtime_* ` native ABI (` prebuilds/<platform>/runtime.node ` ).
7477- ` CopilotRequestHandler ` and WebSocket handlers for streamed model-layer I/O.
7578- Automatic MCP OAuth event handling and pending-request responses.
76- - ` create_canvas ` , ` define_factory ` , ` Session::factory () ` , and ` join_session `
77- helpers for canvas, factory , and extension consumers.
79+ - ` create_canvas ` , ` define_workflow ` , ` Session::workflow () ` , and ` join_session `
80+ helpers for canvas, workflow , and extension consumers.
7881
7982## Custom Tools
8083
0 commit comments