Merge branch 'dev' into opentui
Some checks are pending
format / format (push) Waiting to run
snapshot / publish (push) Waiting to run
test / test (push) Waiting to run

This commit is contained in:
Dax Raad 2025-10-16 11:08:48 -04:00
commit e54746878f
21 changed files with 391 additions and 73 deletions

View file

@ -13,7 +13,7 @@ avoid repeating the title of the page, should be 5-10 words long
Chunks of text should not be more than 2 sentences long
Each section is spearated by a divider of 3 dashes
Each section is separated by a divider of 3 dashes
The section titles are short with only the first letter of the word capitalized

View file

@ -39,7 +39,7 @@
},
"packages/console/core": {
"name": "@opencode-ai/console-core",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@aws-sdk/client-sts": "3.782.0",
"@jsx-email/render": "1.1.1",
@ -66,7 +66,7 @@
},
"packages/console/function": {
"name": "@opencode-ai/console-function",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@ai-sdk/anthropic": "2.0.0",
"@ai-sdk/openai": "2.0.2",
@ -90,7 +90,7 @@
},
"packages/console/mail": {
"name": "@opencode-ai/console-mail",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@jsx-email/all": "2.2.3",
"@jsx-email/cli": "1.4.3",
@ -111,18 +111,18 @@
},
"packages/console/scripts": {
"name": "@opencode-ai/console-scripts",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@opencode-ai/console-core": "workspace:*",
},
},
"packages/css": {
"name": "@opencode-ai/css",
"version": "0.15.3",
"version": "0.15.4",
},
"packages/desktop": {
"name": "@opencode-ai/desktop",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@kobalte/core": "catalog:",
"@opencode-ai/sdk": "workspace:*",
@ -159,7 +159,7 @@
},
"packages/function": {
"name": "@opencode-ai/function",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@octokit/auth-app": "8.0.1",
"@octokit/rest": "22.0.0",
@ -174,7 +174,7 @@
},
"packages/opencode": {
"name": "opencode",
"version": "0.15.3",
"version": "0.15.4",
"bin": {
"opencode": "./bin/opencode",
},
@ -242,7 +242,7 @@
},
"packages/plugin": {
"name": "@opencode-ai/plugin",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@opencode-ai/sdk": "workspace:*",
"zod": "catalog:",
@ -262,7 +262,7 @@
},
"packages/sdk/js": {
"name": "@opencode-ai/sdk",
"version": "0.15.3",
"version": "0.15.4",
"devDependencies": {
"@hey-api/openapi-ts": "0.81.0",
"@tsconfig/node22": "catalog:",
@ -273,7 +273,7 @@
},
"packages/slack": {
"name": "@opencode-ai/slack",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@opencode-ai/sdk": "workspace:*",
"@slack/bolt": "^3.17.1",
@ -286,7 +286,7 @@
},
"packages/ui": {
"name": "@opencode-ai/ui",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@kobalte/core": "catalog:",
"@opencode-ai/css": "workspace:*",
@ -301,7 +301,7 @@
},
"packages/web": {
"name": "@opencode-ai/web",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@astrojs/cloudflare": "12.6.3",
"@astrojs/markdown-remark": "6.3.1",

View file

@ -7,7 +7,7 @@
"dev:remote": "VITE_AUTH_URL=https://auth.dev.opencode.ai bun sst shell --stage=dev bun dev",
"build": "vinxi build && ../../opencode/script/schema.ts ./.output/public/config.json",
"start": "vinxi start",
"version": "0.15.3"
"version": "0.15.4"
},
"dependencies": {
"@ibm/plex": "6.4.1",

View file

@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@opencode-ai/console-core",
"version": "0.15.3",
"version": "0.15.4",
"private": true,
"type": "module",
"dependencies": {

View file

@ -1,6 +1,6 @@
{
"name": "@opencode-ai/console-function",
"version": "0.15.3",
"version": "0.15.4",
"$schema": "https://json.schemastore.org/package.json",
"private": true,
"type": "module",

View file

@ -1,6 +1,6 @@
{
"name": "@opencode-ai/console-mail",
"version": "0.15.3",
"version": "0.15.4",
"dependencies": {
"@jsx-email/all": "2.2.3",
"@jsx-email/cli": "1.4.3",

View file

@ -1,6 +1,6 @@
{
"name": "@opencode-ai/console-scripts",
"version": "0.15.3",
"version": "0.15.4",
"$schema": "https://json.schemastore.org/package.json",
"private": true,
"type": "module",

View file

@ -1,6 +1,6 @@
{
"name": "@opencode-ai/css",
"version": "0.15.3",
"version": "0.15.4",
"type": "module",
"exports": {
".": "./src/index.css",

View file

@ -1,6 +1,6 @@
{
"name": "@opencode-ai/desktop",
"version": "0.15.3",
"version": "0.15.4",
"description": "",
"type": "module",
"scripts": {

View file

@ -1,6 +1,6 @@
{
"name": "@opencode-ai/function",
"version": "0.15.3",
"version": "0.15.4",
"$schema": "https://json.schemastore.org/package.json",
"private": true,
"type": "module",

View file

@ -1,6 +1,6 @@
{
"$schema": "https://json.schemastore.org/package.json",
"version": "0.15.3",
"version": "0.15.4",
"name": "opencode",
"type": "module",
"private": true,

View file

@ -342,6 +342,23 @@ export namespace Session {
return part
})
export const removePart = fn(
z.object({
sessionID: Identifier.schema("session"),
messageID: Identifier.schema("message"),
partID: Identifier.schema("part"),
}),
async (input) => {
await Storage.remove(["part", input.messageID, input.partID])
Bus.publish(MessageV2.Event.PartRemoved, {
sessionID: input.sessionID,
messageID: input.messageID,
partID: input.partID,
})
return input.partID
},
)
export const getUsage = fn(
z.object({
model: z.custom<ModelsDev.Model>(),

View file

@ -916,7 +916,7 @@ export namespace SessionPrompt {
const part = reasoningMap[value.id]
part.text += value.text
if (value.providerMetadata) part.metadata = value.providerMetadata
if (part.text) await Session.updatePart(part)
if (part.text.trim()) await Session.updatePart(part)
}
break
@ -924,13 +924,14 @@ export namespace SessionPrompt {
if (value.id in reasoningMap) {
const part = reasoningMap[value.id]
part.text = part.text.trimEnd()
part.time = {
...part.time,
end: Date.now(),
if (part.text) {
part.time = {
...part.time,
end: Date.now(),
}
if (value.providerMetadata) part.metadata = value.providerMetadata
await Session.updatePart(part)
}
if (value.providerMetadata) part.metadata = value.providerMetadata
await Session.updatePart(part)
delete reasoningMap[value.id]
}
break
@ -1073,19 +1074,21 @@ export namespace SessionPrompt {
if (currentText) {
currentText.text += value.text
if (value.providerMetadata) currentText.metadata = value.providerMetadata
if (currentText.text) await Session.updatePart(currentText)
if (currentText.text.trim()) await Session.updatePart(currentText)
}
break
case "text-end":
if (currentText) {
currentText.text = currentText.text.trimEnd()
currentText.time = {
start: Date.now(),
end: Date.now(),
if (currentText.text) {
currentText.time = {
start: Date.now(),
end: Date.now(),
}
if (value.providerMetadata) currentText.metadata = value.providerMetadata
await Session.updatePart(currentText)
}
if (value.providerMetadata) currentText.metadata = value.providerMetadata
await Session.updatePart(currentText)
}
currentText = undefined
break

View file

@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@opencode-ai/plugin",
"version": "0.15.3",
"version": "0.15.4",
"type": "module",
"scripts": {
"typecheck": "tsgo --noEmit",
@ -24,4 +24,4 @@
"typescript": "catalog:",
"@typescript/native-preview": "catalog:"
}
}
}

View file

@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@opencode-ai/sdk",
"version": "0.15.3",
"version": "0.15.4",
"type": "module",
"scripts": {
"typecheck": "tsgo --noEmit",
@ -26,4 +26,4 @@
"publishConfig": {
"directory": "dist"
}
}
}

View file

@ -26,42 +26,60 @@ import type {
SessionCreateErrors,
SessionDeleteData,
SessionDeleteResponses,
SessionDeleteErrors,
SessionGetData,
SessionGetResponses,
SessionGetErrors,
SessionUpdateData,
SessionUpdateResponses,
SessionUpdateErrors,
SessionChildrenData,
SessionChildrenResponses,
SessionChildrenErrors,
SessionTodoData,
SessionTodoResponses,
SessionTodoErrors,
SessionInitData,
SessionInitResponses,
SessionInitErrors,
SessionForkData,
SessionForkResponses,
SessionAbortData,
SessionAbortResponses,
SessionAbortErrors,
SessionUnshareData,
SessionUnshareResponses,
SessionUnshareErrors,
SessionShareData,
SessionShareResponses,
SessionShareErrors,
SessionSummarizeData,
SessionSummarizeResponses,
SessionSummarizeErrors,
SessionMessagesData,
SessionMessagesResponses,
SessionMessagesErrors,
SessionPromptData,
SessionPromptResponses,
SessionPromptErrors,
SessionMessageData,
SessionMessageResponses,
SessionMessageErrors,
SessionCommandData,
SessionCommandResponses,
SessionCommandErrors,
SessionShellData,
SessionShellResponses,
SessionShellErrors,
SessionRevertData,
SessionRevertResponses,
SessionRevertErrors,
SessionUnrevertData,
SessionUnrevertResponses,
SessionUnrevertErrors,
PostSessionIdPermissionsPermissionIdData,
PostSessionIdPermissionsPermissionIdResponses,
PostSessionIdPermissionsPermissionIdErrors,
CommandListData,
CommandListResponses,
ConfigProvidersData,
@ -80,6 +98,7 @@ import type {
FileStatusResponses,
AppLogData,
AppLogResponses,
AppLogErrors,
AppAgentsData,
AppAgentsResponses,
McpStatusData,
@ -88,6 +107,7 @@ import type {
LspStatusResponses,
TuiAppendPromptData,
TuiAppendPromptResponses,
TuiAppendPromptErrors,
TuiOpenHelpData,
TuiOpenHelpResponses,
TuiOpenSessionsData,
@ -102,6 +122,7 @@ import type {
TuiClearPromptResponses,
TuiExecuteCommandData,
TuiExecuteCommandResponses,
TuiExecuteCommandErrors,
TuiShowToastData,
TuiShowToastResponses,
AuthSetData,
@ -260,7 +281,7 @@ class Session extends _HeyApiClient {
* Delete a session and all its data
*/
public delete<ThrowOnError extends boolean = false>(options: Options<SessionDeleteData, ThrowOnError>) {
return (options.client ?? this._client).delete<SessionDeleteResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).delete<SessionDeleteResponses, SessionDeleteErrors, ThrowOnError>({
url: "/session/{id}",
...options,
})
@ -270,7 +291,7 @@ class Session extends _HeyApiClient {
* Get session
*/
public get<ThrowOnError extends boolean = false>(options: Options<SessionGetData, ThrowOnError>) {
return (options.client ?? this._client).get<SessionGetResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).get<SessionGetResponses, SessionGetErrors, ThrowOnError>({
url: "/session/{id}",
...options,
})
@ -280,7 +301,7 @@ class Session extends _HeyApiClient {
* Update session properties
*/
public update<ThrowOnError extends boolean = false>(options: Options<SessionUpdateData, ThrowOnError>) {
return (options.client ?? this._client).patch<SessionUpdateResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).patch<SessionUpdateResponses, SessionUpdateErrors, ThrowOnError>({
url: "/session/{id}",
...options,
headers: {
@ -294,7 +315,7 @@ class Session extends _HeyApiClient {
* Get a session's children
*/
public children<ThrowOnError extends boolean = false>(options: Options<SessionChildrenData, ThrowOnError>) {
return (options.client ?? this._client).get<SessionChildrenResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).get<SessionChildrenResponses, SessionChildrenErrors, ThrowOnError>({
url: "/session/{id}/children",
...options,
})
@ -304,7 +325,7 @@ class Session extends _HeyApiClient {
* Get the todo list for a session
*/
public todo<ThrowOnError extends boolean = false>(options: Options<SessionTodoData, ThrowOnError>) {
return (options.client ?? this._client).get<SessionTodoResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).get<SessionTodoResponses, SessionTodoErrors, ThrowOnError>({
url: "/session/{id}/todo",
...options,
})
@ -314,7 +335,7 @@ class Session extends _HeyApiClient {
* Analyze the app and create an AGENTS.md file
*/
public init<ThrowOnError extends boolean = false>(options: Options<SessionInitData, ThrowOnError>) {
return (options.client ?? this._client).post<SessionInitResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).post<SessionInitResponses, SessionInitErrors, ThrowOnError>({
url: "/session/{id}/init",
...options,
headers: {
@ -342,7 +363,7 @@ class Session extends _HeyApiClient {
* Abort a session
*/
public abort<ThrowOnError extends boolean = false>(options: Options<SessionAbortData, ThrowOnError>) {
return (options.client ?? this._client).post<SessionAbortResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).post<SessionAbortResponses, SessionAbortErrors, ThrowOnError>({
url: "/session/{id}/abort",
...options,
})
@ -352,7 +373,7 @@ class Session extends _HeyApiClient {
* Unshare the session
*/
public unshare<ThrowOnError extends boolean = false>(options: Options<SessionUnshareData, ThrowOnError>) {
return (options.client ?? this._client).delete<SessionUnshareResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).delete<SessionUnshareResponses, SessionUnshareErrors, ThrowOnError>({
url: "/session/{id}/share",
...options,
})
@ -362,7 +383,7 @@ class Session extends _HeyApiClient {
* Share a session
*/
public share<ThrowOnError extends boolean = false>(options: Options<SessionShareData, ThrowOnError>) {
return (options.client ?? this._client).post<SessionShareResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).post<SessionShareResponses, SessionShareErrors, ThrowOnError>({
url: "/session/{id}/share",
...options,
})
@ -372,7 +393,7 @@ class Session extends _HeyApiClient {
* Summarize the session
*/
public summarize<ThrowOnError extends boolean = false>(options: Options<SessionSummarizeData, ThrowOnError>) {
return (options.client ?? this._client).post<SessionSummarizeResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).post<SessionSummarizeResponses, SessionSummarizeErrors, ThrowOnError>({
url: "/session/{id}/summarize",
...options,
headers: {
@ -386,7 +407,7 @@ class Session extends _HeyApiClient {
* List messages for a session
*/
public messages<ThrowOnError extends boolean = false>(options: Options<SessionMessagesData, ThrowOnError>) {
return (options.client ?? this._client).get<SessionMessagesResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).get<SessionMessagesResponses, SessionMessagesErrors, ThrowOnError>({
url: "/session/{id}/message",
...options,
})
@ -396,7 +417,7 @@ class Session extends _HeyApiClient {
* Create and send a new message to a session
*/
public prompt<ThrowOnError extends boolean = false>(options: Options<SessionPromptData, ThrowOnError>) {
return (options.client ?? this._client).post<SessionPromptResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).post<SessionPromptResponses, SessionPromptErrors, ThrowOnError>({
url: "/session/{id}/message",
...options,
headers: {
@ -410,7 +431,7 @@ class Session extends _HeyApiClient {
* Get a message from a session
*/
public message<ThrowOnError extends boolean = false>(options: Options<SessionMessageData, ThrowOnError>) {
return (options.client ?? this._client).get<SessionMessageResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).get<SessionMessageResponses, SessionMessageErrors, ThrowOnError>({
url: "/session/{id}/message/{messageID}",
...options,
})
@ -420,7 +441,7 @@ class Session extends _HeyApiClient {
* Send a new command to a session
*/
public command<ThrowOnError extends boolean = false>(options: Options<SessionCommandData, ThrowOnError>) {
return (options.client ?? this._client).post<SessionCommandResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).post<SessionCommandResponses, SessionCommandErrors, ThrowOnError>({
url: "/session/{id}/command",
...options,
headers: {
@ -434,7 +455,7 @@ class Session extends _HeyApiClient {
* Run a shell command
*/
public shell<ThrowOnError extends boolean = false>(options: Options<SessionShellData, ThrowOnError>) {
return (options.client ?? this._client).post<SessionShellResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).post<SessionShellResponses, SessionShellErrors, ThrowOnError>({
url: "/session/{id}/shell",
...options,
headers: {
@ -448,7 +469,7 @@ class Session extends _HeyApiClient {
* Revert a message
*/
public revert<ThrowOnError extends boolean = false>(options: Options<SessionRevertData, ThrowOnError>) {
return (options.client ?? this._client).post<SessionRevertResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).post<SessionRevertResponses, SessionRevertErrors, ThrowOnError>({
url: "/session/{id}/revert",
...options,
headers: {
@ -462,7 +483,7 @@ class Session extends _HeyApiClient {
* Restore all reverted messages
*/
public unrevert<ThrowOnError extends boolean = false>(options: Options<SessionUnrevertData, ThrowOnError>) {
return (options.client ?? this._client).post<SessionUnrevertResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).post<SessionUnrevertResponses, SessionUnrevertErrors, ThrowOnError>({
url: "/session/{id}/unrevert",
...options,
})
@ -550,7 +571,7 @@ class App extends _HeyApiClient {
* Write a log entry to the server logs
*/
public log<ThrowOnError extends boolean = false>(options?: Options<AppLogData, ThrowOnError>) {
return (options?.client ?? this._client).post<AppLogResponses, unknown, ThrowOnError>({
return (options?.client ?? this._client).post<AppLogResponses, AppLogErrors, ThrowOnError>({
url: "/log",
...options,
headers: {
@ -600,7 +621,7 @@ class Tui extends _HeyApiClient {
* Append prompt to the TUI
*/
public appendPrompt<ThrowOnError extends boolean = false>(options?: Options<TuiAppendPromptData, ThrowOnError>) {
return (options?.client ?? this._client).post<TuiAppendPromptResponses, unknown, ThrowOnError>({
return (options?.client ?? this._client).post<TuiAppendPromptResponses, TuiAppendPromptErrors, ThrowOnError>({
url: "/tui/append-prompt",
...options,
headers: {
@ -674,7 +695,7 @@ class Tui extends _HeyApiClient {
* Execute a TUI command (e.g. agent_cycle)
*/
public executeCommand<ThrowOnError extends boolean = false>(options?: Options<TuiExecuteCommandData, ThrowOnError>) {
return (options?.client ?? this._client).post<TuiExecuteCommandResponses, unknown, ThrowOnError>({
return (options?.client ?? this._client).post<TuiExecuteCommandResponses, TuiExecuteCommandErrors, ThrowOnError>({
url: "/tui/execute-command",
...options,
headers: {
@ -734,7 +755,11 @@ export class OpencodeClient extends _HeyApiClient {
public postSessionIdPermissionsPermissionId<ThrowOnError extends boolean = false>(
options: Options<PostSessionIdPermissionsPermissionIdData, ThrowOnError>,
) {
return (options.client ?? this._client).post<PostSessionIdPermissionsPermissionIdResponses, unknown, ThrowOnError>({
return (options.client ?? this._client).post<
PostSessionIdPermissionsPermissionIdResponses,
PostSessionIdPermissionsPermissionIdErrors,
ThrowOnError
>({
url: "/session/{id}/permissions/{permissionID}",
...options,
headers: {

View file

@ -430,6 +430,7 @@ export type Config = {
output: Array<"text" | "audio" | "image" | "video" | "pdf">
}
experimental?: boolean
status?: "alpha" | "beta"
options?: {
[key: string]: unknown
}
@ -520,10 +521,12 @@ export type Config = {
}
}
export type _Error = {
data: {
export type BadRequestError = {
data: unknown | null
errors: Array<{
[key: string]: unknown
}
}>
success: false
}
export type ToolIds = Array<string>
@ -566,6 +569,13 @@ export type Session = {
}
}
export type NotFoundError = {
name: "NotFoundError"
data: {
message: string
}
}
export type Todo = {
/**
* Brief description of the task
@ -933,6 +943,7 @@ export type Model = {
output: Array<"text" | "audio" | "image" | "video" | "pdf">
}
experimental?: boolean
status?: "alpha" | "beta"
options: {
[key: string]: unknown
}
@ -1300,7 +1311,7 @@ export type ConfigUpdateErrors = {
/**
* Bad request
*/
400: _Error
400: BadRequestError
}
export type ConfigUpdateError = ConfigUpdateErrors[keyof ConfigUpdateErrors]
@ -1327,7 +1338,7 @@ export type ToolIdsErrors = {
/**
* Bad request
*/
400: _Error
400: BadRequestError
}
export type ToolIdsError = ToolIdsErrors[keyof ToolIdsErrors]
@ -1356,7 +1367,7 @@ export type ToolListErrors = {
/**
* Bad request
*/
400: _Error
400: BadRequestError
}
export type ToolListError = ToolListErrors[keyof ToolListErrors]
@ -1422,7 +1433,7 @@ export type SessionCreateErrors = {
/**
* Bad request
*/
400: _Error
400: BadRequestError
}
export type SessionCreateError = SessionCreateErrors[keyof SessionCreateErrors]
@ -1447,6 +1458,19 @@ export type SessionDeleteData = {
url: "/session/{id}"
}
export type SessionDeleteErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionDeleteError = SessionDeleteErrors[keyof SessionDeleteErrors]
export type SessionDeleteResponses = {
/**
* Successfully deleted session
@ -1467,6 +1491,19 @@ export type SessionGetData = {
url: "/session/{id}"
}
export type SessionGetErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionGetError = SessionGetErrors[keyof SessionGetErrors]
export type SessionGetResponses = {
/**
* Get session
@ -1489,6 +1526,19 @@ export type SessionUpdateData = {
url: "/session/{id}"
}
export type SessionUpdateErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionUpdateError = SessionUpdateErrors[keyof SessionUpdateErrors]
export type SessionUpdateResponses = {
/**
* Successfully updated session
@ -1509,6 +1559,19 @@ export type SessionChildrenData = {
url: "/session/{id}/children"
}
export type SessionChildrenErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionChildrenError = SessionChildrenErrors[keyof SessionChildrenErrors]
export type SessionChildrenResponses = {
/**
* List of children
@ -1532,6 +1595,19 @@ export type SessionTodoData = {
url: "/session/{id}/todo"
}
export type SessionTodoErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionTodoError = SessionTodoErrors[keyof SessionTodoErrors]
export type SessionTodoResponses = {
/**
* Todo list
@ -1559,6 +1635,19 @@ export type SessionInitData = {
url: "/session/{id}/init"
}
export type SessionInitErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionInitError = SessionInitErrors[keyof SessionInitErrors]
export type SessionInitResponses = {
/**
* 200
@ -1601,6 +1690,19 @@ export type SessionAbortData = {
url: "/session/{id}/abort"
}
export type SessionAbortErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionAbortError = SessionAbortErrors[keyof SessionAbortErrors]
export type SessionAbortResponses = {
/**
* Aborted session
@ -1621,6 +1723,19 @@ export type SessionUnshareData = {
url: "/session/{id}/share"
}
export type SessionUnshareErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionUnshareError = SessionUnshareErrors[keyof SessionUnshareErrors]
export type SessionUnshareResponses = {
/**
* Successfully unshared session
@ -1641,6 +1756,19 @@ export type SessionShareData = {
url: "/session/{id}/share"
}
export type SessionShareErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionShareError = SessionShareErrors[keyof SessionShareErrors]
export type SessionShareResponses = {
/**
* Successfully shared session
@ -1667,6 +1795,19 @@ export type SessionSummarizeData = {
url: "/session/{id}/summarize"
}
export type SessionSummarizeErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionSummarizeError = SessionSummarizeErrors[keyof SessionSummarizeErrors]
export type SessionSummarizeResponses = {
/**
* Summarized session
@ -1690,6 +1831,19 @@ export type SessionMessagesData = {
url: "/session/{id}/message"
}
export type SessionMessagesErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionMessagesError = SessionMessagesErrors[keyof SessionMessagesErrors]
export type SessionMessagesResponses = {
/**
* List of messages
@ -1728,6 +1882,19 @@ export type SessionPromptData = {
url: "/session/{id}/message"
}
export type SessionPromptErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionPromptError = SessionPromptErrors[keyof SessionPromptErrors]
export type SessionPromptResponses = {
/**
* Created message
@ -1758,6 +1925,19 @@ export type SessionMessageData = {
url: "/session/{id}/message/{messageID}"
}
export type SessionMessageErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionMessageError = SessionMessageErrors[keyof SessionMessageErrors]
export type SessionMessageResponses = {
/**
* Message
@ -1790,6 +1970,19 @@ export type SessionCommandData = {
url: "/session/{id}/command"
}
export type SessionCommandErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionCommandError = SessionCommandErrors[keyof SessionCommandErrors]
export type SessionCommandResponses = {
/**
* Created message
@ -1819,6 +2012,19 @@ export type SessionShellData = {
url: "/session/{id}/shell"
}
export type SessionShellErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionShellError = SessionShellErrors[keyof SessionShellErrors]
export type SessionShellResponses = {
/**
* Created message
@ -1842,6 +2048,19 @@ export type SessionRevertData = {
url: "/session/{id}/revert"
}
export type SessionRevertErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionRevertError = SessionRevertErrors[keyof SessionRevertErrors]
export type SessionRevertResponses = {
/**
* Updated session
@ -1862,6 +2081,19 @@ export type SessionUnrevertData = {
url: "/session/{id}/unrevert"
}
export type SessionUnrevertErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type SessionUnrevertError = SessionUnrevertErrors[keyof SessionUnrevertErrors]
export type SessionUnrevertResponses = {
/**
* Updated session
@ -1885,6 +2117,20 @@ export type PostSessionIdPermissionsPermissionIdData = {
url: "/session/{id}/permissions/{permissionID}"
}
export type PostSessionIdPermissionsPermissionIdErrors = {
/**
* Bad request
*/
400: BadRequestError
/**
* Not found
*/
404: NotFoundError
}
export type PostSessionIdPermissionsPermissionIdError =
PostSessionIdPermissionsPermissionIdErrors[keyof PostSessionIdPermissionsPermissionIdErrors]
export type PostSessionIdPermissionsPermissionIdResponses = {
/**
* Permission processed successfully
@ -2093,6 +2339,15 @@ export type AppLogData = {
url: "/log"
}
export type AppLogErrors = {
/**
* Bad request
*/
400: BadRequestError
}
export type AppLogError = AppLogErrors[keyof AppLogErrors]
export type AppLogResponses = {
/**
* Log entry written successfully
@ -2169,6 +2424,15 @@ export type TuiAppendPromptData = {
url: "/tui/append-prompt"
}
export type TuiAppendPromptErrors = {
/**
* Bad request
*/
400: BadRequestError
}
export type TuiAppendPromptError = TuiAppendPromptErrors[keyof TuiAppendPromptErrors]
export type TuiAppendPromptResponses = {
/**
* Prompt processed successfully
@ -2297,6 +2561,15 @@ export type TuiExecuteCommandData = {
url: "/tui/execute-command"
}
export type TuiExecuteCommandErrors = {
/**
* Bad request
*/
400: BadRequestError
}
export type TuiExecuteCommandError = TuiExecuteCommandErrors[keyof TuiExecuteCommandErrors]
export type TuiExecuteCommandResponses = {
/**
* Command executed successfully
@ -2343,7 +2616,7 @@ export type AuthSetErrors = {
/**
* Bad request
*/
400: _Error
400: BadRequestError
}
export type AuthSetError = AuthSetErrors[keyof AuthSetErrors]

View file

@ -1,6 +1,6 @@
{
"name": "@opencode-ai/slack",
"version": "0.15.3",
"version": "0.15.4",
"type": "module",
"scripts": {
"dev": "bun run src/index.ts",

View file

@ -1,6 +1,6 @@
{
"name": "@opencode-ai/ui",
"version": "0.15.3",
"version": "0.15.4",
"type": "module",
"exports": {
".": "./src/components/index.ts",

View file

@ -1,7 +1,7 @@
{
"name": "@opencode-ai/web",
"type": "module",
"version": "0.15.3",
"version": "0.15.4",
"scripts": {
"dev": "astro dev",
"dev:remote": "VITE_API_URL=https://api.opencode.ai astro dev",

View file

@ -2,7 +2,7 @@
"name": "opencode",
"displayName": "opencode",
"description": "opencode for VS Code",
"version": "0.15.3",
"version": "0.15.4",
"publisher": "sst-dev",
"repository": {
"type": "git",