summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/js
diff options
context:
space:
mode:
authorPaolo Ricciuti <[email protected]>2026-01-04 16:12:54 +0100
committerGitHub <[email protected]>2026-01-04 09:12:54 -0600
commit21dc3c24d9243d81fdc1c3b23aa1f160df213a50 (patch)
tree23a8f343c93a1a4d2fa418c8329433ecd7686708 /packages/sdk/js
parente00621cb171b21b2d1d7fd8c55b04601a469a214 (diff)
downloadopencode-21dc3c24d9243d81fdc1c3b23aa1f160df213a50.tar.gz
opencode-21dc3c24d9243d81fdc1c3b23aa1f160df213a50.zip
feat: mcp resources (#6542)
Diffstat (limited to 'packages/sdk/js')
-rw-r--r--packages/sdk/js/src/v2/gen/sdk.gen.ts28
-rw-r--r--packages/sdk/js/src/v2/gen/types.gen.ts38
2 files changed, 65 insertions, 1 deletions
diff --git a/packages/sdk/js/src/v2/gen/sdk.gen.ts b/packages/sdk/js/src/v2/gen/sdk.gen.ts
index 01de8c183..81d50b28e 100644
--- a/packages/sdk/js/src/v2/gen/sdk.gen.ts
+++ b/packages/sdk/js/src/v2/gen/sdk.gen.ts
@@ -21,6 +21,7 @@ import type {
EventTuiPromptAppend,
EventTuiSessionSelect,
EventTuiToastShow,
+ ExperimentalResourceListResponses,
FileListResponses,
FilePartInput,
FileReadResponses,
@@ -2431,6 +2432,31 @@ export class Mcp extends HeyApiClient {
auth = new Auth({ client: this.client })
}
+export class Resource extends HeyApiClient {
+ /**
+ * Get MCP resources
+ *
+ * Get all available MCP resources from connected servers. Optionally filter by name.
+ */
+ public list<ThrowOnError extends boolean = false>(
+ parameters?: {
+ directory?: string
+ },
+ options?: Options<never, ThrowOnError>,
+ ) {
+ const params = buildClientParams([parameters], [{ args: [{ in: "query", key: "directory" }] }])
+ return (options?.client ?? this.client).get<ExperimentalResourceListResponses, unknown, ThrowOnError>({
+ url: "/experimental/resource",
+ ...options,
+ ...params,
+ })
+ }
+}
+
+export class Experimental extends HeyApiClient {
+ resource = new Resource({ client: this.client })
+}
+
export class Lsp extends HeyApiClient {
/**
* Get LSP status
@@ -2873,6 +2899,8 @@ export class OpencodeClient extends HeyApiClient {
mcp = new Mcp({ client: this.client })
+ experimental = new Experimental({ client: this.client })
+
lsp = new Lsp({ client: this.client })
formatter = new Formatter({ client: this.client })
diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts
index e42d2ed22..5ca8fa8f6 100644
--- a/packages/sdk/js/src/v2/gen/types.gen.ts
+++ b/packages/sdk/js/src/v2/gen/types.gen.ts
@@ -252,7 +252,14 @@ export type SymbolSource = {
kind: number
}
-export type FilePartSource = FileSource | SymbolSource
+export type ResourceSource = {
+ text: FilePartSourceText
+ type: "resource"
+ clientName: string
+ uri: string
+}
+
+export type FilePartSource = FileSource | SymbolSource | ResourceSource
export type FilePart = {
id: string
@@ -1953,6 +1960,14 @@ export type McpStatus =
| McpStatusNeedsAuth
| McpStatusNeedsClientRegistration
+export type McpResource = {
+ name: string
+ uri: string
+ description?: string
+ mimeType?: string
+ client: string
+}
+
export type LspStatus = {
id: string
name: string
@@ -4155,6 +4170,27 @@ export type McpDisconnectResponses = {
export type McpDisconnectResponse = McpDisconnectResponses[keyof McpDisconnectResponses]
+export type ExperimentalResourceListData = {
+ body?: never
+ path?: never
+ query?: {
+ directory?: string
+ }
+ url: "/experimental/resource"
+}
+
+export type ExperimentalResourceListResponses = {
+ /**
+ * MCP resources
+ */
+ 200: {
+ [key: string]: McpResource
+ }
+}
+
+export type ExperimentalResourceListResponse =
+ ExperimentalResourceListResponses[keyof ExperimentalResourceListResponses]
+
export type LspStatusData = {
body?: never
path?: never