summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/js/src
diff options
context:
space:
mode:
authorYeonGyu-Kim <[email protected]>2026-01-03 07:57:21 +0900
committerGitHub <[email protected]>2026-01-02 16:57:21 -0600
commita3f38e0533e1a89fd20e66bf8bf3cefed6652ec8 (patch)
treeaa92ce6b8aec36b9e9fb3000f82bb282e689dbd5 /packages/sdk/js/src
parent681a257df67d8e2f51bdee7d5cde24102a567276 (diff)
downloadopencode-a3f38e0533e1a89fd20e66bf8bf3cefed6652ec8.tar.gz
opencode-a3f38e0533e1a89fd20e66bf8bf3cefed6652ec8.zip
feat(plugin): add tui.session.select API endpoint for TUI navigation (#6565)
Co-authored-by: Aiden Cline <[email protected]>
Diffstat (limited to 'packages/sdk/js/src')
-rw-r--r--packages/sdk/js/src/v2/gen/sdk.gen.ts40
-rw-r--r--packages/sdk/js/src/v2/gen/types.gen.ts49
2 files changed, 87 insertions, 2 deletions
diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts
index f56e83677..5319a714b 100644
--- a/packages/sdk/js/src/v2/gen/sdk.gen.ts
+++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts
@@ -19,6 +19,7 @@ import type {
EventSubscribeResponses,
EventTuiCommandExecute,
EventTuiPromptAppend,
+ EventTuiSessionSelect,
EventTuiToastShow,
FileListResponses,
FilePartInput,
@@ -144,6 +145,8 @@ import type {
TuiOpenThemesResponses,
TuiPublishErrors,
TuiPublishResponses,
+ TuiSelectSessionErrors,
+ TuiSelectSessionResponses,
TuiShowToastResponses,
TuiSubmitPromptResponses,
VcsGetResponses,
@@ -2688,7 +2691,7 @@ export class Tui extends HeyApiClient {
public publish<ThrowOnError extends boolean = false>(
parameters?: {
directory?: string
- body?: EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow
+ body?: EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow | EventTuiSessionSelect
},
options?: Options<never, ThrowOnError>,
) {
@@ -2705,6 +2708,41 @@ export class Tui extends HeyApiClient {
})
}
+ /**
+ * Select session
+ *
+ * Navigate the TUI to display the specified session.
+ */
+ public selectSession<ThrowOnError extends boolean = false>(
+ parameters?: {
+ directory?: string
+ sessionID?: string
+ },
+ options?: Options<never, ThrowOnError>,
+ ) {
+ const params = buildClientParams(
+ [parameters],
+ [
+ {
+ args: [
+ { in: "query", key: "directory" },
+ { in: "body", key: "sessionID" },
+ ],
+ },
+ ],
+ )
+ return (options?.client ?? this.client).post<TuiSelectSessionResponses, TuiSelectSessionErrors, ThrowOnError>({
+ url: "/tui/select-session",
+ ...options,
+ ...params,
+ headers: {
+ "Content-Type": "application/json",
+ ...options?.headers,
+ ...params.headers,
+ },
+ })
+ }
+
control = new Control({ client: this.client })
}
diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts
index 10764bebe..f0aa4a406 100644
--- a/packages/sdk/js/src/v2/gen/types.gen.ts
+++ b/packages/sdk/js/src/v2/gen/types.gen.ts
@@ -592,6 +592,16 @@ export type EventTuiToastShow = {
}
}
+export type EventTuiSessionSelect = {
+ type: "tui.session.select"
+ properties: {
+ /**
+ * Session ID to navigate to
+ */
+ sessionID: string
+ }
+}
+
export type EventMcpToolsChanged = {
type: "mcp.tools.changed"
properties: {
@@ -776,6 +786,7 @@ export type Event =
| EventTuiPromptAppend
| EventTuiCommandExecute
| EventTuiToastShow
+ | EventTuiSessionSelect
| EventMcpToolsChanged
| EventCommandExecuted
| EventSessionCreated
@@ -4310,7 +4321,7 @@ export type TuiShowToastResponses = {
export type TuiShowToastResponse = TuiShowToastResponses[keyof TuiShowToastResponses]
export type TuiPublishData = {
- body?: EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow
+ body?: EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow | EventTuiSessionSelect
path?: never
query?: {
directory?: string
@@ -4336,6 +4347,42 @@ export type TuiPublishResponses = {
export type TuiPublishResponse = TuiPublishResponses[keyof TuiPublishResponses]
+export type TuiSelectSessionData = {
+ body?: {
+ /**
+ * Session ID to navigate to
+ */
+ sessionID: string
+ }
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/tui/select-session"
+}
+
+export type TuiSelectSessionErrors = {
+ /**
+ * Bad request
+ */
+ 400: BadRequestError
+ /**
+ * Not found
+ */
+ 404: NotFoundError
+}
+
+export type TuiSelectSessionError = TuiSelectSessionErrors[keyof TuiSelectSessionErrors]
+
+export type TuiSelectSessionResponses = {
+ /**
+ * Session selected successfully
+ */
+ 200: boolean
+}
+
+export type TuiSelectSessionResponse = TuiSelectSessionResponses[keyof TuiSelectSessionResponses]
+
export type TuiControlNextData = {
body?: never
path?: never