Skip to content

Commit e06d443

Browse files
benjaminshafiigithub-actions[bot]
authored andcommitted
chore(sdk): regenerate OpenAPI for hot reload
1 parent 331d537 commit e06d443

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
@@ -941,6 +941,14 @@ export type EventWorktreeFailed = {
941941
}
942942
}
943943

944+
export type EventOpencodeHotreloadApplied = {
945+
type: "opencode.hotreload.applied"
946+
properties: {
947+
file: string
948+
event: "add" | "change" | "unlink"
949+
}
950+
}
951+
944952
export type Event =
945953
| EventInstallationUpdated
946954
| EventInstallationUpdateAvailable
@@ -985,6 +993,7 @@ export type Event =
985993
| EventPtyDeleted
986994
| EventWorktreeReady
987995
| EventWorktreeFailed
996+
| EventOpencodeHotreloadApplied
988997

989998
export type GlobalEvent = {
990999
directory: string
@@ -2012,6 +2021,14 @@ export type Provider = {
20122021
}
20132022
}
20142023

2024+
export type ExperimentalHotReloadResult = {
2025+
ok: boolean
2026+
enabled: boolean
2027+
queued?: boolean
2028+
sessions?: number
2029+
wait?: number
2030+
}
2031+
20152032
export type ToolIds = Array<string>
20162033

20172034
export type ToolListItem = {
@@ -2715,6 +2732,37 @@ export type ConfigProvidersResponses = {
27152732

27162733
export type ConfigProvidersResponse = ConfigProvidersResponses[keyof ConfigProvidersResponses]
27172734

2735+
export type ExperimentalHotreloadApplyData = {
2736+
body?: {
2737+
file?: string
2738+
event?: "add" | "change" | "unlink"
2739+
}
2740+
path?: never
2741+
query?: {
2742+
directory?: string
2743+
}
2744+
url: "/experimental/hotreload"
2745+
}
2746+
2747+
export type ExperimentalHotreloadApplyErrors = {
2748+
/**
2749+
* Bad request
2750+
*/
2751+
400: BadRequestError
2752+
}
2753+
2754+
export type ExperimentalHotreloadApplyError = ExperimentalHotreloadApplyErrors[keyof ExperimentalHotreloadApplyErrors]
2755+
2756+
export type ExperimentalHotreloadApplyResponses = {
2757+
/**
2758+
* Hot reload scheduled
2759+
*/
2760+
200: ExperimentalHotReloadResult
2761+
}
2762+
2763+
export type ExperimentalHotreloadApplyResponse =
2764+
ExperimentalHotreloadApplyResponses[keyof ExperimentalHotreloadApplyResponses]
2765+
27182766
export type ToolIdsData = {
27192767
body?: never
27202768
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",
@@ -8420,6 +8482,29 @@
84208482
},
84218483
"required": ["type", "properties"]
84228484
},
8485+
"Event.opencode.hotreload.applied": {
8486+
"type": "object",
8487+
"properties": {
8488+
"type": {
8489+
"type": "string",
8490+
"const": "opencode.hotreload.applied"
8491+
},
8492+
"properties": {
8493+
"type": "object",
8494+
"properties": {
8495+
"file": {
8496+
"type": "string"
8497+
},
8498+
"event": {
8499+
"type": "string",
8500+
"enum": ["add", "change", "unlink"]
8501+
}
8502+
},
8503+
"required": ["file", "event"]
8504+
}
8505+
},
8506+
"required": ["type", "properties"]
8507+
},
84238508
"Event": {
84248509
"anyOf": [
84258510
{
@@ -8550,6 +8635,9 @@
85508635
},
85518636
{
85528637
"$ref": "#/components/schemas/Event.worktree.failed"
8638+
},
8639+
{
8640+
"$ref": "#/components/schemas/Event.opencode.hotreload.applied"
85538641
}
85548642
]
85558643
},
@@ -10429,6 +10517,27 @@
1042910517
},
1043010518
"required": ["id", "name", "source", "env", "options", "models"]
1043110519
},
10520+
"ExperimentalHotReloadResult": {
10521+
"type": "object",
10522+
"properties": {
10523+
"ok": {
10524+
"type": "boolean"
10525+
},
10526+
"enabled": {
10527+
"type": "boolean"
10528+
},
10529+
"queued": {
10530+
"type": "boolean"
10531+
},
10532+
"sessions": {
10533+
"type": "number"
10534+
},
10535+
"wait": {
10536+
"type": "number"
10537+
}
10538+
},
10539+
"required": ["ok", "enabled"]
10540+
},
1043210541
"ToolIDs": {
1043310542
"type": "array",
1043410543
"items": {

0 commit comments

Comments
 (0)