Download packages/client/src/generated/client.ts from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 35.9 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/client/src/generated/client.ts
- Command line
-
hf download hf://SaylorTwift/opencode/packages/client/src/generated/client.ts
-
curl -L -o client.ts https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/client/src/generated/client.ts
35.9 kB
| import type { | |
| HealthGetOutput, | |
| LocationGetInput, | |
| LocationGetOutput, | |
| AgentsListInput, | |
| AgentsListOutput, | |
| SessionsListInput, | |
| SessionsListOutput, | |
| SessionsCreateInput, | |
| SessionsCreateOutput, | |
| SessionsActiveOutput, | |
| SessionsGetInput, | |
| SessionsGetOutput, | |
| SessionsSwitchAgentInput, | |
| SessionsSwitchAgentOutput, | |
| SessionsSwitchModelInput, | |
| SessionsSwitchModelOutput, | |
| SessionsPromptInput, | |
| SessionsPromptOutput, | |
| SessionsCompactInput, | |
| SessionsCompactOutput, | |
| SessionsWaitInput, | |
| SessionsWaitOutput, | |
| SessionsStageInput, | |
| SessionsStageOutput, | |
| SessionsClearInput, | |
| SessionsClearOutput, | |
| SessionsCommitInput, | |
| SessionsCommitOutput, | |
| SessionsContextInput, | |
| SessionsContextOutput, | |
| SessionsHistoryInput, | |
| SessionsHistoryOutput, | |
| SessionsEventsInput, | |
| SessionsEventsOutput, | |
| SessionsInterruptInput, | |
| SessionsInterruptOutput, | |
| SessionsMessageInput, | |
| SessionsMessageOutput, | |
| MessagesListInput, | |
| MessagesListOutput, | |
| ModelsListInput, | |
| ModelsListOutput, | |
| ProvidersListInput, | |
| ProvidersListOutput, | |
| ProvidersGetInput, | |
| ProvidersGetOutput, | |
| IntegrationsListInput, | |
| IntegrationsListOutput, | |
| IntegrationsGetInput, | |
| IntegrationsGetOutput, | |
| IntegrationsConnectKeyInput, | |
| IntegrationsConnectKeyOutput, | |
| IntegrationsConnectOauthInput, | |
| IntegrationsConnectOauthOutput, | |
| IntegrationsAttemptStatusInput, | |
| IntegrationsAttemptStatusOutput, | |
| IntegrationsAttemptCompleteInput, | |
| IntegrationsAttemptCompleteOutput, | |
| IntegrationsAttemptCancelInput, | |
| IntegrationsAttemptCancelOutput, | |
| CredentialsUpdateInput, | |
| CredentialsUpdateOutput, | |
| CredentialsRemoveInput, | |
| CredentialsRemoveOutput, | |
| PermissionsListRequestsInput, | |
| PermissionsListRequestsOutput, | |
| PermissionsListSavedInput, | |
| PermissionsListSavedOutput, | |
| PermissionsRemoveSavedInput, | |
| PermissionsRemoveSavedOutput, | |
| PermissionsCreateInput, | |
| PermissionsCreateOutput, | |
| PermissionsListInput, | |
| PermissionsListOutput, | |
| PermissionsGetInput, | |
| PermissionsGetOutput, | |
| PermissionsReplyInput, | |
| PermissionsReplyOutput, | |
| FilesListInput, | |
| FilesListOutput, | |
| FilesFindInput, | |
| FilesFindOutput, | |
| CommandsListInput, | |
| CommandsListOutput, | |
| SkillsListInput, | |
| SkillsListOutput, | |
| EventsSubscribeOutput, | |
| PtysListInput, | |
| PtysListOutput, | |
| PtysCreateInput, | |
| PtysCreateOutput, | |
| PtysGetInput, | |
| PtysGetOutput, | |
| PtysUpdateInput, | |
| PtysUpdateOutput, | |
| PtysRemoveInput, | |
| PtysRemoveOutput, | |
| QuestionsListRequestsInput, | |
| QuestionsListRequestsOutput, | |
| QuestionsListInput, | |
| QuestionsListOutput, | |
| QuestionsReplyInput, | |
| QuestionsReplyOutput, | |
| QuestionsRejectInput, | |
| QuestionsRejectOutput, | |
| ReferencesListInput, | |
| ReferencesListOutput, | |
| ProjectCopiesCreateInput, | |
| ProjectCopiesCreateOutput, | |
| ProjectCopiesRemoveInput, | |
| ProjectCopiesRemoveOutput, | |
| ProjectCopiesRefreshInput, | |
| ProjectCopiesRefreshOutput, | |
| } from "./types" | |
| import { ClientError } from "./client-error" | |
| export interface ClientOptions { | |
| readonly baseUrl: string | |
| readonly fetch?: typeof globalThis.fetch | |
| readonly headers?: HeadersInit | |
| } | |
| export interface RequestOptions { | |
| readonly signal?: AbortSignal | |
| readonly headers?: HeadersInit | |
| } | |
| interface RequestDescriptor { | |
| readonly method: string | |
| readonly path: string | |
| readonly query?: Record<string, unknown> | |
| readonly headers?: Record<string, unknown> | |
| readonly body?: unknown | |
| readonly successStatus: number | |
| readonly declaredStatuses: ReadonlyArray<number> | |
| readonly empty: boolean | |
| } | |
| export function make(options: ClientOptions) { | |
| const fetch = options.fetch ?? globalThis.fetch | |
| const prepare = (descriptor: RequestDescriptor, requestOptions?: RequestOptions) => { | |
| const url = new URL(descriptor.path, options.baseUrl) | |
| for (const [key, value] of Object.entries(descriptor.query ?? {})) appendQuery(url.searchParams, key, value) | |
| const headers = new Headers(options.headers) | |
| for (const [key, value] of Object.entries(descriptor.headers ?? {})) { | |
| if (value !== undefined && value !== null) headers.set(key, String(value)) | |
| } | |
| for (const [key, value] of new Headers(requestOptions?.headers)) headers.set(key, value) | |
| if (descriptor.body !== undefined && !headers.has("content-type")) headers.set("content-type", "application/json") | |
| return { | |
| url, | |
| init: { | |
| method: descriptor.method, | |
| signal: requestOptions?.signal, | |
| headers, | |
| body: descriptor.body === undefined ? undefined : JSON.stringify(descriptor.body), | |
| } satisfies RequestInit, | |
| } | |
| } | |
| const execute = async (descriptor: RequestDescriptor, requestOptions?: RequestOptions) => { | |
| try { | |
| const prepared = prepare(descriptor, requestOptions) | |
| return await fetch(prepared.url, prepared.init) | |
| } catch (cause) { | |
| throw new ClientError("Transport", { cause }) | |
| } | |
| } | |
| const responseError = async (response: Response, descriptor: RequestDescriptor): Promise<never> => { | |
| if (descriptor.declaredStatuses.includes(response.status)) throw await json(response) | |
| try { | |
| await response.body?.cancel() | |
| } catch {} | |
| throw new ClientError("UnexpectedStatus", { cause: { status: response.status } }) | |
| } | |
| const request = async <A>(descriptor: RequestDescriptor, requestOptions?: RequestOptions): Promise<A> => { | |
| const response = await execute(descriptor, requestOptions) | |
| if (response.status !== descriptor.successStatus) return responseError(response, descriptor) | |
| if (descriptor.empty) { | |
| try { | |
| await response.body?.cancel() | |
| } catch {} | |
| return undefined as A | |
| } | |
| return (await json(response)) as A | |
| } | |
| const sse = <A>(descriptor: RequestDescriptor, requestOptions?: RequestOptions): AsyncIterable<A> => ({ | |
| async *[Symbol.asyncIterator]() { | |
| const response = await execute(descriptor, requestOptions) | |
| if (response.status !== descriptor.successStatus) await responseError(response, descriptor) | |
| if (!isContentType(response, "text/event-stream")) { | |
| try { | |
| await response.body?.cancel() | |
| } catch {} | |
| throw new ClientError("UnsupportedContentType") | |
| } | |
| if (response.body === null) throw new ClientError("MalformedResponse") | |
| const reader = response.body.getReader() | |
| const decoder = new TextDecoder() | |
| let buffer = "" | |
| try { | |
| while (true) { | |
| let next | |
| try { | |
| next = await reader.read() | |
| } catch (cause) { | |
| throw new ClientError("Transport", { cause }) | |
| } | |
| buffer += decoder.decode(next.value, { stream: !next.done }) | |
| if (buffer.length > 1_048_576) throw new ClientError("MalformedResponse") | |
| const trailingCarriageReturn = !next.done && buffer.endsWith("\r") | |
| if (trailingCarriageReturn) buffer = buffer.slice(0, -1) | |
| buffer = buffer.replaceAll("\r\n", "\n").replaceAll("\r", "\n") | |
| if (trailingCarriageReturn) buffer += "\r" | |
| if (next.done && buffer !== "") buffer += "\n\n" | |
| let boundary = buffer.indexOf("\n\n") | |
| while (boundary >= 0) { | |
| const block = buffer.slice(0, boundary) | |
| buffer = buffer.slice(boundary + 2) | |
| const data = block | |
| .split("\n") | |
| .flatMap((line) => (line.startsWith("data:") ? [line.slice(5).trimStart()] : [])) | |
| .join("\n") | |
| if (data !== "") { | |
| try { | |
| yield JSON.parse(data) as A | |
| } catch (cause) { | |
| throw new ClientError("MalformedResponse", { cause }) | |
| } | |
| } | |
| boundary = buffer.indexOf("\n\n") | |
| } | |
| if (next.done) return | |
| } | |
| } finally { | |
| try { | |
| await reader.cancel() | |
| } catch {} | |
| reader.releaseLock() | |
| } | |
| }, | |
| }) | |
| return { | |
| health: { | |
| get: (requestOptions?: RequestOptions) => | |
| request<HealthGetOutput>( | |
| { method: "GET", path: `/api/health`, successStatus: 200, declaredStatuses: [401, 400], empty: false }, | |
| requestOptions, | |
| ), | |
| }, | |
| location: { | |
| get: (input?: LocationGetInput, requestOptions?: RequestOptions) => | |
| request<LocationGetOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/location`, | |
| query: { location: input?.["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| agents: { | |
| list: (input?: AgentsListInput, requestOptions?: RequestOptions) => | |
| request<AgentsListOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/agent`, | |
| query: { location: input?.["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| sessions: { | |
| list: (input?: SessionsListInput, requestOptions?: RequestOptions) => | |
| request<SessionsListOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/session`, | |
| query: { | |
| workspace: input?.["workspace"], | |
| limit: input?.["limit"], | |
| order: input?.["order"], | |
| search: input?.["search"], | |
| directory: input?.["directory"], | |
| project: input?.["project"], | |
| subpath: input?.["subpath"], | |
| cursor: input?.["cursor"], | |
| }, | |
| successStatus: 200, | |
| declaredStatuses: [400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| create: (input?: SessionsCreateInput, requestOptions?: RequestOptions) => | |
| request<{ readonly data: SessionsCreateOutput }>( | |
| { | |
| method: "POST", | |
| path: `/api/session`, | |
| body: { | |
| id: input?.["id"], | |
| agent: input?.["agent"], | |
| model: input?.["model"], | |
| location: input?.["location"], | |
| }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| active: (requestOptions?: RequestOptions) => | |
| request<{ readonly data: SessionsActiveOutput }>( | |
| { | |
| method: "GET", | |
| path: `/api/session/active`, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| get: (input: SessionsGetInput, requestOptions?: RequestOptions) => | |
| request<{ readonly data: SessionsGetOutput }>( | |
| { | |
| method: "GET", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}`, | |
| successStatus: 200, | |
| declaredStatuses: [404, 400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| switchAgent: (input: SessionsSwitchAgentInput, requestOptions?: RequestOptions) => | |
| request<SessionsSwitchAgentOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/agent`, | |
| body: { agent: input["agent"] }, | |
| successStatus: 204, | |
| declaredStatuses: [404, 400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| switchModel: (input: SessionsSwitchModelInput, requestOptions?: RequestOptions) => | |
| request<SessionsSwitchModelOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/model`, | |
| body: { model: input["model"] }, | |
| successStatus: 204, | |
| declaredStatuses: [404, 400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| prompt: (input: SessionsPromptInput, requestOptions?: RequestOptions) => | |
| request<{ readonly data: SessionsPromptOutput }>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/prompt`, | |
| body: { id: input["id"], prompt: input["prompt"], delivery: input["delivery"], resume: input["resume"] }, | |
| successStatus: 200, | |
| declaredStatuses: [409, 404, 400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| compact: (input: SessionsCompactInput, requestOptions?: RequestOptions) => | |
| request<SessionsCompactOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/compact`, | |
| successStatus: 204, | |
| declaredStatuses: [404, 503, 400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| wait: (input: SessionsWaitInput, requestOptions?: RequestOptions) => | |
| request<SessionsWaitOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/wait`, | |
| successStatus: 204, | |
| declaredStatuses: [404, 503, 400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| stage: (input: SessionsStageInput, requestOptions?: RequestOptions) => | |
| request<{ readonly data: SessionsStageOutput }>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/revert/stage`, | |
| body: { messageID: input["messageID"], files: input["files"] }, | |
| successStatus: 200, | |
| declaredStatuses: [404, 500, 400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| clear: (input: SessionsClearInput, requestOptions?: RequestOptions) => | |
| request<SessionsClearOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/revert/clear`, | |
| successStatus: 204, | |
| declaredStatuses: [404, 500, 400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| commit: (input: SessionsCommitInput, requestOptions?: RequestOptions) => | |
| request<SessionsCommitOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/revert/commit`, | |
| successStatus: 204, | |
| declaredStatuses: [404, 400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| context: (input: SessionsContextInput, requestOptions?: RequestOptions) => | |
| request<{ readonly data: SessionsContextOutput }>( | |
| { | |
| method: "GET", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/context`, | |
| successStatus: 200, | |
| declaredStatuses: [404, 500, 400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| history: (input: SessionsHistoryInput, requestOptions?: RequestOptions) => | |
| request<SessionsHistoryOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/history`, | |
| query: { limit: input["limit"], after: input["after"] }, | |
| successStatus: 200, | |
| declaredStatuses: [404, 400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| events: (input: SessionsEventsInput, requestOptions?: RequestOptions): AsyncIterable<SessionsEventsOutput> => | |
| sse<SessionsEventsOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/event`, | |
| query: { after: input["after"] }, | |
| successStatus: 200, | |
| declaredStatuses: [404, 400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| interrupt: (input: SessionsInterruptInput, requestOptions?: RequestOptions) => | |
| request<SessionsInterruptOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/interrupt`, | |
| successStatus: 204, | |
| declaredStatuses: [404, 400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| message: (input: SessionsMessageInput, requestOptions?: RequestOptions) => | |
| request<{ readonly data: SessionsMessageOutput }>( | |
| { | |
| method: "GET", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/message/${encodeURIComponent(input.messageID)}`, | |
| successStatus: 200, | |
| declaredStatuses: [404, 400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| }, | |
| messages: { | |
| list: (input: MessagesListInput, requestOptions?: RequestOptions) => | |
| request<MessagesListOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/message`, | |
| query: { limit: input["limit"], order: input["order"], cursor: input["cursor"] }, | |
| successStatus: 200, | |
| declaredStatuses: [400, 404, 500, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| models: { | |
| list: (input?: ModelsListInput, requestOptions?: RequestOptions) => | |
| request<ModelsListOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/model`, | |
| query: { location: input?.["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [503, 401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| providers: { | |
| list: (input?: ProvidersListInput, requestOptions?: RequestOptions) => | |
| request<ProvidersListOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/provider`, | |
| query: { location: input?.["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [503, 401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| get: (input: ProvidersGetInput, requestOptions?: RequestOptions) => | |
| request<ProvidersGetOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/provider/${encodeURIComponent(input.providerID)}`, | |
| query: { location: input["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [404, 503, 401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| integrations: { | |
| list: (input?: IntegrationsListInput, requestOptions?: RequestOptions) => | |
| request<IntegrationsListOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/integration`, | |
| query: { location: input?.["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| get: (input: IntegrationsGetInput, requestOptions?: RequestOptions) => | |
| request<IntegrationsGetOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/integration/${encodeURIComponent(input.integrationID)}`, | |
| query: { location: input["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| connectKey: (input: IntegrationsConnectKeyInput, requestOptions?: RequestOptions) => | |
| request<IntegrationsConnectKeyOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/key`, | |
| query: { location: input["location"] }, | |
| body: { key: input["key"], label: input["label"] }, | |
| successStatus: 204, | |
| declaredStatuses: [400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| connectOauth: (input: IntegrationsConnectOauthInput, requestOptions?: RequestOptions) => | |
| request<IntegrationsConnectOauthOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/integration/${encodeURIComponent(input.integrationID)}/connect/oauth`, | |
| query: { location: input["location"] }, | |
| body: { methodID: input["methodID"], inputs: input["inputs"], label: input["label"] }, | |
| successStatus: 200, | |
| declaredStatuses: [400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| attemptStatus: (input: IntegrationsAttemptStatusInput, requestOptions?: RequestOptions) => | |
| request<IntegrationsAttemptStatusOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/integration/attempt/${encodeURIComponent(input.attemptID)}`, | |
| query: { location: input["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| attemptComplete: (input: IntegrationsAttemptCompleteInput, requestOptions?: RequestOptions) => | |
| request<IntegrationsAttemptCompleteOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/integration/attempt/${encodeURIComponent(input.attemptID)}/complete`, | |
| query: { location: input["location"] }, | |
| body: { code: input["code"] }, | |
| successStatus: 204, | |
| declaredStatuses: [400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| attemptCancel: (input: IntegrationsAttemptCancelInput, requestOptions?: RequestOptions) => | |
| request<IntegrationsAttemptCancelOutput>( | |
| { | |
| method: "DELETE", | |
| path: `/api/integration/attempt/${encodeURIComponent(input.attemptID)}`, | |
| query: { location: input["location"] }, | |
| successStatus: 204, | |
| declaredStatuses: [401, 400], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| credentials: { | |
| update: (input: CredentialsUpdateInput, requestOptions?: RequestOptions) => | |
| request<CredentialsUpdateOutput>( | |
| { | |
| method: "PATCH", | |
| path: `/api/credential/${encodeURIComponent(input.credentialID)}`, | |
| query: { location: input["location"] }, | |
| body: { label: input["label"] }, | |
| successStatus: 204, | |
| declaredStatuses: [401, 400], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| remove: (input: CredentialsRemoveInput, requestOptions?: RequestOptions) => | |
| request<CredentialsRemoveOutput>( | |
| { | |
| method: "DELETE", | |
| path: `/api/credential/${encodeURIComponent(input.credentialID)}`, | |
| query: { location: input["location"] }, | |
| successStatus: 204, | |
| declaredStatuses: [401, 400], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| permissions: { | |
| listRequests: (input?: PermissionsListRequestsInput, requestOptions?: RequestOptions) => | |
| request<PermissionsListRequestsOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/permission/request`, | |
| query: { location: input?.["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| listSaved: (input?: PermissionsListSavedInput, requestOptions?: RequestOptions) => | |
| request<{ readonly data: PermissionsListSavedOutput }>( | |
| { | |
| method: "GET", | |
| path: `/api/permission/saved`, | |
| query: { projectID: input?.["projectID"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| removeSaved: (input: PermissionsRemoveSavedInput, requestOptions?: RequestOptions) => | |
| request<PermissionsRemoveSavedOutput>( | |
| { | |
| method: "DELETE", | |
| path: `/api/permission/saved/${encodeURIComponent(input.id)}`, | |
| successStatus: 204, | |
| declaredStatuses: [401, 400], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| create: (input: PermissionsCreateInput, requestOptions?: RequestOptions) => | |
| request<{ readonly data: PermissionsCreateOutput }>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/permission`, | |
| body: { | |
| id: input["id"], | |
| action: input["action"], | |
| resources: input["resources"], | |
| save: input["save"], | |
| metadata: input["metadata"], | |
| source: input["source"], | |
| agent: input["agent"], | |
| }, | |
| successStatus: 200, | |
| declaredStatuses: [404, 400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| list: (input: PermissionsListInput, requestOptions?: RequestOptions) => | |
| request<{ readonly data: PermissionsListOutput }>( | |
| { | |
| method: "GET", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/permission`, | |
| successStatus: 200, | |
| declaredStatuses: [404, 400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| get: (input: PermissionsGetInput, requestOptions?: RequestOptions) => | |
| request<{ readonly data: PermissionsGetOutput }>( | |
| { | |
| method: "GET", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/permission/${encodeURIComponent(input.requestID)}`, | |
| successStatus: 200, | |
| declaredStatuses: [404, 400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| reply: (input: PermissionsReplyInput, requestOptions?: RequestOptions) => | |
| request<PermissionsReplyOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/permission/${encodeURIComponent(input.requestID)}/reply`, | |
| body: { reply: input["reply"], message: input["message"] }, | |
| successStatus: 204, | |
| declaredStatuses: [404, 400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| files: { | |
| list: (input?: FilesListInput, requestOptions?: RequestOptions) => | |
| request<FilesListOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/fs/list`, | |
| query: { location: input?.["location"], path: input?.["path"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| find: (input: FilesFindInput, requestOptions?: RequestOptions) => | |
| request<FilesFindOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/fs/find`, | |
| query: { location: input["location"], query: input["query"], type: input["type"], limit: input["limit"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| commands: { | |
| list: (input?: CommandsListInput, requestOptions?: RequestOptions) => | |
| request<CommandsListOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/command`, | |
| query: { location: input?.["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| skills: { | |
| list: (input?: SkillsListInput, requestOptions?: RequestOptions) => | |
| request<SkillsListOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/skill`, | |
| query: { location: input?.["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| events: { | |
| subscribe: (requestOptions?: RequestOptions): AsyncIterable<EventsSubscribeOutput> => | |
| sse<EventsSubscribeOutput>( | |
| { method: "GET", path: `/api/event`, successStatus: 200, declaredStatuses: [401, 400], empty: false }, | |
| requestOptions, | |
| ), | |
| }, | |
| ptys: { | |
| list: (input?: PtysListInput, requestOptions?: RequestOptions) => | |
| request<PtysListOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/pty`, | |
| query: { location: input?.["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| create: (input?: PtysCreateInput, requestOptions?: RequestOptions) => | |
| request<PtysCreateOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/pty`, | |
| query: { location: input?.["location"] }, | |
| body: { | |
| command: input?.["command"], | |
| args: input?.["args"], | |
| cwd: input?.["cwd"], | |
| title: input?.["title"], | |
| env: input?.["env"], | |
| }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| get: (input: PtysGetInput, requestOptions?: RequestOptions) => | |
| request<PtysGetOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/pty/${encodeURIComponent(input.ptyID)}`, | |
| query: { location: input["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [404, 401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| update: (input: PtysUpdateInput, requestOptions?: RequestOptions) => | |
| request<PtysUpdateOutput>( | |
| { | |
| method: "PUT", | |
| path: `/api/pty/${encodeURIComponent(input.ptyID)}`, | |
| query: { location: input["location"] }, | |
| body: { title: input["title"], size: input["size"] }, | |
| successStatus: 200, | |
| declaredStatuses: [404, 401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| remove: (input: PtysRemoveInput, requestOptions?: RequestOptions) => | |
| request<PtysRemoveOutput>( | |
| { | |
| method: "DELETE", | |
| path: `/api/pty/${encodeURIComponent(input.ptyID)}`, | |
| query: { location: input["location"] }, | |
| successStatus: 204, | |
| declaredStatuses: [404, 401, 400], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| questions: { | |
| listRequests: (input?: QuestionsListRequestsInput, requestOptions?: RequestOptions) => | |
| request<QuestionsListRequestsOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/question/request`, | |
| query: { location: input?.["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| list: (input: QuestionsListInput, requestOptions?: RequestOptions) => | |
| request<{ readonly data: QuestionsListOutput }>( | |
| { | |
| method: "GET", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/question`, | |
| successStatus: 200, | |
| declaredStatuses: [404, 400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ).then((value) => value.data), | |
| reply: (input: QuestionsReplyInput, requestOptions?: RequestOptions) => | |
| request<QuestionsReplyOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/question/${encodeURIComponent(input.requestID)}/reply`, | |
| body: { answers: input["answers"] }, | |
| successStatus: 204, | |
| declaredStatuses: [404, 400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| reject: (input: QuestionsRejectInput, requestOptions?: RequestOptions) => | |
| request<QuestionsRejectOutput>( | |
| { | |
| method: "POST", | |
| path: `/api/session/${encodeURIComponent(input.sessionID)}/question/${encodeURIComponent(input.requestID)}/reject`, | |
| successStatus: 204, | |
| declaredStatuses: [404, 400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| references: { | |
| list: (input?: ReferencesListInput, requestOptions?: RequestOptions) => | |
| request<ReferencesListOutput>( | |
| { | |
| method: "GET", | |
| path: `/api/reference`, | |
| query: { location: input?.["location"] }, | |
| successStatus: 200, | |
| declaredStatuses: [401, 400], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| projectCopies: { | |
| create: (input: ProjectCopiesCreateInput, requestOptions?: RequestOptions) => | |
| request<ProjectCopiesCreateOutput>( | |
| { | |
| method: "POST", | |
| path: `/experimental/project/${encodeURIComponent(input.projectID)}/copy`, | |
| query: { location: input["location"] }, | |
| body: { strategy: input["strategy"], directory: input["directory"], name: input["name"] }, | |
| successStatus: 200, | |
| declaredStatuses: [400, 401], | |
| empty: false, | |
| }, | |
| requestOptions, | |
| ), | |
| remove: (input: ProjectCopiesRemoveInput, requestOptions?: RequestOptions) => | |
| request<ProjectCopiesRemoveOutput>( | |
| { | |
| method: "DELETE", | |
| path: `/experimental/project/${encodeURIComponent(input.projectID)}/copy`, | |
| query: { location: input["location"] }, | |
| body: { directory: input["directory"], force: input["force"] }, | |
| successStatus: 204, | |
| declaredStatuses: [400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| refresh: (input: ProjectCopiesRefreshInput, requestOptions?: RequestOptions) => | |
| request<ProjectCopiesRefreshOutput>( | |
| { | |
| method: "POST", | |
| path: `/experimental/project/${encodeURIComponent(input.projectID)}/copy/refresh`, | |
| query: { location: input["location"] }, | |
| successStatus: 204, | |
| declaredStatuses: [400, 401], | |
| empty: true, | |
| }, | |
| requestOptions, | |
| ), | |
| }, | |
| } | |
| } | |
| function appendQuery(params: URLSearchParams, key: string, value: unknown): void { | |
| if (value === undefined || value === null) return | |
| if (Array.isArray(value)) { | |
| for (const item of value) appendQuery(params, key, item) | |
| return | |
| } | |
| if (typeof value === "object") { | |
| for (const [child, item] of Object.entries(value)) appendQuery(params, `${key}[${child}]`, item) | |
| return | |
| } | |
| params.append(key, String(value)) | |
| } | |
| async function json(response: Response): Promise<unknown> { | |
| if (!isContentType(response, "application/json") && !response.headers.get("content-type")?.includes("+json")) { | |
| try { | |
| await response.body?.cancel() | |
| } catch {} | |
| throw new ClientError("UnsupportedContentType") | |
| } | |
| let text: string | |
| try { | |
| text = await response.text() | |
| } catch (cause) { | |
| throw new ClientError("Transport", { cause }) | |
| } | |
| if (text === "") throw new ClientError("MalformedResponse") | |
| try { | |
| return JSON.parse(text) | |
| } catch (cause) { | |
| throw new ClientError("MalformedResponse", { cause }) | |
| } | |
| } | |
| function isContentType(response: Response, expected: string) { | |
| return response.headers.get("content-type")?.split(";", 1)[0]?.trim().toLowerCase() === expected | |
| } | |