summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-07-31 16:38:31 -0400
committerDax Raad <[email protected]>2025-07-31 16:38:37 -0400
commita2191ce6fb594526f66a551ee1654c0d871a34ca (patch)
tree1195d012b0bb580726dcdd7d477c1ea79d29ef09 /packages/sdk
parent168350c981279b2127b952dcefcb2e63191900ad (diff)
downloadopencode-a2191ce6fb594526f66a551ee1654c0d871a34ca.tar.gz
opencode-a2191ce6fb594526f66a551ee1654c0d871a34ca.zip
wip: permissions
Diffstat (limited to 'packages/sdk')
-rw-r--r--packages/sdk/js/package.json2
-rw-r--r--packages/sdk/js/src/gen/sdk.gen.ts89
-rw-r--r--packages/sdk/js/src/gen/types.gen.ts155
3 files changed, 242 insertions, 4 deletions
diff --git a/packages/sdk/js/package.json b/packages/sdk/js/package.json
index 502f2b7bb..968451785 100644
--- a/packages/sdk/js/package.json
+++ b/packages/sdk/js/package.json
@@ -1,7 +1,7 @@
{
"$schema": "https://json.schemastore.org/package.json",
"name": "@opencode-ai/sdk",
- "version": "0.0.0",
+ "version": "0.0.0-202507312003",
"type": "module",
"exports": {
".": "./dist/index.js"
diff --git a/packages/sdk/js/src/gen/sdk.gen.ts b/packages/sdk/js/src/gen/sdk.gen.ts
index 312084856..23bc1f916 100644
--- a/packages/sdk/js/src/gen/sdk.gen.ts
+++ b/packages/sdk/js/src/gen/sdk.gen.ts
@@ -1,7 +1,7 @@
// This file is auto-generated by @hey-api/openapi-ts
import type { Options as ClientOptions, TDataShape, Client } from './client';
-import type { EventSubscribeData, EventSubscribeResponses, AppGetData, AppGetResponses, AppInitData, AppInitResponses, ConfigGetData, ConfigGetResponses, SessionListData, SessionListResponses, SessionCreateData, SessionCreateResponses, SessionCreateErrors, SessionDeleteData, SessionDeleteResponses, SessionInitData, SessionInitResponses, SessionAbortData, SessionAbortResponses, SessionUnshareData, SessionUnshareResponses, SessionShareData, SessionShareResponses, SessionSummarizeData, SessionSummarizeResponses, SessionMessagesData, SessionMessagesResponses, SessionChatData, SessionChatResponses, SessionRevertData, SessionRevertResponses, SessionUnrevertData, SessionUnrevertResponses, ConfigProvidersData, ConfigProvidersResponses, FindTextData, FindTextResponses, FindFilesData, FindFilesResponses, FindSymbolsData, FindSymbolsResponses, FileReadData, FileReadResponses, FileStatusData, FileStatusResponses, AppLogData, AppLogResponses, AppModesData, AppModesResponses, TuiAppendPromptData, TuiAppendPromptResponses, TuiOpenHelpData, TuiOpenHelpResponses } from './types.gen';
+import type { EventSubscribeData, EventSubscribeResponses, AppGetData, AppGetResponses, AppInitData, AppInitResponses, ConfigGetData, ConfigGetResponses, SessionListData, SessionListResponses, SessionCreateData, SessionCreateResponses, SessionCreateErrors, SessionDeleteData, SessionDeleteResponses, SessionInitData, SessionInitResponses, SessionAbortData, SessionAbortResponses, SessionUnshareData, SessionUnshareResponses, SessionShareData, SessionShareResponses, SessionSummarizeData, SessionSummarizeResponses, SessionMessagesData, SessionMessagesResponses, SessionChatData, SessionChatResponses, SessionMessageData, SessionMessageResponses, SessionRevertData, SessionRevertResponses, SessionUnrevertData, SessionUnrevertResponses, PostSessionByIdPermissionsByPermissionIdData, PostSessionByIdPermissionsByPermissionIdResponses, ConfigProvidersData, ConfigProvidersResponses, FindTextData, FindTextResponses, FindFilesData, FindFilesResponses, FindSymbolsData, FindSymbolsResponses, FileReadData, FileReadResponses, FileStatusData, FileStatusResponses, AppLogData, AppLogResponses, AppModesData, AppModesResponses, TuiAppendPromptData, TuiAppendPromptResponses, TuiOpenHelpData, TuiOpenHelpResponses, TuiOpenSessionsData, TuiOpenSessionsResponses, TuiOpenThemesData, TuiOpenThemesResponses, TuiOpenModelsData, TuiOpenModelsResponses, TuiSubmitPromptData, TuiSubmitPromptResponses, TuiClearPromptData, TuiClearPromptResponses, TuiExecuteCommandData, TuiExecuteCommandResponses } from './types.gen';
import { client as _heyApiClient } from './client.gen';
export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & {
@@ -224,6 +224,16 @@ 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>({
+ url: '/session/{id}/message/{messageID}',
+ ...options
+ });
+ }
+
+ /**
* Revert a message
*/
public revert<ThrowOnError extends boolean = false>(options: Options<SessionRevertData, ThrowOnError>) {
@@ -326,9 +336,86 @@ class Tui extends _HeyApiClient {
...options
});
}
+
+ /**
+ * Open the session dialog
+ */
+ public openSessions<ThrowOnError extends boolean = false>(options?: Options<TuiOpenSessionsData, ThrowOnError>) {
+ return (options?.client ?? this._client).post<TuiOpenSessionsResponses, unknown, ThrowOnError>({
+ url: '/tui/open-sessions',
+ ...options
+ });
+ }
+
+ /**
+ * Open the theme dialog
+ */
+ public openThemes<ThrowOnError extends boolean = false>(options?: Options<TuiOpenThemesData, ThrowOnError>) {
+ return (options?.client ?? this._client).post<TuiOpenThemesResponses, unknown, ThrowOnError>({
+ url: '/tui/open-themes',
+ ...options
+ });
+ }
+
+ /**
+ * Open the model dialog
+ */
+ public openModels<ThrowOnError extends boolean = false>(options?: Options<TuiOpenModelsData, ThrowOnError>) {
+ return (options?.client ?? this._client).post<TuiOpenModelsResponses, unknown, ThrowOnError>({
+ url: '/tui/open-models',
+ ...options
+ });
+ }
+
+ /**
+ * Submit the prompt
+ */
+ public submitPrompt<ThrowOnError extends boolean = false>(options?: Options<TuiSubmitPromptData, ThrowOnError>) {
+ return (options?.client ?? this._client).post<TuiSubmitPromptResponses, unknown, ThrowOnError>({
+ url: '/tui/submit-prompt',
+ ...options
+ });
+ }
+
+ /**
+ * Clear the prompt
+ */
+ public clearPrompt<ThrowOnError extends boolean = false>(options?: Options<TuiClearPromptData, ThrowOnError>) {
+ return (options?.client ?? this._client).post<TuiClearPromptResponses, unknown, ThrowOnError>({
+ url: '/tui/clear-prompt',
+ ...options
+ });
+ }
+
+ /**
+ * Execute a TUI command (e.g. switch_mode)
+ */
+ public executeCommand<ThrowOnError extends boolean = false>(options?: Options<TuiExecuteCommandData, ThrowOnError>) {
+ return (options?.client ?? this._client).post<TuiExecuteCommandResponses, unknown, ThrowOnError>({
+ url: '/tui/execute-command',
+ ...options,
+ headers: {
+ 'Content-Type': 'application/json',
+ ...options?.headers
+ }
+ });
+ }
}
export class OpencodeClient extends _HeyApiClient {
+ /**
+ * Respond to a permission request
+ */
+ public postSessionByIdPermissionsByPermissionId<ThrowOnError extends boolean = false>(options: Options<PostSessionByIdPermissionsByPermissionIdData, ThrowOnError>) {
+ return (options.client ?? this._client).post<PostSessionByIdPermissionsByPermissionIdResponses, unknown, ThrowOnError>({
+ url: '/session/{id}/permissions/{permissionID}',
+ ...options,
+ headers: {
+ 'Content-Type': 'application/json',
+ ...options.headers
+ }
+ });
+ }
event = new Event({ client: this._client });
app = new App({ client: this._client });
config = new Config({ client: this._client });
diff --git a/packages/sdk/js/src/gen/types.gen.ts b/packages/sdk/js/src/gen/types.gen.ts
index 6fcd1c415..9e4475ee2 100644
--- a/packages/sdk/js/src/gen/types.gen.ts
+++ b/packages/sdk/js/src/gen/types.gen.ts
@@ -355,12 +355,16 @@ export type EventStorageWrite = {
export type EventPermissionUpdated = {
type: string;
- properties: PermissionInfo;
+ properties: Permission;
};
-export type PermissionInfo = {
+export type Permission = {
id: string;
+ type: string;
+ pattern?: string;
sessionID: string;
+ messageID: string;
+ callID?: string;
title: string;
metadata: {
[key: string]: unknown;
@@ -1193,6 +1197,34 @@ export type SessionChatResponses = {
export type SessionChatResponse = SessionChatResponses[keyof SessionChatResponses];
+export type SessionMessageData = {
+ body?: never;
+ path: {
+ /**
+ * Session ID
+ */
+ id: string;
+ /**
+ * Message ID
+ */
+ messageID: string;
+ };
+ query?: never;
+ url: '/session/{id}/message/{messageID}';
+};
+
+export type SessionMessageResponses = {
+ /**
+ * Message
+ */
+ 200: {
+ info: Message;
+ parts: Array<Part>;
+ };
+};
+
+export type SessionMessageResponse = SessionMessageResponses[keyof SessionMessageResponses];
+
export type SessionRevertData = {
body?: {
messageID: string;
@@ -1232,6 +1264,27 @@ export type SessionUnrevertResponses = {
export type SessionUnrevertResponse = SessionUnrevertResponses[keyof SessionUnrevertResponses];
+export type PostSessionByIdPermissionsByPermissionIdData = {
+ body?: {
+ response: 'once' | 'always' | 'reject';
+ };
+ path: {
+ id: string;
+ permissionID: string;
+ };
+ query?: never;
+ url: '/session/{id}/permissions/{permissionID}';
+};
+
+export type PostSessionByIdPermissionsByPermissionIdResponses = {
+ /**
+ * Permission processed successfully
+ */
+ 200: boolean;
+};
+
+export type PostSessionByIdPermissionsByPermissionIdResponse = PostSessionByIdPermissionsByPermissionIdResponses[keyof PostSessionByIdPermissionsByPermissionIdResponses];
+
export type ConfigProvidersData = {
body?: never;
path?: never;
@@ -1445,6 +1498,104 @@ export type TuiOpenHelpResponses = {
export type TuiOpenHelpResponse = TuiOpenHelpResponses[keyof TuiOpenHelpResponses];
+export type TuiOpenSessionsData = {
+ body?: never;
+ path?: never;
+ query?: never;
+ url: '/tui/open-sessions';
+};
+
+export type TuiOpenSessionsResponses = {
+ /**
+ * Session dialog opened successfully
+ */
+ 200: boolean;
+};
+
+export type TuiOpenSessionsResponse = TuiOpenSessionsResponses[keyof TuiOpenSessionsResponses];
+
+export type TuiOpenThemesData = {
+ body?: never;
+ path?: never;
+ query?: never;
+ url: '/tui/open-themes';
+};
+
+export type TuiOpenThemesResponses = {
+ /**
+ * Theme dialog opened successfully
+ */
+ 200: boolean;
+};
+
+export type TuiOpenThemesResponse = TuiOpenThemesResponses[keyof TuiOpenThemesResponses];
+
+export type TuiOpenModelsData = {
+ body?: never;
+ path?: never;
+ query?: never;
+ url: '/tui/open-models';
+};
+
+export type TuiOpenModelsResponses = {
+ /**
+ * Model dialog opened successfully
+ */
+ 200: boolean;
+};
+
+export type TuiOpenModelsResponse = TuiOpenModelsResponses[keyof TuiOpenModelsResponses];
+
+export type TuiSubmitPromptData = {
+ body?: never;
+ path?: never;
+ query?: never;
+ url: '/tui/submit-prompt';
+};
+
+export type TuiSubmitPromptResponses = {
+ /**
+ * Prompt submitted successfully
+ */
+ 200: boolean;
+};
+
+export type TuiSubmitPromptResponse = TuiSubmitPromptResponses[keyof TuiSubmitPromptResponses];
+
+export type TuiClearPromptData = {
+ body?: never;
+ path?: never;
+ query?: never;
+ url: '/tui/clear-prompt';
+};
+
+export type TuiClearPromptResponses = {
+ /**
+ * Prompt cleared successfully
+ */
+ 200: boolean;
+};
+
+export type TuiClearPromptResponse = TuiClearPromptResponses[keyof TuiClearPromptResponses];
+
+export type TuiExecuteCommandData = {
+ body?: {
+ command: string;
+ };
+ path?: never;
+ query?: never;
+ url: '/tui/execute-command';
+};
+
+export type TuiExecuteCommandResponses = {
+ /**
+ * Command executed successfully
+ */
+ 200: boolean;
+};
+
+export type TuiExecuteCommandResponse = TuiExecuteCommandResponses[keyof TuiExecuteCommandResponses];
+
export type ClientOptions = {
baseUrl: `${string}://${string}` | (string & {});
}; \ No newline at end of file