chore: generate

This commit is contained in:
opencode-agent[bot] 2026-06-25 18:25:16 +00:00
commit 21b78c49fc
5 changed files with 4065 additions and 197 deletions

View file

@ -1423,10 +1423,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
projectOpen: false,
projectSearch: "",
})
if (
pathKey(worktree) === pathKey(selectedProject()?.worktree ?? "") &&
server === selectedProject()?.server?.key
) {
if (pathKey(worktree) === pathKey(selectedProject()?.worktree ?? "") && server === selectedProject()?.server?.key) {
restoreFocus()
return
}
@ -1448,8 +1445,7 @@ export const PromptInput: Component<PromptInputProps> = (props) => {
),
label: displayName(project),
selected:
selectedProject()?.worktree === project.worktree &&
selectedProject()?.server?.key === project.server?.key,
selectedProject()?.worktree === project.worktree && selectedProject()?.server?.key === project.server?.key,
onSelect: () => selectProject(project.worktree, project.server?.key),
})),
)

View file

@ -66,9 +66,7 @@ export function createSessionComposerControls(input: {
const providersQuery = createQuery(() => input.queryOptions.providers(pathKey(sdk().directory)))
const selectProject = (worktree: string, serverKey?: string) => {
const conn = serverKey
? server.list.find((conn) => ServerConnection.key(conn) === serverKey)
: projectServer()
const conn = serverKey ? server.list.find((conn) => ServerConnection.key(conn) === serverKey) : projectServer()
if (search.draftId) {
if (!conn) return
const target = global.ensureServerCtx(conn)
@ -94,9 +92,7 @@ export function createSessionComposerControls(input: {
}
const addProject = (title: string, serverKey?: string) => {
const conn = serverKey
? server.list.find((conn) => ServerConnection.key(conn) === serverKey)
: projectServer()
const conn = serverKey ? server.list.find((conn) => ServerConnection.key(conn) === serverKey) : projectServer()
if (!conn) return
pickDirectory({
server: conn,
@ -125,8 +121,7 @@ export function createSessionComposerControls(input: {
projects: {
available: projects(),
directory: sdk().directory,
server:
server.list.length > 1 && projectServer() ? ServerConnection.key(projectServer()!) : undefined,
server: server.list.length > 1 && projectServer() ? ServerConnection.key(projectServer()!) : undefined,
select: selectProject,
add: addProject,
},

View file

@ -339,10 +339,16 @@ import type {
V2SessionContextResponses,
V2SessionCreateErrors,
V2SessionCreateResponses,
V2SessionEventsErrors,
V2SessionEventsResponses,
V2SessionGetErrors,
V2SessionGetResponses,
V2SessionInterruptErrors,
V2SessionInterruptResponses,
V2SessionListErrors,
V2SessionListResponses,
V2SessionMessageErrors,
V2SessionMessageResponses,
V2SessionMessagesErrors,
V2SessionMessagesResponses,
V2SessionPermissionCreateErrors,
@ -5690,6 +5696,85 @@ export class Session3 extends HeyApiClient {
})
}
/**
* Subscribe to session events
*
* Replay durable events after an aggregate sequence, then continue with new durable events.
*/
public events<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
after?: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "query", key: "after" },
],
},
],
)
return (options?.client ?? this.client).sse.get<V2SessionEventsResponses, V2SessionEventsErrors, ThrowOnError>({
url: "/api/session/{sessionID}/event",
...options,
...params,
})
}
/**
* Interrupt session execution
*
* Interrupt active execution owned by this OpenCode process. Idle interruption is a no-op.
*/
public interrupt<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams([parameters], [{ args: [{ in: "path", key: "sessionID" }] }])
return (options?.client ?? this.client).post<V2SessionInterruptResponses, V2SessionInterruptErrors, ThrowOnError>({
url: "/api/session/{sessionID}/interrupt",
...options,
...params,
})
}
/**
* Get session message
*
* Retrieve one projected message owned by the Session.
*/
public message<ThrowOnError extends boolean = false>(
parameters: {
sessionID: string
messageID: string
},
options?: Options<never, ThrowOnError>,
) {
const params = buildClientParams(
[parameters],
[
{
args: [
{ in: "path", key: "sessionID" },
{ in: "path", key: "messageID" },
],
},
],
)
return (options?.client ?? this.client).get<V2SessionMessageResponses, V2SessionMessageErrors, ThrowOnError>({
url: "/api/session/{sessionID}/message/{messageID}",
...options,
...params,
})
}
/**
* Get session messages
*

View file

@ -4032,6 +4032,615 @@ export type SessionMessage =
| SessionMessageAssistant
| SessionMessageCompaction
export type SessionNextAgentSwitched = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.agent.switched"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
messageID: string
agent: string
}
}
export type SessionNextModelSwitched = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.model.switched"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
messageID: string
model: ModelRef
}
}
export type SessionNextMoved = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.moved"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
location: LocationRef
subdirectory?: string
}
}
export type SessionNextPrompted = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.prompted"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
messageID: string
prompt: Prompt
delivery: "steer" | "queue"
}
}
export type SessionNextPromptAdmitted = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.prompt.admitted"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
messageID: string
prompt: Prompt
delivery: "steer" | "queue"
}
}
export type SessionNextContextUpdated = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.context.updated"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
messageID: string
text: string
}
}
export type SessionNextSynthetic = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.synthetic"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
messageID: string
text: string
}
}
export type SessionNextShellStarted = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.shell.started"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
messageID: string
callID: string
command: string
}
}
export type SessionNextShellEnded = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.shell.ended"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
callID: string
output: string
}
}
export type SessionNextStepStarted = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.step.started"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
agent: string
model: ModelRef
snapshot?: string
}
}
export type SessionNextStepEnded = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.step.ended"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
finish: string
cost: number
tokens: {
input: number
output: number
reasoning: number
cache: {
read: number
write: number
}
}
snapshot?: string
files?: Array<string>
}
}
export type SessionNextStepFailed = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.step.failed"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
error: SessionErrorUnknown
}
}
export type SessionNextTextStarted = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.text.started"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
textID: string
}
}
export type SessionNextTextEnded = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.text.ended"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
textID: string
text: string
}
}
export type SessionNextToolInputStarted = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.tool.input.started"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
callID: string
name: string
}
}
export type SessionNextToolInputEnded = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.tool.input.ended"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
callID: string
text: string
}
}
export type SessionNextToolCalled = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.tool.called"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
callID: string
tool: string
input: {
[key: string]: unknown
}
provider: {
executed: boolean
metadata?: LlmProviderMetadata
}
}
}
export type SessionNextToolProgress = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.tool.progress"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
callID: string
structured: {
[key: string]: unknown
}
content: Array<LlmToolContent>
}
}
export type SessionNextToolSuccess = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.tool.success"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
callID: string
structured: {
[key: string]: unknown
}
content: Array<LlmToolContent>
outputPaths?: Array<string>
result?: unknown
provider: {
executed: boolean
metadata?: LlmProviderMetadata
}
}
}
export type SessionNextToolFailed = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.tool.failed"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
callID: string
error: SessionErrorUnknown
result?: unknown
provider: {
executed: boolean
metadata?: LlmProviderMetadata
}
}
}
export type SessionNextReasoningStarted = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.reasoning.started"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
reasoningID: string
providerMetadata?: LlmProviderMetadata
}
}
export type SessionNextReasoningEnded = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.reasoning.ended"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
assistantMessageID: string
reasoningID: string
text: string
providerMetadata?: LlmProviderMetadata
}
}
export type SessionNextRetried = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.retried"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
attempt: number
error: SessionNextRetryError
}
}
export type SessionNextCompactionStarted = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.compaction.started"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
messageID: string
reason: "auto" | "manual"
}
}
export type SessionNextCompactionEnded = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.compaction.ended"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
messageID: string
reason: "auto" | "manual"
text: string
recent: string
}
}
export type SessionNextRevertStaged = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.revert.staged"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
revert: RevertState
}
}
export type SessionNextRevertCleared = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.revert.cleared"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
}
}
export type SessionNextRevertCommitted = {
id: string
metadata?: {
[key: string]: unknown
}
type: "session.next.revert.committed"
durable?: {
aggregateID: string
seq: number | "NaN" | "Infinity" | "-Infinity"
version: number | "NaN" | "Infinity" | "-Infinity"
}
location?: LocationRef
data: {
timestamp: number
sessionID: string
messageID: string
}
}
export type ModelApi =
| {
id: string
@ -11725,6 +12334,120 @@ export type V2SessionContextResponses = {
export type V2SessionContextResponse = V2SessionContextResponses[keyof V2SessionContextResponses]
export type V2SessionEventsData = {
body?: never
path: {
sessionID: string
}
query?: {
after?: string
}
url: "/api/session/{sessionID}/event"
}
export type V2SessionEventsErrors = {
/**
* InvalidRequestError
*/
400: InvalidRequestError
/**
* UnauthorizedError
*/
401: UnauthorizedError
/**
* SessionNotFoundError
*/
404: SessionNotFoundError
}
export type V2SessionEventsError = V2SessionEventsErrors[keyof V2SessionEventsErrors]
export type V2SessionEventsResponses = {
/**
* Success
*/
200: {
id: string
event: string
data: string
}
}
export type V2SessionEventsResponse = V2SessionEventsResponses[keyof V2SessionEventsResponses]
export type V2SessionInterruptData = {
body?: never
path: {
sessionID: string
}
query?: never
url: "/api/session/{sessionID}/interrupt"
}
export type V2SessionInterruptErrors = {
/**
* InvalidRequestError
*/
400: InvalidRequestError
/**
* UnauthorizedError
*/
401: UnauthorizedError
/**
* SessionNotFoundError
*/
404: SessionNotFoundError
}
export type V2SessionInterruptError = V2SessionInterruptErrors[keyof V2SessionInterruptErrors]
export type V2SessionInterruptResponses = {
/**
* <No Content>
*/
204: void
}
export type V2SessionInterruptResponse = V2SessionInterruptResponses[keyof V2SessionInterruptResponses]
export type V2SessionMessageData = {
body?: never
path: {
sessionID: string
messageID: string
}
query?: never
url: "/api/session/{sessionID}/message/{messageID}"
}
export type V2SessionMessageErrors = {
/**
* InvalidRequestError
*/
400: InvalidRequestError
/**
* UnauthorizedError
*/
401: UnauthorizedError
/**
* SessionNotFoundError | MessageNotFoundError
*/
404: MessageNotFoundError | SessionNotFoundError
}
export type V2SessionMessageError = V2SessionMessageErrors[keyof V2SessionMessageErrors]
export type V2SessionMessageResponses = {
/**
* Success
*/
200: {
data: SessionMessage
}
}
export type V2SessionMessageResponse = V2SessionMessageResponses[keyof V2SessionMessageResponses]
export type V2SessionMessagesData = {
body?: never
path: {

File diff suppressed because it is too large Load diff