feat(plugin): add session title hook and request options bag (#47663)

This commit is contained in:
Aiden Cline
2026-09-09 14:14:23 -05:00
committed by GitHub
parent c7dd0c8278
commit 9ae6b21f6a
22 changed files with 377 additions and 324 deletions
+15 -5
View File
@@ -18,16 +18,25 @@ export interface SessionPrompt {
delivery: SessionInbox.Delivery
}
export interface SessionContext {
/** Request overrides. Typed keys are generation settings; any other key is a provider option. */
export type SessionRequestOptions = Types.DeepMutable<GenerationOptionsFields> & Record<string, unknown>
export interface SessionRequest {
readonly sessionID: Session.ID
readonly agent: Agent.ID
readonly model: Model.Ref
system: Array<SystemPart>
messages: Array<Message>
options: SessionRequestOptions
}
export interface SessionContext extends SessionRequest {
readonly agent: Agent.ID
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 SessionTitle extends SessionRequest {
/** Set to use this title and skip the model request. */
result?: string
}
/**
@@ -76,6 +85,7 @@ export interface SessionRetry {
export interface SessionHooks {
readonly prompt: SessionPrompt
readonly context: SessionContext
readonly title: SessionTitle
readonly "model.request": SessionModelRequest
readonly "http.request": SessionHttpRequest
readonly "http.response": SessionHttpResponse
+15 -5
View File
@@ -18,16 +18,25 @@ export interface SessionPrompt {
delivery: SessionInbox.Delivery
}
export interface SessionContext {
/** Request overrides. Typed keys are generation settings; any other key is a provider option. */
export type SessionRequestOptions = Types.DeepMutable<GenerationOptionsFields> & Record<string, unknown>
export interface SessionRequest {
readonly sessionID: Session.ID
readonly agent: Agent.ID
readonly model: Model.Ref
system: Array<SystemPart>
messages: Array<Message>
options: SessionRequestOptions
}
export interface SessionContext extends SessionRequest {
readonly agent: Agent.ID
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 SessionTitle extends SessionRequest {
/** Set to use this title and skip the model request. */
result?: string
}
/**
@@ -76,6 +85,7 @@ export interface SessionRetry {
export interface SessionHooks {
readonly prompt: SessionPrompt
readonly context: SessionContext
readonly title: SessionTitle
readonly "model.request": SessionModelRequest
readonly "http.request": SessionHttpRequest
readonly "http.response": SessionHttpResponse