Complete toolkit for configuring and extending OpenCode: agent creation, custom slash commands, configuration management, plugin development, and SDK usage.
98
98%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Advisory
Suggest reviewing before use
Auto-generated on 2025-12-26T13:17:55.481Z Source:
packages/sdk/js/src/v2/gen/types.gen.ts
<event_types>
export type Event =
| EventInstallationUpdated
| EventInstallationUpdateAvailable
| EventProjectUpdated
| EventServerInstanceDisposed
| EventLspClientDiagnostics
| EventLspUpdated
| EventMessageUpdated
| EventMessageRemoved
| EventMessagePartUpdated
| EventMessagePartRemoved
| EventPermissionUpdated
| EventPermissionReplied
| EventFileEdited
| EventTodoUpdated
| EventSessionStatus
| EventSessionIdle
| EventSessionCompacted
| EventTuiPromptAppend
| EventTuiCommandExecute
| EventTuiToastShow
| EventMcpToolsChanged
| EventCommandExecuted
| EventSessionCreated
| EventSessionUpdated
| EventSessionDeleted
| EventSessionDiff
| EventSessionError
| EventFileWatcherUpdated
| EventVcsBranchUpdated
| EventPtyCreated
| EventPtyUpdated
| EventPtyExited
| EventPtyDeleted
| EventServerConnected
| EventGlobalDisposed</event_types>
<quick_reference>
| Event Type | TypeScript Type |
|---|---|
installation.updated | EventInstallationUpdated |
installation.update-available | EventInstallationUpdateAvailable |
project.updated | EventProjectUpdated |
server.instance.disposed | EventServerInstanceDisposed |
lsp.client.diagnostics | EventLspClientDiagnostics |
lsp.updated | EventLspUpdated |
message.updated | EventMessageUpdated |
message.removed | EventMessageRemoved |
message.part.updated | EventMessagePartUpdated |
message.part.removed | EventMessagePartRemoved |
permission.updated | EventPermissionUpdated |
permission.replied | EventPermissionReplied |
file.edited | EventFileEdited |
todo.updated | EventTodoUpdated |
session.status | EventSessionStatus |
session.idle | EventSessionIdle |
session.compacted | EventSessionCompacted |
tui.prompt.append | EventTuiPromptAppend |
tui.command.execute | EventTuiCommandExecute |
tui.toast.show | EventTuiToastShow |
mcp.tools.changed | EventMcpToolsChanged |
command.executed | EventCommandExecuted |
session.created | EventSessionCreated |
session.updated | EventSessionUpdated |
session.deleted | EventSessionDeleted |
session.diff | EventSessionDiff |
session.error | EventSessionError |
file.watcher.updated | EventFileWatcherUpdated |
vcs.branch.updated | EventVcsBranchUpdated |
pty.created | EventPtyCreated |
pty.updated | EventPtyUpdated |
pty.exited | EventPtyExited |
pty.deleted | EventPtyDeleted |
server.connected | EventServerConnected |
global.disposed | EventGlobalDisposed |
</quick_reference>
<event_definitions>
command.executedexport type EventCommandExecuted = {
type: "command.executed"
properties: {
name: string
sessionID: string
arguments: string
messageID: string
}
}file.editedexport type EventFileEdited = {
type: "file.edited"
properties: {
file: string
}
}file.watcher.updatedexport type EventFileWatcherUpdated = {
type: "file.watcher.updated"
properties: {
file: string
event: "add" | "change" | "unlink"
}
}global.disposedexport type EventGlobalDisposed = {
type: "global.disposed"
properties: {
[key: string]: unknown
}
}installation.updatedexport type EventInstallationUpdated = {
type: "installation.updated"
properties: {
version: string
}
}installation.update-availableexport type EventInstallationUpdateAvailable = {
type: "installation.update-available"
properties: {
version: string
}
}lsp.client.diagnosticsexport type EventLspClientDiagnostics = {
type: "lsp.client.diagnostics"
properties: {
serverID: string
path: string
}
}lsp.updatedexport type EventLspUpdated = {
type: "lsp.updated"
properties: {
[key: string]: unknown
}
}mcp.tools.changedexport type EventMcpToolsChanged = {
type: "mcp.tools.changed"
properties: {
server: string
}
}message.updatedexport type EventMessageUpdated = {
type: "message.updated"
properties: {
info: Message
}
}message.removedexport type EventMessageRemoved = {
type: "message.removed"
properties: {
sessionID: string
messageID: string
}
}message.part.updatedexport type EventMessagePartUpdated = {
type: "message.part.updated"
properties: {
part: Part
delta?: string
}
}message.part.removedexport type EventMessagePartRemoved = {
type: "message.part.removed"
properties: {
sessionID: string
messageID: string
partID: string
}
}permission.updatedexport type EventPermissionUpdated = {
type: "permission.updated"
properties: Permission
}permission.repliedexport type EventPermissionReplied = {
type: "permission.replied"
properties: {
sessionID: string
permissionID: string
response: string
}
}project.updatedexport type EventProjectUpdated = {
type: "project.updated"
properties: Project
}pty.createdexport type EventPtyCreated = {
type: "pty.created"
properties: {
info: Pty
}
}pty.updatedexport type EventPtyUpdated = {
type: "pty.updated"
properties: {
info: Pty
}
}pty.exitedexport type EventPtyExited = {
type: "pty.exited"
properties: {
id: string
exitCode: number
}
}pty.deletedexport type EventPtyDeleted = {
type: "pty.deleted"
properties: {
id: string
}
}server.instance.disposedexport type EventServerInstanceDisposed = {
type: "server.instance.disposed"
properties: {
directory: string
}
}server.connectedexport type EventServerConnected = {
type: "server.connected"
properties: {
[key: string]: unknown
}
}session.statusexport type EventSessionStatus = {
type: "session.status"
properties: {
sessionID: string
status: SessionStatus
}
}session.idleexport type EventSessionIdle = {
type: "session.idle"
properties: {
sessionID: string
}
}session.compactedexport type EventSessionCompacted = {
type: "session.compacted"
properties: {
sessionID: string
}
}session.createdexport type EventSessionCreated = {
type: "session.created"
properties: {
info: Session
}
}session.updatedexport type EventSessionUpdated = {
type: "session.updated"
properties: {
info: Session
}
}session.deletedexport type EventSessionDeleted = {
type: "session.deleted"
properties: {
info: Session
}
}session.diffexport type EventSessionDiff = {
type: "session.diff"
properties: {
sessionID: string
diff: Array<FileDiff>
}
}session.errorexport type EventSessionError = {
type: "session.error"
properties: {
sessionID?: string
error?: ProviderAuthError | UnknownError | MessageOutputLengthError | MessageAbortedError | ApiError
}
}todo.updatedexport type EventTodoUpdated = {
type: "todo.updated"
properties: {
sessionID: string
todos: Array<Todo>
}
}tui.prompt.appendexport type EventTuiPromptAppend = {
type: "tui.prompt.append"
properties: {
text: string
}
}tui.command.executeexport type EventTuiCommandExecute = {
type: "tui.command.execute"
properties: {
command:
| "session.list"
| "session.new"
| "session.share"
| "session.interrupt"
| "session.compact"
| "session.page.up"
| "session.page.down"
| "session.half.page.up"
| "session.half.page.down"
| "session.first"
| "session.last"
| "prompt.clear"
| "prompt.submit"
| "agent.cycle"
| string
}
}tui.toast.showexport type EventTuiToastShow = {
type: "tui.toast.show"
properties: {
title?: string
message: string
variant: "info" | "success" | "warning" | "error"
/**
* Duration in milliseconds
*/
duration?: number
}
}vcs.branch.updatedexport type EventVcsBranchUpdated = {
type: "vcs.branch.updated"
properties: {
branch?: string
}
}</event_definitions>