feat(plugin): add session request hook

This commit is contained in:
Aiden Cline 2026-07-17 00:23:48 -05:00 committed by 𝓛𝓲𝓽𝓽𝓵𝓮 𝓕𝓻𝓪𝓷𝓴
commit 518d64d684
5 changed files with 92 additions and 1 deletions

View file

@ -4,8 +4,11 @@ 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 { SessionRequest } from "../session.js"
import type { Hooks } from "./registration.js"
export type { RequestBody, RequestValue, SessionRequest } from "../session.js"
export interface SessionContext {
readonly sessionID: Session.ID
readonly agent: Agent.ID
@ -17,6 +20,7 @@ export interface SessionContext {
export interface SessionHooks {
readonly context: SessionContext
readonly request: SessionRequest
}
export type SessionDomain = Pick<

View file

@ -4,8 +4,11 @@ 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 { SessionRequest } from "../session.js"
import type { Hooks } from "./registration.js"
export type { RequestBody, RequestValue, SessionRequest } from "../session.js"
export interface SessionContext {
readonly sessionID: Session.ID
readonly agent: Agent.ID
@ -17,6 +20,7 @@ export interface SessionContext {
export interface SessionHooks {
readonly context: SessionContext
readonly request: SessionRequest
}
export type SessionDomain = Pick<

View file

@ -0,0 +1,21 @@
import type { Agent } from "@opencode-ai/schema/agent"
import type { Model } from "@opencode-ai/schema/model"
import type { Session } from "@opencode-ai/schema/session"
export type RequestValue =
| null
| boolean
| number
| string
| Array<RequestValue>
| { [key: string]: RequestValue }
export type RequestBody = Record<string, RequestValue>
export interface SessionRequest {
readonly sessionID: Session.ID
readonly agent: Agent.ID
readonly model: Model.Ref
headers: Record<string, string>
body: RequestBody
}