This commit is contained in:
Dax Raad
2025-08-31 02:32:34 -04:00
parent 647671dbe6
commit ce1b5ee496
3 changed files with 160 additions and 38 deletions

View File

@@ -21,7 +21,6 @@ import { Instance } from "../project/instance"
import { Agent } from "../agent/agent"
import { Auth } from "../auth"
import { Command } from "../command"
import { ProjectRoute } from "./project"
import { Project } from "../project/project"
import { Global } from "../global"
@@ -85,6 +84,7 @@ export namespace Server {
return next()
})
})
.use(zValidator("query", z.object({ directory: z.string().optional() })))
.get(
"/project",
describeRoute({

View File

@@ -8,6 +8,8 @@ import type {
EventSubscribeResponses,
ConfigGetData,
ConfigGetResponses,
PathGetData,
PathGetResponses,
SessionListData,
SessionListResponses,
SessionCreateData,
@@ -164,6 +166,18 @@ class Config extends _HeyApiClient {
}
}
class Path extends _HeyApiClient {
/**
* Get the current path
*/
public get<ThrowOnError extends boolean = false>(options?: Options<PathGetData, ThrowOnError>) {
return (options?.client ?? this._client).get<PathGetResponses, unknown, ThrowOnError>({
url: "/path",
...options,
})
}
}
class Session extends _HeyApiClient {
/**
* List all sessions
@@ -623,6 +637,7 @@ export class OpencodeClient extends _HeyApiClient {
project = new Project({ client: this._client })
event = new Event({ client: this._client })
config = new Config({ client: this._client })
path = new Path({ client: this._client })
session = new Session({ client: this._client })
command = new Command({ client: this._client })
find = new Find({ client: this._client })

View File

@@ -1049,6 +1049,11 @@ export type McpRemoteConfig = {
export type LayoutConfig = "auto" | "stretch"
export type Path = {
state: string
config: string
}
export type _Error = {
data: {
[key: string]: unknown
@@ -1173,10 +1178,17 @@ export type WellKnownAuth = {
token: string
}
/**
* Working directory path (defaults to current working directory)
*/
export type Directory = string
export type ProjectListData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/project"
}
@@ -1192,7 +1204,9 @@ export type ProjectListResponse = ProjectListResponses[keyof ProjectListResponse
export type EventSubscribeData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/event"
}
@@ -1208,7 +1222,9 @@ export type EventSubscribeResponse = EventSubscribeResponses[keyof EventSubscrib
export type ConfigGetData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/config"
}
@@ -1221,10 +1237,30 @@ export type ConfigGetResponses = {
export type ConfigGetResponse = ConfigGetResponses[keyof ConfigGetResponses]
export type PathGetData = {
body?: never
path?: never
query?: {
directory?: string
}
url: "/path"
}
export type PathGetResponses = {
/**
* Path
*/
200: Path
}
export type PathGetResponse = PathGetResponses[keyof PathGetResponses]
export type SessionListData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/session"
}
@@ -1243,7 +1279,9 @@ export type SessionCreateData = {
title?: string
}
path?: never
query?: never
query?: {
directory?: string
}
url: "/session"
}
@@ -1270,7 +1308,9 @@ export type SessionDeleteData = {
path: {
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}"
}
@@ -1288,7 +1328,9 @@ export type SessionGetData = {
path: {
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}"
}
@@ -1308,7 +1350,9 @@ export type SessionUpdateData = {
path: {
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}"
}
@@ -1326,7 +1370,9 @@ export type SessionChildrenData = {
path: {
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/children"
}
@@ -1351,7 +1397,9 @@ export type SessionInitData = {
*/
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/init"
}
@@ -1369,7 +1417,9 @@ export type SessionAbortData = {
path: {
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/abort"
}
@@ -1387,7 +1437,9 @@ export type SessionUnshareData = {
path: {
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/share"
}
@@ -1405,7 +1457,9 @@ export type SessionShareData = {
path: {
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/share"
}
@@ -1429,7 +1483,9 @@ export type SessionSummarizeData = {
*/
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/summarize"
}
@@ -1450,7 +1506,9 @@ export type SessionMessagesData = {
*/
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/message"
}
@@ -1494,7 +1552,9 @@ export type SessionChatData = {
*/
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/message"
}
@@ -1522,7 +1582,9 @@ export type SessionMessageData = {
*/
messageID: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/message/{messageID}"
}
@@ -1552,7 +1614,9 @@ export type SessionCommandData = {
*/
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/command"
}
@@ -1579,7 +1643,9 @@ export type SessionShellData = {
*/
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/shell"
}
@@ -1600,7 +1666,9 @@ export type SessionRevertData = {
path: {
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/revert"
}
@@ -1618,7 +1686,9 @@ export type SessionUnrevertData = {
path: {
id: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/unrevert"
}
@@ -1639,7 +1709,9 @@ export type PostSessionByIdPermissionsByPermissionIdData = {
id: string
permissionID: string
}
query?: never
query?: {
directory?: string
}
url: "/session/{id}/permissions/{permissionID}"
}
@@ -1656,7 +1728,9 @@ export type PostSessionByIdPermissionsByPermissionIdResponse =
export type CommandListData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/command"
}
@@ -1672,7 +1746,9 @@ export type CommandListResponse = CommandListResponses[keyof CommandListResponse
export type ConfigProvidersData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/config/providers"
}
@@ -1694,6 +1770,7 @@ export type FindTextData = {
body?: never
path?: never
query: {
directory?: string
pattern: string
}
url: "/find"
@@ -1728,6 +1805,7 @@ export type FindFilesData = {
body?: never
path?: never
query: {
directory?: string
query: string
}
url: "/find/file"
@@ -1746,6 +1824,7 @@ export type FindSymbolsData = {
body?: never
path?: never
query: {
directory?: string
query: string
}
url: "/find/symbol"
@@ -1764,6 +1843,7 @@ export type FileListData = {
body?: never
path?: never
query: {
directory?: string
path: string
}
url: "/file"
@@ -1782,6 +1862,7 @@ export type FileReadData = {
body?: never
path?: never
query: {
directory?: string
path: string
}
url: "/file/content"
@@ -1802,7 +1883,9 @@ export type FileReadResponse = FileReadResponses[keyof FileReadResponses]
export type FileStatusData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/file/status"
}
@@ -1837,7 +1920,9 @@ export type AppLogData = {
}
}
path?: never
query?: never
query?: {
directory?: string
}
url: "/log"
}
@@ -1853,7 +1938,9 @@ export type AppLogResponse = AppLogResponses[keyof AppLogResponses]
export type AppAgentsData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/agent"
}
@@ -1871,7 +1958,9 @@ export type TuiAppendPromptData = {
text: string
}
path?: never
query?: never
query?: {
directory?: string
}
url: "/tui/append-prompt"
}
@@ -1887,7 +1976,9 @@ export type TuiAppendPromptResponse = TuiAppendPromptResponses[keyof TuiAppendPr
export type TuiOpenHelpData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/tui/open-help"
}
@@ -1903,7 +1994,9 @@ export type TuiOpenHelpResponse = TuiOpenHelpResponses[keyof TuiOpenHelpResponse
export type TuiOpenSessionsData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/tui/open-sessions"
}
@@ -1919,7 +2012,9 @@ export type TuiOpenSessionsResponse = TuiOpenSessionsResponses[keyof TuiOpenSess
export type TuiOpenThemesData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/tui/open-themes"
}
@@ -1935,7 +2030,9 @@ export type TuiOpenThemesResponse = TuiOpenThemesResponses[keyof TuiOpenThemesRe
export type TuiOpenModelsData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/tui/open-models"
}
@@ -1951,7 +2048,9 @@ export type TuiOpenModelsResponse = TuiOpenModelsResponses[keyof TuiOpenModelsRe
export type TuiSubmitPromptData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/tui/submit-prompt"
}
@@ -1967,7 +2066,9 @@ export type TuiSubmitPromptResponse = TuiSubmitPromptResponses[keyof TuiSubmitPr
export type TuiClearPromptData = {
body?: never
path?: never
query?: never
query?: {
directory?: string
}
url: "/tui/clear-prompt"
}
@@ -1985,7 +2086,9 @@ export type TuiExecuteCommandData = {
command: string
}
path?: never
query?: never
query?: {
directory?: string
}
url: "/tui/execute-command"
}
@@ -2005,7 +2108,9 @@ export type TuiShowToastData = {
variant: "info" | "success" | "warning" | "error"
}
path?: never
query?: never
query?: {
directory?: string
}
url: "/tui/show-toast"
}
@@ -2023,7 +2128,9 @@ export type AuthSetData = {
path: {
id: string
}
query?: never
query?: {
directory?: string
}
url: "/auth/{id}"
}