Skip to content

Commit 33a90a9

Browse files
chore(sdk): regenerate OpenAPI for hot reload
1 parent a6f2f4c commit 33a90a9

3 files changed

Lines changed: 240 additions & 33 deletions

File tree

packages/sdk/js/src/v2/gen/sdk.gen.ts

Lines changed: 83 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import type {
2424
EventTuiPromptAppend,
2525
EventTuiSessionSelect,
2626
EventTuiToastShow,
27+
ExperimentalHotreloadApplyErrors,
28+
ExperimentalHotreloadApplyResponses,
2729
ExperimentalResourceListResponses,
2830
FileListResponses,
2931
FilePartInput,
@@ -719,6 +721,82 @@ export class Config2 extends HeyApiClient {
719721
}
720722
}
721723

724+
export class Hotreload extends HeyApiClient {
725+
/**
726+
* Apply hot reload
727+
*
728+
* Trigger an in-place reload of cached config/skills/agents/commands for the current instance. This is experimental and session-aware.
729+
*/
730+
public apply<ThrowOnError extends boolean = false>(
731+
parameters?: {
732+
directory?: string
733+
file?: string
734+
event?: "add" | "change" | "unlink"
735+
},
736+
options?: Options<never, ThrowOnError>,
737+
) {
738+
const params = buildClientParams(
739+
[parameters],
740+
[
741+
{
742+
args: [
743+
{ in: "query", key: "directory" },
744+
{ in: "body", key: "file" },
745+
{ in: "body", key: "event" },
746+
],
747+
},
748+
],
749+
)
750+
return (options?.client ?? this.client).post<
751+
ExperimentalHotreloadApplyResponses,
752+
ExperimentalHotreloadApplyErrors,
753+
ThrowOnError
754+
>({
755+
url: "/experimental/hotreload",
756+
...options,
757+
...params,
758+
headers: {
759+
"Content-Type": "application/json",
760+
...options?.headers,
761+
...params.headers,
762+
},
763+
})
764+
}
765+
}
766+
767+
export class Resource extends HeyApiClient {
768+
/**
769+
* Get MCP resources
770+
*
771+
* Get all available MCP resources from connected servers. Optionally filter by name.
772+
*/
773+
public list<ThrowOnError extends boolean = false>(
774+
parameters?: {
775+
directory?: string
776+
},
777+
options?: Options<never, ThrowOnError>,
778+
) {
779+
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
780+
return (options?.client ?? this.client).get<ExperimentalResourceListResponses, unknown, ThrowOnError>({
781+
url: "/experimental/resource",
782+
...options,
783+
...params,
784+
})
785+
}
786+
}
787+
788+
export class Experimental extends HeyApiClient {
789+
private _hotreload?: Hotreload
790+
get hotreload(): Hotreload {
791+
return (this._hotreload ??= new Hotreload({ client: this.client }))
792+
}
793+
794+
private _resource?: Resource
795+
get resource(): Resource {
796+
return (this._resource ??= new Resource({ client: this.client }))
797+
}
798+
}
799+
722800
export class Tool extends HeyApiClient {
723801
/**
724802
* List tool IDs
@@ -898,34 +976,6 @@ export class Worktree extends HeyApiClient {
898976
}
899977
}
900978

901-
export class Resource extends HeyApiClient {
902-
/**
903-
* Get MCP resources
904-
*
905-
* Get all available MCP resources from connected servers. Optionally filter by name.
906-
*/
907-
public list<ThrowOnError extends boolean = false>(
908-
parameters?: {
909-
directory?: string
910-
},
911-
options?: Options<never, ThrowOnError>,
912-
) {
913-
const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
914-
return (options?.client ?? this.client).get<ExperimentalResourceListResponses, unknown, ThrowOnError>({
915-
url: "/experimental/resource",
916-
...options,
917-
...params,
918-
})
919-
}
920-
}
921-
922-
export class Experimental extends HeyApiClient {
923-
private _resource?: Resource
924-
get resource(): Resource {
925-
return (this._resource ??= new Resource({ client: this.client }))
926-
}
927-
}
928-
929979
export class Session extends HeyApiClient {
930980
/**
931981
* List sessions
@@ -3216,6 +3266,11 @@ export class OpencodeClient extends HeyApiClient {
32163266
return (this._config ??= new Config2({ client: this.client }))
32173267
}
32183268

3269+
private _experimental?: Experimental
3270+
get experimental(): Experimental {
3271+
return (this._experimental ??= new Experimental({ client: this.client }))
3272+
}
3273+
32193274
private _tool?: Tool
32203275
get tool(): Tool {
32213276
return (this._tool ??= new Tool({ client: this.client }))
@@ -3226,11 +3281,6 @@ export class OpencodeClient extends HeyApiClient {
32263281
return (this._worktree ??= new Worktree({ client: this.client }))
32273282
}
32283283

3229-
private _experimental?: Experimental
3230-
get experimental(): Experimental {
3231-
return (this._experimental ??= new Experimental({ client: this.client }))
3232-
}
3233-
32343284
private _session?: Session
32353285
get session(): Session {
32363286
return (this._session ??= new Session({ client: this.client }))

packages/sdk/js/src/v2/gen/types.gen.ts

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -935,6 +935,14 @@ export type EventWorktreeFailed = {
935935
}
936936
}
937937

938+
export type EventOpencodeHotreloadApplied = {
939+
type: "opencode.hotreload.applied"
940+
properties: {
941+
file: string
942+
event: "add" | "change" | "unlink"
943+
}
944+
}
945+
938946
export type Event =
939947
| EventInstallationUpdated
940948
| EventInstallationUpdateAvailable
@@ -978,6 +986,7 @@ export type Event =
978986
| EventPtyDeleted
979987
| EventWorktreeReady
980988
| EventWorktreeFailed
989+
| EventOpencodeHotreloadApplied
981990

982991
export type GlobalEvent = {
983992
directory: string
@@ -2005,6 +2014,14 @@ export type Provider = {
20052014
}
20062015
}
20072016

2017+
export type ExperimentalHotReloadResult = {
2018+
ok: boolean
2019+
enabled: boolean
2020+
queued?: boolean
2021+
sessions?: number
2022+
wait?: number
2023+
}
2024+
20082025
export type ToolIds = Array<string>
20092026

20102027
export type ToolListItem = {
@@ -2708,6 +2725,37 @@ export type ConfigProvidersResponses = {
27082725

27092726
export type ConfigProvidersResponse = ConfigProvidersResponses[keyof ConfigProvidersResponses]
27102727

2728+
export type ExperimentalHotreloadApplyData = {
2729+
body?: {
2730+
file?: string
2731+
event?: "add" | "change" | "unlink"
2732+
}
2733+
path?: never
2734+
query?: {
2735+
directory?: string
2736+
}
2737+
url: "/experimental/hotreload"
2738+
}
2739+
2740+
export type ExperimentalHotreloadApplyErrors = {
2741+
/**
2742+
* Bad request
2743+
*/
2744+
400: BadRequestError
2745+
}
2746+
2747+
export type ExperimentalHotreloadApplyError = ExperimentalHotreloadApplyErrors[keyof ExperimentalHotreloadApplyErrors]
2748+
2749+
export type ExperimentalHotreloadApplyResponses = {
2750+
/**
2751+
* Hot reload scheduled
2752+
*/
2753+
200: ExperimentalHotReloadResult
2754+
}
2755+
2756+
export type ExperimentalHotreloadApplyResponse =
2757+
ExperimentalHotreloadApplyResponses[keyof ExperimentalHotreloadApplyResponses]
2758+
27112759
export type ToolIdsData = {
27122760
body?: never
27132761
path?: never

packages/sdk/openapi.json

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -906,6 +906,68 @@
906906
]
907907
}
908908
},
909+
"/experimental/hotreload": {
910+
"post": {
911+
"operationId": "experimental.hotreload.apply",
912+
"parameters": [
913+
{
914+
"in": "query",
915+
"name": "directory",
916+
"schema": {
917+
"type": "string"
918+
}
919+
}
920+
],
921+
"summary": "Apply hot reload",
922+
"description": "Trigger an in-place reload of cached config/skills/agents/commands for the current instance. This is experimental and session-aware.",
923+
"responses": {
924+
"200": {
925+
"description": "Hot reload scheduled",
926+
"content": {
927+
"application/json": {
928+
"schema": {
929+
"$ref": "#/components/schemas/ExperimentalHotReloadResult"
930+
}
931+
}
932+
}
933+
},
934+
"400": {
935+
"description": "Bad request",
936+
"content": {
937+
"application/json": {
938+
"schema": {
939+
"$ref": "#/components/schemas/BadRequestError"
940+
}
941+
}
942+
}
943+
}
944+
},
945+
"requestBody": {
946+
"content": {
947+
"application/json": {
948+
"schema": {
949+
"type": "object",
950+
"properties": {
951+
"file": {
952+
"type": "string"
953+
},
954+
"event": {
955+
"type": "string",
956+
"enum": ["add", "change", "unlink"]
957+
}
958+
}
959+
}
960+
}
961+
}
962+
},
963+
"x-codeSamples": [
964+
{
965+
"lang": "js",
966+
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.hotreload.apply({\n ...\n})"
967+
}
968+
]
969+
}
970+
},
909971
"/experimental/tool/ids": {
910972
"get": {
911973
"operationId": "tool.ids",
@@ -8396,6 +8458,29 @@
83968458
},
83978459
"required": ["type", "properties"]
83988460
},
8461+
"Event.opencode.hotreload.applied": {
8462+
"type": "object",
8463+
"properties": {
8464+
"type": {
8465+
"type": "string",
8466+
"const": "opencode.hotreload.applied"
8467+
},
8468+
"properties": {
8469+
"type": "object",
8470+
"properties": {
8471+
"file": {
8472+
"type": "string"
8473+
},
8474+
"event": {
8475+
"type": "string",
8476+
"enum": ["add", "change", "unlink"]
8477+
}
8478+
},
8479+
"required": ["file", "event"]
8480+
}
8481+
},
8482+
"required": ["type", "properties"]
8483+
},
83998484
"Event": {
84008485
"anyOf": [
84018486
{
@@ -8523,6 +8608,9 @@
85238608
},
85248609
{
85258610
"$ref": "#/components/schemas/Event.worktree.failed"
8611+
},
8612+
{
8613+
"$ref": "#/components/schemas/Event.opencode.hotreload.applied"
85268614
}
85278615
]
85288616
},
@@ -10402,6 +10490,27 @@
1040210490
},
1040310491
"required": ["id", "name", "source", "env", "options", "models"]
1040410492
},
10493+
"ExperimentalHotReloadResult": {
10494+
"type": "object",
10495+
"properties": {
10496+
"ok": {
10497+
"type": "boolean"
10498+
},
10499+
"enabled": {
10500+
"type": "boolean"
10501+
},
10502+
"queued": {
10503+
"type": "boolean"
10504+
},
10505+
"sessions": {
10506+
"type": "number"
10507+
},
10508+
"wait": {
10509+
"type": "number"
10510+
}
10511+
},
10512+
"required": ["ok", "enabled"]
10513+
},
1040510514
"ToolIDs": {
1040610515
"type": "array",
1040710516
"items": {

0 commit comments

Comments
 (0)