diff --git a/dotnet/src/Generated/Rpc.cs b/dotnet/src/Generated/Rpc.cs
index 89e863ad1..6917b6bc7 100644
--- a/dotnet/src/Generated/Rpc.cs
+++ b/dotnet/src/Generated/Rpc.cs
@@ -2812,6 +2812,10 @@ public sealed class CopilotUserResponse
[JsonPropertyName("can_signup_for_limited")]
public bool? CanSignupForLimited { get; set; }
+ /// Gets or sets the can_upgrade_plan value.
+ [JsonPropertyName("can_upgrade_plan")]
+ public bool? CanUpgradePlan { get; set; }
+
/// Gets or sets the chat_enabled value.
[JsonPropertyName("chat_enabled")]
public bool? ChatEnabled { get; set; }
@@ -3960,6 +3964,10 @@ public sealed class WorkspaceDiffResult
[Experimental(Diagnostics.Experimental)]
internal sealed class WorkspacesDiffRequest
{
+ /// When true, ignore whitespace-only changes (git `--ignore-all-space`). Defaults to false.
+ [JsonPropertyName("ignoreWhitespace")]
+ public bool? IgnoreWhitespace { get; set; }
+
/// Diff mode requested by the client.
[JsonPropertyName("mode")]
public WorkspaceDiffMode Mode { get; set; }
@@ -17270,13 +17278,14 @@ public async Task SaveLargePasteAsync(string con
/// Computes a diff for the session workspace.
/// Diff mode requested by the client.
+ /// When true, ignore whitespace-only changes (git `--ignore-all-space`). Defaults to false.
/// The to monitor for cancellation requests. The default is .
/// Workspace diff result for the requested mode.
- public async Task DiffAsync(WorkspaceDiffMode mode, CancellationToken cancellationToken = default)
+ public async Task DiffAsync(WorkspaceDiffMode mode, bool? ignoreWhitespace = null, CancellationToken cancellationToken = default)
{
_session.ThrowIfDisposed();
- var request = new WorkspacesDiffRequest { SessionId = _session.SessionId, Mode = mode };
+ var request = new WorkspacesDiffRequest { SessionId = _session.SessionId, Mode = mode, IgnoreWhitespace = ignoreWhitespace };
return await CopilotClient.InvokeRpcAsync(_session.Rpc, "session.workspaces.diff", [request], cancellationToken);
}
}
diff --git a/dotnet/src/Generated/SessionEvents.cs b/dotnet/src/Generated/SessionEvents.cs
index 5fe7bb79b..1f1cc1e5c 100644
--- a/dotnet/src/Generated/SessionEvents.cs
+++ b/dotnet/src/Generated/SessionEvents.cs
@@ -2344,6 +2344,11 @@ public sealed partial class AssistantUsageData
[JsonPropertyName("cacheWriteTokens")]
public long? CacheWriteTokens { get; set; }
+ /// Whether the model response was blocked or truncated by content filtering (finish_reason === 'content_filter'). For Anthropic models this corresponds to a 'refusal' stop reason.
+ [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+ [JsonPropertyName("contentFilterTriggered")]
+ public bool? ContentFilterTriggered { get; set; }
+
/// Per-request cost and usage data from the CAPI copilot_usage response field.
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonInclude]
@@ -2362,6 +2367,11 @@ public sealed partial class AssistantUsageData
[JsonPropertyName("duration")]
public TimeSpan? Duration { get; set; }
+ /// Finish reason reported by the model for this API call (e.g. "stop", "length", "tool_calls", "content_filter"). Normalized to OpenAI vocabulary; for Anthropic models a "refusal" stop reason maps to "content_filter".
+ [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+ [JsonPropertyName("finishReason")]
+ public string? FinishReason { get; set; }
+
/// What initiated this API call (e.g., "sub-agent", "mcp-sampling"); absent for user-initiated calls.
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("initiator")]
@@ -4621,6 +4631,11 @@ public sealed partial class ToolExecutionCompleteResult
[JsonPropertyName("detailedContent")]
public string? DetailedContent { get; set; }
+ /// Structured content (arbitrary JSON) returned verbatim by the MCP tool.
+ [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
+ [JsonPropertyName("structuredContent")]
+ public JsonElement? StructuredContent { get; set; }
+
/// MCP Apps UI resource content for rendering in a sandboxed iframe.
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
[JsonPropertyName("uiResource")]
diff --git a/go/rpc/zrpc.go b/go/rpc/zrpc.go
index 583ed3c58..f8b35a880 100644
--- a/go/rpc/zrpc.go
+++ b/go/rpc/zrpc.go
@@ -1004,6 +1004,7 @@ type CopilotUserResponse struct {
AnalyticsTrackingID *string `json:"analytics_tracking_id,omitempty"`
AssignedDate *string `json:"assigned_date,omitempty"`
CanSignupForLimited *bool `json:"can_signup_for_limited,omitempty"`
+ CanUpgradePlan *bool `json:"can_upgrade_plan,omitempty"`
ChatEnabled *bool `json:"chat_enabled,omitempty"`
CLIRemoteControlEnabled *bool `json:"cli_remote_control_enabled,omitempty"`
CloudSessionStorageEnabled *bool `json:"cloud_session_storage_enabled,omitempty"`
@@ -2566,6 +2567,9 @@ func (RawMCPServerConfigData) mcpServerConfig() {}
type MCPServerConfigHTTP struct {
// Set to `true` to use defaults, or provide an object with additional auth or OIDC settings.
Auth MCPServerAuthConfig `json:"auth,omitempty"`
+ // Controls if tools provided by this server can be loaded on demand via tool search (auto)
+ // or always included in the initial tool list (never)
+ DeferTools *MCPServerConfigDeferTools `json:"deferTools,omitempty"`
// Content filtering mode to apply to all tools, or a map of tool name to content filtering
// mode.
FilterMapping FilterMapping `json:"filterMapping,omitempty"`
@@ -2604,6 +2608,9 @@ type MCPServerConfigStdio struct {
Command string `json:"command"`
// Working directory for the Stdio MCP server process.
Cwd *string `json:"cwd,omitempty"`
+ // Controls if tools provided by this server can be loaded on demand via tool search (auto)
+ // or always included in the initial tool list (never)
+ DeferTools *MCPServerConfigDeferTools `json:"deferTools,omitempty"`
// Environment variables to pass to the Stdio MCP server process.
Env map[string]string `json:"env,omitzero"`
// Content filtering mode to apply to all tools, or a map of tool name to content filtering
@@ -8435,6 +8442,8 @@ type WorkspacesCreateFileRequest struct {
// Experimental: WorkspacesDiffRequest is part of an experimental API and may change or be
// removed.
type WorkspacesDiffRequest struct {
+ // When true, ignore whitespace-only changes (git `--ignore-all-space`). Defaults to false.
+ IgnoreWhitespace *bool `json:"ignoreWhitespace,omitempty"`
// Diff mode requested by the client.
Mode WorkspaceDiffMode `json:"mode"`
}
@@ -9147,6 +9156,17 @@ const (
MCPSamplingExecutionActionSuccess MCPSamplingExecutionAction = "success"
)
+// Controls if tools provided by this server can be loaded on demand via tool search (auto)
+// or always included in the initial tool list (never)
+type MCPServerConfigDeferTools string
+
+const (
+ // Tools may be deferred under certain conditions
+ MCPServerConfigDeferToolsAuto MCPServerConfigDeferTools = "auto"
+ // Tools are always included in the initial tool list, even when tool search is enabled.
+ MCPServerConfigDeferToolsNever MCPServerConfigDeferTools = "never"
+)
+
// OAuth grant type to use when authenticating to the remote MCP server.
type MCPServerConfigHTTPOauthGrantType string
@@ -15348,6 +15368,9 @@ func (a *WorkspacesAPI) CreateFile(ctx context.Context, params *WorkspacesCreate
func (a *WorkspacesAPI) Diff(ctx context.Context, params *WorkspacesDiffRequest) (*WorkspaceDiffResult, error) {
req := map[string]any{"sessionId": a.sessionID}
if params != nil {
+ if params.IgnoreWhitespace != nil {
+ req["ignoreWhitespace"] = *params.IgnoreWhitespace
+ }
req["mode"] = params.Mode
}
raw, err := a.client.Request(ctx, "session.workspaces.diff", req)
diff --git a/go/rpc/zrpc_encoding.go b/go/rpc/zrpc_encoding.go
index 573528b5a..1e081ab7d 100644
--- a/go/rpc/zrpc_encoding.go
+++ b/go/rpc/zrpc_encoding.go
@@ -918,6 +918,7 @@ func unmarshalMCPServerAuthConfig(data []byte) (MCPServerAuthConfig, error) {
func (r *MCPServerConfigHTTP) UnmarshalJSON(data []byte) error {
type rawMCPServerConfigHTTP struct {
Auth json.RawMessage `json:"auth,omitempty"`
+ DeferTools *MCPServerConfigDeferTools `json:"deferTools,omitempty"`
FilterMapping json.RawMessage `json:"filterMapping,omitempty"`
Headers map[string]string `json:"headers,omitzero"`
IsDefaultServer *bool `json:"isDefaultServer,omitempty"`
@@ -941,6 +942,7 @@ func (r *MCPServerConfigHTTP) UnmarshalJSON(data []byte) error {
}
r.Auth = value
}
+ r.DeferTools = raw.DeferTools
if raw.FilterMapping != nil {
value, err := unmarshalFilterMapping(raw.FilterMapping)
if err != nil {
@@ -969,16 +971,17 @@ func (r *MCPServerConfigHTTP) UnmarshalJSON(data []byte) error {
func (r *MCPServerConfigStdio) UnmarshalJSON(data []byte) error {
type rawMCPServerConfigStdio struct {
- Args []string `json:"args,omitzero"`
- Auth json.RawMessage `json:"auth,omitempty"`
- Command string `json:"command"`
- Cwd *string `json:"cwd,omitempty"`
- Env map[string]string `json:"env,omitzero"`
- FilterMapping json.RawMessage `json:"filterMapping,omitempty"`
- IsDefaultServer *bool `json:"isDefaultServer,omitempty"`
- Oidc json.RawMessage `json:"oidc,omitempty"`
- Timeout *int64 `json:"timeout,omitempty"`
- Tools []string `json:"tools,omitzero"`
+ Args []string `json:"args,omitzero"`
+ Auth json.RawMessage `json:"auth,omitempty"`
+ Command string `json:"command"`
+ Cwd *string `json:"cwd,omitempty"`
+ DeferTools *MCPServerConfigDeferTools `json:"deferTools,omitempty"`
+ Env map[string]string `json:"env,omitzero"`
+ FilterMapping json.RawMessage `json:"filterMapping,omitempty"`
+ IsDefaultServer *bool `json:"isDefaultServer,omitempty"`
+ Oidc json.RawMessage `json:"oidc,omitempty"`
+ Timeout *int64 `json:"timeout,omitempty"`
+ Tools []string `json:"tools,omitzero"`
}
var raw rawMCPServerConfigStdio
if err := json.Unmarshal(data, &raw); err != nil {
@@ -994,6 +997,7 @@ func (r *MCPServerConfigStdio) UnmarshalJSON(data []byte) error {
}
r.Command = raw.Command
r.Cwd = raw.Cwd
+ r.DeferTools = raw.DeferTools
r.Env = raw.Env
if raw.FilterMapping != nil {
value, err := unmarshalFilterMapping(raw.FilterMapping)
diff --git a/go/rpc/zsession_encoding.go b/go/rpc/zsession_encoding.go
index 066fd854a..a86ca38ca 100644
--- a/go/rpc/zsession_encoding.go
+++ b/go/rpc/zsession_encoding.go
@@ -844,10 +844,11 @@ func (r ToolExecutionCompleteContentText) MarshalJSON() ([]byte, error) {
func (r *ToolExecutionCompleteResult) UnmarshalJSON(data []byte) error {
type rawToolExecutionCompleteResult struct {
- Content string `json:"content"`
- Contents []json.RawMessage `json:"contents,omitzero"`
- DetailedContent *string `json:"detailedContent,omitempty"`
- UIResource *ToolExecutionCompleteUIResource `json:"uiResource,omitempty"`
+ Content string `json:"content"`
+ Contents []json.RawMessage `json:"contents,omitzero"`
+ DetailedContent *string `json:"detailedContent,omitempty"`
+ StructuredContent any `json:"structuredContent,omitempty"`
+ UIResource *ToolExecutionCompleteUIResource `json:"uiResource,omitempty"`
}
var raw rawToolExecutionCompleteResult
if err := json.Unmarshal(data, &raw); err != nil {
@@ -865,6 +866,7 @@ func (r *ToolExecutionCompleteResult) UnmarshalJSON(data []byte) error {
}
}
r.DetailedContent = raw.DetailedContent
+ r.StructuredContent = raw.StructuredContent
r.UIResource = raw.UIResource
return nil
}
diff --git a/go/rpc/zsession_events.go b/go/rpc/zsession_events.go
index fdad4a1ad..fa04e4d2f 100644
--- a/go/rpc/zsession_events.go
+++ b/go/rpc/zsession_events.go
@@ -576,6 +576,8 @@ type AssistantUsageData struct {
CacheReadTokens *int64 `json:"cacheReadTokens,omitempty"`
// Number of tokens written to prompt cache
CacheWriteTokens *int64 `json:"cacheWriteTokens,omitempty"`
+ // Whether the model response was blocked or truncated by content filtering (finish_reason === 'content_filter'). For Anthropic models this corresponds to a 'refusal' stop reason.
+ ContentFilterTriggered *bool `json:"contentFilterTriggered,omitempty"`
// Per-request cost and usage data from the CAPI copilot_usage response field
// Internal: CopilotUsage is part of the SDK's internal API surface and is not intended for external use.
CopilotUsage *AssistantUsageCopilotUsage `json:"copilotUsage,omitempty"`
@@ -584,6 +586,8 @@ type AssistantUsageData struct {
Cost *float64 `json:"cost,omitempty"`
// Duration of the API call in milliseconds
Duration *int64 `json:"duration,omitempty"`
+ // Finish reason reported by the model for this API call (e.g. "stop", "length", "tool_calls", "content_filter"). Normalized to OpenAI vocabulary; for Anthropic models a "refusal" stop reason maps to "content_filter".
+ FinishReason *string `json:"finishReason,omitempty"`
// What initiated this API call (e.g., "sub-agent", "mcp-sampling"); absent for user-initiated calls
Initiator *string `json:"initiator,omitempty"`
// Number of input tokens consumed
@@ -2814,6 +2818,8 @@ type ToolExecutionCompleteResult struct {
Contents []ToolExecutionCompleteContent `json:"contents,omitzero"`
// Full detailed tool result for UI/timeline display, preserving complete content such as diffs. Falls back to content when absent.
DetailedContent *string `json:"detailedContent,omitempty"`
+ // Structured content (arbitrary JSON) returned verbatim by the MCP tool
+ StructuredContent any `json:"structuredContent,omitempty"`
// MCP Apps UI resource content for rendering in a sandboxed iframe
UIResource *ToolExecutionCompleteUIResource `json:"uiResource,omitempty"`
}
diff --git a/java/pom.xml b/java/pom.xml
index bbe6376be..4179aeddd 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -86,7 +86,7 @@
DO NOT EDIT MANUALLY. Updated by the update-copilot-dependency
workflow.
-->
- ^1.0.62
+ ^1.0.63
diff --git a/java/scripts/codegen/package-lock.json b/java/scripts/codegen/package-lock.json
index ea463cc4d..b8e49c383 100644
--- a/java/scripts/codegen/package-lock.json
+++ b/java/scripts/codegen/package-lock.json
@@ -6,7 +6,7 @@
"": {
"name": "copilot-sdk-java-codegen",
"dependencies": {
- "@github/copilot": "^1.0.62",
+ "@github/copilot": "^1.0.63",
"json-schema": "^0.4.0",
"tsx": "^4.22.4"
}
@@ -428,9 +428,9 @@
}
},
"node_modules/@github/copilot": {
- "version": "1.0.62",
- "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.62.tgz",
- "integrity": "sha512-jR2msL2xmLPHvcfnQnIJuaM9oEoL8qcjmsVOkyUrsqBVRGw2HaaFx9yAB4NLR+ub/XrhaIdnV91/4URR59Utbw==",
+ "version": "1.0.63",
+ "resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.63.tgz",
+ "integrity": "sha512-e8DRYiWJQc4kepVXsXjC8vpDU2FXS/TfR+Z6p/KAojfcwIUZzKMAfCV5D1lD25hV4CryVH1Z9t7mHqChickj0Q==",
"license": "SEE LICENSE IN LICENSE.md",
"dependencies": {
"detect-libc": "^2.1.2",
@@ -440,20 +440,20 @@
"copilot": "npm-loader.js"
},
"optionalDependencies": {
- "@github/copilot-darwin-arm64": "1.0.62",
- "@github/copilot-darwin-x64": "1.0.62",
- "@github/copilot-linux-arm64": "1.0.62",
- "@github/copilot-linux-x64": "1.0.62",
- "@github/copilot-linuxmusl-arm64": "1.0.62",
- "@github/copilot-linuxmusl-x64": "1.0.62",
- "@github/copilot-win32-arm64": "1.0.62",
- "@github/copilot-win32-x64": "1.0.62"
+ "@github/copilot-darwin-arm64": "1.0.63",
+ "@github/copilot-darwin-x64": "1.0.63",
+ "@github/copilot-linux-arm64": "1.0.63",
+ "@github/copilot-linux-x64": "1.0.63",
+ "@github/copilot-linuxmusl-arm64": "1.0.63",
+ "@github/copilot-linuxmusl-x64": "1.0.63",
+ "@github/copilot-win32-arm64": "1.0.63",
+ "@github/copilot-win32-x64": "1.0.63"
}
},
"node_modules/@github/copilot-darwin-arm64": {
- "version": "1.0.62",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.62.tgz",
- "integrity": "sha512-ShFS6+O/9SzXT7WelzRnbDo/RWieTnEsACcarfYunbYb5CWbc3VDgpWc6ispn6UbLXFxO5Nj26j6vMlRqYugfA==",
+ "version": "1.0.63",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-arm64/-/copilot-darwin-arm64-1.0.63.tgz",
+ "integrity": "sha512-z6CMBxNDlKvT6bvOpqhu4M2bhb0daEbVwSe9SN9WfDUJbt7bpoL7OKKas428iyPSWHoL2WXwxSsy/FjIwSLV6w==",
"cpu": [
"arm64"
],
@@ -467,9 +467,9 @@
}
},
"node_modules/@github/copilot-darwin-x64": {
- "version": "1.0.62",
- "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.62.tgz",
- "integrity": "sha512-6Ne9q04o/bIJyGciFqv0zu+6VftEA9BZahvg9QrBt/tMHxJ1IhY8//0deQlPtFh2hu5gaWp64hBjTBY3ViJkKA==",
+ "version": "1.0.63",
+ "resolved": "https://registry.npmjs.org/@github/copilot-darwin-x64/-/copilot-darwin-x64-1.0.63.tgz",
+ "integrity": "sha512-YKd7cXZgAGxhudzrtWdWh2NS35p2G5bV22Gz3jhEyBTqmq45o4sD4OwO87+UpkvM+3nZpwsHaLd3a+ILYX6OXg==",
"cpu": [
"x64"
],
@@ -483,9 +483,9 @@
}
},
"node_modules/@github/copilot-linux-arm64": {
- "version": "1.0.62",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.62.tgz",
- "integrity": "sha512-PAEU/VyJ/6AUc+p5BfpuKVXUEZhQSZT26hiEf6R2ZxSOAL1BZPXj1BuqniFdBghP7SS2JKh6M5FM7oT0PomKPg==",
+ "version": "1.0.63",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-arm64/-/copilot-linux-arm64-1.0.63.tgz",
+ "integrity": "sha512-A3DOeEfmsJH9j1N+QLc7WXmESBskbezmhDyhyAJcHkw0ngRbKctuWQf/evUHFMh/kgwy1Lr/+9jXJm3NZqr0MA==",
"cpu": [
"arm64"
],
@@ -499,9 +499,9 @@
}
},
"node_modules/@github/copilot-linux-x64": {
- "version": "1.0.62",
- "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.62.tgz",
- "integrity": "sha512-XE+O7a1lyF6fhWrALPuyXARAwvVKSzbH+L1cbQU/BdVgx6TR68B0MMX3ByJTnwjGSzfxxVs2LI6nMrcbTyXhUQ==",
+ "version": "1.0.63",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linux-x64/-/copilot-linux-x64-1.0.63.tgz",
+ "integrity": "sha512-OMKfZJRoDaJOV7vuWX/nFPNdLa9/H+nhajdE83v4YT9mKLXr86aWrkXE3pPoDYsKWvgQFHg4APA6oZPao0Fyow==",
"cpu": [
"x64"
],
@@ -515,9 +515,9 @@
}
},
"node_modules/@github/copilot-linuxmusl-arm64": {
- "version": "1.0.62",
- "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-arm64/-/copilot-linuxmusl-arm64-1.0.62.tgz",
- "integrity": "sha512-kww9Hi75i5BVhzrIgQnA/gz48m7A7aLkzG/ci2cRvuI7gTG3XzX+b93mpNqOcVD4yN1oqWza49rWnElJhjSvvg==",
+ "version": "1.0.63",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-arm64/-/copilot-linuxmusl-arm64-1.0.63.tgz",
+ "integrity": "sha512-jcIo6B3uHgcOluNfUHp+6atShKKrXYBPLaRyF6aDT699lwI83gW9KTDuEvDs5FDg8qWsWFfOl+al2dkWDYD3CQ==",
"cpu": [
"arm64"
],
@@ -531,9 +531,9 @@
}
},
"node_modules/@github/copilot-linuxmusl-x64": {
- "version": "1.0.62",
- "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-x64/-/copilot-linuxmusl-x64-1.0.62.tgz",
- "integrity": "sha512-6sC/Uz1OsMltkd0eqg7so5WyejnSxhnu2sY6rfVsn0epJ9wQyMXcjUDSHaY9DobUaF7HpgT3EPzU9Ncs0rByCQ==",
+ "version": "1.0.63",
+ "resolved": "https://registry.npmjs.org/@github/copilot-linuxmusl-x64/-/copilot-linuxmusl-x64-1.0.63.tgz",
+ "integrity": "sha512-BEdBbEF3fG7VqXzuaAY4JtmbdGSkpJFeb2ZQYaMpq7OP3aS7ssGe1cCX8ehZNegcMM/eb4GC6PXNXsvl3X/PAQ==",
"cpu": [
"x64"
],
@@ -547,9 +547,9 @@
}
},
"node_modules/@github/copilot-win32-arm64": {
- "version": "1.0.62",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.62.tgz",
- "integrity": "sha512-kPpckuVCEvuXOEW+FNTs4AbF3I3/O8dA+S0wSyehNVzQczJRIpI+SDIGGXzehThw8EM2yf2mkcl9KfFq/ji18Q==",
+ "version": "1.0.63",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-arm64/-/copilot-win32-arm64-1.0.63.tgz",
+ "integrity": "sha512-7FqUwOmtoeBoOn4zkKQqRL+WGFwektVRSr5Po2FvPAbKxGXGyFXApZTmRLqVcHhMKDRzMb8KLST1LU1TMTY/wg==",
"cpu": [
"arm64"
],
@@ -563,9 +563,9 @@
}
},
"node_modules/@github/copilot-win32-x64": {
- "version": "1.0.62",
- "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.62.tgz",
- "integrity": "sha512-cpXRdLMPm5dwCvF57NFmsr//Dsiqx5jMHSpzaqX78h4NI9m30v24cXFkXSoOOsCCgoPtO6170sassAlj1WWPNQ==",
+ "version": "1.0.63",
+ "resolved": "https://registry.npmjs.org/@github/copilot-win32-x64/-/copilot-win32-x64-1.0.63.tgz",
+ "integrity": "sha512-RC/6y9KHdw/YRCrCEksF2RzbeblfBUNE7bkYZxygaQGYThuv1GeZL2YD2jVqxC2LxKzsUmWGvwEMxerfR6pmeQ==",
"cpu": [
"x64"
],
diff --git a/java/scripts/codegen/package.json b/java/scripts/codegen/package.json
index d8c18dfc1..01594136d 100644
--- a/java/scripts/codegen/package.json
+++ b/java/scripts/codegen/package.json
@@ -7,7 +7,7 @@
"generate:java": "tsx java.ts"
},
"dependencies": {
- "@github/copilot": "^1.0.62",
+ "@github/copilot": "^1.0.63",
"json-schema": "^0.4.0",
"tsx": "^4.22.4"
}
diff --git a/java/src/generated/java/com/github/copilot/generated/AssistantUsageEvent.java b/java/src/generated/java/com/github/copilot/generated/AssistantUsageEvent.java
index c57db6a2e..72953adc4 100644
--- a/java/src/generated/java/com/github/copilot/generated/AssistantUsageEvent.java
+++ b/java/src/generated/java/com/github/copilot/generated/AssistantUsageEvent.java
@@ -72,7 +72,11 @@ public record AssistantUsageEventData(
/** Per-request cost and usage data from the CAPI copilot_usage response field */
@JsonProperty("copilotUsage") AssistantUsageCopilotUsage copilotUsage,
/** Reasoning effort level used for model calls, if applicable (e.g. "none", "low", "medium", "high", "xhigh", "max") */
- @JsonProperty("reasoningEffort") String reasoningEffort
+ @JsonProperty("reasoningEffort") String reasoningEffort,
+ /** Finish reason reported by the model for this API call (e.g. "stop", "length", "tool_calls", "content_filter"). Normalized to OpenAI vocabulary; for Anthropic models a "refusal" stop reason maps to "content_filter". */
+ @JsonProperty("finishReason") String finishReason,
+ /** Whether the model response was blocked or truncated by content filtering (finish_reason === 'content_filter'). For Anthropic models this corresponds to a 'refusal' stop reason. */
+ @JsonProperty("contentFilterTriggered") Boolean contentFilterTriggered
) {
}
}
diff --git a/java/src/generated/java/com/github/copilot/generated/ToolExecutionCompleteResult.java b/java/src/generated/java/com/github/copilot/generated/ToolExecutionCompleteResult.java
index 4ff3d2de0..14c6605af 100644
--- a/java/src/generated/java/com/github/copilot/generated/ToolExecutionCompleteResult.java
+++ b/java/src/generated/java/com/github/copilot/generated/ToolExecutionCompleteResult.java
@@ -29,6 +29,8 @@ public record ToolExecutionCompleteResult(
/** Structured content blocks (text, images, audio, resources) returned by the tool in their native format */
@JsonProperty("contents") List