feat(plugin): expose model generation options to session hooks (#45268)

This commit is contained in:
Shoubhit Dash
2026-08-27 17:30:37 +05:30
committed by GitHub
parent 803ead32e7
commit 46aa25f236
10 changed files with 258 additions and 22 deletions
+5 -2
View File
@@ -1,9 +1,9 @@
import type { SessionApi } from "@opencode-ai/client/effect/api"
import type { Message, SystemPart } from "@opencode-ai/ai"
import type { GenerationOptionsFields, Message, SystemPart } from "@opencode-ai/ai"
import type { Agent } from "@opencode-ai/schema/agent"
import type { Model } from "@opencode-ai/schema/model"
import type { Session } from "@opencode-ai/schema/session"
import type { JsonSchema } from "effect"
import type { JsonSchema, Types } from "effect"
import type { ModelHooks } from "./registration.js"
export interface SessionContext {
@@ -13,6 +13,9 @@ export interface SessionContext {
system: Array<SystemPart>
messages: Array<Message>
tools: Record<string, { description: string; input: JsonSchema.JsonSchema }>
/** Request overrides; unset fields retain route and model defaults. */
generation: Types.DeepMutable<GenerationOptionsFields>
providerOptions: Record<string, unknown>
}
export interface SessionModelRequest {
+5 -2
View File
@@ -1,9 +1,9 @@
import type { SessionApi } from "@opencode-ai/client/promise/api"
import type { Message, SystemPart } from "@opencode-ai/ai"
import type { GenerationOptionsFields, Message, SystemPart } from "@opencode-ai/ai"
import type { Agent } from "@opencode-ai/schema/agent"
import type { Model } from "@opencode-ai/schema/model"
import type { Session } from "@opencode-ai/schema/session"
import type { JsonSchema } from "effect"
import type { JsonSchema, Types } from "effect"
import type { ModelHooks } from "./registration.js"
export interface SessionContext {
@@ -13,6 +13,9 @@ export interface SessionContext {
system: Array<SystemPart>
messages: Array<Message>
tools: Record<string, { description: string; input: JsonSchema.JsonSchema }>
/** Request overrides; unset fields retain route and model defaults. */
generation: Types.DeepMutable<GenerationOptionsFields>
providerOptions: Record<string, unknown>
}
export interface SessionModelRequest {