Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .copilot-schema-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.0.63
1.0.65
57 changes: 57 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,63 @@ All notable changes to this project will be documented in this file. This change

## [Unreleased]

### Added (v1.0.4 sync)
Ported from upstream `github/copilot-sdk` v1.0.1 → v1.0.4 (`@github/copilot`
1.0.63 → 1.0.65). Schema bumped to 1.0.65.
- **`:preamble` system-message section + `:preserve` action** — port of upstream
[PR #1713](https://github.com/github/copilot-sdk/pull/1713). The customize-mode
section catalog gains `:preamble` (the agent identity preamble, split out from
the `:identity` group, which is now a section group). The static section
actions gain `:preserve`, a no-op marker that opts an individually-addressable
section out of a group-level `:remove`. Both `system-prompt-sections` and its
`system-message-sections` alias expose `:preamble`.
- **`:capi` session option** — port of upstream
[PR #1711](https://github.com/github/copilot-sdk/pull/1711). `create-session`
and `resume-session` accept an optional `:capi` map (`{:enable-web-socket-responses
boolean}`), wire-encoded as `capi.enableWebSocketResponses`. Added `::capi` and
`::enable-web-socket-responses` specs.
- **Provider `:transport`** — port of upstream
[PR #1711](https://github.com/github/copilot-sdk/pull/1711). The singular BYOK
`:provider` accepts an optional `:transport` (`:http` or `:websockets`), emitted
as wire `transport`. Registry named providers (in `:providers`) do **not** accept
`:transport`, matching upstream's `NamedProviderConfig`. Added `::transport` spec.
- **Multi-provider BYOK registry (`:providers` / `:models`)** — port of upstream
[PR #1718](https://github.com/github/copilot-sdk/pull/1718) (`@experimental`).
`create-session` and `resume-session` accept `:providers` (a vector of named
providers) and `:models` (a model catalog referencing them by `:name`). A model
selection id is `"providerName/id"`. Combining the singular `:provider` with
either `:providers` or `:models` is rejected. Added `::named-provider`,
`::provider-model`, `::providers`, and `::models` specs.
- **`:bearer-token-provider` callback** — port of upstream
[PR #1748](https://github.com/github/copilot-sdk/pull/1748) (`@experimental`).
Providers accept a `:bearer-token-provider` function for dynamic, per-request
bearer tokens. The fn is stripped before serialization (sending
`hasBearerTokenProvider true`); the runtime requests a token via a new inbound
`providerToken.getToken` RPC, dispatched to the registered callback. Non-string
callback results are rejected and never logged. Added `::bearer-token-provider`
spec.
- **`:exp-assignments` session option** — port of upstream
[PR #1750](https://github.com/github/copilot-sdk/pull/1750) (`@internal`).
An opaque experiment-flight assignment map forwarded verbatim (string keys
bypass kebab→camel conversion) as `expAssignments`. Added `::exp-assignments`
spec.
- **New session-event types** (schema 1.0.65) — schema-driven event types added to
the generated wire specs: citations, binary assets (PersistedBinary /
OmittedBinary / BinaryAssetReference), additional canvas events
(CanvasUnavailable / Recorded / Removed), ScheduleRearmed, and MCP OAuth events.
Public `event-types` / `session-events` entries added where upstream exposes a
public SDK event.
- **`open-canvases` validation relaxed** — parity with upstream `session.ts`:
an open-canvas instance now requires only the three id fields `:instance-id` +
`:extension-id` + `:canvas-id` (dropped the `:reopen` / `:availability`
requirements).

### Changed (v1.0.4 sync)
- **`redact-secrets` masks the `:providers` registry** — the validation-error
redactor now masks `:api-key`, `:bearer-token`, and `:headers` on every entry
in the multi-provider `:providers` registry, matching the existing singular
`:provider` masking.

### Added (post-v1.0.1 sync)
- **`:memory` session configuration** — port of upstream
[PR #1617](https://github.com/github/copilot-sdk/pull/1617). `create-session`
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Add to your `deps.edn`:

```clojure
;; From Maven Central
io.github.copilot-community-sdk/copilot-sdk-clojure {:mvn/version "1.0.1.1"}
io.github.copilot-community-sdk/copilot-sdk-clojure {:mvn/version "1.0.4.0"}

;; Or git dependency
io.github.copilot-community-sdk/copilot-sdk-clojure {:git/url "https://github.com/copilot-community-sdk/copilot-sdk-clojure.git"
Expand Down
2 changes: 1 addition & 1 deletion build.clj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
(:import [java.io File]))

(def lib 'io.github.copilot-community-sdk/copilot-sdk-clojure)
(def version "1.0.1.1")
(def version "1.0.4.0")
(def class-dir "target/classes")

(defn- try-sh
Expand Down
384 changes: 361 additions & 23 deletions doc/api/API.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion doc/api/azure-managed-identity.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<!DOCTYPE html PUBLIC ""
"">
<html><head><meta charset="UTF-8" /><title>Azure Managed Identity with BYOK</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name"></span> <span class="project-version"></span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="API.html"><div class="inner"><span>API Reference</span></div></a></li><li class="depth-1 current"><a href="azure-managed-identity.html"><div class="inner"><span>Azure Managed Identity with BYOK</span></div></a></li><li class="depth-1 "><a href="byok.html"><div class="inner"><span>BYOK (Bring Your Own Key)</span></div></a></li><li class="depth-1 "><a href="codegen.html"><div class="inner"><span>Schema-Driven Code Generation</span></div></a></li><li class="depth-1 "><a href="custom-agents.html"><div class="inner"><span>Custom Agents &amp; Sub-Agent Orchestration</span></div></a></li><li class="depth-1 "><a href="debugging.html"><div class="inner"><span>MCP Server Debugging Guide</span></div></a></li><li class="depth-1 "><a href="getting-started.html"><div class="inner"><span>Getting Started with the Copilot SDK for Clojure</span></div></a></li><li class="depth-1 "><a href="index.html"><div class="inner"><span>Authentication</span></div></a></li><li class="depth-1 "><a href="index.html"><div class="inner"><span>Documentation</span></div></a></li><li class="depth-1 "><a href="overview.html"><div class="inner"><span>Using MCP Servers with the Copilot SDK for Clojure</span></div></a></li><li class="depth-1 "><a href="style.html"><div class="inner"><span>Documentation Style Guide</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>github</span></div></div></li><li class="depth-2"><a href="github.copilot-sdk.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>copilot-sdk</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.client.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>client</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>generated</span></div></div></li><li class="depth-4 branch"><a href="github.copilot-sdk.generated.coerce.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>coerce</span></div></a></li><li class="depth-4"><a href="github.copilot-sdk.generated.event-specs.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>event-specs</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.helpers.html"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>helpers</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.instrument.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>instrument</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.logging.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>logging</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.process.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>process</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.protocol.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>protocol</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.session.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>session</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.specs.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>specs</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.tools.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>tools</span></div></a></li><li class="depth-3"><a href="github.copilot-sdk.util.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>util</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#azure-managed-identity-with-byok" id="azure-managed-identity-with-byok"></a>Azure Managed Identity with BYOK</h1>
<html><head><meta charset="UTF-8" /><title>Azure Managed Identity with BYOK</title><link rel="stylesheet" type="text/css" href="css/default.css" /><link rel="stylesheet" type="text/css" href="css/highlight.css" /><script type="text/javascript" src="js/highlight.min.js"></script><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/page_effects.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div id="header"><h2>Generated by <a href="https://github.com/weavejester/codox">Codox</a></h2><h1><a href="index.html"><span class="project-title"><span class="project-name"></span> <span class="project-version"></span></span></a></h1></div><div class="sidebar primary"><h3 class="no-link"><span class="inner">Project</span></h3><ul class="index-link"><li class="depth-1 "><a href="index.html"><div class="inner">Index</div></a></li></ul><h3 class="no-link"><span class="inner">Topics</span></h3><ul><li class="depth-1 "><a href="API.html"><div class="inner"><span>API Reference</span></div></a></li><li class="depth-1 current"><a href="azure-managed-identity.html"><div class="inner"><span>Azure Managed Identity with BYOK</span></div></a></li><li class="depth-1 "><a href="byok.html"><div class="inner"><span>BYOK (Bring Your Own Key)</span></div></a></li><li class="depth-1 "><a href="codegen.html"><div class="inner"><span>Schema-Driven Code Generation</span></div></a></li><li class="depth-1 "><a href="custom-agents.html"><div class="inner"><span>Custom Agents &amp; Sub-Agent Orchestration</span></div></a></li><li class="depth-1 "><a href="debugging.html"><div class="inner"><span>MCP Server Debugging Guide</span></div></a></li><li class="depth-1 "><a href="getting-started.html"><div class="inner"><span>Getting Started with the Copilot SDK for Clojure</span></div></a></li><li class="depth-1 "><a href="index.html"><div class="inner"><span>Authentication</span></div></a></li><li class="depth-1 "><a href="index.html"><div class="inner"><span>Documentation</span></div></a></li><li class="depth-1 "><a href="overview.html"><div class="inner"><span>Using MCP Servers with the Copilot SDK for Clojure</span></div></a></li><li class="depth-1 "><a href="style.html"><div class="inner"><span>Documentation Style Guide</span></div></a></li><li class="depth-1 "><a href="upstream-doc-gap-matrix.html"><div class="inner"><span>Upstream Documentation Gap Matrix</span></div></a></li></ul><h3 class="no-link"><span class="inner">Namespaces</span></h3><ul><li class="depth-1"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>github</span></div></div></li><li class="depth-2"><a href="github.copilot-sdk.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>copilot-sdk</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.client.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>client</span></div></a></li><li class="depth-3"><div class="no-link"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>generated</span></div></div></li><li class="depth-4 branch"><a href="github.copilot-sdk.generated.coerce.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>coerce</span></div></a></li><li class="depth-4"><a href="github.copilot-sdk.generated.event-specs.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>event-specs</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.helpers.html"><div class="inner"><span class="tree" style="top: -83px;"><span class="top" style="height: 92px;"></span><span class="bottom"></span></span><span>helpers</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.instrument.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>instrument</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.logging.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>logging</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.process.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>process</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.protocol.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>protocol</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.session.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>session</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.specs.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>specs</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.tool-set.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>tool-set</span></div></a></li><li class="depth-3 branch"><a href="github.copilot-sdk.tools.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>tools</span></div></a></li><li class="depth-3"><a href="github.copilot-sdk.util.html"><div class="inner"><span class="tree"><span class="top"></span><span class="bottom"></span></span><span>util</span></div></a></li></ul></div><div class="document" id="content"><div class="doc"><div class="markdown"><h1><a href="#azure-managed-identity-with-byok" id="azure-managed-identity-with-byok"></a>Azure Managed Identity with BYOK</h1>
<p>The Copilot SDK’s <a href="./byok.html">BYOK mode</a> accepts static API keys, but Azure deployments often use <strong>Managed Identity</strong> (Entra ID) instead of long-lived keys. Since the SDK does not natively support Entra ID authentication, you can obtain a short-lived bearer token and pass it via the <code>:bearer-token</code> provider config field.</p>
<p>This guide shows how to use <code>DefaultAzureCredential</code> from the <a href="https://learn.microsoft.com/java/api/overview/azure/identity-readme">Azure Identity SDK</a> to authenticate with Azure AI Foundry models through the Copilot SDK.</p>
<h2><a href="#how-it-works" id="how-it-works"></a>How It Works</h2>
Expand Down
Loading
Loading