@opencode-ai/sdk 0.5.28 → 0.5.29

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.
Files changed (31) hide show
  1. package/dist/client.d.ts +1 -1
  2. package/dist/client.js +1 -1
  3. package/dist/gen/client/{client.d.ts → client.gen.d.ts} +1 -1
  4. package/dist/gen/client/{client.js → client.gen.js} +36 -13
  5. package/dist/gen/client/index.d.ts +7 -7
  6. package/dist/gen/client/index.js +5 -4
  7. package/dist/gen/client/{types.d.ts → types.gen.d.ts} +19 -11
  8. package/dist/gen/client/types.gen.js +2 -0
  9. package/dist/gen/client/{utils.d.ts → utils.gen.d.ts} +2 -9
  10. package/dist/gen/client/{utils.js → utils.gen.js} +26 -83
  11. package/dist/gen/client.gen.d.ts +1 -1
  12. package/dist/gen/core/{auth.js → auth.gen.js} +1 -0
  13. package/dist/gen/core/{bodySerializer.d.ts → bodySerializer.gen.d.ts} +1 -1
  14. package/dist/gen/core/{bodySerializer.js → bodySerializer.gen.js} +4 -0
  15. package/dist/gen/core/{params.js → params.gen.js} +1 -0
  16. package/dist/gen/core/{pathSerializer.js → pathSerializer.gen.js} +1 -0
  17. package/dist/gen/core/serverSentEvents.gen.d.ts +59 -0
  18. package/dist/gen/core/serverSentEvents.gen.js +117 -0
  19. package/dist/gen/core/{types.d.ts → types.gen.d.ts} +2 -2
  20. package/dist/gen/core/types.gen.js +2 -0
  21. package/dist/gen/core/utils.gen.d.ts +14 -0
  22. package/dist/gen/core/utils.gen.js +69 -0
  23. package/dist/gen/sdk.gen.d.ts +47 -43
  24. package/dist/gen/sdk.gen.js +11 -2
  25. package/dist/gen/types.gen.d.ts +23 -1
  26. package/package.json +2 -2
  27. package/dist/gen/client/types.js +0 -1
  28. package/dist/gen/core/types.js +0 -1
  29. /package/dist/gen/core/{auth.d.ts → auth.gen.d.ts} +0 -0
  30. /package/dist/gen/core/{params.d.ts → params.gen.d.ts} +0 -0
  31. /package/dist/gen/core/{pathSerializer.d.ts → pathSerializer.gen.d.ts} +0 -0
package/dist/client.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from "./gen/types.gen.js";
2
2
  export { type Config as OpencodeClientConfig, OpencodeClient };
3
- import { type Config } from "./gen/client/types.js";
3
+ import { type Config } from "./gen/client/types.gen.js";
4
4
  import { OpencodeClient } from "./gen/sdk.gen.js";
5
5
  export declare function createOpencodeClient(config?: Config): OpencodeClient;
package/dist/client.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export * from "./gen/types.gen.js";
2
2
  export { OpencodeClient };
3
- import { createClient } from "./gen/client/client.js";
3
+ import { createClient } from "./gen/client/client.gen.js";
4
4
  import { OpencodeClient } from "./gen/sdk.gen.js";
5
5
  export function createOpencodeClient(config) {
6
6
  const client = createClient(config);
@@ -1,2 +1,2 @@
1
- import type { Client, Config } from "./types.js";
1
+ import type { Client, Config } from "./types.gen.js";
2
2
  export declare const createClient: (config?: Config) => Client;
@@ -1,4 +1,6 @@
1
- import { buildUrl, createConfig, createInterceptors, getParseAs, mergeConfigs, mergeHeaders, setAuthParams, } from "./utils.js";
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+ import { createSseClient } from "../core/serverSentEvents.gen.js";
3
+ import { buildUrl, createConfig, createInterceptors, getParseAs, mergeConfigs, mergeHeaders, setAuthParams, } from "./utils.gen.js";
2
4
  export const createClient = (config = {}) => {
3
5
  let _config = mergeConfigs(createConfig(), config);
4
6
  const getConfig = () => ({ ..._config });
@@ -7,12 +9,13 @@ export const createClient = (config = {}) => {
7
9
  return getConfig();
8
10
  };
9
11
  const interceptors = createInterceptors();
10
- const request = async (options) => {
12
+ const beforeRequest = async (options) => {
11
13
  const opts = {
12
14
  ..._config,
13
15
  ...options,
14
16
  fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,
15
17
  headers: mergeHeaders(_config.headers, options.headers),
18
+ serializedBody: undefined,
16
19
  };
17
20
  if (opts.security) {
18
21
  await setAuthParams({
@@ -24,16 +27,22 @@ export const createClient = (config = {}) => {
24
27
  await opts.requestValidator(opts);
25
28
  }
26
29
  if (opts.body && opts.bodySerializer) {
27
- opts.body = opts.bodySerializer(opts.body);
30
+ opts.serializedBody = opts.bodySerializer(opts.body);
28
31
  }
29
32
  // remove Content-Type header if body is empty to avoid sending invalid requests
30
- if (opts.body === undefined || opts.body === "") {
33
+ if (opts.serializedBody === undefined || opts.serializedBody === "") {
31
34
  opts.headers.delete("Content-Type");
32
35
  }
33
36
  const url = buildUrl(opts);
37
+ return { opts, url };
38
+ };
39
+ const request = async (options) => {
40
+ // @ts-expect-error
41
+ const { opts, url } = await beforeRequest(options);
34
42
  const requestInit = {
35
43
  redirect: "follow",
36
44
  ...opts,
45
+ body: opts.serializedBody,
37
46
  };
38
47
  let request = new Request(url, requestInit);
39
48
  for (const fn of interceptors.request._fns) {
@@ -123,20 +132,34 @@ export const createClient = (config = {}) => {
123
132
  ...result,
124
133
  };
125
134
  };
135
+ const makeMethod = (method) => {
136
+ const fn = (options) => request({ ...options, method });
137
+ fn.sse = async (options) => {
138
+ const { opts, url } = await beforeRequest(options);
139
+ return createSseClient({
140
+ ...opts,
141
+ body: opts.body,
142
+ headers: opts.headers,
143
+ method,
144
+ url,
145
+ });
146
+ };
147
+ return fn;
148
+ };
126
149
  return {
127
150
  buildUrl,
128
- connect: (options) => request({ ...options, method: "CONNECT" }),
129
- delete: (options) => request({ ...options, method: "DELETE" }),
130
- get: (options) => request({ ...options, method: "GET" }),
151
+ connect: makeMethod("CONNECT"),
152
+ delete: makeMethod("DELETE"),
153
+ get: makeMethod("GET"),
131
154
  getConfig,
132
- head: (options) => request({ ...options, method: "HEAD" }),
155
+ head: makeMethod("HEAD"),
133
156
  interceptors,
134
- options: (options) => request({ ...options, method: "OPTIONS" }),
135
- patch: (options) => request({ ...options, method: "PATCH" }),
136
- post: (options) => request({ ...options, method: "POST" }),
137
- put: (options) => request({ ...options, method: "PUT" }),
157
+ options: makeMethod("OPTIONS"),
158
+ patch: makeMethod("PATCH"),
159
+ post: makeMethod("POST"),
160
+ put: makeMethod("PUT"),
138
161
  request,
139
162
  setConfig,
140
- trace: (options) => request({ ...options, method: "TRACE" }),
163
+ trace: makeMethod("TRACE"),
141
164
  };
142
165
  };
@@ -1,7 +1,7 @@
1
- export type { Auth } from "../core/auth.js";
2
- export type { QuerySerializerOptions } from "../core/bodySerializer.js";
3
- export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer } from "../core/bodySerializer.js";
4
- export { buildClientParams } from "../core/params.js";
5
- export { createClient } from "./client.js";
6
- export type { Client, ClientOptions, Config, CreateClientConfig, Options, OptionsLegacyParser, RequestOptions, RequestResult, ResponseStyle, TDataShape, } from "./types.js";
7
- export { createConfig, mergeHeaders } from "./utils.js";
1
+ export type { Auth } from "../core/auth.gen.js";
2
+ export type { QuerySerializerOptions } from "../core/bodySerializer.gen.js";
3
+ export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer, } from "../core/bodySerializer.gen.js";
4
+ export { buildClientParams } from "../core/params.gen.js";
5
+ export { createClient } from "./client.gen.js";
6
+ export type { Client, ClientOptions, Config, CreateClientConfig, Options, OptionsLegacyParser, RequestOptions, RequestResult, ResolvedRequestOptions, ResponseStyle, TDataShape, } from "./types.gen.js";
7
+ export { createConfig, mergeHeaders } from "./utils.gen.js";
@@ -1,4 +1,5 @@
1
- export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer } from "../core/bodySerializer.js";
2
- export { buildClientParams } from "../core/params.js";
3
- export { createClient } from "./client.js";
4
- export { createConfig, mergeHeaders } from "./utils.js";
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+ export { formDataBodySerializer, jsonBodySerializer, urlSearchParamsBodySerializer, } from "../core/bodySerializer.gen.js";
3
+ export { buildClientParams } from "../core/params.gen.js";
4
+ export { createClient } from "./client.gen.js";
5
+ export { createConfig, mergeHeaders } from "./utils.gen.js";
@@ -1,6 +1,7 @@
1
- import type { Auth } from "../core/auth.js";
2
- import type { Client as CoreClient, Config as CoreConfig } from "../core/types.js";
3
- import type { Middleware } from "./utils.js";
1
+ import type { Auth } from "../core/auth.gen.js";
2
+ import type { ServerSentEventsOptions, ServerSentEventsResult } from "../core/serverSentEvents.gen.js";
3
+ import type { Client as CoreClient, Config as CoreConfig } from "../core/types.gen.js";
4
+ import type { Middleware } from "./utils.gen.js";
4
5
  export type ResponseStyle = "data" | "fields";
5
6
  export interface Config<T extends ClientOptions = ClientOptions> extends Omit<RequestInit, "body" | "headers" | "method">, CoreConfig {
6
7
  /**
@@ -43,10 +44,10 @@ export interface Config<T extends ClientOptions = ClientOptions> extends Omit<Re
43
44
  */
44
45
  throwOnError?: T["throwOnError"];
45
46
  }
46
- export interface RequestOptions<TResponseStyle extends ResponseStyle = "fields", ThrowOnError extends boolean = boolean, Url extends string = string> extends Config<{
47
+ export interface RequestOptions<TData = unknown, TResponseStyle extends ResponseStyle = "fields", ThrowOnError extends boolean = boolean, Url extends string = string> extends Config<{
47
48
  responseStyle: TResponseStyle;
48
49
  throwOnError: ThrowOnError;
49
- }> {
50
+ }>, Pick<ServerSentEventsOptions<TData>, "onSseError" | "onSseEvent" | "sseDefaultRetryDelay" | "sseMaxRetryAttempts" | "sseMaxRetryDelay"> {
50
51
  /**
51
52
  * Any body that you want to add to your request.
52
53
  *
@@ -61,6 +62,9 @@ export interface RequestOptions<TResponseStyle extends ResponseStyle = "fields",
61
62
  security?: ReadonlyArray<Auth>;
62
63
  url: Url;
63
64
  }
65
+ export interface ResolvedRequestOptions<TResponseStyle extends ResponseStyle = "fields", ThrowOnError extends boolean = boolean, Url extends string = string> extends RequestOptions<unknown, TResponseStyle, ThrowOnError, Url> {
66
+ serializedBody?: string;
67
+ }
64
68
  export type RequestResult<TData = unknown, TError = unknown, ThrowOnError extends boolean = boolean, TResponseStyle extends ResponseStyle = "fields"> = ThrowOnError extends true ? Promise<TResponseStyle extends "data" ? TData extends Record<string, unknown> ? TData[keyof TData] : TData : {
65
69
  data: TData extends Record<string, unknown> ? TData[keyof TData] : TData;
66
70
  request: Request;
@@ -80,8 +84,12 @@ export interface ClientOptions {
80
84
  responseStyle?: ResponseStyle;
81
85
  throwOnError?: boolean;
82
86
  }
83
- type MethodFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = "fields">(options: Omit<RequestOptions<TResponseStyle, ThrowOnError>, "method">) => RequestResult<TData, TError, ThrowOnError, TResponseStyle>;
84
- type RequestFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = "fields">(options: Omit<RequestOptions<TResponseStyle, ThrowOnError>, "method"> & Pick<Required<RequestOptions<TResponseStyle, ThrowOnError>>, "method">) => RequestResult<TData, TError, ThrowOnError, TResponseStyle>;
87
+ type MethodFnBase = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = "fields">(options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, "method">) => RequestResult<TData, TError, ThrowOnError, TResponseStyle>;
88
+ type MethodFnServerSentEvents = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = "fields">(options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, "method">) => Promise<ServerSentEventsResult<TData, TError>>;
89
+ type MethodFn = MethodFnBase & {
90
+ sse: MethodFnServerSentEvents;
91
+ };
92
+ type RequestFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = "fields">(options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, "method"> & Pick<Required<RequestOptions<TData, TResponseStyle, ThrowOnError>>, "method">) => RequestResult<TData, TError, ThrowOnError, TResponseStyle>;
85
93
  type BuildUrlFn = <TData extends {
86
94
  body?: unknown;
87
95
  path?: Record<string, unknown>;
@@ -89,7 +97,7 @@ type BuildUrlFn = <TData extends {
89
97
  url: string;
90
98
  }>(options: Pick<TData, "url"> & Options<TData>) => string;
91
99
  export type Client = CoreClient<RequestFn, Config, MethodFn, BuildUrlFn> & {
92
- interceptors: Middleware<Request, Response, unknown, RequestOptions>;
100
+ interceptors: Middleware<Request, Response, unknown, ResolvedRequestOptions>;
93
101
  };
94
102
  /**
95
103
  * The `createClientConfig()` function will be called on client initialization
@@ -108,12 +116,12 @@ export interface TDataShape {
108
116
  url: string;
109
117
  }
110
118
  type OmitKeys<T, K> = Pick<T, Exclude<keyof T, K>>;
111
- export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponseStyle extends ResponseStyle = "fields"> = OmitKeys<RequestOptions<TResponseStyle, ThrowOnError>, "body" | "path" | "query" | "url"> & Omit<TData, "url">;
119
+ export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown, TResponseStyle extends ResponseStyle = "fields"> = OmitKeys<RequestOptions<TResponse, TResponseStyle, ThrowOnError>, "body" | "path" | "query" | "url"> & Omit<TData, "url">;
112
120
  export type OptionsLegacyParser<TData = unknown, ThrowOnError extends boolean = boolean, TResponseStyle extends ResponseStyle = "fields"> = TData extends {
113
121
  body?: any;
114
122
  } ? TData extends {
115
123
  headers?: any;
116
- } ? OmitKeys<RequestOptions<TResponseStyle, ThrowOnError>, "body" | "headers" | "url"> & TData : OmitKeys<RequestOptions<TResponseStyle, ThrowOnError>, "body" | "url"> & TData & Pick<RequestOptions<TResponseStyle, ThrowOnError>, "headers"> : TData extends {
124
+ } ? OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "body" | "headers" | "url"> & TData : OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "body" | "url"> & TData & Pick<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "headers"> : TData extends {
117
125
  headers?: any;
118
- } ? OmitKeys<RequestOptions<TResponseStyle, ThrowOnError>, "headers" | "url"> & TData & Pick<RequestOptions<TResponseStyle, ThrowOnError>, "body"> : OmitKeys<RequestOptions<TResponseStyle, ThrowOnError>, "url"> & TData;
126
+ } ? OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "headers" | "url"> & TData & Pick<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "body"> : OmitKeys<RequestOptions<unknown, TResponseStyle, ThrowOnError>, "url"> & TData;
119
127
  export {};
@@ -0,0 +1,2 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+ export {};
@@ -1,5 +1,5 @@
1
- import type { QuerySerializer, QuerySerializerOptions } from "../core/bodySerializer.js";
2
- import type { Client, ClientOptions, Config, RequestOptions } from "./types.js";
1
+ import type { QuerySerializerOptions } from "../core/bodySerializer.gen.js";
2
+ import type { Client, ClientOptions, Config, RequestOptions } from "./types.gen.js";
3
3
  export declare const createQuerySerializer: <T = unknown>({ allowReserved, array, object }?: QuerySerializerOptions) => (queryParams: T) => string;
4
4
  /**
5
5
  * Infers parseAs value from provided Content-Type header.
@@ -9,13 +9,6 @@ export declare const setAuthParams: ({ security, ...options }: Pick<Required<Req
9
9
  headers: Headers;
10
10
  }) => Promise<void>;
11
11
  export declare const buildUrl: Client["buildUrl"];
12
- export declare const getUrl: ({ baseUrl, path, query, querySerializer, url: _url, }: {
13
- baseUrl?: string;
14
- path?: Record<string, unknown>;
15
- query?: Record<string, unknown>;
16
- querySerializer: QuerySerializer;
17
- url: string;
18
- }) => string;
19
12
  export declare const mergeConfigs: (a: Config, b: Config) => Config;
20
13
  export declare const mergeHeaders: (...headers: Array<Required<Config>["headers"] | undefined>) => Headers;
21
14
  type ErrInterceptor<Err, Res, Req, Options> = (error: Err, response: Res, request: Req, options: Options) => Err | Promise<Err>;
@@ -1,58 +1,8 @@
1
- import { getAuthToken } from "../core/auth.js";
2
- import { jsonBodySerializer } from "../core/bodySerializer.js";
3
- import { serializeArrayParam, serializeObjectParam, serializePrimitiveParam } from "../core/pathSerializer.js";
4
- const PATH_PARAM_RE = /\{[^{}]+\}/g;
5
- const defaultPathSerializer = ({ path, url: _url }) => {
6
- let url = _url;
7
- const matches = _url.match(PATH_PARAM_RE);
8
- if (matches) {
9
- for (const match of matches) {
10
- let explode = false;
11
- let name = match.substring(1, match.length - 1);
12
- let style = "simple";
13
- if (name.endsWith("*")) {
14
- explode = true;
15
- name = name.substring(0, name.length - 1);
16
- }
17
- if (name.startsWith(".")) {
18
- name = name.substring(1);
19
- style = "label";
20
- }
21
- else if (name.startsWith(";")) {
22
- name = name.substring(1);
23
- style = "matrix";
24
- }
25
- const value = path[name];
26
- if (value === undefined || value === null) {
27
- continue;
28
- }
29
- if (Array.isArray(value)) {
30
- url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
31
- continue;
32
- }
33
- if (typeof value === "object") {
34
- url = url.replace(match, serializeObjectParam({
35
- explode,
36
- name,
37
- style,
38
- value: value,
39
- valueOnly: true,
40
- }));
41
- continue;
42
- }
43
- if (style === "matrix") {
44
- url = url.replace(match, `;${serializePrimitiveParam({
45
- name,
46
- value: value,
47
- })}`);
48
- continue;
49
- }
50
- const replaceValue = encodeURIComponent(style === "label" ? `.${value}` : value);
51
- url = url.replace(match, replaceValue);
52
- }
53
- }
54
- return url;
55
- };
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+ import { getAuthToken } from "../core/auth.gen.js";
3
+ import { jsonBodySerializer } from "../core/bodySerializer.gen.js";
4
+ import { serializeArrayParam, serializeObjectParam, serializePrimitiveParam } from "../core/pathSerializer.gen.js";
5
+ import { getUrl } from "../core/utils.gen.js";
56
6
  export const createQuerySerializer = ({ allowReserved, array, object } = {}) => {
57
7
  const querySerializer = (queryParams) => {
58
8
  const search = [];
@@ -128,8 +78,20 @@ export const getParseAs = (contentType) => {
128
78
  }
129
79
  return;
130
80
  };
81
+ const checkForExistence = (options, name) => {
82
+ if (!name) {
83
+ return false;
84
+ }
85
+ if (options.headers.has(name) || options.query?.[name] || options.headers.get("Cookie")?.includes(`${name}=`)) {
86
+ return true;
87
+ }
88
+ return false;
89
+ };
131
90
  export const setAuthParams = async ({ security, ...options }) => {
132
91
  for (const auth of security) {
92
+ if (checkForExistence(options, auth.name)) {
93
+ continue;
94
+ }
133
95
  const token = await getAuthToken(auth, options.auth);
134
96
  if (!token) {
135
97
  continue;
@@ -150,36 +112,17 @@ export const setAuthParams = async ({ security, ...options }) => {
150
112
  options.headers.set(name, token);
151
113
  break;
152
114
  }
153
- return;
154
115
  }
155
116
  };
156
- export const buildUrl = (options) => {
157
- const url = getUrl({
158
- baseUrl: options.baseUrl,
159
- path: options.path,
160
- query: options.query,
161
- querySerializer: typeof options.querySerializer === "function"
162
- ? options.querySerializer
163
- : createQuerySerializer(options.querySerializer),
164
- url: options.url,
165
- });
166
- return url;
167
- };
168
- export const getUrl = ({ baseUrl, path, query, querySerializer, url: _url, }) => {
169
- const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
170
- let url = (baseUrl ?? "") + pathUrl;
171
- if (path) {
172
- url = defaultPathSerializer({ path, url });
173
- }
174
- let search = query ? querySerializer(query) : "";
175
- if (search.startsWith("?")) {
176
- search = search.substring(1);
177
- }
178
- if (search) {
179
- url += `?${search}`;
180
- }
181
- return url;
182
- };
117
+ export const buildUrl = (options) => getUrl({
118
+ baseUrl: options.baseUrl,
119
+ path: options.path,
120
+ query: options.query,
121
+ querySerializer: typeof options.querySerializer === "function"
122
+ ? options.querySerializer
123
+ : createQuerySerializer(options.querySerializer),
124
+ url: options.url,
125
+ });
183
126
  export const mergeConfigs = (a, b) => {
184
127
  const config = { ...a, ...b };
185
128
  if (config.baseUrl?.endsWith("/")) {
@@ -9,4 +9,4 @@ import { type Config, type ClientOptions as DefaultClientOptions } from "./clien
9
9
  * to ensure your client always has the correct values.
10
10
  */
11
11
  export type CreateClientConfig<T extends DefaultClientOptions = ClientOptions> = (override?: Config<DefaultClientOptions & T>) => Config<Required<DefaultClientOptions> & T>;
12
- export declare const client: import("./client/types.js").Client;
12
+ export declare const client: import("./client/types.gen.js").Client;
@@ -1,3 +1,4 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
1
2
  export const getAuthToken = async (auth, callback) => {
2
3
  const token = typeof callback === "function" ? await callback(auth) : callback;
3
4
  if (!token) {
@@ -1,4 +1,4 @@
1
- import type { ArrayStyle, ObjectStyle, SerializerOptions } from "./pathSerializer.js";
1
+ import type { ArrayStyle, ObjectStyle, SerializerOptions } from "./pathSerializer.gen.js";
2
2
  export type QuerySerializer = (query: Record<string, unknown>) => string;
3
3
  export type BodySerializer = (body: any) => any;
4
4
  export interface QuerySerializerOptions {
@@ -1,7 +1,11 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
1
2
  const serializeFormDataPair = (data, key, value) => {
2
3
  if (typeof value === "string" || value instanceof Blob) {
3
4
  data.append(key, value);
4
5
  }
6
+ else if (value instanceof Date) {
7
+ data.append(key, value.toISOString());
8
+ }
5
9
  else {
6
10
  data.append(key, JSON.stringify(value));
7
11
  }
@@ -1,3 +1,4 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
1
2
  const extraPrefixesMap = {
2
3
  $body_: "body",
3
4
  $headers_: "headers",
@@ -1,3 +1,4 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
1
2
  export const separatorArrayExplode = (style) => {
2
3
  switch (style) {
3
4
  case "label":
@@ -0,0 +1,59 @@
1
+ import type { Config } from "./types.gen.js";
2
+ export type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, "method"> & Pick<Config, "method" | "responseTransformer" | "responseValidator"> & {
3
+ /**
4
+ * Callback invoked when a network or parsing error occurs during streaming.
5
+ *
6
+ * This option applies only if the endpoint returns a stream of events.
7
+ *
8
+ * @param error The error that occurred.
9
+ */
10
+ onSseError?: (error: unknown) => void;
11
+ /**
12
+ * Callback invoked when an event is streamed from the server.
13
+ *
14
+ * This option applies only if the endpoint returns a stream of events.
15
+ *
16
+ * @param event Event streamed from the server.
17
+ * @returns Nothing (void).
18
+ */
19
+ onSseEvent?: (event: StreamEvent<TData>) => void;
20
+ /**
21
+ * Default retry delay in milliseconds.
22
+ *
23
+ * This option applies only if the endpoint returns a stream of events.
24
+ *
25
+ * @default 3000
26
+ */
27
+ sseDefaultRetryDelay?: number;
28
+ /**
29
+ * Maximum number of retry attempts before giving up.
30
+ */
31
+ sseMaxRetryAttempts?: number;
32
+ /**
33
+ * Maximum retry delay in milliseconds.
34
+ *
35
+ * Applies only when exponential backoff is used.
36
+ *
37
+ * This option applies only if the endpoint returns a stream of events.
38
+ *
39
+ * @default 30000
40
+ */
41
+ sseMaxRetryDelay?: number;
42
+ /**
43
+ * Optional sleep function for retry backoff.
44
+ *
45
+ * Defaults to using `setTimeout`.
46
+ */
47
+ sseSleepFn?: (ms: number) => Promise<void>;
48
+ url: string;
49
+ };
50
+ export interface StreamEvent<TData = unknown> {
51
+ data: TData;
52
+ event?: string;
53
+ id?: string;
54
+ retry?: number;
55
+ }
56
+ export type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {
57
+ stream: AsyncGenerator<TData extends Record<string, unknown> ? TData[keyof TData] : TData, TReturn, TNext>;
58
+ };
59
+ export declare const createSseClient: <TData = unknown>({ onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url, ...options }: ServerSentEventsOptions) => ServerSentEventsResult<TData>;
@@ -0,0 +1,117 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+ export const createSseClient = ({ onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url, ...options }) => {
3
+ let lastEventId;
4
+ const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
5
+ const createStream = async function* () {
6
+ let retryDelay = sseDefaultRetryDelay ?? 3000;
7
+ let attempt = 0;
8
+ const signal = options.signal ?? new AbortController().signal;
9
+ while (true) {
10
+ if (signal.aborted)
11
+ break;
12
+ attempt++;
13
+ const headers = options.headers instanceof Headers
14
+ ? options.headers
15
+ : new Headers(options.headers);
16
+ if (lastEventId !== undefined) {
17
+ headers.set("Last-Event-ID", lastEventId);
18
+ }
19
+ try {
20
+ const response = await fetch(url, { ...options, headers, signal });
21
+ if (!response.ok)
22
+ throw new Error(`SSE failed: ${response.status} ${response.statusText}`);
23
+ if (!response.body)
24
+ throw new Error("No body in SSE response");
25
+ const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
26
+ let buffer = "";
27
+ const abortHandler = () => {
28
+ try {
29
+ reader.cancel();
30
+ }
31
+ catch {
32
+ // noop
33
+ }
34
+ };
35
+ signal.addEventListener("abort", abortHandler);
36
+ try {
37
+ while (true) {
38
+ const { done, value } = await reader.read();
39
+ if (done)
40
+ break;
41
+ buffer += value;
42
+ const chunks = buffer.split("\n\n");
43
+ buffer = chunks.pop() ?? "";
44
+ for (const chunk of chunks) {
45
+ const lines = chunk.split("\n");
46
+ const dataLines = [];
47
+ let eventName;
48
+ for (const line of lines) {
49
+ if (line.startsWith("data:")) {
50
+ dataLines.push(line.replace(/^data:\s*/, ""));
51
+ }
52
+ else if (line.startsWith("event:")) {
53
+ eventName = line.replace(/^event:\s*/, "");
54
+ }
55
+ else if (line.startsWith("id:")) {
56
+ lastEventId = line.replace(/^id:\s*/, "");
57
+ }
58
+ else if (line.startsWith("retry:")) {
59
+ const parsed = Number.parseInt(line.replace(/^retry:\s*/, ""), 10);
60
+ if (!Number.isNaN(parsed)) {
61
+ retryDelay = parsed;
62
+ }
63
+ }
64
+ }
65
+ let data;
66
+ let parsedJson = false;
67
+ if (dataLines.length) {
68
+ const rawData = dataLines.join("\n");
69
+ try {
70
+ data = JSON.parse(rawData);
71
+ parsedJson = true;
72
+ }
73
+ catch {
74
+ data = rawData;
75
+ }
76
+ }
77
+ if (parsedJson) {
78
+ if (responseValidator) {
79
+ await responseValidator(data);
80
+ }
81
+ if (responseTransformer) {
82
+ data = await responseTransformer(data);
83
+ }
84
+ }
85
+ onSseEvent?.({
86
+ data,
87
+ event: eventName,
88
+ id: lastEventId,
89
+ retry: retryDelay,
90
+ });
91
+ if (dataLines.length) {
92
+ yield data;
93
+ }
94
+ }
95
+ }
96
+ }
97
+ finally {
98
+ signal.removeEventListener("abort", abortHandler);
99
+ reader.releaseLock();
100
+ }
101
+ break; // exit loop on normal completion
102
+ }
103
+ catch (error) {
104
+ // connection failed or aborted; retry after delay
105
+ onSseError?.(error);
106
+ if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {
107
+ break; // stop after firing error
108
+ }
109
+ // exponential backoff: double retry each attempt, cap at 30s
110
+ const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);
111
+ await sleep(backoff);
112
+ }
113
+ }
114
+ };
115
+ const stream = createStream();
116
+ return { stream };
117
+ };
@@ -1,5 +1,5 @@
1
- import type { Auth, AuthToken } from "./auth.js";
2
- import type { BodySerializer, QuerySerializer, QuerySerializerOptions } from "./bodySerializer.js";
1
+ import type { Auth, AuthToken } from "./auth.gen.js";
2
+ import type { BodySerializer, QuerySerializer, QuerySerializerOptions } from "./bodySerializer.gen.js";
3
3
  export interface Client<RequestFn = never, Config = unknown, MethodFn = never, BuildUrlFn = never> {
4
4
  /**
5
5
  * Returns the final request URL.
@@ -0,0 +1,2 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+ export {};
@@ -0,0 +1,14 @@
1
+ import type { QuerySerializer } from "./bodySerializer.gen.js";
2
+ export interface PathSerializer {
3
+ path: Record<string, unknown>;
4
+ url: string;
5
+ }
6
+ export declare const PATH_PARAM_RE: RegExp;
7
+ export declare const defaultPathSerializer: ({ path, url: _url }: PathSerializer) => string;
8
+ export declare const getUrl: ({ baseUrl, path, query, querySerializer, url: _url, }: {
9
+ baseUrl?: string;
10
+ path?: Record<string, unknown>;
11
+ query?: Record<string, unknown>;
12
+ querySerializer: QuerySerializer;
13
+ url: string;
14
+ }) => string;
@@ -0,0 +1,69 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+ import { serializeArrayParam, serializeObjectParam, serializePrimitiveParam, } from "./pathSerializer.gen.js";
3
+ export const PATH_PARAM_RE = /\{[^{}]+\}/g;
4
+ export const defaultPathSerializer = ({ path, url: _url }) => {
5
+ let url = _url;
6
+ const matches = _url.match(PATH_PARAM_RE);
7
+ if (matches) {
8
+ for (const match of matches) {
9
+ let explode = false;
10
+ let name = match.substring(1, match.length - 1);
11
+ let style = "simple";
12
+ if (name.endsWith("*")) {
13
+ explode = true;
14
+ name = name.substring(0, name.length - 1);
15
+ }
16
+ if (name.startsWith(".")) {
17
+ name = name.substring(1);
18
+ style = "label";
19
+ }
20
+ else if (name.startsWith(";")) {
21
+ name = name.substring(1);
22
+ style = "matrix";
23
+ }
24
+ const value = path[name];
25
+ if (value === undefined || value === null) {
26
+ continue;
27
+ }
28
+ if (Array.isArray(value)) {
29
+ url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
30
+ continue;
31
+ }
32
+ if (typeof value === "object") {
33
+ url = url.replace(match, serializeObjectParam({
34
+ explode,
35
+ name,
36
+ style,
37
+ value: value,
38
+ valueOnly: true,
39
+ }));
40
+ continue;
41
+ }
42
+ if (style === "matrix") {
43
+ url = url.replace(match, `;${serializePrimitiveParam({
44
+ name,
45
+ value: value,
46
+ })}`);
47
+ continue;
48
+ }
49
+ const replaceValue = encodeURIComponent(style === "label" ? `.${value}` : value);
50
+ url = url.replace(match, replaceValue);
51
+ }
52
+ }
53
+ return url;
54
+ };
55
+ export const getUrl = ({ baseUrl, path, query, querySerializer, url: _url, }) => {
56
+ const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
57
+ let url = (baseUrl ?? "") + pathUrl;
58
+ if (path) {
59
+ url = defaultPathSerializer({ path, url });
60
+ }
61
+ let search = query ? querySerializer(query) : "";
62
+ if (search.startsWith("?")) {
63
+ search = search.substring(1);
64
+ }
65
+ if (search) {
66
+ url += `?${search}`;
67
+ }
68
+ return url;
69
+ };
@@ -1,5 +1,5 @@
1
1
  import type { Options as ClientOptions, TDataShape, Client } from "./client/index.js";
2
- import type { EventSubscribeData, EventSubscribeResponses, AppGetData, AppGetResponses, AppInitData, AppInitResponses, ConfigGetData, ConfigGetResponses, SessionListData, SessionListResponses, SessionCreateData, SessionCreateResponses, SessionCreateErrors, SessionDeleteData, SessionDeleteResponses, SessionGetData, SessionGetResponses, SessionUpdateData, SessionUpdateResponses, SessionChildrenData, SessionChildrenResponses, SessionInitData, SessionInitResponses, SessionAbortData, SessionAbortResponses, SessionUnshareData, SessionUnshareResponses, SessionShareData, SessionShareResponses, SessionSummarizeData, SessionSummarizeResponses, SessionMessagesData, SessionMessagesResponses, SessionChatData, SessionChatResponses, SessionMessageData, SessionMessageResponses, SessionCommandData, SessionCommandResponses, SessionShellData, SessionShellResponses, SessionRevertData, SessionRevertResponses, SessionUnrevertData, SessionUnrevertResponses, PostSessionByIdPermissionsByPermissionIdData, PostSessionByIdPermissionsByPermissionIdResponses, CommandListData, CommandListResponses, ConfigProvidersData, ConfigProvidersResponses, FindTextData, FindTextResponses, FindFilesData, FindFilesResponses, FindSymbolsData, FindSymbolsResponses, FileReadData, FileReadResponses, FileStatusData, FileStatusResponses, AppLogData, AppLogResponses, AppAgentsData, AppAgentsResponses, TuiAppendPromptData, TuiAppendPromptResponses, TuiOpenHelpData, TuiOpenHelpResponses, TuiOpenSessionsData, TuiOpenSessionsResponses, TuiOpenThemesData, TuiOpenThemesResponses, TuiOpenModelsData, TuiOpenModelsResponses, TuiSubmitPromptData, TuiSubmitPromptResponses, TuiClearPromptData, TuiClearPromptResponses, TuiExecuteCommandData, TuiExecuteCommandResponses, TuiShowToastData, TuiShowToastResponses, AuthSetData, AuthSetResponses, AuthSetErrors } from "./types.gen.js";
2
+ import type { EventSubscribeData, EventSubscribeResponses, AppGetData, AppGetResponses, AppInitData, AppInitResponses, ConfigGetData, ConfigGetResponses, SessionListData, SessionListResponses, SessionCreateData, SessionCreateResponses, SessionCreateErrors, SessionDeleteData, SessionDeleteResponses, SessionGetData, SessionGetResponses, SessionUpdateData, SessionUpdateResponses, SessionChildrenData, SessionChildrenResponses, SessionInitData, SessionInitResponses, SessionAbortData, SessionAbortResponses, SessionUnshareData, SessionUnshareResponses, SessionShareData, SessionShareResponses, SessionSummarizeData, SessionSummarizeResponses, SessionMessagesData, SessionMessagesResponses, SessionChatData, SessionChatResponses, SessionMessageData, SessionMessageResponses, SessionCommandData, SessionCommandResponses, SessionShellData, SessionShellResponses, SessionRevertData, SessionRevertResponses, SessionUnrevertData, SessionUnrevertResponses, PostSessionByIdPermissionsByPermissionIdData, PostSessionByIdPermissionsByPermissionIdResponses, CommandListData, CommandListResponses, ConfigProvidersData, ConfigProvidersResponses, FindTextData, FindTextResponses, FindFilesData, FindFilesResponses, FindSymbolsData, FindSymbolsResponses, FileListData, FileListResponses, FileReadData, FileReadResponses, FileStatusData, FileStatusResponses, AppLogData, AppLogResponses, AppAgentsData, AppAgentsResponses, TuiAppendPromptData, TuiAppendPromptResponses, TuiOpenHelpData, TuiOpenHelpResponses, TuiOpenSessionsData, TuiOpenSessionsResponses, TuiOpenThemesData, TuiOpenThemesResponses, TuiOpenModelsData, TuiOpenModelsResponses, TuiSubmitPromptData, TuiSubmitPromptResponses, TuiClearPromptData, TuiClearPromptResponses, TuiExecuteCommandData, TuiExecuteCommandResponses, TuiShowToastData, TuiShowToastResponses, AuthSetData, AuthSetResponses, AuthSetErrors } from "./types.gen.js";
3
3
  export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = ClientOptions<TData, ThrowOnError> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -23,189 +23,193 @@ declare class Event extends _HeyApiClient {
23
23
  /**
24
24
  * Get events
25
25
  */
26
- subscribe<ThrowOnError extends boolean = false>(options?: Options<EventSubscribeData, ThrowOnError>): import("./client/types.js").RequestResult<EventSubscribeResponses, unknown, ThrowOnError, "fields">;
26
+ subscribe<ThrowOnError extends boolean = false>(options?: Options<EventSubscribeData, ThrowOnError>): Promise<import("./core/serverSentEvents.gen.js").ServerSentEventsResult<EventSubscribeResponses, unknown>>;
27
27
  }
28
28
  declare class App extends _HeyApiClient {
29
29
  /**
30
30
  * Get app info
31
31
  */
32
- get<ThrowOnError extends boolean = false>(options?: Options<AppGetData, ThrowOnError>): import("./client/types.js").RequestResult<AppGetResponses, unknown, ThrowOnError, "fields">;
32
+ get<ThrowOnError extends boolean = false>(options?: Options<AppGetData, ThrowOnError>): import("./client/types.gen.js").RequestResult<AppGetResponses, unknown, ThrowOnError, "fields">;
33
33
  /**
34
34
  * Initialize the app
35
35
  */
36
- init<ThrowOnError extends boolean = false>(options?: Options<AppInitData, ThrowOnError>): import("./client/types.js").RequestResult<AppInitResponses, unknown, ThrowOnError, "fields">;
36
+ init<ThrowOnError extends boolean = false>(options?: Options<AppInitData, ThrowOnError>): import("./client/types.gen.js").RequestResult<AppInitResponses, unknown, ThrowOnError, "fields">;
37
37
  /**
38
38
  * Write a log entry to the server logs
39
39
  */
40
- log<ThrowOnError extends boolean = false>(options?: Options<AppLogData, ThrowOnError>): import("./client/types.js").RequestResult<AppLogResponses, unknown, ThrowOnError, "fields">;
40
+ log<ThrowOnError extends boolean = false>(options?: Options<AppLogData, ThrowOnError>): import("./client/types.gen.js").RequestResult<AppLogResponses, unknown, ThrowOnError, "fields">;
41
41
  /**
42
42
  * List all agents
43
43
  */
44
- agents<ThrowOnError extends boolean = false>(options?: Options<AppAgentsData, ThrowOnError>): import("./client/types.js").RequestResult<AppAgentsResponses, unknown, ThrowOnError, "fields">;
44
+ agents<ThrowOnError extends boolean = false>(options?: Options<AppAgentsData, ThrowOnError>): import("./client/types.gen.js").RequestResult<AppAgentsResponses, unknown, ThrowOnError, "fields">;
45
45
  }
46
46
  declare class Config extends _HeyApiClient {
47
47
  /**
48
48
  * Get config info
49
49
  */
50
- get<ThrowOnError extends boolean = false>(options?: Options<ConfigGetData, ThrowOnError>): import("./client/types.js").RequestResult<ConfigGetResponses, unknown, ThrowOnError, "fields">;
50
+ get<ThrowOnError extends boolean = false>(options?: Options<ConfigGetData, ThrowOnError>): import("./client/types.gen.js").RequestResult<ConfigGetResponses, unknown, ThrowOnError, "fields">;
51
51
  /**
52
52
  * List all providers
53
53
  */
54
- providers<ThrowOnError extends boolean = false>(options?: Options<ConfigProvidersData, ThrowOnError>): import("./client/types.js").RequestResult<ConfigProvidersResponses, unknown, ThrowOnError, "fields">;
54
+ providers<ThrowOnError extends boolean = false>(options?: Options<ConfigProvidersData, ThrowOnError>): import("./client/types.gen.js").RequestResult<ConfigProvidersResponses, unknown, ThrowOnError, "fields">;
55
55
  }
56
56
  declare class Session extends _HeyApiClient {
57
57
  /**
58
58
  * List all sessions
59
59
  */
60
- list<ThrowOnError extends boolean = false>(options?: Options<SessionListData, ThrowOnError>): import("./client/types.js").RequestResult<SessionListResponses, unknown, ThrowOnError, "fields">;
60
+ list<ThrowOnError extends boolean = false>(options?: Options<SessionListData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionListResponses, unknown, ThrowOnError, "fields">;
61
61
  /**
62
62
  * Create a new session
63
63
  */
64
- create<ThrowOnError extends boolean = false>(options?: Options<SessionCreateData, ThrowOnError>): import("./client/types.js").RequestResult<SessionCreateResponses, SessionCreateErrors, ThrowOnError, "fields">;
64
+ create<ThrowOnError extends boolean = false>(options?: Options<SessionCreateData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionCreateResponses, SessionCreateErrors, ThrowOnError, "fields">;
65
65
  /**
66
66
  * Delete a session and all its data
67
67
  */
68
- delete<ThrowOnError extends boolean = false>(options: Options<SessionDeleteData, ThrowOnError>): import("./client/types.js").RequestResult<SessionDeleteResponses, unknown, ThrowOnError, "fields">;
68
+ delete<ThrowOnError extends boolean = false>(options: Options<SessionDeleteData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionDeleteResponses, unknown, ThrowOnError, "fields">;
69
69
  /**
70
70
  * Get session
71
71
  */
72
- get<ThrowOnError extends boolean = false>(options: Options<SessionGetData, ThrowOnError>): import("./client/types.js").RequestResult<SessionGetResponses, unknown, ThrowOnError, "fields">;
72
+ get<ThrowOnError extends boolean = false>(options: Options<SessionGetData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionGetResponses, unknown, ThrowOnError, "fields">;
73
73
  /**
74
74
  * Update session properties
75
75
  */
76
- update<ThrowOnError extends boolean = false>(options: Options<SessionUpdateData, ThrowOnError>): import("./client/types.js").RequestResult<SessionUpdateResponses, unknown, ThrowOnError, "fields">;
76
+ update<ThrowOnError extends boolean = false>(options: Options<SessionUpdateData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionUpdateResponses, unknown, ThrowOnError, "fields">;
77
77
  /**
78
78
  * Get a session's children
79
79
  */
80
- children<ThrowOnError extends boolean = false>(options: Options<SessionChildrenData, ThrowOnError>): import("./client/types.js").RequestResult<SessionChildrenResponses, unknown, ThrowOnError, "fields">;
80
+ children<ThrowOnError extends boolean = false>(options: Options<SessionChildrenData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionChildrenResponses, unknown, ThrowOnError, "fields">;
81
81
  /**
82
82
  * Analyze the app and create an AGENTS.md file
83
83
  */
84
- init<ThrowOnError extends boolean = false>(options: Options<SessionInitData, ThrowOnError>): import("./client/types.js").RequestResult<SessionInitResponses, unknown, ThrowOnError, "fields">;
84
+ init<ThrowOnError extends boolean = false>(options: Options<SessionInitData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionInitResponses, unknown, ThrowOnError, "fields">;
85
85
  /**
86
86
  * Abort a session
87
87
  */
88
- abort<ThrowOnError extends boolean = false>(options: Options<SessionAbortData, ThrowOnError>): import("./client/types.js").RequestResult<SessionAbortResponses, unknown, ThrowOnError, "fields">;
88
+ abort<ThrowOnError extends boolean = false>(options: Options<SessionAbortData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionAbortResponses, unknown, ThrowOnError, "fields">;
89
89
  /**
90
90
  * Unshare the session
91
91
  */
92
- unshare<ThrowOnError extends boolean = false>(options: Options<SessionUnshareData, ThrowOnError>): import("./client/types.js").RequestResult<SessionUnshareResponses, unknown, ThrowOnError, "fields">;
92
+ unshare<ThrowOnError extends boolean = false>(options: Options<SessionUnshareData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionUnshareResponses, unknown, ThrowOnError, "fields">;
93
93
  /**
94
94
  * Share a session
95
95
  */
96
- share<ThrowOnError extends boolean = false>(options: Options<SessionShareData, ThrowOnError>): import("./client/types.js").RequestResult<SessionShareResponses, unknown, ThrowOnError, "fields">;
96
+ share<ThrowOnError extends boolean = false>(options: Options<SessionShareData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionShareResponses, unknown, ThrowOnError, "fields">;
97
97
  /**
98
98
  * Summarize the session
99
99
  */
100
- summarize<ThrowOnError extends boolean = false>(options: Options<SessionSummarizeData, ThrowOnError>): import("./client/types.js").RequestResult<SessionSummarizeResponses, unknown, ThrowOnError, "fields">;
100
+ summarize<ThrowOnError extends boolean = false>(options: Options<SessionSummarizeData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionSummarizeResponses, unknown, ThrowOnError, "fields">;
101
101
  /**
102
102
  * List messages for a session
103
103
  */
104
- messages<ThrowOnError extends boolean = false>(options: Options<SessionMessagesData, ThrowOnError>): import("./client/types.js").RequestResult<SessionMessagesResponses, unknown, ThrowOnError, "fields">;
104
+ messages<ThrowOnError extends boolean = false>(options: Options<SessionMessagesData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionMessagesResponses, unknown, ThrowOnError, "fields">;
105
105
  /**
106
106
  * Create and send a new message to a session
107
107
  */
108
- chat<ThrowOnError extends boolean = false>(options: Options<SessionChatData, ThrowOnError>): import("./client/types.js").RequestResult<SessionChatResponses, unknown, ThrowOnError, "fields">;
108
+ chat<ThrowOnError extends boolean = false>(options: Options<SessionChatData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionChatResponses, unknown, ThrowOnError, "fields">;
109
109
  /**
110
110
  * Get a message from a session
111
111
  */
112
- message<ThrowOnError extends boolean = false>(options: Options<SessionMessageData, ThrowOnError>): import("./client/types.js").RequestResult<SessionMessageResponses, unknown, ThrowOnError, "fields">;
112
+ message<ThrowOnError extends boolean = false>(options: Options<SessionMessageData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionMessageResponses, unknown, ThrowOnError, "fields">;
113
113
  /**
114
114
  * Send a new command to a session
115
115
  */
116
- command<ThrowOnError extends boolean = false>(options: Options<SessionCommandData, ThrowOnError>): import("./client/types.js").RequestResult<SessionCommandResponses, unknown, ThrowOnError, "fields">;
116
+ command<ThrowOnError extends boolean = false>(options: Options<SessionCommandData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionCommandResponses, unknown, ThrowOnError, "fields">;
117
117
  /**
118
118
  * Run a shell command
119
119
  */
120
- shell<ThrowOnError extends boolean = false>(options: Options<SessionShellData, ThrowOnError>): import("./client/types.js").RequestResult<SessionShellResponses, unknown, ThrowOnError, "fields">;
120
+ shell<ThrowOnError extends boolean = false>(options: Options<SessionShellData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionShellResponses, unknown, ThrowOnError, "fields">;
121
121
  /**
122
122
  * Revert a message
123
123
  */
124
- revert<ThrowOnError extends boolean = false>(options: Options<SessionRevertData, ThrowOnError>): import("./client/types.js").RequestResult<SessionRevertResponses, unknown, ThrowOnError, "fields">;
124
+ revert<ThrowOnError extends boolean = false>(options: Options<SessionRevertData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionRevertResponses, unknown, ThrowOnError, "fields">;
125
125
  /**
126
126
  * Restore all reverted messages
127
127
  */
128
- unrevert<ThrowOnError extends boolean = false>(options: Options<SessionUnrevertData, ThrowOnError>): import("./client/types.js").RequestResult<SessionUnrevertResponses, unknown, ThrowOnError, "fields">;
128
+ unrevert<ThrowOnError extends boolean = false>(options: Options<SessionUnrevertData, ThrowOnError>): import("./client/types.gen.js").RequestResult<SessionUnrevertResponses, unknown, ThrowOnError, "fields">;
129
129
  }
130
130
  declare class Command extends _HeyApiClient {
131
131
  /**
132
132
  * List all commands
133
133
  */
134
- list<ThrowOnError extends boolean = false>(options?: Options<CommandListData, ThrowOnError>): import("./client/types.js").RequestResult<CommandListResponses, unknown, ThrowOnError, "fields">;
134
+ list<ThrowOnError extends boolean = false>(options?: Options<CommandListData, ThrowOnError>): import("./client/types.gen.js").RequestResult<CommandListResponses, unknown, ThrowOnError, "fields">;
135
135
  }
136
136
  declare class Find extends _HeyApiClient {
137
137
  /**
138
138
  * Find text in files
139
139
  */
140
- text<ThrowOnError extends boolean = false>(options: Options<FindTextData, ThrowOnError>): import("./client/types.js").RequestResult<FindTextResponses, unknown, ThrowOnError, "fields">;
140
+ text<ThrowOnError extends boolean = false>(options: Options<FindTextData, ThrowOnError>): import("./client/types.gen.js").RequestResult<FindTextResponses, unknown, ThrowOnError, "fields">;
141
141
  /**
142
142
  * Find files
143
143
  */
144
- files<ThrowOnError extends boolean = false>(options: Options<FindFilesData, ThrowOnError>): import("./client/types.js").RequestResult<FindFilesResponses, unknown, ThrowOnError, "fields">;
144
+ files<ThrowOnError extends boolean = false>(options: Options<FindFilesData, ThrowOnError>): import("./client/types.gen.js").RequestResult<FindFilesResponses, unknown, ThrowOnError, "fields">;
145
145
  /**
146
146
  * Find workspace symbols
147
147
  */
148
- symbols<ThrowOnError extends boolean = false>(options: Options<FindSymbolsData, ThrowOnError>): import("./client/types.js").RequestResult<FindSymbolsResponses, unknown, ThrowOnError, "fields">;
148
+ symbols<ThrowOnError extends boolean = false>(options: Options<FindSymbolsData, ThrowOnError>): import("./client/types.gen.js").RequestResult<FindSymbolsResponses, unknown, ThrowOnError, "fields">;
149
149
  }
150
150
  declare class File extends _HeyApiClient {
151
+ /**
152
+ * List files and directories
153
+ */
154
+ list<ThrowOnError extends boolean = false>(options: Options<FileListData, ThrowOnError>): import("./client/types.gen.js").RequestResult<FileListResponses, unknown, ThrowOnError, "fields">;
151
155
  /**
152
156
  * Read a file
153
157
  */
154
- read<ThrowOnError extends boolean = false>(options: Options<FileReadData, ThrowOnError>): import("./client/types.js").RequestResult<FileReadResponses, unknown, ThrowOnError, "fields">;
158
+ read<ThrowOnError extends boolean = false>(options: Options<FileReadData, ThrowOnError>): import("./client/types.gen.js").RequestResult<FileReadResponses, unknown, ThrowOnError, "fields">;
155
159
  /**
156
160
  * Get file status
157
161
  */
158
- status<ThrowOnError extends boolean = false>(options?: Options<FileStatusData, ThrowOnError>): import("./client/types.js").RequestResult<FileStatusResponses, unknown, ThrowOnError, "fields">;
162
+ status<ThrowOnError extends boolean = false>(options?: Options<FileStatusData, ThrowOnError>): import("./client/types.gen.js").RequestResult<FileStatusResponses, unknown, ThrowOnError, "fields">;
159
163
  }
160
164
  declare class Tui extends _HeyApiClient {
161
165
  /**
162
166
  * Append prompt to the TUI
163
167
  */
164
- appendPrompt<ThrowOnError extends boolean = false>(options?: Options<TuiAppendPromptData, ThrowOnError>): import("./client/types.js").RequestResult<TuiAppendPromptResponses, unknown, ThrowOnError, "fields">;
168
+ appendPrompt<ThrowOnError extends boolean = false>(options?: Options<TuiAppendPromptData, ThrowOnError>): import("./client/types.gen.js").RequestResult<TuiAppendPromptResponses, unknown, ThrowOnError, "fields">;
165
169
  /**
166
170
  * Open the help dialog
167
171
  */
168
- openHelp<ThrowOnError extends boolean = false>(options?: Options<TuiOpenHelpData, ThrowOnError>): import("./client/types.js").RequestResult<TuiOpenHelpResponses, unknown, ThrowOnError, "fields">;
172
+ openHelp<ThrowOnError extends boolean = false>(options?: Options<TuiOpenHelpData, ThrowOnError>): import("./client/types.gen.js").RequestResult<TuiOpenHelpResponses, unknown, ThrowOnError, "fields">;
169
173
  /**
170
174
  * Open the session dialog
171
175
  */
172
- openSessions<ThrowOnError extends boolean = false>(options?: Options<TuiOpenSessionsData, ThrowOnError>): import("./client/types.js").RequestResult<TuiOpenSessionsResponses, unknown, ThrowOnError, "fields">;
176
+ openSessions<ThrowOnError extends boolean = false>(options?: Options<TuiOpenSessionsData, ThrowOnError>): import("./client/types.gen.js").RequestResult<TuiOpenSessionsResponses, unknown, ThrowOnError, "fields">;
173
177
  /**
174
178
  * Open the theme dialog
175
179
  */
176
- openThemes<ThrowOnError extends boolean = false>(options?: Options<TuiOpenThemesData, ThrowOnError>): import("./client/types.js").RequestResult<TuiOpenThemesResponses, unknown, ThrowOnError, "fields">;
180
+ openThemes<ThrowOnError extends boolean = false>(options?: Options<TuiOpenThemesData, ThrowOnError>): import("./client/types.gen.js").RequestResult<TuiOpenThemesResponses, unknown, ThrowOnError, "fields">;
177
181
  /**
178
182
  * Open the model dialog
179
183
  */
180
- openModels<ThrowOnError extends boolean = false>(options?: Options<TuiOpenModelsData, ThrowOnError>): import("./client/types.js").RequestResult<TuiOpenModelsResponses, unknown, ThrowOnError, "fields">;
184
+ openModels<ThrowOnError extends boolean = false>(options?: Options<TuiOpenModelsData, ThrowOnError>): import("./client/types.gen.js").RequestResult<TuiOpenModelsResponses, unknown, ThrowOnError, "fields">;
181
185
  /**
182
186
  * Submit the prompt
183
187
  */
184
- submitPrompt<ThrowOnError extends boolean = false>(options?: Options<TuiSubmitPromptData, ThrowOnError>): import("./client/types.js").RequestResult<TuiSubmitPromptResponses, unknown, ThrowOnError, "fields">;
188
+ submitPrompt<ThrowOnError extends boolean = false>(options?: Options<TuiSubmitPromptData, ThrowOnError>): import("./client/types.gen.js").RequestResult<TuiSubmitPromptResponses, unknown, ThrowOnError, "fields">;
185
189
  /**
186
190
  * Clear the prompt
187
191
  */
188
- clearPrompt<ThrowOnError extends boolean = false>(options?: Options<TuiClearPromptData, ThrowOnError>): import("./client/types.js").RequestResult<TuiClearPromptResponses, unknown, ThrowOnError, "fields">;
192
+ clearPrompt<ThrowOnError extends boolean = false>(options?: Options<TuiClearPromptData, ThrowOnError>): import("./client/types.gen.js").RequestResult<TuiClearPromptResponses, unknown, ThrowOnError, "fields">;
189
193
  /**
190
194
  * Execute a TUI command (e.g. agent_cycle)
191
195
  */
192
- executeCommand<ThrowOnError extends boolean = false>(options?: Options<TuiExecuteCommandData, ThrowOnError>): import("./client/types.js").RequestResult<TuiExecuteCommandResponses, unknown, ThrowOnError, "fields">;
196
+ executeCommand<ThrowOnError extends boolean = false>(options?: Options<TuiExecuteCommandData, ThrowOnError>): import("./client/types.gen.js").RequestResult<TuiExecuteCommandResponses, unknown, ThrowOnError, "fields">;
193
197
  /**
194
198
  * Show a toast notification in the TUI
195
199
  */
196
- showToast<ThrowOnError extends boolean = false>(options?: Options<TuiShowToastData, ThrowOnError>): import("./client/types.js").RequestResult<TuiShowToastResponses, unknown, ThrowOnError, "fields">;
200
+ showToast<ThrowOnError extends boolean = false>(options?: Options<TuiShowToastData, ThrowOnError>): import("./client/types.gen.js").RequestResult<TuiShowToastResponses, unknown, ThrowOnError, "fields">;
197
201
  }
198
202
  declare class Auth extends _HeyApiClient {
199
203
  /**
200
204
  * Set authentication credentials
201
205
  */
202
- set<ThrowOnError extends boolean = false>(options: Options<AuthSetData, ThrowOnError>): import("./client/types.js").RequestResult<AuthSetResponses, AuthSetErrors, ThrowOnError, "fields">;
206
+ set<ThrowOnError extends boolean = false>(options: Options<AuthSetData, ThrowOnError>): import("./client/types.gen.js").RequestResult<AuthSetResponses, AuthSetErrors, ThrowOnError, "fields">;
203
207
  }
204
208
  export declare class OpencodeClient extends _HeyApiClient {
205
209
  /**
206
210
  * Respond to a permission request
207
211
  */
208
- postSessionByIdPermissionsByPermissionId<ThrowOnError extends boolean = false>(options: Options<PostSessionByIdPermissionsByPermissionIdData, ThrowOnError>): import("./client/types.js").RequestResult<PostSessionByIdPermissionsByPermissionIdResponses, unknown, ThrowOnError, "fields">;
212
+ postSessionByIdPermissionsByPermissionId<ThrowOnError extends boolean = false>(options: Options<PostSessionByIdPermissionsByPermissionIdData, ThrowOnError>): import("./client/types.gen.js").RequestResult<PostSessionByIdPermissionsByPermissionIdResponses, unknown, ThrowOnError, "fields">;
209
213
  event: Event;
210
214
  app: App;
211
215
  config: Config;
@@ -13,7 +13,7 @@ class Event extends _HeyApiClient {
13
13
  * Get events
14
14
  */
15
15
  subscribe(options) {
16
- return (options?.client ?? this._client).get({
16
+ return (options?.client ?? this._client).get.sse({
17
17
  url: "/event",
18
18
  ...options,
19
19
  });
@@ -318,12 +318,21 @@ class Find extends _HeyApiClient {
318
318
  }
319
319
  }
320
320
  class File extends _HeyApiClient {
321
+ /**
322
+ * List files and directories
323
+ */
324
+ list(options) {
325
+ return (options.client ?? this._client).get({
326
+ url: "/file",
327
+ ...options,
328
+ });
329
+ }
321
330
  /**
322
331
  * Read a file
323
332
  */
324
333
  read(options) {
325
334
  return (options.client ?? this._client).get({
326
- url: "/file",
335
+ url: "/file/content",
327
336
  ...options,
328
337
  });
329
338
  }
@@ -461,6 +461,7 @@ export type App = {
461
461
  hostname: string;
462
462
  git: boolean;
463
463
  path: {
464
+ home: string;
464
465
  config: string;
465
466
  data: string;
466
467
  root: string;
@@ -1014,6 +1015,12 @@ export type Symbol = {
1014
1015
  range: Range;
1015
1016
  };
1016
1017
  };
1018
+ export type FileNode = {
1019
+ name: string;
1020
+ path: string;
1021
+ type: "file" | "directory";
1022
+ ignored: boolean;
1023
+ };
1017
1024
  export type File = {
1018
1025
  path: string;
1019
1026
  added: number;
@@ -1580,7 +1587,7 @@ export type FindSymbolsResponses = {
1580
1587
  200: Array<Symbol>;
1581
1588
  };
1582
1589
  export type FindSymbolsResponse = FindSymbolsResponses[keyof FindSymbolsResponses];
1583
- export type FileReadData = {
1590
+ export type FileListData = {
1584
1591
  body?: never;
1585
1592
  path?: never;
1586
1593
  query: {
@@ -1588,6 +1595,21 @@ export type FileReadData = {
1588
1595
  };
1589
1596
  url: "/file";
1590
1597
  };
1598
+ export type FileListResponses = {
1599
+ /**
1600
+ * Files and directories
1601
+ */
1602
+ 200: Array<FileNode>;
1603
+ };
1604
+ export type FileListResponse = FileListResponses[keyof FileListResponses];
1605
+ export type FileReadData = {
1606
+ body?: never;
1607
+ path?: never;
1608
+ query: {
1609
+ path: string;
1610
+ };
1611
+ url: "/file/content";
1612
+ };
1591
1613
  export type FileReadResponses = {
1592
1614
  /**
1593
1615
  * File content
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@opencode-ai/sdk",
4
- "version": "0.5.28",
4
+ "version": "0.5.29",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "typecheck": "tsc --noEmit"
@@ -29,6 +29,6 @@
29
29
  "@tsconfig/node22": "22.0.2"
30
30
  },
31
31
  "dependencies": {
32
- "@hey-api/openapi-ts": "0.80.1"
32
+ "@hey-api/openapi-ts": "0.81.0"
33
33
  }
34
34
  }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
File without changes
File without changes