diff options
| author | Adam <[email protected]> | 2025-12-04 20:32:08 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2025-12-04 20:32:08 -0600 |
| commit | 09f522f0aa698be60c954e58bb7eee0e460c4439 (patch) | |
| tree | 8b936f4ab3cbafab391551e898412d1617dbd66b /packages/sdk/js/src | |
| parent | d82bd430f68b8227a93c39e0b7b617c9463ceea8 (diff) | |
| download | opencode-09f522f0aa698be60c954e58bb7eee0e460c4439.tar.gz opencode-09f522f0aa698be60c954e58bb7eee0e460c4439.zip | |
Reapply "feat(desktop): terminal pane (#5081)"
This reverts commit f9dcd979364acc5172fd0044c1c8b04dcaec9229.
Diffstat (limited to 'packages/sdk/js/src')
| -rw-r--r-- | packages/sdk/js/src/gen/sdk.gen.ts | 88 | ||||
| -rw-r--r-- | packages/sdk/js/src/gen/types.gen.ts | 248 |
2 files changed, 321 insertions, 15 deletions
diff --git a/packages/sdk/js/src/gen/sdk.gen.ts b/packages/sdk/js/src/gen/sdk.gen.ts index 0dc470566..d04277cbc 100644 --- a/packages/sdk/js/src/gen/sdk.gen.ts +++ b/packages/sdk/js/src/gen/sdk.gen.ts @@ -8,6 +8,23 @@ import type { ProjectListResponses, ProjectCurrentData, ProjectCurrentResponses, + PtyListData, + PtyListResponses, + PtyCreateData, + PtyCreateResponses, + PtyCreateErrors, + PtyRemoveData, + PtyRemoveResponses, + PtyRemoveErrors, + PtyGetData, + PtyGetResponses, + PtyGetErrors, + PtyUpdateData, + PtyUpdateResponses, + PtyUpdateErrors, + PtyConnectData, + PtyConnectResponses, + PtyConnectErrors, ConfigGetData, ConfigGetResponses, ConfigUpdateData, @@ -231,6 +248,76 @@ class Project extends _HeyApiClient { } } +class Pty extends _HeyApiClient { + /** + * List all PTY sessions + */ + public list<ThrowOnError extends boolean = false>(options?: Options<PtyListData, ThrowOnError>) { + return (options?.client ?? this._client).get<PtyListResponses, unknown, ThrowOnError>({ + url: "/pty", + ...options, + }) + } + + /** + * Create a new PTY session + */ + public create<ThrowOnError extends boolean = false>(options?: Options<PtyCreateData, ThrowOnError>) { + return (options?.client ?? this._client).post<PtyCreateResponses, PtyCreateErrors, ThrowOnError>({ + url: "/pty", + ...options, + headers: { + "Content-Type": "application/json", + ...options?.headers, + }, + }) + } + + /** + * Remove a PTY session + */ + public remove<ThrowOnError extends boolean = false>(options: Options<PtyRemoveData, ThrowOnError>) { + return (options.client ?? this._client).delete<PtyRemoveResponses, PtyRemoveErrors, ThrowOnError>({ + url: "/pty/{id}", + ...options, + }) + } + + /** + * Get PTY session info + */ + public get<ThrowOnError extends boolean = false>(options: Options<PtyGetData, ThrowOnError>) { + return (options.client ?? this._client).get<PtyGetResponses, PtyGetErrors, ThrowOnError>({ + url: "/pty/{id}", + ...options, + }) + } + + /** + * Update PTY session + */ + public update<ThrowOnError extends boolean = false>(options: Options<PtyUpdateData, ThrowOnError>) { + return (options.client ?? this._client).put<PtyUpdateResponses, PtyUpdateErrors, ThrowOnError>({ + url: "/pty/{id}", + ...options, + headers: { + "Content-Type": "application/json", + ...options.headers, + }, + }) + } + + /** + * Connect to a PTY session + */ + public connect<ThrowOnError extends boolean = false>(options: Options<PtyConnectData, ThrowOnError>) { + return (options.client ?? this._client).get<PtyConnectResponses, PtyConnectErrors, ThrowOnError>({ + url: "/pty/{id}/connect", + ...options, + }) + } +} + class Config extends _HeyApiClient { /** * Get config info @@ -1005,6 +1092,7 @@ export class OpencodeClient extends _HeyApiClient { } global = new Global({ client: this._client }) project = new Project({ client: this._client }) + pty = new Pty({ client: this._client }) config = new Config({ client: this._client }) tool = new Tool({ client: this._client }) instance = new Instance({ client: this._client }) diff --git a/packages/sdk/js/src/gen/types.gen.ts b/packages/sdk/js/src/gen/types.gen.ts index 6c80f0b7c..58ba58d35 100644 --- a/packages/sdk/js/src/gen/types.gen.ts +++ b/packages/sdk/js/src/gen/types.gen.ts @@ -655,6 +655,45 @@ export type EventTuiToastShow = { } } +export type Pty = { + id: string + title: string + command: string + args: Array<string> + cwd: string + status: "running" | "exited" + pid: number +} + +export type EventPtyCreated = { + type: "pty.created" + properties: { + info: Pty + } +} + +export type EventPtyUpdated = { + type: "pty.updated" + properties: { + info: Pty + } +} + +export type EventPtyExited = { + type: "pty.exited" + properties: { + id: string + exitCode: number + } +} + +export type EventPtyDeleted = { + type: "pty.deleted" + properties: { + id: string + } +} + export type EventServerConnected = { type: "server.connected" properties: { @@ -690,6 +729,10 @@ export type Event = | EventTuiPromptAppend | EventTuiCommandExecute | EventTuiToastShow + | EventPtyCreated + | EventPtyUpdated + | EventPtyExited + | EventPtyDeleted | EventServerConnected export type GlobalEvent = { @@ -708,6 +751,21 @@ export type Project = { } } +export type BadRequestError = { + data: unknown + errors: Array<{ + [key: string]: unknown + }> + success: false +} + +export type NotFoundError = { + name: "NotFoundError" + data: { + message: string + } +} + /** * Custom keybind configurations */ @@ -1266,14 +1324,6 @@ export type Config = { } } -export type BadRequestError = { - data: unknown - errors: Array<{ - [key: string]: unknown - }> - success: false -} - export type ToolIds = Array<string> export type ToolListItem = { @@ -1295,13 +1345,6 @@ export type VcsInfo = { branch: string } -export type NotFoundError = { - name: "NotFoundError" - data: { - message: string - } -} - export type TextPartInput = { id?: string type: "text" @@ -1614,6 +1657,181 @@ export type ProjectCurrentResponses = { export type ProjectCurrentResponse = ProjectCurrentResponses[keyof ProjectCurrentResponses] +export type PtyListData = { + body?: never + path?: never + query?: { + directory?: string + } + url: "/pty" +} + +export type PtyListResponses = { + /** + * List of sessions + */ + 200: Array<Pty> +} + +export type PtyListResponse = PtyListResponses[keyof PtyListResponses] + +export type PtyCreateData = { + body?: { + command?: string + args?: Array<string> + cwd?: string + title?: string + env?: { + [key: string]: string + } + } + path?: never + query?: { + directory?: string + } + url: "/pty" +} + +export type PtyCreateErrors = { + /** + * Bad request + */ + 400: BadRequestError +} + +export type PtyCreateError = PtyCreateErrors[keyof PtyCreateErrors] + +export type PtyCreateResponses = { + /** + * Created session + */ + 200: Pty +} + +export type PtyCreateResponse = PtyCreateResponses[keyof PtyCreateResponses] + +export type PtyRemoveData = { + body?: never + path: { + id: string + } + query?: { + directory?: string + } + url: "/pty/{id}" +} + +export type PtyRemoveErrors = { + /** + * Not found + */ + 404: NotFoundError +} + +export type PtyRemoveError = PtyRemoveErrors[keyof PtyRemoveErrors] + +export type PtyRemoveResponses = { + /** + * Session removed + */ + 200: boolean +} + +export type PtyRemoveResponse = PtyRemoveResponses[keyof PtyRemoveResponses] + +export type PtyGetData = { + body?: never + path: { + id: string + } + query?: { + directory?: string + } + url: "/pty/{id}" +} + +export type PtyGetErrors = { + /** + * Not found + */ + 404: NotFoundError +} + +export type PtyGetError = PtyGetErrors[keyof PtyGetErrors] + +export type PtyGetResponses = { + /** + * Session info + */ + 200: Pty +} + +export type PtyGetResponse = PtyGetResponses[keyof PtyGetResponses] + +export type PtyUpdateData = { + body?: { + title?: string + size?: { + rows: number + cols: number + } + } + path: { + id: string + } + query?: { + directory?: string + } + url: "/pty/{id}" +} + +export type PtyUpdateErrors = { + /** + * Bad request + */ + 400: BadRequestError +} + +export type PtyUpdateError = PtyUpdateErrors[keyof PtyUpdateErrors] + +export type PtyUpdateResponses = { + /** + * Updated session + */ + 200: Pty +} + +export type PtyUpdateResponse = PtyUpdateResponses[keyof PtyUpdateResponses] + +export type PtyConnectData = { + body?: never + path: { + id: string + } + query?: { + directory?: string + } + url: "/pty/{id}/connect" +} + +export type PtyConnectErrors = { + /** + * Session not found + */ + 404: boolean +} + +export type PtyConnectError = PtyConnectErrors[keyof PtyConnectErrors] + +export type PtyConnectResponses = { + /** + * Connected session + */ + 200: boolean +} + +export type PtyConnectResponse = PtyConnectResponses[keyof PtyConnectResponses] + export type ConfigGetData = { body?: never path?: never |
