@opencode-ai/sdk 1.3.2 → 1.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.js CHANGED
@@ -2,6 +2,31 @@ export * from "./gen/types.gen.js";
2
2
  import { createClient } from "./gen/client/client.gen.js";
3
3
  import { OpencodeClient } from "./gen/sdk.gen.js";
4
4
  export { OpencodeClient };
5
+ function pick(value, fallback) {
6
+ if (!value)
7
+ return;
8
+ if (!fallback)
9
+ return value;
10
+ if (value === fallback)
11
+ return fallback;
12
+ if (value === encodeURIComponent(fallback))
13
+ return fallback;
14
+ return value;
15
+ }
16
+ function rewrite(request, directory) {
17
+ if (request.method !== "GET" && request.method !== "HEAD")
18
+ return request;
19
+ const value = pick(request.headers.get("x-opencode-directory"), directory);
20
+ if (!value)
21
+ return request;
22
+ const url = new URL(request.url);
23
+ if (!url.searchParams.has("directory")) {
24
+ url.searchParams.set("directory", value);
25
+ }
26
+ const next = new Request(url, request);
27
+ next.headers.delete("x-opencode-directory");
28
+ return next;
29
+ }
5
30
  export function createOpencodeClient(config) {
6
31
  if (!config?.fetch) {
7
32
  const customFetch = (req) => {
@@ -21,5 +46,6 @@ export function createOpencodeClient(config) {
21
46
  };
22
47
  }
23
48
  const client = createClient(config);
49
+ client.interceptors.request.use((request) => rewrite(request, config?.directory));
24
50
  return new OpencodeClient({ client });
25
51
  }
package/dist/v2/client.js CHANGED
@@ -2,6 +2,41 @@ export * from "./gen/types.gen.js";
2
2
  import { createClient } from "./gen/client/client.gen.js";
3
3
  import { OpencodeClient } from "./gen/sdk.gen.js";
4
4
  export { OpencodeClient };
5
+ function pick(value, fallback, encode) {
6
+ if (!value)
7
+ return;
8
+ if (!fallback)
9
+ return value;
10
+ if (value === fallback)
11
+ return fallback;
12
+ if (encode && value === encode(fallback))
13
+ return fallback;
14
+ return value;
15
+ }
16
+ function rewrite(request, values) {
17
+ if (request.method !== "GET" && request.method !== "HEAD")
18
+ return request;
19
+ const url = new URL(request.url);
20
+ let changed = false;
21
+ for (const [name, key] of [
22
+ ["x-opencode-directory", "directory"],
23
+ ["x-opencode-workspace", "workspace"],
24
+ ]) {
25
+ const value = pick(request.headers.get(name), key === "directory" ? values.directory : values.workspace, key === "directory" ? encodeURIComponent : undefined);
26
+ if (!value)
27
+ continue;
28
+ if (!url.searchParams.has(key)) {
29
+ url.searchParams.set(key, value);
30
+ }
31
+ changed = true;
32
+ }
33
+ if (!changed)
34
+ return request;
35
+ const next = new Request(url, request);
36
+ next.headers.delete("x-opencode-directory");
37
+ next.headers.delete("x-opencode-workspace");
38
+ return next;
39
+ }
5
40
  export function createOpencodeClient(config) {
6
41
  if (!config?.fetch) {
7
42
  const customFetch = (req) => {
@@ -15,11 +50,9 @@ export function createOpencodeClient(config) {
15
50
  };
16
51
  }
17
52
  if (config?.directory) {
18
- const isNonASCII = /[^\x00-\x7F]/.test(config.directory);
19
- const encodedDirectory = isNonASCII ? encodeURIComponent(config.directory) : config.directory;
20
53
  config.headers = {
21
54
  ...config.headers,
22
- "x-opencode-directory": encodedDirectory,
55
+ "x-opencode-directory": encodeURIComponent(config.directory),
23
56
  };
24
57
  }
25
58
  if (config?.experimental_workspaceID) {
@@ -29,5 +62,9 @@ export function createOpencodeClient(config) {
29
62
  };
30
63
  }
31
64
  const client = createClient(config);
65
+ client.interceptors.request.use((request) => rewrite(request, {
66
+ directory: config?.directory,
67
+ workspace: config?.experimental_workspaceID,
68
+ }));
32
69
  return new OpencodeClient({ client });
33
70
  }
@@ -1,5 +1,5 @@
1
1
  import { type Client, type Options as Options2, type TDataShape } from "./client/index.js";
2
- import type { AgentPartInput, AppAgentsResponses, AppLogErrors, AppLogResponses, AppSkillsResponses, Auth as Auth3, AuthRemoveErrors, AuthRemoveResponses, AuthSetErrors, AuthSetResponses, CommandListResponses, Config as Config3, ConfigGetResponses, ConfigProvidersResponses, ConfigUpdateErrors, ConfigUpdateResponses, EventSubscribeResponses, EventTuiCommandExecute, EventTuiPromptAppend, EventTuiSessionSelect, EventTuiToastShow, ExperimentalResourceListResponses, ExperimentalSessionListResponses, ExperimentalWorkspaceCreateErrors, ExperimentalWorkspaceCreateResponses, ExperimentalWorkspaceListResponses, ExperimentalWorkspaceRemoveErrors, ExperimentalWorkspaceRemoveResponses, FileListResponses, FilePartInput, FilePartSource, FileReadResponses, FileStatusResponses, FindFilesResponses, FindSymbolsResponses, FindTextResponses, FormatterStatusResponses, GlobalConfigGetResponses, GlobalConfigUpdateErrors, GlobalConfigUpdateResponses, GlobalDisposeResponses, GlobalEventResponses, GlobalHealthResponses, GlobalUpgradeErrors, GlobalUpgradeResponses, InstanceDisposeResponses, LspStatusResponses, McpAddErrors, McpAddResponses, McpAuthAuthenticateErrors, McpAuthAuthenticateResponses, McpAuthCallbackErrors, McpAuthCallbackResponses, McpAuthRemoveErrors, McpAuthRemoveResponses, McpAuthStartErrors, McpAuthStartResponses, McpConnectResponses, McpDisconnectResponses, McpLocalConfig, McpRemoteConfig, McpStatusResponses, OutputFormat, Part as Part2, PartDeleteErrors, PartDeleteResponses, PartUpdateErrors, PartUpdateResponses, PathGetResponses, PermissionListResponses, PermissionReplyErrors, PermissionReplyResponses, PermissionRespondErrors, PermissionRespondResponses, PermissionRuleset, ProjectCurrentResponses, ProjectInitGitResponses, ProjectListResponses, ProjectUpdateErrors, ProjectUpdateResponses, ProviderAuthResponses, ProviderListResponses, ProviderOauthAuthorizeErrors, ProviderOauthAuthorizeResponses, ProviderOauthCallbackErrors, ProviderOauthCallbackResponses, PtyConnectErrors, PtyConnectResponses, PtyCreateErrors, PtyCreateResponses, PtyGetErrors, PtyGetResponses, PtyListResponses, PtyRemoveErrors, PtyRemoveResponses, PtyUpdateErrors, PtyUpdateResponses, QuestionAnswer, QuestionListResponses, QuestionRejectErrors, QuestionRejectResponses, QuestionReplyErrors, QuestionReplyResponses, SessionAbortErrors, SessionAbortResponses, SessionChildrenErrors, SessionChildrenResponses, SessionCommandErrors, SessionCommandResponses, SessionCreateErrors, SessionCreateResponses, SessionDeleteErrors, SessionDeleteMessageErrors, SessionDeleteMessageResponses, SessionDeleteResponses, SessionDiffResponses, SessionForkResponses, SessionGetErrors, SessionGetResponses, SessionInitErrors, SessionInitResponses, SessionListResponses, SessionMessageErrors, SessionMessageResponses, SessionMessagesErrors, SessionMessagesResponses, SessionPromptAsyncErrors, SessionPromptAsyncResponses, SessionPromptErrors, SessionPromptResponses, SessionRevertErrors, SessionRevertResponses, SessionShareErrors, SessionShareResponses, SessionShellErrors, SessionShellResponses, SessionStatusErrors, SessionStatusResponses, SessionSummarizeErrors, SessionSummarizeResponses, SessionTodoErrors, SessionTodoResponses, SessionUnrevertErrors, SessionUnrevertResponses, SessionUnshareErrors, SessionUnshareResponses, SessionUpdateErrors, SessionUpdateResponses, SubtaskPartInput, TextPartInput, ToolIdsErrors, ToolIdsResponses, ToolListErrors, ToolListResponses, TuiAppendPromptErrors, TuiAppendPromptResponses, TuiClearPromptResponses, TuiControlNextResponses, TuiControlResponseResponses, TuiExecuteCommandErrors, TuiExecuteCommandResponses, TuiOpenHelpResponses, TuiOpenModelsResponses, TuiOpenSessionsResponses, TuiOpenThemesResponses, TuiPublishErrors, TuiPublishResponses, TuiSelectSessionErrors, TuiSelectSessionResponses, TuiShowToastResponses, TuiSubmitPromptResponses, VcsGetResponses, WorktreeCreateErrors, WorktreeCreateInput, WorktreeCreateResponses, WorktreeListResponses, WorktreeRemoveErrors, WorktreeRemoveInput, WorktreeRemoveResponses, WorktreeResetErrors, WorktreeResetInput, WorktreeResetResponses } from "./types.gen.js";
2
+ import type { AgentPartInput, AppAgentsResponses, AppLogErrors, AppLogResponses, AppSkillsResponses, Auth as Auth3, AuthRemoveErrors, AuthRemoveResponses, AuthSetErrors, AuthSetResponses, CommandListResponses, Config as Config3, ConfigGetResponses, ConfigProvidersResponses, ConfigUpdateErrors, ConfigUpdateResponses, EventSubscribeResponses, EventTuiCommandExecute, EventTuiPromptAppend, EventTuiSessionSelect, EventTuiToastShow, ExperimentalResourceListResponses, ExperimentalSessionListResponses, ExperimentalWorkspaceCreateErrors, ExperimentalWorkspaceCreateResponses, ExperimentalWorkspaceListResponses, ExperimentalWorkspaceRemoveErrors, ExperimentalWorkspaceRemoveResponses, FileListResponses, FilePartInput, FilePartSource, FileReadResponses, FileStatusResponses, FindFilesResponses, FindSymbolsResponses, FindTextResponses, FormatterStatusResponses, GlobalConfigGetResponses, GlobalConfigUpdateErrors, GlobalConfigUpdateResponses, GlobalDisposeResponses, GlobalEventResponses, GlobalHealthResponses, GlobalSyncEventSubscribeResponses, GlobalUpgradeErrors, GlobalUpgradeResponses, InstanceDisposeResponses, LspStatusResponses, McpAddErrors, McpAddResponses, McpAuthAuthenticateErrors, McpAuthAuthenticateResponses, McpAuthCallbackErrors, McpAuthCallbackResponses, McpAuthRemoveErrors, McpAuthRemoveResponses, McpAuthStartErrors, McpAuthStartResponses, McpConnectResponses, McpDisconnectResponses, McpLocalConfig, McpRemoteConfig, McpStatusResponses, OutputFormat, Part as Part2, PartDeleteErrors, PartDeleteResponses, PartUpdateErrors, PartUpdateResponses, PathGetResponses, PermissionListResponses, PermissionReplyErrors, PermissionReplyResponses, PermissionRespondErrors, PermissionRespondResponses, PermissionRuleset, ProjectCurrentResponses, ProjectInitGitResponses, ProjectListResponses, ProjectUpdateErrors, ProjectUpdateResponses, ProviderAuthResponses, ProviderListResponses, ProviderOauthAuthorizeErrors, ProviderOauthAuthorizeResponses, ProviderOauthCallbackErrors, ProviderOauthCallbackResponses, PtyConnectErrors, PtyConnectResponses, PtyCreateErrors, PtyCreateResponses, PtyGetErrors, PtyGetResponses, PtyListResponses, PtyRemoveErrors, PtyRemoveResponses, PtyUpdateErrors, PtyUpdateResponses, QuestionAnswer, QuestionListResponses, QuestionRejectErrors, QuestionRejectResponses, QuestionReplyErrors, QuestionReplyResponses, SessionAbortErrors, SessionAbortResponses, SessionChildrenErrors, SessionChildrenResponses, SessionCommandErrors, SessionCommandResponses, SessionCreateErrors, SessionCreateResponses, SessionDeleteErrors, SessionDeleteMessageErrors, SessionDeleteMessageResponses, SessionDeleteResponses, SessionDiffResponses, SessionForkResponses, SessionGetErrors, SessionGetResponses, SessionInitErrors, SessionInitResponses, SessionListResponses, SessionMessageErrors, SessionMessageResponses, SessionMessagesErrors, SessionMessagesResponses, SessionPromptAsyncErrors, SessionPromptAsyncResponses, SessionPromptErrors, SessionPromptResponses, SessionRevertErrors, SessionRevertResponses, SessionShareErrors, SessionShareResponses, SessionShellErrors, SessionShellResponses, SessionStatusErrors, SessionStatusResponses, SessionSummarizeErrors, SessionSummarizeResponses, SessionTodoErrors, SessionTodoResponses, SessionUnrevertErrors, SessionUnrevertResponses, SessionUnshareErrors, SessionUnshareResponses, SessionUpdateErrors, SessionUpdateResponses, SubtaskPartInput, TextPartInput, ToolIdsErrors, ToolIdsResponses, ToolListErrors, ToolListResponses, TuiAppendPromptErrors, TuiAppendPromptResponses, TuiClearPromptResponses, TuiControlNextResponses, TuiControlResponseResponses, TuiExecuteCommandErrors, TuiExecuteCommandResponses, TuiOpenHelpResponses, TuiOpenModelsResponses, TuiOpenSessionsResponses, TuiOpenThemesResponses, TuiPublishErrors, TuiPublishResponses, TuiSelectSessionErrors, TuiSelectSessionResponses, TuiShowToastResponses, TuiSubmitPromptResponses, VcsGetResponses, WorktreeCreateErrors, WorktreeCreateInput, WorktreeCreateResponses, WorktreeListResponses, WorktreeRemoveErrors, WorktreeRemoveInput, WorktreeRemoveResponses, WorktreeResetErrors, WorktreeResetInput, WorktreeResetResponses } from "./types.gen.js";
3
3
  export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -25,6 +25,14 @@ declare class HeyApiRegistry<T> {
25
25
  get(key?: string): T;
26
26
  set(value: T, key?: string): void;
27
27
  }
28
+ export declare class SyncEvent extends HeyApiClient {
29
+ /**
30
+ * Subscribe to global sync events
31
+ *
32
+ * Get global sync events
33
+ */
34
+ subscribe<ThrowOnError extends boolean = false>(options?: Options<never, ThrowOnError>): Promise<import("./core/serverSentEvents.gen.js").ServerSentEventsResult<GlobalSyncEventSubscribeResponses, unknown>>;
35
+ }
28
36
  export declare class Config extends HeyApiClient {
29
37
  /**
30
38
  * Get global configuration
@@ -68,6 +76,8 @@ export declare class Global extends HeyApiClient {
68
76
  upgrade<ThrowOnError extends boolean = false>(parameters?: {
69
77
  target?: string;
70
78
  }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<GlobalUpgradeResponses, GlobalUpgradeErrors, ThrowOnError, "fields">;
79
+ private _syncEvent?;
80
+ get syncEvent(): SyncEvent;
71
81
  private _config?;
72
82
  get config(): Config;
73
83
  }
@@ -90,6 +100,41 @@ export declare class Auth extends HeyApiClient {
90
100
  auth?: Auth3;
91
101
  }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<AuthSetResponses, AuthSetErrors, ThrowOnError, "fields">;
92
102
  }
103
+ export declare class App extends HeyApiClient {
104
+ /**
105
+ * Write log
106
+ *
107
+ * Write a log entry to the server logs with specified level and metadata.
108
+ */
109
+ log<ThrowOnError extends boolean = false>(parameters?: {
110
+ directory?: string;
111
+ workspace?: string;
112
+ service?: string;
113
+ level?: "debug" | "info" | "error" | "warn";
114
+ message?: string;
115
+ extra?: {
116
+ [key: string]: unknown;
117
+ };
118
+ }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<AppLogResponses, AppLogErrors, ThrowOnError, "fields">;
119
+ /**
120
+ * List agents
121
+ *
122
+ * Get a list of all available AI agents in the OpenCode system.
123
+ */
124
+ agents<ThrowOnError extends boolean = false>(parameters?: {
125
+ directory?: string;
126
+ workspace?: string;
127
+ }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<AppAgentsResponses, unknown, ThrowOnError, "fields">;
128
+ /**
129
+ * List skills
130
+ *
131
+ * Get a list of all available skills in the OpenCode system.
132
+ */
133
+ skills<ThrowOnError extends boolean = false>(parameters?: {
134
+ directory?: string;
135
+ workspace?: string;
136
+ }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<AppSkillsResponses, unknown, ThrowOnError, "fields">;
137
+ }
93
138
  export declare class Project extends HeyApiClient {
94
139
  /**
95
140
  * List all projects
@@ -1167,41 +1212,6 @@ export declare class Command extends HeyApiClient {
1167
1212
  workspace?: string;
1168
1213
  }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<CommandListResponses, unknown, ThrowOnError, "fields">;
1169
1214
  }
1170
- export declare class App extends HeyApiClient {
1171
- /**
1172
- * Write log
1173
- *
1174
- * Write a log entry to the server logs with specified level and metadata.
1175
- */
1176
- log<ThrowOnError extends boolean = false>(parameters?: {
1177
- directory?: string;
1178
- workspace?: string;
1179
- service?: string;
1180
- level?: "debug" | "info" | "error" | "warn";
1181
- message?: string;
1182
- extra?: {
1183
- [key: string]: unknown;
1184
- };
1185
- }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<AppLogResponses, AppLogErrors, ThrowOnError, "fields">;
1186
- /**
1187
- * List agents
1188
- *
1189
- * Get a list of all available AI agents in the OpenCode system.
1190
- */
1191
- agents<ThrowOnError extends boolean = false>(parameters?: {
1192
- directory?: string;
1193
- workspace?: string;
1194
- }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<AppAgentsResponses, unknown, ThrowOnError, "fields">;
1195
- /**
1196
- * List skills
1197
- *
1198
- * Get a list of all available skills in the OpenCode system.
1199
- */
1200
- skills<ThrowOnError extends boolean = false>(parameters?: {
1201
- directory?: string;
1202
- workspace?: string;
1203
- }, options?: Options<never, ThrowOnError>): import("./client/types.gen.js").RequestResult<AppSkillsResponses, unknown, ThrowOnError, "fields">;
1204
- }
1205
1215
  export declare class Lsp extends HeyApiClient {
1206
1216
  /**
1207
1217
  * Get LSP status
@@ -1234,6 +1244,8 @@ export declare class OpencodeClient extends HeyApiClient {
1234
1244
  get global(): Global;
1235
1245
  private _auth?;
1236
1246
  get auth(): Auth;
1247
+ private _app?;
1248
+ get app(): App;
1237
1249
  private _project?;
1238
1250
  get project(): Project;
1239
1251
  private _pty?;
@@ -1274,8 +1286,6 @@ export declare class OpencodeClient extends HeyApiClient {
1274
1286
  get vcs(): Vcs;
1275
1287
  private _command?;
1276
1288
  get command(): Command;
1277
- private _app?;
1278
- get app(): App;
1279
1289
  private _lsp?;
1280
1290
  get lsp(): Lsp;
1281
1291
  private _formatter?;
@@ -21,6 +21,19 @@ class HeyApiRegistry {
21
21
  this.instances.set(key ?? this.defaultKey, value);
22
22
  }
23
23
  }
24
+ export class SyncEvent extends HeyApiClient {
25
+ /**
26
+ * Subscribe to global sync events
27
+ *
28
+ * Get global sync events
29
+ */
30
+ subscribe(options) {
31
+ return (options?.client ?? this.client).sse.get({
32
+ url: "/global/sync-event",
33
+ ...options,
34
+ });
35
+ }
36
+ }
24
37
  export class Config extends HeyApiClient {
25
38
  /**
26
39
  * Get global configuration
@@ -104,6 +117,10 @@ export class Global extends HeyApiClient {
104
117
  },
105
118
  });
106
119
  }
120
+ _syncEvent;
121
+ get syncEvent() {
122
+ return (this._syncEvent ??= new SyncEvent({ client: this.client }));
123
+ }
107
124
  _config;
108
125
  get config() {
109
126
  return (this._config ??= new Config({ client: this.client }));
@@ -149,6 +166,77 @@ export class Auth extends HeyApiClient {
149
166
  });
150
167
  }
151
168
  }
169
+ export class App extends HeyApiClient {
170
+ /**
171
+ * Write log
172
+ *
173
+ * Write a log entry to the server logs with specified level and metadata.
174
+ */
175
+ log(parameters, options) {
176
+ const params = buildClientParams([parameters], [
177
+ {
178
+ args: [
179
+ { in: "query", key: "directory" },
180
+ { in: "query", key: "workspace" },
181
+ { in: "body", key: "service" },
182
+ { in: "body", key: "level" },
183
+ { in: "body", key: "message" },
184
+ { in: "body", key: "extra" },
185
+ ],
186
+ },
187
+ ]);
188
+ return (options?.client ?? this.client).post({
189
+ url: "/log",
190
+ ...options,
191
+ ...params,
192
+ headers: {
193
+ "Content-Type": "application/json",
194
+ ...options?.headers,
195
+ ...params.headers,
196
+ },
197
+ });
198
+ }
199
+ /**
200
+ * List agents
201
+ *
202
+ * Get a list of all available AI agents in the OpenCode system.
203
+ */
204
+ agents(parameters, options) {
205
+ const params = buildClientParams([parameters], [
206
+ {
207
+ args: [
208
+ { in: "query", key: "directory" },
209
+ { in: "query", key: "workspace" },
210
+ ],
211
+ },
212
+ ]);
213
+ return (options?.client ?? this.client).get({
214
+ url: "/agent",
215
+ ...options,
216
+ ...params,
217
+ });
218
+ }
219
+ /**
220
+ * List skills
221
+ *
222
+ * Get a list of all available skills in the OpenCode system.
223
+ */
224
+ skills(parameters, options) {
225
+ const params = buildClientParams([parameters], [
226
+ {
227
+ args: [
228
+ { in: "query", key: "directory" },
229
+ { in: "query", key: "workspace" },
230
+ ],
231
+ },
232
+ ]);
233
+ return (options?.client ?? this.client).get({
234
+ url: "/skill",
235
+ ...options,
236
+ ...params,
237
+ });
238
+ }
239
+ }
152
240
  export class Project extends HeyApiClient {
153
241
  /**
154
242
  * List all projects
@@ -2372,77 +2460,6 @@ export class Command extends HeyApiClient {
2372
2460
  });
2373
2461
  }
2374
2462
  }
2375
- export class App extends HeyApiClient {
2376
- /**
2377
- * Write log
2378
- *
2379
- * Write a log entry to the server logs with specified level and metadata.
2380
- */
2381
- log(parameters, options) {
2382
- const params = buildClientParams([parameters], [
2383
- {
2384
- args: [
2385
- { in: "query", key: "directory" },
2386
- { in: "query", key: "workspace" },
2387
- { in: "body", key: "service" },
2388
- { in: "body", key: "level" },
2389
- { in: "body", key: "message" },
2390
- { in: "body", key: "extra" },
2391
- ],
2392
- },
2393
- ]);
2394
- return (options?.client ?? this.client).post({
2395
- url: "/log",
2396
- ...options,
2397
- ...params,
2398
- headers: {
2399
- "Content-Type": "application/json",
2400
- ...options?.headers,
2401
- ...params.headers,
2402
- },
2403
- });
2404
- }
2405
- /**
2406
- * List agents
2407
- *
2408
- * Get a list of all available AI agents in the OpenCode system.
2409
- */
2410
- agents(parameters, options) {
2411
- const params = buildClientParams([parameters], [
2412
- {
2413
- args: [
2414
- { in: "query", key: "directory" },
2415
- { in: "query", key: "workspace" },
2416
- ],
2417
- },
2418
- ]);
2419
- return (options?.client ?? this.client).get({
2420
- url: "/agent",
2421
- ...options,
2422
- ...params,
2423
- });
2424
- }
2425
- /**
2426
- * List skills
2427
- *
2428
- * Get a list of all available skills in the OpenCode system.
2429
- */
2430
- skills(parameters, options) {
2431
- const params = buildClientParams([parameters], [
2432
- {
2433
- args: [
2434
- { in: "query", key: "directory" },
2435
- { in: "query", key: "workspace" },
2436
- ],
2437
- },
2438
- ]);
2439
- return (options?.client ?? this.client).get({
2440
- url: "/skill",
2441
- ...options,
2442
- ...params,
2443
- });
2444
- }
2445
- }
2446
2463
  export class Lsp extends HeyApiClient {
2447
2464
  /**
2448
2465
  * Get LSP status
@@ -2501,6 +2518,10 @@ export class OpencodeClient extends HeyApiClient {
2501
2518
  get auth() {
2502
2519
  return (this._auth ??= new Auth({ client: this.client }));
2503
2520
  }
2521
+ _app;
2522
+ get app() {
2523
+ return (this._app ??= new App({ client: this.client }));
2524
+ }
2504
2525
  _project;
2505
2526
  get project() {
2506
2527
  return (this._project ??= new Project({ client: this.client }));
@@ -2581,10 +2602,6 @@ export class OpencodeClient extends HeyApiClient {
2581
2602
  get command() {
2582
2603
  return (this._command ??= new Command({ client: this.client }));
2583
2604
  }
2584
- _app;
2585
- get app() {
2586
- return (this._app ??= new App({ client: this.client }));
2587
- }
2588
2605
  _lsp;
2589
2606
  get lsp() {
2590
2607
  return (this._lsp ??= new Lsp({ client: this.client }));