diff --git a/CHANGELOG.md b/CHANGELOG.md index 97b181dd..8ec127e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ changes accumulate. Track in-flight protocol changes via PRs touching ### Added +- `SessionModelInfo.maxOutputTokens` and `SessionModelInfo.maxPromptTokens` + optional fields for communicating model token limits. - `SessionSummary._meta` optional provider metadata field for lightweight session-list presentation hints. diff --git a/clients/go/CHANGELOG.md b/clients/go/CHANGELOG.md index c8a44fcd..eeda48c7 100644 --- a/clients/go/CHANGELOG.md +++ b/clients/go/CHANGELOG.md @@ -16,6 +16,8 @@ tag whose matching `## [X.Y.Z]` heading is missing from this file. ### Added +- `SessionModelInfo.MaxOutputTokens` and `SessionModelInfo.MaxPromptTokens` + optional fields for communicating model token limits. - `SessionSummary.Meta` (wire `_meta`) optional provider metadata field for lightweight session-list presentation hints. diff --git a/clients/go/ahptypes/state.generated.go b/clients/go/ahptypes/state.generated.go index f7e1fce5..6aacda5b 100644 --- a/clients/go/ahptypes/state.generated.go +++ b/clients/go/ahptypes/state.generated.go @@ -539,6 +539,10 @@ type SessionModelInfo struct { Name string `json:"name"` // Maximum context window size MaxContextWindow *int64 `json:"maxContextWindow,omitempty"` + // Maximum number of output tokens the model can generate + MaxOutputTokens *int64 `json:"maxOutputTokens,omitempty"` + // Maximum number of prompt (input) tokens the model accepts + MaxPromptTokens *int64 `json:"maxPromptTokens,omitempty"` // Whether the model supports vision SupportsVision *bool `json:"supportsVision,omitempty"` // Policy configuration state diff --git a/clients/kotlin/CHANGELOG.md b/clients/kotlin/CHANGELOG.md index e5ee6dd8..2c86256e 100644 --- a/clients/kotlin/CHANGELOG.md +++ b/clients/kotlin/CHANGELOG.md @@ -17,6 +17,8 @@ versions (`*-SNAPSHOT`) are explicitly rejected by the publish pipeline; bump ### Added +- `SessionModelInfo.maxOutputTokens` and `SessionModelInfo.maxPromptTokens` + optional fields for communicating model token limits. - `SessionSummary.meta` (`_meta` on the wire) optional provider metadata field for lightweight session-list presentation hints. diff --git a/clients/kotlin/src/main/kotlin/com/microsoft/agenthostprotocol/generated/State.generated.kt b/clients/kotlin/src/main/kotlin/com/microsoft/agenthostprotocol/generated/State.generated.kt index 73724ab3..81fa7f6d 100644 --- a/clients/kotlin/src/main/kotlin/com/microsoft/agenthostprotocol/generated/State.generated.kt +++ b/clients/kotlin/src/main/kotlin/com/microsoft/agenthostprotocol/generated/State.generated.kt @@ -894,6 +894,14 @@ data class SessionModelInfo( * Maximum context window size */ val maxContextWindow: Long? = null, + /** + * Maximum number of output tokens the model can generate + */ + val maxOutputTokens: Long? = null, + /** + * Maximum number of prompt (input) tokens the model accepts + */ + val maxPromptTokens: Long? = null, /** * Whether the model supports vision */ diff --git a/clients/rust/CHANGELOG.md b/clients/rust/CHANGELOG.md index bcccc8a4..e864a8b6 100644 --- a/clients/rust/CHANGELOG.md +++ b/clients/rust/CHANGELOG.md @@ -17,6 +17,8 @@ matching `## [X.Y.Z]` heading is missing from this file. ### Added +- `SessionModelInfo.maxOutputTokens` and `SessionModelInfo.maxPromptTokens` + optional fields for communicating model token limits. - `SessionSummary.meta` (`_meta` on the wire) optional provider metadata field for lightweight session-list presentation hints. - `ahp-ws` TLS backend is now selectable via Cargo features: `native-tls`, diff --git a/clients/rust/crates/ahp-types/src/state.rs b/clients/rust/crates/ahp-types/src/state.rs index 08893473..e14748a6 100644 --- a/clients/rust/crates/ahp-types/src/state.rs +++ b/clients/rust/crates/ahp-types/src/state.rs @@ -750,6 +750,12 @@ pub struct SessionModelInfo { /// Maximum context window size #[serde(default, skip_serializing_if = "Option::is_none")] pub max_context_window: Option, + /// Maximum number of output tokens the model can generate + #[serde(default, skip_serializing_if = "Option::is_none")] + pub max_output_tokens: Option, + /// Maximum number of prompt (input) tokens the model accepts + #[serde(default, skip_serializing_if = "Option::is_none")] + pub max_prompt_tokens: Option, /// Whether the model supports vision #[serde(default, skip_serializing_if = "Option::is_none")] pub supports_vision: Option, diff --git a/clients/swift/AgentHostProtocol/Sources/AgentHostProtocol/Generated/State.generated.swift b/clients/swift/AgentHostProtocol/Sources/AgentHostProtocol/Generated/State.generated.swift index 3cee0e9d..1fb0ad80 100644 --- a/clients/swift/AgentHostProtocol/Sources/AgentHostProtocol/Generated/State.generated.swift +++ b/clients/swift/AgentHostProtocol/Sources/AgentHostProtocol/Generated/State.generated.swift @@ -596,6 +596,10 @@ public struct SessionModelInfo: Codable, Sendable { public var name: String /// Maximum context window size public var maxContextWindow: Int? + /// Maximum number of output tokens the model can generate + public var maxOutputTokens: Int? + /// Maximum number of prompt (input) tokens the model accepts + public var maxPromptTokens: Int? /// Whether the model supports vision public var supportsVision: Bool? /// Policy configuration state @@ -615,6 +619,8 @@ public struct SessionModelInfo: Codable, Sendable { case provider case name case maxContextWindow + case maxOutputTokens + case maxPromptTokens case supportsVision case policyState case configSchema @@ -626,6 +632,8 @@ public struct SessionModelInfo: Codable, Sendable { provider: String, name: String, maxContextWindow: Int? = nil, + maxOutputTokens: Int? = nil, + maxPromptTokens: Int? = nil, supportsVision: Bool? = nil, policyState: PolicyState? = nil, configSchema: ConfigSchema? = nil, @@ -635,6 +643,8 @@ public struct SessionModelInfo: Codable, Sendable { self.provider = provider self.name = name self.maxContextWindow = maxContextWindow + self.maxOutputTokens = maxOutputTokens + self.maxPromptTokens = maxPromptTokens self.supportsVision = supportsVision self.policyState = policyState self.configSchema = configSchema diff --git a/clients/swift/CHANGELOG.md b/clients/swift/CHANGELOG.md index 39312b98..efa48163 100644 --- a/clients/swift/CHANGELOG.md +++ b/clients/swift/CHANGELOG.md @@ -19,6 +19,8 @@ the tag matches the version pinned in [`VERSION`](VERSION). ### Added +- `SessionModelInfo.maxOutputTokens` and `SessionModelInfo.maxPromptTokens` + optional fields for communicating model token limits. - `SessionSummary.meta` (`_meta` on the wire) optional provider metadata field for lightweight session-list presentation hints. diff --git a/clients/typescript/CHANGELOG.md b/clients/typescript/CHANGELOG.md index 8b2706e2..a5845883 100644 --- a/clients/typescript/CHANGELOG.md +++ b/clients/typescript/CHANGELOG.md @@ -22,6 +22,8 @@ hotfix escape hatch. ### Added +- `SessionModelInfo.maxOutputTokens` and `SessionModelInfo.maxPromptTokens` + optional fields for communicating model token limits. - `SessionSummary._meta` optional provider metadata field for lightweight session-list presentation hints. diff --git a/schema/actions.schema.json b/schema/actions.schema.json index 5abb8e54..ecd95af3 100644 --- a/schema/actions.schema.json +++ b/schema/actions.schema.json @@ -2441,6 +2441,14 @@ "type": "number", "description": "Maximum context window size" }, + "maxOutputTokens": { + "type": "number", + "description": "Maximum number of output tokens the model can generate" + }, + "maxPromptTokens": { + "type": "number", + "description": "Maximum number of prompt (input) tokens the model accepts" + }, "supportsVision": { "type": "boolean", "description": "Whether the model supports vision" diff --git a/schema/commands.schema.json b/schema/commands.schema.json index 9a1d2d4c..01514a37 100644 --- a/schema/commands.schema.json +++ b/schema/commands.schema.json @@ -1779,6 +1779,14 @@ "type": "number", "description": "Maximum context window size" }, + "maxOutputTokens": { + "type": "number", + "description": "Maximum number of output tokens the model can generate" + }, + "maxPromptTokens": { + "type": "number", + "description": "Maximum number of prompt (input) tokens the model accepts" + }, "supportsVision": { "type": "boolean", "description": "Whether the model supports vision" diff --git a/schema/errors.schema.json b/schema/errors.schema.json index 6e125661..50e4c69d 100644 --- a/schema/errors.schema.json +++ b/schema/errors.schema.json @@ -631,6 +631,14 @@ "type": "number", "description": "Maximum context window size" }, + "maxOutputTokens": { + "type": "number", + "description": "Maximum number of output tokens the model can generate" + }, + "maxPromptTokens": { + "type": "number", + "description": "Maximum number of prompt (input) tokens the model accepts" + }, "supportsVision": { "type": "boolean", "description": "Whether the model supports vision" diff --git a/schema/notifications.schema.json b/schema/notifications.schema.json index ddee7f3c..7135aa42 100644 --- a/schema/notifications.schema.json +++ b/schema/notifications.schema.json @@ -765,6 +765,14 @@ "type": "number", "description": "Maximum context window size" }, + "maxOutputTokens": { + "type": "number", + "description": "Maximum number of output tokens the model can generate" + }, + "maxPromptTokens": { + "type": "number", + "description": "Maximum number of prompt (input) tokens the model accepts" + }, "supportsVision": { "type": "boolean", "description": "Whether the model supports vision" diff --git a/schema/state.schema.json b/schema/state.schema.json index 667db5d2..2110e927 100644 --- a/schema/state.schema.json +++ b/schema/state.schema.json @@ -542,6 +542,14 @@ "type": "number", "description": "Maximum context window size" }, + "maxOutputTokens": { + "type": "number", + "description": "Maximum number of output tokens the model can generate" + }, + "maxPromptTokens": { + "type": "number", + "description": "Maximum number of prompt (input) tokens the model accepts" + }, "supportsVision": { "type": "boolean", "description": "Whether the model supports vision" diff --git a/types/channels-root/state.ts b/types/channels-root/state.ts index 29297a85..132c0aff 100644 --- a/types/channels-root/state.ts +++ b/types/channels-root/state.ts @@ -98,6 +98,10 @@ export interface SessionModelInfo { name: string; /** Maximum context window size */ maxContextWindow?: number; + /** Maximum number of output tokens the model can generate */ + maxOutputTokens?: number; + /** Maximum number of prompt (input) tokens the model accepts */ + maxPromptTokens?: number; /** Whether the model supports vision */ supportsVision?: boolean; /** Policy configuration state */