From 6a91a682e48b0c72df7ab7e5d754b9b87cc5cff9 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Wed, 1 Jul 2026 00:53:22 -0400 Subject: [PATCH] feat(core): add plugin list endpoint Adds a plugin.list HTTP endpoint that reports currently loaded plugins, wires it through protocol, server, and generated clients, and merges it into sdk-next's plugin API. Also updates the sample plugin to register a primary agent instead of a subagent for local testing. --- .opencode/plugins/sample-agent.ts | 6 +- .../client/src/generated-effect/client.ts | 856 +++++++++--------- packages/client/src/generated/client.ts | 16 + packages/client/src/generated/types.ts | 15 + packages/core/src/plugin.ts | 6 + .../plugin/src/v2/effect/generated/api.ts | 842 ++++++++--------- packages/protocol/src/api.ts | 2 + packages/protocol/src/client.ts | 1 + packages/protocol/src/groups/plugin.ts | 27 + packages/schema/src/plugin.ts | 5 + packages/sdk-next/src/opencode.ts | 2 +- packages/server/src/handlers.ts | 2 + packages/server/src/handlers/plugin.ts | 13 + 13 files changed, 954 insertions(+), 839 deletions(-) create mode 100644 packages/protocol/src/groups/plugin.ts create mode 100644 packages/server/src/handlers/plugin.ts diff --git a/.opencode/plugins/sample-agent.ts b/.opencode/plugins/sample-agent.ts index a95b2af959..2a0bb61fd2 100644 --- a/.opencode/plugins/sample-agent.ts +++ b/.opencode/plugins/sample-agent.ts @@ -3,9 +3,9 @@ export default { setup: async (ctx) => { await ctx.agent.transform((agents) => { agents.update("sample-plugin-agent", (agent) => { - agent.description = "Example subagent registered by .opencode/plugins/sample-agent.ts" - agent.mode = "subagent" - agent.prompt = [ + agent.description = "Example primary agent registered by .opencode/plugins/sample-agent.ts" + agent.mode = "primary" + agent.system = [ "You are the sample plugin agent for this repository.", "Use this agent to verify that local plugin auto-discovery can add agents.", "Keep responses concise and explain which plugin registered you when asked.", diff --git a/packages/client/src/generated-effect/client.ts b/packages/client/src/generated-effect/client.ts index a06b945719..9747762001 100644 --- a/packages/client/src/generated-effect/client.ts +++ b/packages/client/src/generated-effect/client.ts @@ -32,18 +32,25 @@ const Endpoint2_0 = (raw: RawClient["server.agent"]) => (input?: Endpoint2_0Inpu const adaptGroup2 = (raw: RawClient["server.agent"]) => ({ list: Endpoint2_0(raw) }) -type Endpoint3_0Request = Parameters[0] -type Endpoint3_0Input = { - readonly workspace?: Endpoint3_0Request["query"]["workspace"] - readonly limit?: Endpoint3_0Request["query"]["limit"] - readonly order?: Endpoint3_0Request["query"]["order"] - readonly search?: Endpoint3_0Request["query"]["search"] - readonly directory?: Endpoint3_0Request["query"]["directory"] - readonly project?: Endpoint3_0Request["query"]["project"] - readonly subpath?: Endpoint3_0Request["query"]["subpath"] - readonly cursor?: Endpoint3_0Request["query"]["cursor"] +type Endpoint3_0Request = Parameters[0] +type Endpoint3_0Input = { readonly location?: Endpoint3_0Request["query"]["location"] } +const Endpoint3_0 = (raw: RawClient["server.plugin"]) => (input?: Endpoint3_0Input) => + raw["plugin.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) + +const adaptGroup3 = (raw: RawClient["server.plugin"]) => ({ list: Endpoint3_0(raw) }) + +type Endpoint4_0Request = Parameters[0] +type Endpoint4_0Input = { + readonly workspace?: Endpoint4_0Request["query"]["workspace"] + readonly limit?: Endpoint4_0Request["query"]["limit"] + readonly order?: Endpoint4_0Request["query"]["order"] + readonly search?: Endpoint4_0Request["query"]["search"] + readonly directory?: Endpoint4_0Request["query"]["directory"] + readonly project?: Endpoint4_0Request["query"]["project"] + readonly subpath?: Endpoint4_0Request["query"]["subpath"] + readonly cursor?: Endpoint4_0Request["query"]["cursor"] } -const Endpoint3_0 = (raw: RawClient["server.session"]) => (input?: Endpoint3_0Input) => +const Endpoint4_0 = (raw: RawClient["server.session"]) => (input?: Endpoint4_0Input) => raw["session.list"]({ query: { workspace: input?.["workspace"], @@ -57,14 +64,14 @@ const Endpoint3_0 = (raw: RawClient["server.session"]) => (input?: Endpoint3_0In }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint3_1Request = Parameters[0] -type Endpoint3_1Input = { - readonly id?: Endpoint3_1Request["payload"]["id"] - readonly agent?: Endpoint3_1Request["payload"]["agent"] - readonly model?: Endpoint3_1Request["payload"]["model"] - readonly location?: Endpoint3_1Request["payload"]["location"] +type Endpoint4_1Request = Parameters[0] +type Endpoint4_1Input = { + readonly id?: Endpoint4_1Request["payload"]["id"] + readonly agent?: Endpoint4_1Request["payload"]["agent"] + readonly model?: Endpoint4_1Request["payload"]["model"] + readonly location?: Endpoint4_1Request["payload"]["location"] } -const Endpoint3_1 = (raw: RawClient["server.session"]) => (input?: Endpoint3_1Input) => +const Endpoint4_1 = (raw: RawClient["server.session"]) => (input?: Endpoint4_1Input) => raw["session.create"]({ payload: { id: input?.["id"], agent: input?.["agent"], model: input?.["model"], location: input?.["location"] }, }).pipe( @@ -72,70 +79,70 @@ const Endpoint3_1 = (raw: RawClient["server.session"]) => (input?: Endpoint3_1In Effect.map((value) => value.data), ) -const Endpoint3_2 = (raw: RawClient["server.session"]) => () => +const Endpoint4_2 = (raw: RawClient["server.session"]) => () => raw["session.active"]({}).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) -type Endpoint3_3Request = Parameters[0] -type Endpoint3_3Input = { readonly sessionID: Endpoint3_3Request["params"]["sessionID"] } -const Endpoint3_3 = (raw: RawClient["server.session"]) => (input: Endpoint3_3Input) => +type Endpoint4_3Request = Parameters[0] +type Endpoint4_3Input = { readonly sessionID: Endpoint4_3Request["params"]["sessionID"] } +const Endpoint4_3 = (raw: RawClient["server.session"]) => (input: Endpoint4_3Input) => raw["session.get"]({ params: { sessionID: input["sessionID"] } }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) -type Endpoint3_4Request = Parameters[0] -type Endpoint3_4Input = { - readonly sessionID: Endpoint3_4Request["params"]["sessionID"] - readonly messageID?: Endpoint3_4Request["payload"]["messageID"] +type Endpoint4_4Request = Parameters[0] +type Endpoint4_4Input = { + readonly sessionID: Endpoint4_4Request["params"]["sessionID"] + readonly messageID?: Endpoint4_4Request["payload"]["messageID"] } -const Endpoint3_4 = (raw: RawClient["server.session"]) => (input: Endpoint3_4Input) => +const Endpoint4_4 = (raw: RawClient["server.session"]) => (input: Endpoint4_4Input) => raw["session.fork"]({ params: { sessionID: input["sessionID"] }, payload: { messageID: input["messageID"] } }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) -type Endpoint3_5Request = Parameters[0] -type Endpoint3_5Input = { - readonly sessionID: Endpoint3_5Request["params"]["sessionID"] - readonly agent: Endpoint3_5Request["payload"]["agent"] +type Endpoint4_5Request = Parameters[0] +type Endpoint4_5Input = { + readonly sessionID: Endpoint4_5Request["params"]["sessionID"] + readonly agent: Endpoint4_5Request["payload"]["agent"] } -const Endpoint3_5 = (raw: RawClient["server.session"]) => (input: Endpoint3_5Input) => +const Endpoint4_5 = (raw: RawClient["server.session"]) => (input: Endpoint4_5Input) => raw["session.switchAgent"]({ params: { sessionID: input["sessionID"] }, payload: { agent: input["agent"] } }).pipe( Effect.mapError(mapClientError), ) -type Endpoint3_6Request = Parameters[0] -type Endpoint3_6Input = { - readonly sessionID: Endpoint3_6Request["params"]["sessionID"] - readonly model: Endpoint3_6Request["payload"]["model"] +type Endpoint4_6Request = Parameters[0] +type Endpoint4_6Input = { + readonly sessionID: Endpoint4_6Request["params"]["sessionID"] + readonly model: Endpoint4_6Request["payload"]["model"] } -const Endpoint3_6 = (raw: RawClient["server.session"]) => (input: Endpoint3_6Input) => +const Endpoint4_6 = (raw: RawClient["server.session"]) => (input: Endpoint4_6Input) => raw["session.switchModel"]({ params: { sessionID: input["sessionID"] }, payload: { model: input["model"] } }).pipe( Effect.mapError(mapClientError), ) -type Endpoint3_7Request = Parameters[0] -type Endpoint3_7Input = { - readonly sessionID: Endpoint3_7Request["params"]["sessionID"] - readonly title: Endpoint3_7Request["payload"]["title"] +type Endpoint4_7Request = Parameters[0] +type Endpoint4_7Input = { + readonly sessionID: Endpoint4_7Request["params"]["sessionID"] + readonly title: Endpoint4_7Request["payload"]["title"] } -const Endpoint3_7 = (raw: RawClient["server.session"]) => (input: Endpoint3_7Input) => +const Endpoint4_7 = (raw: RawClient["server.session"]) => (input: Endpoint4_7Input) => raw["session.rename"]({ params: { sessionID: input["sessionID"] }, payload: { title: input["title"] } }).pipe( Effect.mapError(mapClientError), ) -type Endpoint3_8Request = Parameters[0] -type Endpoint3_8Input = { - readonly sessionID: Endpoint3_8Request["params"]["sessionID"] - readonly id?: Endpoint3_8Request["payload"]["id"] - readonly prompt: Endpoint3_8Request["payload"]["prompt"] - readonly delivery?: Endpoint3_8Request["payload"]["delivery"] - readonly resume?: Endpoint3_8Request["payload"]["resume"] +type Endpoint4_8Request = Parameters[0] +type Endpoint4_8Input = { + readonly sessionID: Endpoint4_8Request["params"]["sessionID"] + readonly id?: Endpoint4_8Request["payload"]["id"] + readonly prompt: Endpoint4_8Request["payload"]["prompt"] + readonly delivery?: Endpoint4_8Request["payload"]["delivery"] + readonly resume?: Endpoint4_8Request["payload"]["resume"] } -const Endpoint3_8 = (raw: RawClient["server.session"]) => (input: Endpoint3_8Input) => +const Endpoint4_8 = (raw: RawClient["server.session"]) => (input: Endpoint4_8Input) => raw["session.prompt"]({ params: { sessionID: input["sessionID"] }, payload: { id: input["id"], prompt: input["prompt"], delivery: input["delivery"], resume: input["resume"] }, @@ -144,36 +151,36 @@ const Endpoint3_8 = (raw: RawClient["server.session"]) => (input: Endpoint3_8Inp Effect.map((value) => value.data), ) -type Endpoint3_9Request = Parameters[0] -type Endpoint3_9Input = { - readonly sessionID: Endpoint3_9Request["params"]["sessionID"] - readonly id?: Endpoint3_9Request["payload"]["id"] - readonly skill: Endpoint3_9Request["payload"]["skill"] - readonly resume?: Endpoint3_9Request["payload"]["resume"] +type Endpoint4_9Request = Parameters[0] +type Endpoint4_9Input = { + readonly sessionID: Endpoint4_9Request["params"]["sessionID"] + readonly id?: Endpoint4_9Request["payload"]["id"] + readonly skill: Endpoint4_9Request["payload"]["skill"] + readonly resume?: Endpoint4_9Request["payload"]["resume"] } -const Endpoint3_9 = (raw: RawClient["server.session"]) => (input: Endpoint3_9Input) => +const Endpoint4_9 = (raw: RawClient["server.session"]) => (input: Endpoint4_9Input) => raw["session.skill"]({ params: { sessionID: input["sessionID"] }, payload: { id: input["id"], skill: input["skill"], resume: input["resume"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint3_10Request = Parameters[0] -type Endpoint3_10Input = { readonly sessionID: Endpoint3_10Request["params"]["sessionID"] } -const Endpoint3_10 = (raw: RawClient["server.session"]) => (input: Endpoint3_10Input) => +type Endpoint4_10Request = Parameters[0] +type Endpoint4_10Input = { readonly sessionID: Endpoint4_10Request["params"]["sessionID"] } +const Endpoint4_10 = (raw: RawClient["server.session"]) => (input: Endpoint4_10Input) => raw["session.compact"]({ params: { sessionID: input["sessionID"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint3_11Request = Parameters[0] -type Endpoint3_11Input = { readonly sessionID: Endpoint3_11Request["params"]["sessionID"] } -const Endpoint3_11 = (raw: RawClient["server.session"]) => (input: Endpoint3_11Input) => +type Endpoint4_11Request = Parameters[0] +type Endpoint4_11Input = { readonly sessionID: Endpoint4_11Request["params"]["sessionID"] } +const Endpoint4_11 = (raw: RawClient["server.session"]) => (input: Endpoint4_11Input) => raw["session.wait"]({ params: { sessionID: input["sessionID"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint3_12Request = Parameters[0] -type Endpoint3_12Input = { - readonly sessionID: Endpoint3_12Request["params"]["sessionID"] - readonly messageID: Endpoint3_12Request["payload"]["messageID"] - readonly files?: Endpoint3_12Request["payload"]["files"] +type Endpoint4_12Request = Parameters[0] +type Endpoint4_12Input = { + readonly sessionID: Endpoint4_12Request["params"]["sessionID"] + readonly messageID: Endpoint4_12Request["payload"]["messageID"] + readonly files?: Endpoint4_12Request["payload"]["files"] } -const Endpoint3_12 = (raw: RawClient["server.session"]) => (input: Endpoint3_12Input) => +const Endpoint4_12 = (raw: RawClient["server.session"]) => (input: Endpoint4_12Input) => raw["session.revert.stage"]({ params: { sessionID: input["sessionID"] }, payload: { messageID: input["messageID"], files: input["files"] }, @@ -182,42 +189,42 @@ const Endpoint3_12 = (raw: RawClient["server.session"]) => (input: Endpoint3_12I Effect.map((value) => value.data), ) -type Endpoint3_13Request = Parameters[0] -type Endpoint3_13Input = { readonly sessionID: Endpoint3_13Request["params"]["sessionID"] } -const Endpoint3_13 = (raw: RawClient["server.session"]) => (input: Endpoint3_13Input) => +type Endpoint4_13Request = Parameters[0] +type Endpoint4_13Input = { readonly sessionID: Endpoint4_13Request["params"]["sessionID"] } +const Endpoint4_13 = (raw: RawClient["server.session"]) => (input: Endpoint4_13Input) => raw["session.revert.clear"]({ params: { sessionID: input["sessionID"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint3_14Request = Parameters[0] -type Endpoint3_14Input = { readonly sessionID: Endpoint3_14Request["params"]["sessionID"] } -const Endpoint3_14 = (raw: RawClient["server.session"]) => (input: Endpoint3_14Input) => +type Endpoint4_14Request = Parameters[0] +type Endpoint4_14Input = { readonly sessionID: Endpoint4_14Request["params"]["sessionID"] } +const Endpoint4_14 = (raw: RawClient["server.session"]) => (input: Endpoint4_14Input) => raw["session.revert.commit"]({ params: { sessionID: input["sessionID"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint3_15Request = Parameters[0] -type Endpoint3_15Input = { readonly sessionID: Endpoint3_15Request["params"]["sessionID"] } -const Endpoint3_15 = (raw: RawClient["server.session"]) => (input: Endpoint3_15Input) => +type Endpoint4_15Request = Parameters[0] +type Endpoint4_15Input = { readonly sessionID: Endpoint4_15Request["params"]["sessionID"] } +const Endpoint4_15 = (raw: RawClient["server.session"]) => (input: Endpoint4_15Input) => raw["session.context"]({ params: { sessionID: input["sessionID"] } }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) -type Endpoint3_16Request = Parameters[0] -type Endpoint3_16Input = { - readonly sessionID: Endpoint3_16Request["params"]["sessionID"] - readonly limit?: Endpoint3_16Request["query"]["limit"] - readonly after?: Endpoint3_16Request["query"]["after"] +type Endpoint4_16Request = Parameters[0] +type Endpoint4_16Input = { + readonly sessionID: Endpoint4_16Request["params"]["sessionID"] + readonly limit?: Endpoint4_16Request["query"]["limit"] + readonly after?: Endpoint4_16Request["query"]["after"] } -const Endpoint3_16 = (raw: RawClient["server.session"]) => (input: Endpoint3_16Input) => +const Endpoint4_16 = (raw: RawClient["server.session"]) => (input: Endpoint4_16Input) => raw["session.history"]({ params: { sessionID: input["sessionID"] }, query: { limit: input["limit"], after: input["after"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint3_17Request = Parameters[0] -type Endpoint3_17Input = { - readonly sessionID: Endpoint3_17Request["params"]["sessionID"] - readonly after?: Endpoint3_17Request["query"]["after"] +type Endpoint4_17Request = Parameters[0] +type Endpoint4_17Input = { + readonly sessionID: Endpoint4_17Request["params"]["sessionID"] + readonly after?: Endpoint4_17Request["query"]["after"] } -const Endpoint3_17 = (raw: RawClient["server.session"]) => (input: Endpoint3_17Input) => +const Endpoint4_17 = (raw: RawClient["server.session"]) => (input: Endpoint4_17Input) => Stream.unwrap( raw["session.events"]({ params: { sessionID: input["sessionID"] }, query: { after: input["after"] } }).pipe( Effect.mapError(mapClientError), @@ -225,74 +232,74 @@ const Endpoint3_17 = (raw: RawClient["server.session"]) => (input: Endpoint3_17I ), ) -type Endpoint3_18Request = Parameters[0] -type Endpoint3_18Input = { readonly sessionID: Endpoint3_18Request["params"]["sessionID"] } -const Endpoint3_18 = (raw: RawClient["server.session"]) => (input: Endpoint3_18Input) => +type Endpoint4_18Request = Parameters[0] +type Endpoint4_18Input = { readonly sessionID: Endpoint4_18Request["params"]["sessionID"] } +const Endpoint4_18 = (raw: RawClient["server.session"]) => (input: Endpoint4_18Input) => raw["session.interrupt"]({ params: { sessionID: input["sessionID"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint3_19Request = Parameters[0] -type Endpoint3_19Input = { - readonly sessionID: Endpoint3_19Request["params"]["sessionID"] - readonly messageID: Endpoint3_19Request["params"]["messageID"] +type Endpoint4_19Request = Parameters[0] +type Endpoint4_19Input = { + readonly sessionID: Endpoint4_19Request["params"]["sessionID"] + readonly messageID: Endpoint4_19Request["params"]["messageID"] } -const Endpoint3_19 = (raw: RawClient["server.session"]) => (input: Endpoint3_19Input) => +const Endpoint4_19 = (raw: RawClient["server.session"]) => (input: Endpoint4_19Input) => raw["session.message"]({ params: { sessionID: input["sessionID"], messageID: input["messageID"] } }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) -const adaptGroup3 = (raw: RawClient["server.session"]) => ({ - list: Endpoint3_0(raw), - create: Endpoint3_1(raw), - active: Endpoint3_2(raw), - get: Endpoint3_3(raw), - fork: Endpoint3_4(raw), - switchAgent: Endpoint3_5(raw), - switchModel: Endpoint3_6(raw), - rename: Endpoint3_7(raw), - prompt: Endpoint3_8(raw), - skill: Endpoint3_9(raw), - compact: Endpoint3_10(raw), - wait: Endpoint3_11(raw), - revertStage: Endpoint3_12(raw), - revertClear: Endpoint3_13(raw), - revertCommit: Endpoint3_14(raw), - context: Endpoint3_15(raw), - history: Endpoint3_16(raw), - events: Endpoint3_17(raw), - interrupt: Endpoint3_18(raw), - message: Endpoint3_19(raw), +const adaptGroup4 = (raw: RawClient["server.session"]) => ({ + list: Endpoint4_0(raw), + create: Endpoint4_1(raw), + active: Endpoint4_2(raw), + get: Endpoint4_3(raw), + fork: Endpoint4_4(raw), + switchAgent: Endpoint4_5(raw), + switchModel: Endpoint4_6(raw), + rename: Endpoint4_7(raw), + prompt: Endpoint4_8(raw), + skill: Endpoint4_9(raw), + compact: Endpoint4_10(raw), + wait: Endpoint4_11(raw), + revertStage: Endpoint4_12(raw), + revertClear: Endpoint4_13(raw), + revertCommit: Endpoint4_14(raw), + context: Endpoint4_15(raw), + history: Endpoint4_16(raw), + events: Endpoint4_17(raw), + interrupt: Endpoint4_18(raw), + message: Endpoint4_19(raw), }) -type Endpoint4_0Request = Parameters[0] -type Endpoint4_0Input = { - readonly sessionID: Endpoint4_0Request["params"]["sessionID"] - readonly limit?: Endpoint4_0Request["query"]["limit"] - readonly order?: Endpoint4_0Request["query"]["order"] - readonly cursor?: Endpoint4_0Request["query"]["cursor"] +type Endpoint5_0Request = Parameters[0] +type Endpoint5_0Input = { + readonly sessionID: Endpoint5_0Request["params"]["sessionID"] + readonly limit?: Endpoint5_0Request["query"]["limit"] + readonly order?: Endpoint5_0Request["query"]["order"] + readonly cursor?: Endpoint5_0Request["query"]["cursor"] } -const Endpoint4_0 = (raw: RawClient["server.message"]) => (input: Endpoint4_0Input) => +const Endpoint5_0 = (raw: RawClient["server.message"]) => (input: Endpoint5_0Input) => raw["session.messages"]({ params: { sessionID: input["sessionID"] }, query: { limit: input["limit"], order: input["order"], cursor: input["cursor"] }, }).pipe(Effect.mapError(mapClientError)) -const adaptGroup4 = (raw: RawClient["server.message"]) => ({ list: Endpoint4_0(raw) }) +const adaptGroup5 = (raw: RawClient["server.message"]) => ({ list: Endpoint5_0(raw) }) -type Endpoint5_0Request = Parameters[0] -type Endpoint5_0Input = { readonly location?: Endpoint5_0Request["query"]["location"] } -const Endpoint5_0 = (raw: RawClient["server.model"]) => (input?: Endpoint5_0Input) => +type Endpoint6_0Request = Parameters[0] +type Endpoint6_0Input = { readonly location?: Endpoint6_0Request["query"]["location"] } +const Endpoint6_0 = (raw: RawClient["server.model"]) => (input?: Endpoint6_0Input) => raw["model.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -const adaptGroup5 = (raw: RawClient["server.model"]) => ({ list: Endpoint5_0(raw) }) +const adaptGroup6 = (raw: RawClient["server.model"]) => ({ list: Endpoint6_0(raw) }) -type Endpoint6_0Request = Parameters[0] -type Endpoint6_0Input = { - readonly location?: Endpoint6_0Request["query"]["location"] - readonly prompt: Endpoint6_0Request["payload"]["prompt"] - readonly model?: Endpoint6_0Request["payload"]["model"] +type Endpoint7_0Request = Parameters[0] +type Endpoint7_0Input = { + readonly location?: Endpoint7_0Request["query"]["location"] + readonly prompt: Endpoint7_0Request["payload"]["prompt"] + readonly model?: Endpoint7_0Request["payload"]["model"] } -const Endpoint6_0 = (raw: RawClient["server.generate"]) => (input: Endpoint6_0Input) => +const Endpoint7_0 = (raw: RawClient["server.generate"]) => (input: Endpoint7_0Input) => raw["generate.text"]({ query: { location: input["location"] }, payload: { prompt: input["prompt"], model: input["model"] }, @@ -301,199 +308,199 @@ const Endpoint6_0 = (raw: RawClient["server.generate"]) => (input: Endpoint6_0In Effect.map((value) => value.data), ) -const adaptGroup6 = (raw: RawClient["server.generate"]) => ({ text: Endpoint6_0(raw) }) +const adaptGroup7 = (raw: RawClient["server.generate"]) => ({ text: Endpoint7_0(raw) }) -type Endpoint7_0Request = Parameters[0] -type Endpoint7_0Input = { readonly location?: Endpoint7_0Request["query"]["location"] } -const Endpoint7_0 = (raw: RawClient["server.provider"]) => (input?: Endpoint7_0Input) => +type Endpoint8_0Request = Parameters[0] +type Endpoint8_0Input = { readonly location?: Endpoint8_0Request["query"]["location"] } +const Endpoint8_0 = (raw: RawClient["server.provider"]) => (input?: Endpoint8_0Input) => raw["provider.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint7_1Request = Parameters[0] -type Endpoint7_1Input = { - readonly providerID: Endpoint7_1Request["params"]["providerID"] - readonly location?: Endpoint7_1Request["query"]["location"] +type Endpoint8_1Request = Parameters[0] +type Endpoint8_1Input = { + readonly providerID: Endpoint8_1Request["params"]["providerID"] + readonly location?: Endpoint8_1Request["query"]["location"] } -const Endpoint7_1 = (raw: RawClient["server.provider"]) => (input: Endpoint7_1Input) => +const Endpoint8_1 = (raw: RawClient["server.provider"]) => (input: Endpoint8_1Input) => raw["provider.get"]({ params: { providerID: input["providerID"] }, query: { location: input["location"] } }).pipe( Effect.mapError(mapClientError), ) -const adaptGroup7 = (raw: RawClient["server.provider"]) => ({ list: Endpoint7_0(raw), get: Endpoint7_1(raw) }) +const adaptGroup8 = (raw: RawClient["server.provider"]) => ({ list: Endpoint8_0(raw), get: Endpoint8_1(raw) }) -type Endpoint8_0Request = Parameters[0] -type Endpoint8_0Input = { readonly location?: Endpoint8_0Request["query"]["location"] } -const Endpoint8_0 = (raw: RawClient["server.integration"]) => (input?: Endpoint8_0Input) => +type Endpoint9_0Request = Parameters[0] +type Endpoint9_0Input = { readonly location?: Endpoint9_0Request["query"]["location"] } +const Endpoint9_0 = (raw: RawClient["server.integration"]) => (input?: Endpoint9_0Input) => raw["integration.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint8_1Request = Parameters[0] -type Endpoint8_1Input = { - readonly integrationID: Endpoint8_1Request["params"]["integrationID"] - readonly location?: Endpoint8_1Request["query"]["location"] +type Endpoint9_1Request = Parameters[0] +type Endpoint9_1Input = { + readonly integrationID: Endpoint9_1Request["params"]["integrationID"] + readonly location?: Endpoint9_1Request["query"]["location"] } -const Endpoint8_1 = (raw: RawClient["server.integration"]) => (input: Endpoint8_1Input) => +const Endpoint9_1 = (raw: RawClient["server.integration"]) => (input: Endpoint9_1Input) => raw["integration.get"]({ params: { integrationID: input["integrationID"] }, query: { location: input["location"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint8_2Request = Parameters[0] -type Endpoint8_2Input = { - readonly integrationID: Endpoint8_2Request["params"]["integrationID"] - readonly location?: Endpoint8_2Request["query"]["location"] - readonly key: Endpoint8_2Request["payload"]["key"] - readonly label?: Endpoint8_2Request["payload"]["label"] +type Endpoint9_2Request = Parameters[0] +type Endpoint9_2Input = { + readonly integrationID: Endpoint9_2Request["params"]["integrationID"] + readonly location?: Endpoint9_2Request["query"]["location"] + readonly key: Endpoint9_2Request["payload"]["key"] + readonly label?: Endpoint9_2Request["payload"]["label"] } -const Endpoint8_2 = (raw: RawClient["server.integration"]) => (input: Endpoint8_2Input) => +const Endpoint9_2 = (raw: RawClient["server.integration"]) => (input: Endpoint9_2Input) => raw["integration.connect.key"]({ params: { integrationID: input["integrationID"] }, query: { location: input["location"] }, payload: { key: input["key"], label: input["label"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint8_3Request = Parameters[0] -type Endpoint8_3Input = { - readonly integrationID: Endpoint8_3Request["params"]["integrationID"] - readonly location?: Endpoint8_3Request["query"]["location"] - readonly methodID: Endpoint8_3Request["payload"]["methodID"] - readonly inputs: Endpoint8_3Request["payload"]["inputs"] - readonly label?: Endpoint8_3Request["payload"]["label"] +type Endpoint9_3Request = Parameters[0] +type Endpoint9_3Input = { + readonly integrationID: Endpoint9_3Request["params"]["integrationID"] + readonly location?: Endpoint9_3Request["query"]["location"] + readonly methodID: Endpoint9_3Request["payload"]["methodID"] + readonly inputs: Endpoint9_3Request["payload"]["inputs"] + readonly label?: Endpoint9_3Request["payload"]["label"] } -const Endpoint8_3 = (raw: RawClient["server.integration"]) => (input: Endpoint8_3Input) => +const Endpoint9_3 = (raw: RawClient["server.integration"]) => (input: Endpoint9_3Input) => raw["integration.connect.oauth"]({ params: { integrationID: input["integrationID"] }, query: { location: input["location"] }, payload: { methodID: input["methodID"], inputs: input["inputs"], label: input["label"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint8_4Request = Parameters[0] -type Endpoint8_4Input = { - readonly attemptID: Endpoint8_4Request["params"]["attemptID"] - readonly location?: Endpoint8_4Request["query"]["location"] +type Endpoint9_4Request = Parameters[0] +type Endpoint9_4Input = { + readonly attemptID: Endpoint9_4Request["params"]["attemptID"] + readonly location?: Endpoint9_4Request["query"]["location"] } -const Endpoint8_4 = (raw: RawClient["server.integration"]) => (input: Endpoint8_4Input) => +const Endpoint9_4 = (raw: RawClient["server.integration"]) => (input: Endpoint9_4Input) => raw["integration.attempt.status"]({ params: { attemptID: input["attemptID"] }, query: { location: input["location"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint8_5Request = Parameters[0] -type Endpoint8_5Input = { - readonly attemptID: Endpoint8_5Request["params"]["attemptID"] - readonly location?: Endpoint8_5Request["query"]["location"] - readonly code?: Endpoint8_5Request["payload"]["code"] +type Endpoint9_5Request = Parameters[0] +type Endpoint9_5Input = { + readonly attemptID: Endpoint9_5Request["params"]["attemptID"] + readonly location?: Endpoint9_5Request["query"]["location"] + readonly code?: Endpoint9_5Request["payload"]["code"] } -const Endpoint8_5 = (raw: RawClient["server.integration"]) => (input: Endpoint8_5Input) => +const Endpoint9_5 = (raw: RawClient["server.integration"]) => (input: Endpoint9_5Input) => raw["integration.attempt.complete"]({ params: { attemptID: input["attemptID"] }, query: { location: input["location"] }, payload: { code: input["code"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint8_6Request = Parameters[0] -type Endpoint8_6Input = { - readonly attemptID: Endpoint8_6Request["params"]["attemptID"] - readonly location?: Endpoint8_6Request["query"]["location"] +type Endpoint9_6Request = Parameters[0] +type Endpoint9_6Input = { + readonly attemptID: Endpoint9_6Request["params"]["attemptID"] + readonly location?: Endpoint9_6Request["query"]["location"] } -const Endpoint8_6 = (raw: RawClient["server.integration"]) => (input: Endpoint8_6Input) => +const Endpoint9_6 = (raw: RawClient["server.integration"]) => (input: Endpoint9_6Input) => raw["integration.attempt.cancel"]({ params: { attemptID: input["attemptID"] }, query: { location: input["location"] }, }).pipe(Effect.mapError(mapClientError)) -const adaptGroup8 = (raw: RawClient["server.integration"]) => ({ - list: Endpoint8_0(raw), - get: Endpoint8_1(raw), - connectKey: Endpoint8_2(raw), - connectOauth: Endpoint8_3(raw), - attemptStatus: Endpoint8_4(raw), - attemptComplete: Endpoint8_5(raw), - attemptCancel: Endpoint8_6(raw), +const adaptGroup9 = (raw: RawClient["server.integration"]) => ({ + list: Endpoint9_0(raw), + get: Endpoint9_1(raw), + connectKey: Endpoint9_2(raw), + connectOauth: Endpoint9_3(raw), + attemptStatus: Endpoint9_4(raw), + attemptComplete: Endpoint9_5(raw), + attemptCancel: Endpoint9_6(raw), }) -type Endpoint9_0Request = Parameters[0] -type Endpoint9_0Input = { readonly location?: Endpoint9_0Request["query"]["location"] } -const Endpoint9_0 = (raw: RawClient["server.mcp"]) => (input?: Endpoint9_0Input) => +type Endpoint10_0Request = Parameters[0] +type Endpoint10_0Input = { readonly location?: Endpoint10_0Request["query"]["location"] } +const Endpoint10_0 = (raw: RawClient["server.mcp"]) => (input?: Endpoint10_0Input) => raw["mcp.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -const adaptGroup9 = (raw: RawClient["server.mcp"]) => ({ list: Endpoint9_0(raw) }) +const adaptGroup10 = (raw: RawClient["server.mcp"]) => ({ list: Endpoint10_0(raw) }) -type Endpoint10_0Request = Parameters[0] -type Endpoint10_0Input = { - readonly credentialID: Endpoint10_0Request["params"]["credentialID"] - readonly location?: Endpoint10_0Request["query"]["location"] - readonly label: Endpoint10_0Request["payload"]["label"] +type Endpoint11_0Request = Parameters[0] +type Endpoint11_0Input = { + readonly credentialID: Endpoint11_0Request["params"]["credentialID"] + readonly location?: Endpoint11_0Request["query"]["location"] + readonly label: Endpoint11_0Request["payload"]["label"] } -const Endpoint10_0 = (raw: RawClient["server.credential"]) => (input: Endpoint10_0Input) => +const Endpoint11_0 = (raw: RawClient["server.credential"]) => (input: Endpoint11_0Input) => raw["credential.update"]({ params: { credentialID: input["credentialID"] }, query: { location: input["location"] }, payload: { label: input["label"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint10_1Request = Parameters[0] -type Endpoint10_1Input = { - readonly credentialID: Endpoint10_1Request["params"]["credentialID"] - readonly location?: Endpoint10_1Request["query"]["location"] +type Endpoint11_1Request = Parameters[0] +type Endpoint11_1Input = { + readonly credentialID: Endpoint11_1Request["params"]["credentialID"] + readonly location?: Endpoint11_1Request["query"]["location"] } -const Endpoint10_1 = (raw: RawClient["server.credential"]) => (input: Endpoint10_1Input) => +const Endpoint11_1 = (raw: RawClient["server.credential"]) => (input: Endpoint11_1Input) => raw["credential.remove"]({ params: { credentialID: input["credentialID"] }, query: { location: input["location"] }, }).pipe(Effect.mapError(mapClientError)) -const adaptGroup10 = (raw: RawClient["server.credential"]) => ({ update: Endpoint10_0(raw), remove: Endpoint10_1(raw) }) +const adaptGroup11 = (raw: RawClient["server.credential"]) => ({ update: Endpoint11_0(raw), remove: Endpoint11_1(raw) }) -type Endpoint11_0Request = Parameters[0] -type Endpoint11_0Input = { readonly location?: Endpoint11_0Request["query"]["location"] } -const Endpoint11_0 = (raw: RawClient["server.project"]) => (input?: Endpoint11_0Input) => +type Endpoint12_0Request = Parameters[0] +type Endpoint12_0Input = { readonly location?: Endpoint12_0Request["query"]["location"] } +const Endpoint12_0 = (raw: RawClient["server.project"]) => (input?: Endpoint12_0Input) => raw["project.current"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint11_1Request = Parameters[0] -type Endpoint11_1Input = { - readonly projectID: Endpoint11_1Request["params"]["projectID"] - readonly location?: Endpoint11_1Request["query"]["location"] +type Endpoint12_1Request = Parameters[0] +type Endpoint12_1Input = { + readonly projectID: Endpoint12_1Request["params"]["projectID"] + readonly location?: Endpoint12_1Request["query"]["location"] } -const Endpoint11_1 = (raw: RawClient["server.project"]) => (input: Endpoint11_1Input) => +const Endpoint12_1 = (raw: RawClient["server.project"]) => (input: Endpoint12_1Input) => raw["project.directories"]({ params: { projectID: input["projectID"] }, query: { location: input["location"] }, }).pipe(Effect.mapError(mapClientError)) -const adaptGroup11 = (raw: RawClient["server.project"]) => ({ - current: Endpoint11_0(raw), - directories: Endpoint11_1(raw), +const adaptGroup12 = (raw: RawClient["server.project"]) => ({ + current: Endpoint12_0(raw), + directories: Endpoint12_1(raw), }) -type Endpoint12_0Request = Parameters[0] -type Endpoint12_0Input = { readonly location?: Endpoint12_0Request["query"]["location"] } -const Endpoint12_0 = (raw: RawClient["server.permission"]) => (input?: Endpoint12_0Input) => +type Endpoint13_0Request = Parameters[0] +type Endpoint13_0Input = { readonly location?: Endpoint13_0Request["query"]["location"] } +const Endpoint13_0 = (raw: RawClient["server.permission"]) => (input?: Endpoint13_0Input) => raw["permission.request.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint12_1Request = Parameters[0] -type Endpoint12_1Input = { readonly projectID?: Endpoint12_1Request["query"]["projectID"] } -const Endpoint12_1 = (raw: RawClient["server.permission"]) => (input?: Endpoint12_1Input) => +type Endpoint13_1Request = Parameters[0] +type Endpoint13_1Input = { readonly projectID?: Endpoint13_1Request["query"]["projectID"] } +const Endpoint13_1 = (raw: RawClient["server.permission"]) => (input?: Endpoint13_1Input) => raw["permission.saved.list"]({ query: { projectID: input?.["projectID"] } }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) -type Endpoint12_2Request = Parameters[0] -type Endpoint12_2Input = { readonly id: Endpoint12_2Request["params"]["id"] } -const Endpoint12_2 = (raw: RawClient["server.permission"]) => (input: Endpoint12_2Input) => +type Endpoint13_2Request = Parameters[0] +type Endpoint13_2Input = { readonly id: Endpoint13_2Request["params"]["id"] } +const Endpoint13_2 = (raw: RawClient["server.permission"]) => (input: Endpoint13_2Input) => raw["permission.saved.remove"]({ params: { id: input["id"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint12_3Request = Parameters[0] -type Endpoint12_3Input = { - readonly sessionID: Endpoint12_3Request["params"]["sessionID"] - readonly id?: Endpoint12_3Request["payload"]["id"] - readonly action: Endpoint12_3Request["payload"]["action"] - readonly resources: Endpoint12_3Request["payload"]["resources"] - readonly save?: Endpoint12_3Request["payload"]["save"] - readonly metadata?: Endpoint12_3Request["payload"]["metadata"] - readonly source?: Endpoint12_3Request["payload"]["source"] - readonly agent?: Endpoint12_3Request["payload"]["agent"] +type Endpoint13_3Request = Parameters[0] +type Endpoint13_3Input = { + readonly sessionID: Endpoint13_3Request["params"]["sessionID"] + readonly id?: Endpoint13_3Request["payload"]["id"] + readonly action: Endpoint13_3Request["payload"]["action"] + readonly resources: Endpoint13_3Request["payload"]["resources"] + readonly save?: Endpoint13_3Request["payload"]["save"] + readonly metadata?: Endpoint13_3Request["payload"]["metadata"] + readonly source?: Endpoint13_3Request["payload"]["source"] + readonly agent?: Endpoint13_3Request["payload"]["agent"] } -const Endpoint12_3 = (raw: RawClient["server.permission"]) => (input: Endpoint12_3Input) => +const Endpoint13_3 = (raw: RawClient["server.permission"]) => (input: Endpoint13_3Input) => raw["session.permission.create"]({ params: { sessionID: input["sessionID"] }, payload: { @@ -510,87 +517,87 @@ const Endpoint12_3 = (raw: RawClient["server.permission"]) => (input: Endpoint12 Effect.map((value) => value.data), ) -type Endpoint12_4Request = Parameters[0] -type Endpoint12_4Input = { readonly sessionID: Endpoint12_4Request["params"]["sessionID"] } -const Endpoint12_4 = (raw: RawClient["server.permission"]) => (input: Endpoint12_4Input) => +type Endpoint13_4Request = Parameters[0] +type Endpoint13_4Input = { readonly sessionID: Endpoint13_4Request["params"]["sessionID"] } +const Endpoint13_4 = (raw: RawClient["server.permission"]) => (input: Endpoint13_4Input) => raw["session.permission.list"]({ params: { sessionID: input["sessionID"] } }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) -type Endpoint12_5Request = Parameters[0] -type Endpoint12_5Input = { - readonly sessionID: Endpoint12_5Request["params"]["sessionID"] - readonly requestID: Endpoint12_5Request["params"]["requestID"] +type Endpoint13_5Request = Parameters[0] +type Endpoint13_5Input = { + readonly sessionID: Endpoint13_5Request["params"]["sessionID"] + readonly requestID: Endpoint13_5Request["params"]["requestID"] } -const Endpoint12_5 = (raw: RawClient["server.permission"]) => (input: Endpoint12_5Input) => +const Endpoint13_5 = (raw: RawClient["server.permission"]) => (input: Endpoint13_5Input) => raw["session.permission.get"]({ params: { sessionID: input["sessionID"], requestID: input["requestID"] } }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) -type Endpoint12_6Request = Parameters[0] -type Endpoint12_6Input = { - readonly sessionID: Endpoint12_6Request["params"]["sessionID"] - readonly requestID: Endpoint12_6Request["params"]["requestID"] - readonly reply: Endpoint12_6Request["payload"]["reply"] - readonly message?: Endpoint12_6Request["payload"]["message"] +type Endpoint13_6Request = Parameters[0] +type Endpoint13_6Input = { + readonly sessionID: Endpoint13_6Request["params"]["sessionID"] + readonly requestID: Endpoint13_6Request["params"]["requestID"] + readonly reply: Endpoint13_6Request["payload"]["reply"] + readonly message?: Endpoint13_6Request["payload"]["message"] } -const Endpoint12_6 = (raw: RawClient["server.permission"]) => (input: Endpoint12_6Input) => +const Endpoint13_6 = (raw: RawClient["server.permission"]) => (input: Endpoint13_6Input) => raw["session.permission.reply"]({ params: { sessionID: input["sessionID"], requestID: input["requestID"] }, payload: { reply: input["reply"], message: input["message"] }, }).pipe(Effect.mapError(mapClientError)) -const adaptGroup12 = (raw: RawClient["server.permission"]) => ({ - listRequests: Endpoint12_0(raw), - listSaved: Endpoint12_1(raw), - removeSaved: Endpoint12_2(raw), - create: Endpoint12_3(raw), - list: Endpoint12_4(raw), - get: Endpoint12_5(raw), - reply: Endpoint12_6(raw), +const adaptGroup13 = (raw: RawClient["server.permission"]) => ({ + listRequests: Endpoint13_0(raw), + listSaved: Endpoint13_1(raw), + removeSaved: Endpoint13_2(raw), + create: Endpoint13_3(raw), + list: Endpoint13_4(raw), + get: Endpoint13_5(raw), + reply: Endpoint13_6(raw), }) -type Endpoint13_0Request = Parameters[0] -type Endpoint13_0Input = { - readonly location?: Endpoint13_0Request["query"]["location"] - readonly path?: Endpoint13_0Request["query"]["path"] +type Endpoint14_0Request = Parameters[0] +type Endpoint14_0Input = { + readonly location?: Endpoint14_0Request["query"]["location"] + readonly path?: Endpoint14_0Request["query"]["path"] } -const Endpoint13_0 = (raw: RawClient["server.fs"]) => (input?: Endpoint13_0Input) => +const Endpoint14_0 = (raw: RawClient["server.fs"]) => (input?: Endpoint14_0Input) => raw["fs.list"]({ query: { location: input?.["location"], path: input?.["path"] } }).pipe( Effect.mapError(mapClientError), ) -type Endpoint13_1Request = Parameters[0] -type Endpoint13_1Input = { - readonly location?: Endpoint13_1Request["query"]["location"] - readonly query: Endpoint13_1Request["query"]["query"] - readonly type?: Endpoint13_1Request["query"]["type"] - readonly limit?: Endpoint13_1Request["query"]["limit"] +type Endpoint14_1Request = Parameters[0] +type Endpoint14_1Input = { + readonly location?: Endpoint14_1Request["query"]["location"] + readonly query: Endpoint14_1Request["query"]["query"] + readonly type?: Endpoint14_1Request["query"]["type"] + readonly limit?: Endpoint14_1Request["query"]["limit"] } -const Endpoint13_1 = (raw: RawClient["server.fs"]) => (input: Endpoint13_1Input) => +const Endpoint14_1 = (raw: RawClient["server.fs"]) => (input: Endpoint14_1Input) => raw["fs.find"]({ query: { location: input["location"], query: input["query"], type: input["type"], limit: input["limit"] }, }).pipe(Effect.mapError(mapClientError)) -const adaptGroup13 = (raw: RawClient["server.fs"]) => ({ list: Endpoint13_0(raw), find: Endpoint13_1(raw) }) +const adaptGroup14 = (raw: RawClient["server.fs"]) => ({ list: Endpoint14_0(raw), find: Endpoint14_1(raw) }) -type Endpoint14_0Request = Parameters[0] -type Endpoint14_0Input = { readonly location?: Endpoint14_0Request["query"]["location"] } -const Endpoint14_0 = (raw: RawClient["server.command"]) => (input?: Endpoint14_0Input) => +type Endpoint15_0Request = Parameters[0] +type Endpoint15_0Input = { readonly location?: Endpoint15_0Request["query"]["location"] } +const Endpoint15_0 = (raw: RawClient["server.command"]) => (input?: Endpoint15_0Input) => raw["command.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -const adaptGroup14 = (raw: RawClient["server.command"]) => ({ list: Endpoint14_0(raw) }) +const adaptGroup15 = (raw: RawClient["server.command"]) => ({ list: Endpoint15_0(raw) }) -type Endpoint15_0Request = Parameters[0] -type Endpoint15_0Input = { readonly location?: Endpoint15_0Request["query"]["location"] } -const Endpoint15_0 = (raw: RawClient["server.skill"]) => (input?: Endpoint15_0Input) => +type Endpoint16_0Request = Parameters[0] +type Endpoint16_0Input = { readonly location?: Endpoint16_0Request["query"]["location"] } +const Endpoint16_0 = (raw: RawClient["server.skill"]) => (input?: Endpoint16_0Input) => raw["skill.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -const adaptGroup15 = (raw: RawClient["server.skill"]) => ({ list: Endpoint15_0(raw) }) +const adaptGroup16 = (raw: RawClient["server.skill"]) => ({ list: Endpoint16_0(raw) }) -const Endpoint16_0 = (raw: RawClient["server.event"]) => () => +const Endpoint17_0 = (raw: RawClient["server.event"]) => () => Stream.unwrap( raw["event.subscribe"]({}).pipe( Effect.mapError(mapClientError), @@ -598,23 +605,23 @@ const Endpoint16_0 = (raw: RawClient["server.event"]) => () => ), ) -const adaptGroup16 = (raw: RawClient["server.event"]) => ({ subscribe: Endpoint16_0(raw) }) +const adaptGroup17 = (raw: RawClient["server.event"]) => ({ subscribe: Endpoint17_0(raw) }) -type Endpoint17_0Request = Parameters[0] -type Endpoint17_0Input = { readonly location?: Endpoint17_0Request["query"]["location"] } -const Endpoint17_0 = (raw: RawClient["server.pty"]) => (input?: Endpoint17_0Input) => +type Endpoint18_0Request = Parameters[0] +type Endpoint18_0Input = { readonly location?: Endpoint18_0Request["query"]["location"] } +const Endpoint18_0 = (raw: RawClient["server.pty"]) => (input?: Endpoint18_0Input) => raw["pty.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint17_1Request = Parameters[0] -type Endpoint17_1Input = { - readonly location?: Endpoint17_1Request["query"]["location"] - readonly command?: Endpoint17_1Request["payload"]["command"] - readonly args?: Endpoint17_1Request["payload"]["args"] - readonly cwd?: Endpoint17_1Request["payload"]["cwd"] - readonly title?: Endpoint17_1Request["payload"]["title"] - readonly env?: Endpoint17_1Request["payload"]["env"] +type Endpoint18_1Request = Parameters[0] +type Endpoint18_1Input = { + readonly location?: Endpoint18_1Request["query"]["location"] + readonly command?: Endpoint18_1Request["payload"]["command"] + readonly args?: Endpoint18_1Request["payload"]["args"] + readonly cwd?: Endpoint18_1Request["payload"]["cwd"] + readonly title?: Endpoint18_1Request["payload"]["title"] + readonly env?: Endpoint18_1Request["payload"]["env"] } -const Endpoint17_1 = (raw: RawClient["server.pty"]) => (input?: Endpoint17_1Input) => +const Endpoint18_1 = (raw: RawClient["server.pty"]) => (input?: Endpoint18_1Input) => raw["pty.create"]({ query: { location: input?.["location"] }, payload: { @@ -626,226 +633,227 @@ const Endpoint17_1 = (raw: RawClient["server.pty"]) => (input?: Endpoint17_1Inpu }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint17_2Request = Parameters[0] -type Endpoint17_2Input = { - readonly ptyID: Endpoint17_2Request["params"]["ptyID"] - readonly location?: Endpoint17_2Request["query"]["location"] +type Endpoint18_2Request = Parameters[0] +type Endpoint18_2Input = { + readonly ptyID: Endpoint18_2Request["params"]["ptyID"] + readonly location?: Endpoint18_2Request["query"]["location"] } -const Endpoint17_2 = (raw: RawClient["server.pty"]) => (input: Endpoint17_2Input) => +const Endpoint18_2 = (raw: RawClient["server.pty"]) => (input: Endpoint18_2Input) => raw["pty.get"]({ params: { ptyID: input["ptyID"] }, query: { location: input["location"] } }).pipe( Effect.mapError(mapClientError), ) -type Endpoint17_3Request = Parameters[0] -type Endpoint17_3Input = { - readonly ptyID: Endpoint17_3Request["params"]["ptyID"] - readonly location?: Endpoint17_3Request["query"]["location"] - readonly title?: Endpoint17_3Request["payload"]["title"] - readonly size?: Endpoint17_3Request["payload"]["size"] +type Endpoint18_3Request = Parameters[0] +type Endpoint18_3Input = { + readonly ptyID: Endpoint18_3Request["params"]["ptyID"] + readonly location?: Endpoint18_3Request["query"]["location"] + readonly title?: Endpoint18_3Request["payload"]["title"] + readonly size?: Endpoint18_3Request["payload"]["size"] } -const Endpoint17_3 = (raw: RawClient["server.pty"]) => (input: Endpoint17_3Input) => +const Endpoint18_3 = (raw: RawClient["server.pty"]) => (input: Endpoint18_3Input) => raw["pty.update"]({ params: { ptyID: input["ptyID"] }, query: { location: input["location"] }, payload: { title: input["title"], size: input["size"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint17_4Request = Parameters[0] -type Endpoint17_4Input = { - readonly ptyID: Endpoint17_4Request["params"]["ptyID"] - readonly location?: Endpoint17_4Request["query"]["location"] +type Endpoint18_4Request = Parameters[0] +type Endpoint18_4Input = { + readonly ptyID: Endpoint18_4Request["params"]["ptyID"] + readonly location?: Endpoint18_4Request["query"]["location"] } -const Endpoint17_4 = (raw: RawClient["server.pty"]) => (input: Endpoint17_4Input) => +const Endpoint18_4 = (raw: RawClient["server.pty"]) => (input: Endpoint18_4Input) => raw["pty.remove"]({ params: { ptyID: input["ptyID"] }, query: { location: input["location"] } }).pipe( Effect.mapError(mapClientError), ) -const adaptGroup17 = (raw: RawClient["server.pty"]) => ({ - list: Endpoint17_0(raw), - create: Endpoint17_1(raw), - get: Endpoint17_2(raw), - update: Endpoint17_3(raw), - remove: Endpoint17_4(raw), +const adaptGroup18 = (raw: RawClient["server.pty"]) => ({ + list: Endpoint18_0(raw), + create: Endpoint18_1(raw), + get: Endpoint18_2(raw), + update: Endpoint18_3(raw), + remove: Endpoint18_4(raw), }) -type Endpoint18_0Request = Parameters[0] -type Endpoint18_0Input = { readonly location?: Endpoint18_0Request["query"]["location"] } -const Endpoint18_0 = (raw: RawClient["server.shell"]) => (input?: Endpoint18_0Input) => +type Endpoint19_0Request = Parameters[0] +type Endpoint19_0Input = { readonly location?: Endpoint19_0Request["query"]["location"] } +const Endpoint19_0 = (raw: RawClient["server.shell"]) => (input?: Endpoint19_0Input) => raw["shell.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint18_1Request = Parameters[0] -type Endpoint18_1Input = { - readonly location?: Endpoint18_1Request["query"]["location"] - readonly command: Endpoint18_1Request["payload"]["command"] - readonly cwd?: Endpoint18_1Request["payload"]["cwd"] - readonly timeout?: Endpoint18_1Request["payload"]["timeout"] - readonly metadata?: Endpoint18_1Request["payload"]["metadata"] +type Endpoint19_1Request = Parameters[0] +type Endpoint19_1Input = { + readonly location?: Endpoint19_1Request["query"]["location"] + readonly command: Endpoint19_1Request["payload"]["command"] + readonly cwd?: Endpoint19_1Request["payload"]["cwd"] + readonly timeout?: Endpoint19_1Request["payload"]["timeout"] + readonly metadata?: Endpoint19_1Request["payload"]["metadata"] } -const Endpoint18_1 = (raw: RawClient["server.shell"]) => (input: Endpoint18_1Input) => +const Endpoint19_1 = (raw: RawClient["server.shell"]) => (input: Endpoint19_1Input) => raw["shell.create"]({ query: { location: input["location"] }, payload: { command: input["command"], cwd: input["cwd"], timeout: input["timeout"], metadata: input["metadata"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint18_2Request = Parameters[0] -type Endpoint18_2Input = { - readonly id: Endpoint18_2Request["params"]["id"] - readonly location?: Endpoint18_2Request["query"]["location"] +type Endpoint19_2Request = Parameters[0] +type Endpoint19_2Input = { + readonly id: Endpoint19_2Request["params"]["id"] + readonly location?: Endpoint19_2Request["query"]["location"] } -const Endpoint18_2 = (raw: RawClient["server.shell"]) => (input: Endpoint18_2Input) => +const Endpoint19_2 = (raw: RawClient["server.shell"]) => (input: Endpoint19_2Input) => raw["shell.get"]({ params: { id: input["id"] }, query: { location: input["location"] } }).pipe( Effect.mapError(mapClientError), ) -type Endpoint18_3Request = Parameters[0] -type Endpoint18_3Input = { - readonly id: Endpoint18_3Request["params"]["id"] - readonly location?: Endpoint18_3Request["query"]["location"] - readonly cursor?: Endpoint18_3Request["query"]["cursor"] - readonly limit?: Endpoint18_3Request["query"]["limit"] +type Endpoint19_3Request = Parameters[0] +type Endpoint19_3Input = { + readonly id: Endpoint19_3Request["params"]["id"] + readonly location?: Endpoint19_3Request["query"]["location"] + readonly cursor?: Endpoint19_3Request["query"]["cursor"] + readonly limit?: Endpoint19_3Request["query"]["limit"] } -const Endpoint18_3 = (raw: RawClient["server.shell"]) => (input: Endpoint18_3Input) => +const Endpoint19_3 = (raw: RawClient["server.shell"]) => (input: Endpoint19_3Input) => raw["shell.output"]({ params: { id: input["id"] }, query: { location: input["location"], cursor: input["cursor"], limit: input["limit"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint18_4Request = Parameters[0] -type Endpoint18_4Input = { - readonly id: Endpoint18_4Request["params"]["id"] - readonly location?: Endpoint18_4Request["query"]["location"] +type Endpoint19_4Request = Parameters[0] +type Endpoint19_4Input = { + readonly id: Endpoint19_4Request["params"]["id"] + readonly location?: Endpoint19_4Request["query"]["location"] } -const Endpoint18_4 = (raw: RawClient["server.shell"]) => (input: Endpoint18_4Input) => +const Endpoint19_4 = (raw: RawClient["server.shell"]) => (input: Endpoint19_4Input) => raw["shell.remove"]({ params: { id: input["id"] }, query: { location: input["location"] } }).pipe( Effect.mapError(mapClientError), ) -const adaptGroup18 = (raw: RawClient["server.shell"]) => ({ - list: Endpoint18_0(raw), - create: Endpoint18_1(raw), - get: Endpoint18_2(raw), - output: Endpoint18_3(raw), - remove: Endpoint18_4(raw), +const adaptGroup19 = (raw: RawClient["server.shell"]) => ({ + list: Endpoint19_0(raw), + create: Endpoint19_1(raw), + get: Endpoint19_2(raw), + output: Endpoint19_3(raw), + remove: Endpoint19_4(raw), }) -type Endpoint19_0Request = Parameters[0] -type Endpoint19_0Input = { readonly location?: Endpoint19_0Request["query"]["location"] } -const Endpoint19_0 = (raw: RawClient["server.question"]) => (input?: Endpoint19_0Input) => +type Endpoint20_0Request = Parameters[0] +type Endpoint20_0Input = { readonly location?: Endpoint20_0Request["query"]["location"] } +const Endpoint20_0 = (raw: RawClient["server.question"]) => (input?: Endpoint20_0Input) => raw["question.request.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -type Endpoint19_1Request = Parameters[0] -type Endpoint19_1Input = { readonly sessionID: Endpoint19_1Request["params"]["sessionID"] } -const Endpoint19_1 = (raw: RawClient["server.question"]) => (input: Endpoint19_1Input) => +type Endpoint20_1Request = Parameters[0] +type Endpoint20_1Input = { readonly sessionID: Endpoint20_1Request["params"]["sessionID"] } +const Endpoint20_1 = (raw: RawClient["server.question"]) => (input: Endpoint20_1Input) => raw["session.question.list"]({ params: { sessionID: input["sessionID"] } }).pipe( Effect.mapError(mapClientError), Effect.map((value) => value.data), ) -type Endpoint19_2Request = Parameters[0] -type Endpoint19_2Input = { - readonly sessionID: Endpoint19_2Request["params"]["sessionID"] - readonly requestID: Endpoint19_2Request["params"]["requestID"] - readonly answers: Endpoint19_2Request["payload"]["answers"] +type Endpoint20_2Request = Parameters[0] +type Endpoint20_2Input = { + readonly sessionID: Endpoint20_2Request["params"]["sessionID"] + readonly requestID: Endpoint20_2Request["params"]["requestID"] + readonly answers: Endpoint20_2Request["payload"]["answers"] } -const Endpoint19_2 = (raw: RawClient["server.question"]) => (input: Endpoint19_2Input) => +const Endpoint20_2 = (raw: RawClient["server.question"]) => (input: Endpoint20_2Input) => raw["session.question.reply"]({ params: { sessionID: input["sessionID"], requestID: input["requestID"] }, payload: { answers: input["answers"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint19_3Request = Parameters[0] -type Endpoint19_3Input = { - readonly sessionID: Endpoint19_3Request["params"]["sessionID"] - readonly requestID: Endpoint19_3Request["params"]["requestID"] +type Endpoint20_3Request = Parameters[0] +type Endpoint20_3Input = { + readonly sessionID: Endpoint20_3Request["params"]["sessionID"] + readonly requestID: Endpoint20_3Request["params"]["requestID"] } -const Endpoint19_3 = (raw: RawClient["server.question"]) => (input: Endpoint19_3Input) => +const Endpoint20_3 = (raw: RawClient["server.question"]) => (input: Endpoint20_3Input) => raw["session.question.reject"]({ params: { sessionID: input["sessionID"], requestID: input["requestID"] } }).pipe( Effect.mapError(mapClientError), ) -const adaptGroup19 = (raw: RawClient["server.question"]) => ({ - listRequests: Endpoint19_0(raw), - list: Endpoint19_1(raw), - reply: Endpoint19_2(raw), - reject: Endpoint19_3(raw), +const adaptGroup20 = (raw: RawClient["server.question"]) => ({ + listRequests: Endpoint20_0(raw), + list: Endpoint20_1(raw), + reply: Endpoint20_2(raw), + reject: Endpoint20_3(raw), }) -type Endpoint20_0Request = Parameters[0] -type Endpoint20_0Input = { readonly location?: Endpoint20_0Request["query"]["location"] } -const Endpoint20_0 = (raw: RawClient["server.reference"]) => (input?: Endpoint20_0Input) => +type Endpoint21_0Request = Parameters[0] +type Endpoint21_0Input = { readonly location?: Endpoint21_0Request["query"]["location"] } +const Endpoint21_0 = (raw: RawClient["server.reference"]) => (input?: Endpoint21_0Input) => raw["reference.list"]({ query: { location: input?.["location"] } }).pipe(Effect.mapError(mapClientError)) -const adaptGroup20 = (raw: RawClient["server.reference"]) => ({ list: Endpoint20_0(raw) }) +const adaptGroup21 = (raw: RawClient["server.reference"]) => ({ list: Endpoint21_0(raw) }) -type Endpoint21_0Request = Parameters[0] -type Endpoint21_0Input = { - readonly projectID: Endpoint21_0Request["params"]["projectID"] - readonly location?: Endpoint21_0Request["query"]["location"] - readonly strategy: Endpoint21_0Request["payload"]["strategy"] - readonly directory: Endpoint21_0Request["payload"]["directory"] - readonly name?: Endpoint21_0Request["payload"]["name"] +type Endpoint22_0Request = Parameters[0] +type Endpoint22_0Input = { + readonly projectID: Endpoint22_0Request["params"]["projectID"] + readonly location?: Endpoint22_0Request["query"]["location"] + readonly strategy: Endpoint22_0Request["payload"]["strategy"] + readonly directory: Endpoint22_0Request["payload"]["directory"] + readonly name?: Endpoint22_0Request["payload"]["name"] } -const Endpoint21_0 = (raw: RawClient["server.projectCopy"]) => (input: Endpoint21_0Input) => +const Endpoint22_0 = (raw: RawClient["server.projectCopy"]) => (input: Endpoint22_0Input) => raw["projectCopy.create"]({ params: { projectID: input["projectID"] }, query: { location: input["location"] }, payload: { strategy: input["strategy"], directory: input["directory"], name: input["name"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint21_1Request = Parameters[0] -type Endpoint21_1Input = { - readonly projectID: Endpoint21_1Request["params"]["projectID"] - readonly location?: Endpoint21_1Request["query"]["location"] - readonly directory: Endpoint21_1Request["payload"]["directory"] - readonly force: Endpoint21_1Request["payload"]["force"] +type Endpoint22_1Request = Parameters[0] +type Endpoint22_1Input = { + readonly projectID: Endpoint22_1Request["params"]["projectID"] + readonly location?: Endpoint22_1Request["query"]["location"] + readonly directory: Endpoint22_1Request["payload"]["directory"] + readonly force: Endpoint22_1Request["payload"]["force"] } -const Endpoint21_1 = (raw: RawClient["server.projectCopy"]) => (input: Endpoint21_1Input) => +const Endpoint22_1 = (raw: RawClient["server.projectCopy"]) => (input: Endpoint22_1Input) => raw["projectCopy.remove"]({ params: { projectID: input["projectID"] }, query: { location: input["location"] }, payload: { directory: input["directory"], force: input["force"] }, }).pipe(Effect.mapError(mapClientError)) -type Endpoint21_2Request = Parameters[0] -type Endpoint21_2Input = { - readonly projectID: Endpoint21_2Request["params"]["projectID"] - readonly location?: Endpoint21_2Request["query"]["location"] +type Endpoint22_2Request = Parameters[0] +type Endpoint22_2Input = { + readonly projectID: Endpoint22_2Request["params"]["projectID"] + readonly location?: Endpoint22_2Request["query"]["location"] } -const Endpoint21_2 = (raw: RawClient["server.projectCopy"]) => (input: Endpoint21_2Input) => +const Endpoint22_2 = (raw: RawClient["server.projectCopy"]) => (input: Endpoint22_2Input) => raw["projectCopy.refresh"]({ params: { projectID: input["projectID"] }, query: { location: input["location"] }, }).pipe(Effect.mapError(mapClientError)) -const adaptGroup21 = (raw: RawClient["server.projectCopy"]) => ({ - create: Endpoint21_0(raw), - remove: Endpoint21_1(raw), - refresh: Endpoint21_2(raw), +const adaptGroup22 = (raw: RawClient["server.projectCopy"]) => ({ + create: Endpoint22_0(raw), + remove: Endpoint22_1(raw), + refresh: Endpoint22_2(raw), }) const adaptClient = (raw: RawClient) => ({ health: adaptGroup0(raw["server.health"]), location: adaptGroup1(raw["server.location"]), agent: adaptGroup2(raw["server.agent"]), - session: adaptGroup3(raw["server.session"]), - message: adaptGroup4(raw["server.message"]), - model: adaptGroup5(raw["server.model"]), - generate: adaptGroup6(raw["server.generate"]), - provider: adaptGroup7(raw["server.provider"]), - integration: adaptGroup8(raw["server.integration"]), - "server.mcp": adaptGroup9(raw["server.mcp"]), - credential: adaptGroup10(raw["server.credential"]), - project: adaptGroup11(raw["server.project"]), - permission: adaptGroup12(raw["server.permission"]), - file: adaptGroup13(raw["server.fs"]), - command: adaptGroup14(raw["server.command"]), - skill: adaptGroup15(raw["server.skill"]), - event: adaptGroup16(raw["server.event"]), - pty: adaptGroup17(raw["server.pty"]), - shell: adaptGroup18(raw["server.shell"]), - question: adaptGroup19(raw["server.question"]), - reference: adaptGroup20(raw["server.reference"]), - projectCopy: adaptGroup21(raw["server.projectCopy"]), + plugin: adaptGroup3(raw["server.plugin"]), + session: adaptGroup4(raw["server.session"]), + message: adaptGroup5(raw["server.message"]), + model: adaptGroup6(raw["server.model"]), + generate: adaptGroup7(raw["server.generate"]), + provider: adaptGroup8(raw["server.provider"]), + integration: adaptGroup9(raw["server.integration"]), + "server.mcp": adaptGroup10(raw["server.mcp"]), + credential: adaptGroup11(raw["server.credential"]), + project: adaptGroup12(raw["server.project"]), + permission: adaptGroup13(raw["server.permission"]), + file: adaptGroup14(raw["server.fs"]), + command: adaptGroup15(raw["server.command"]), + skill: adaptGroup16(raw["server.skill"]), + event: adaptGroup17(raw["server.event"]), + pty: adaptGroup18(raw["server.pty"]), + shell: adaptGroup19(raw["server.shell"]), + question: adaptGroup20(raw["server.question"]), + reference: adaptGroup21(raw["server.reference"]), + projectCopy: adaptGroup22(raw["server.projectCopy"]), }) export const make = (options?: { readonly baseUrl?: URL | string }) => diff --git a/packages/client/src/generated/client.ts b/packages/client/src/generated/client.ts index 4c75d30d7b..716fec0cd8 100644 --- a/packages/client/src/generated/client.ts +++ b/packages/client/src/generated/client.ts @@ -4,6 +4,8 @@ import type { LocationGetOutput, AgentListInput, AgentListOutput, + PluginListInput, + PluginListOutput, SessionListInput, SessionListOutput, SessionCreateInput, @@ -310,6 +312,20 @@ export function make(options: ClientOptions) { requestOptions, ), }, + plugin: { + list: (input?: PluginListInput, requestOptions?: RequestOptions) => + request( + { + method: "GET", + path: `/api/plugin`, + query: { location: input?.["location"] }, + successStatus: 200, + declaredStatuses: [401, 400], + empty: false, + }, + requestOptions, + ), + }, session: { list: (input?: SessionListInput, requestOptions?: RequestOptions) => request( diff --git a/packages/client/src/generated/types.ts b/packages/client/src/generated/types.ts index e8718caf7a..4ce3845cba 100644 --- a/packages/client/src/generated/types.ts +++ b/packages/client/src/generated/types.ts @@ -168,6 +168,21 @@ export type AgentListOutput = { }> } +export type PluginListInput = { + readonly location?: { + readonly location?: { readonly directory?: string | undefined; readonly workspace?: string | undefined } | undefined + }["location"] +} + +export type PluginListOutput = { + readonly location: { + readonly directory: string + readonly workspaceID?: string + readonly project: { readonly id: string; readonly directory: string } + } + readonly data: ReadonlyArray<{ readonly id: string }> +} + export type SessionListInput = { readonly workspace?: { readonly workspace?: string | undefined diff --git a/packages/core/src/plugin.ts b/packages/core/src/plugin.ts index 6fb2348b67..87860f1896 100644 --- a/packages/core/src/plugin.ts +++ b/packages/core/src/plugin.ts @@ -21,12 +21,15 @@ import { ToolRegistry } from "./tool/registry" export const ID = Plugin.ID export type ID = typeof ID.Type +export const Info = Plugin.Info +export type Info = Plugin.Info export const Event = Plugin.Event export interface Interface { readonly add: (id: ID, effect: PluginDefinition["effect"]) => Effect.Effect readonly remove: (id: ID) => Effect.Effect readonly wait: (id: ID) => Effect.Effect + readonly list: () => Effect.Effect } export class Service extends Context.Service()("@opencode/v2/Plugin") {} @@ -139,6 +142,9 @@ export const layer = Layer.effect( add, remove, wait, + list: Effect.fn("Plugin.list")(function* () { + return Array.from(active.keys()).map((id) => ({ id })) + }), }) host = yield* PluginHost.make(service) return service diff --git a/packages/plugin/src/v2/effect/generated/api.ts b/packages/plugin/src/v2/effect/generated/api.ts index e2718d35df..5a2bb465b0 100644 --- a/packages/plugin/src/v2/effect/generated/api.ts +++ b/packages/plugin/src/v2/effect/generated/api.ts @@ -32,154 +32,163 @@ export interface AgentApi { readonly list: AgentListOperation } -type Endpoint3_0Request = Parameters[0] -export type Endpoint3_0Input = { - readonly workspace?: Endpoint3_0Request["query"]["workspace"] - readonly limit?: Endpoint3_0Request["query"]["limit"] - readonly order?: Endpoint3_0Request["query"]["order"] - readonly search?: Endpoint3_0Request["query"]["search"] - readonly directory?: Endpoint3_0Request["query"]["directory"] - readonly project?: Endpoint3_0Request["query"]["project"] - readonly subpath?: Endpoint3_0Request["query"]["subpath"] - readonly cursor?: Endpoint3_0Request["query"]["cursor"] +type Endpoint3_0Request = Parameters[0] +export type Endpoint3_0Input = { readonly location?: Endpoint3_0Request["query"]["location"] } +export type Endpoint3_0Output = EffectValue> +export type PluginListOperation = (input?: Endpoint3_0Input) => Effect.Effect + +export interface PluginApi { + readonly list: PluginListOperation } -export type Endpoint3_0Output = EffectValue> -export type SessionListOperation = (input?: Endpoint3_0Input) => Effect.Effect -type Endpoint3_1Request = Parameters[0] -export type Endpoint3_1Input = { - readonly id?: Endpoint3_1Request["payload"]["id"] - readonly agent?: Endpoint3_1Request["payload"]["agent"] - readonly model?: Endpoint3_1Request["payload"]["model"] - readonly location?: Endpoint3_1Request["payload"]["location"] +type Endpoint4_0Request = Parameters[0] +export type Endpoint4_0Input = { + readonly workspace?: Endpoint4_0Request["query"]["workspace"] + readonly limit?: Endpoint4_0Request["query"]["limit"] + readonly order?: Endpoint4_0Request["query"]["order"] + readonly search?: Endpoint4_0Request["query"]["search"] + readonly directory?: Endpoint4_0Request["query"]["directory"] + readonly project?: Endpoint4_0Request["query"]["project"] + readonly subpath?: Endpoint4_0Request["query"]["subpath"] + readonly cursor?: Endpoint4_0Request["query"]["cursor"] } -export type Endpoint3_1Output = EffectValue>["data"] -export type SessionCreateOperation = (input?: Endpoint3_1Input) => Effect.Effect +export type Endpoint4_0Output = EffectValue> +export type SessionListOperation = (input?: Endpoint4_0Input) => Effect.Effect -export type Endpoint3_2Output = EffectValue>["data"] -export type SessionActiveOperation = () => Effect.Effect - -type Endpoint3_3Request = Parameters[0] -export type Endpoint3_3Input = { readonly sessionID: Endpoint3_3Request["params"]["sessionID"] } -export type Endpoint3_3Output = EffectValue>["data"] -export type SessionGetOperation = (input: Endpoint3_3Input) => Effect.Effect - -type Endpoint3_4Request = Parameters[0] -export type Endpoint3_4Input = { - readonly sessionID: Endpoint3_4Request["params"]["sessionID"] - readonly messageID?: Endpoint3_4Request["payload"]["messageID"] +type Endpoint4_1Request = Parameters[0] +export type Endpoint4_1Input = { + readonly id?: Endpoint4_1Request["payload"]["id"] + readonly agent?: Endpoint4_1Request["payload"]["agent"] + readonly model?: Endpoint4_1Request["payload"]["model"] + readonly location?: Endpoint4_1Request["payload"]["location"] } -export type Endpoint3_4Output = EffectValue>["data"] -export type SessionForkOperation = (input: Endpoint3_4Input) => Effect.Effect +export type Endpoint4_1Output = EffectValue>["data"] +export type SessionCreateOperation = (input?: Endpoint4_1Input) => Effect.Effect -type Endpoint3_5Request = Parameters[0] -export type Endpoint3_5Input = { - readonly sessionID: Endpoint3_5Request["params"]["sessionID"] - readonly agent: Endpoint3_5Request["payload"]["agent"] +export type Endpoint4_2Output = EffectValue>["data"] +export type SessionActiveOperation = () => Effect.Effect + +type Endpoint4_3Request = Parameters[0] +export type Endpoint4_3Input = { readonly sessionID: Endpoint4_3Request["params"]["sessionID"] } +export type Endpoint4_3Output = EffectValue>["data"] +export type SessionGetOperation = (input: Endpoint4_3Input) => Effect.Effect + +type Endpoint4_4Request = Parameters[0] +export type Endpoint4_4Input = { + readonly sessionID: Endpoint4_4Request["params"]["sessionID"] + readonly messageID?: Endpoint4_4Request["payload"]["messageID"] } -export type Endpoint3_5Output = EffectValue> -export type SessionSwitchAgentOperation = (input: Endpoint3_5Input) => Effect.Effect +export type Endpoint4_4Output = EffectValue>["data"] +export type SessionForkOperation = (input: Endpoint4_4Input) => Effect.Effect -type Endpoint3_6Request = Parameters[0] -export type Endpoint3_6Input = { - readonly sessionID: Endpoint3_6Request["params"]["sessionID"] - readonly model: Endpoint3_6Request["payload"]["model"] +type Endpoint4_5Request = Parameters[0] +export type Endpoint4_5Input = { + readonly sessionID: Endpoint4_5Request["params"]["sessionID"] + readonly agent: Endpoint4_5Request["payload"]["agent"] } -export type Endpoint3_6Output = EffectValue> -export type SessionSwitchModelOperation = (input: Endpoint3_6Input) => Effect.Effect +export type Endpoint4_5Output = EffectValue> +export type SessionSwitchAgentOperation = (input: Endpoint4_5Input) => Effect.Effect -type Endpoint3_7Request = Parameters[0] -export type Endpoint3_7Input = { - readonly sessionID: Endpoint3_7Request["params"]["sessionID"] - readonly title: Endpoint3_7Request["payload"]["title"] +type Endpoint4_6Request = Parameters[0] +export type Endpoint4_6Input = { + readonly sessionID: Endpoint4_6Request["params"]["sessionID"] + readonly model: Endpoint4_6Request["payload"]["model"] } -export type Endpoint3_7Output = EffectValue> -export type SessionRenameOperation = (input: Endpoint3_7Input) => Effect.Effect +export type Endpoint4_6Output = EffectValue> +export type SessionSwitchModelOperation = (input: Endpoint4_6Input) => Effect.Effect -type Endpoint3_8Request = Parameters[0] -export type Endpoint3_8Input = { - readonly sessionID: Endpoint3_8Request["params"]["sessionID"] - readonly id?: Endpoint3_8Request["payload"]["id"] - readonly prompt: Endpoint3_8Request["payload"]["prompt"] - readonly delivery?: Endpoint3_8Request["payload"]["delivery"] - readonly resume?: Endpoint3_8Request["payload"]["resume"] +type Endpoint4_7Request = Parameters[0] +export type Endpoint4_7Input = { + readonly sessionID: Endpoint4_7Request["params"]["sessionID"] + readonly title: Endpoint4_7Request["payload"]["title"] } -export type Endpoint3_8Output = EffectValue>["data"] -export type SessionPromptOperation = (input: Endpoint3_8Input) => Effect.Effect +export type Endpoint4_7Output = EffectValue> +export type SessionRenameOperation = (input: Endpoint4_7Input) => Effect.Effect -type Endpoint3_9Request = Parameters[0] -export type Endpoint3_9Input = { - readonly sessionID: Endpoint3_9Request["params"]["sessionID"] - readonly id?: Endpoint3_9Request["payload"]["id"] - readonly skill: Endpoint3_9Request["payload"]["skill"] - readonly resume?: Endpoint3_9Request["payload"]["resume"] +type Endpoint4_8Request = Parameters[0] +export type Endpoint4_8Input = { + readonly sessionID: Endpoint4_8Request["params"]["sessionID"] + readonly id?: Endpoint4_8Request["payload"]["id"] + readonly prompt: Endpoint4_8Request["payload"]["prompt"] + readonly delivery?: Endpoint4_8Request["payload"]["delivery"] + readonly resume?: Endpoint4_8Request["payload"]["resume"] } -export type Endpoint3_9Output = EffectValue> -export type SessionSkillOperation = (input: Endpoint3_9Input) => Effect.Effect +export type Endpoint4_8Output = EffectValue>["data"] +export type SessionPromptOperation = (input: Endpoint4_8Input) => Effect.Effect -type Endpoint3_10Request = Parameters[0] -export type Endpoint3_10Input = { readonly sessionID: Endpoint3_10Request["params"]["sessionID"] } -export type Endpoint3_10Output = EffectValue> -export type SessionCompactOperation = (input: Endpoint3_10Input) => Effect.Effect - -type Endpoint3_11Request = Parameters[0] -export type Endpoint3_11Input = { readonly sessionID: Endpoint3_11Request["params"]["sessionID"] } -export type Endpoint3_11Output = EffectValue> -export type SessionWaitOperation = (input: Endpoint3_11Input) => Effect.Effect - -type Endpoint3_12Request = Parameters[0] -export type Endpoint3_12Input = { - readonly sessionID: Endpoint3_12Request["params"]["sessionID"] - readonly messageID: Endpoint3_12Request["payload"]["messageID"] - readonly files?: Endpoint3_12Request["payload"]["files"] +type Endpoint4_9Request = Parameters[0] +export type Endpoint4_9Input = { + readonly sessionID: Endpoint4_9Request["params"]["sessionID"] + readonly id?: Endpoint4_9Request["payload"]["id"] + readonly skill: Endpoint4_9Request["payload"]["skill"] + readonly resume?: Endpoint4_9Request["payload"]["resume"] } -export type Endpoint3_12Output = EffectValue>["data"] -export type SessionRevertStageOperation = (input: Endpoint3_12Input) => Effect.Effect +export type Endpoint4_9Output = EffectValue> +export type SessionSkillOperation = (input: Endpoint4_9Input) => Effect.Effect -type Endpoint3_13Request = Parameters[0] -export type Endpoint3_13Input = { readonly sessionID: Endpoint3_13Request["params"]["sessionID"] } -export type Endpoint3_13Output = EffectValue> -export type SessionRevertClearOperation = (input: Endpoint3_13Input) => Effect.Effect +type Endpoint4_10Request = Parameters[0] +export type Endpoint4_10Input = { readonly sessionID: Endpoint4_10Request["params"]["sessionID"] } +export type Endpoint4_10Output = EffectValue> +export type SessionCompactOperation = (input: Endpoint4_10Input) => Effect.Effect -type Endpoint3_14Request = Parameters[0] -export type Endpoint3_14Input = { readonly sessionID: Endpoint3_14Request["params"]["sessionID"] } -export type Endpoint3_14Output = EffectValue> -export type SessionRevertCommitOperation = (input: Endpoint3_14Input) => Effect.Effect +type Endpoint4_11Request = Parameters[0] +export type Endpoint4_11Input = { readonly sessionID: Endpoint4_11Request["params"]["sessionID"] } +export type Endpoint4_11Output = EffectValue> +export type SessionWaitOperation = (input: Endpoint4_11Input) => Effect.Effect -type Endpoint3_15Request = Parameters[0] -export type Endpoint3_15Input = { readonly sessionID: Endpoint3_15Request["params"]["sessionID"] } -export type Endpoint3_15Output = EffectValue>["data"] -export type SessionContextOperation = (input: Endpoint3_15Input) => Effect.Effect - -type Endpoint3_16Request = Parameters[0] -export type Endpoint3_16Input = { - readonly sessionID: Endpoint3_16Request["params"]["sessionID"] - readonly limit?: Endpoint3_16Request["query"]["limit"] - readonly after?: Endpoint3_16Request["query"]["after"] +type Endpoint4_12Request = Parameters[0] +export type Endpoint4_12Input = { + readonly sessionID: Endpoint4_12Request["params"]["sessionID"] + readonly messageID: Endpoint4_12Request["payload"]["messageID"] + readonly files?: Endpoint4_12Request["payload"]["files"] } -export type Endpoint3_16Output = EffectValue> -export type SessionHistoryOperation = (input: Endpoint3_16Input) => Effect.Effect +export type Endpoint4_12Output = EffectValue>["data"] +export type SessionRevertStageOperation = (input: Endpoint4_12Input) => Effect.Effect -type Endpoint3_17Request = Parameters[0] -export type Endpoint3_17Input = { - readonly sessionID: Endpoint3_17Request["params"]["sessionID"] - readonly after?: Endpoint3_17Request["query"]["after"] +type Endpoint4_13Request = Parameters[0] +export type Endpoint4_13Input = { readonly sessionID: Endpoint4_13Request["params"]["sessionID"] } +export type Endpoint4_13Output = EffectValue> +export type SessionRevertClearOperation = (input: Endpoint4_13Input) => Effect.Effect + +type Endpoint4_14Request = Parameters[0] +export type Endpoint4_14Input = { readonly sessionID: Endpoint4_14Request["params"]["sessionID"] } +export type Endpoint4_14Output = EffectValue> +export type SessionRevertCommitOperation = (input: Endpoint4_14Input) => Effect.Effect + +type Endpoint4_15Request = Parameters[0] +export type Endpoint4_15Input = { readonly sessionID: Endpoint4_15Request["params"]["sessionID"] } +export type Endpoint4_15Output = EffectValue>["data"] +export type SessionContextOperation = (input: Endpoint4_15Input) => Effect.Effect + +type Endpoint4_16Request = Parameters[0] +export type Endpoint4_16Input = { + readonly sessionID: Endpoint4_16Request["params"]["sessionID"] + readonly limit?: Endpoint4_16Request["query"]["limit"] + readonly after?: Endpoint4_16Request["query"]["after"] } -export type Endpoint3_17Output = StreamValue>> -export type SessionEventsOperation = (input: Endpoint3_17Input) => Stream.Stream +export type Endpoint4_16Output = EffectValue> +export type SessionHistoryOperation = (input: Endpoint4_16Input) => Effect.Effect -type Endpoint3_18Request = Parameters[0] -export type Endpoint3_18Input = { readonly sessionID: Endpoint3_18Request["params"]["sessionID"] } -export type Endpoint3_18Output = EffectValue> -export type SessionInterruptOperation = (input: Endpoint3_18Input) => Effect.Effect - -type Endpoint3_19Request = Parameters[0] -export type Endpoint3_19Input = { - readonly sessionID: Endpoint3_19Request["params"]["sessionID"] - readonly messageID: Endpoint3_19Request["params"]["messageID"] +type Endpoint4_17Request = Parameters[0] +export type Endpoint4_17Input = { + readonly sessionID: Endpoint4_17Request["params"]["sessionID"] + readonly after?: Endpoint4_17Request["query"]["after"] } -export type Endpoint3_19Output = EffectValue>["data"] -export type SessionMessageOperation = (input: Endpoint3_19Input) => Effect.Effect +export type Endpoint4_17Output = StreamValue>> +export type SessionEventsOperation = (input: Endpoint4_17Input) => Stream.Stream + +type Endpoint4_18Request = Parameters[0] +export type Endpoint4_18Input = { readonly sessionID: Endpoint4_18Request["params"]["sessionID"] } +export type Endpoint4_18Output = EffectValue> +export type SessionInterruptOperation = (input: Endpoint4_18Input) => Effect.Effect + +type Endpoint4_19Request = Parameters[0] +export type Endpoint4_19Input = { + readonly sessionID: Endpoint4_19Request["params"]["sessionID"] + readonly messageID: Endpoint4_19Request["params"]["messageID"] +} +export type Endpoint4_19Output = EffectValue>["data"] +export type SessionMessageOperation = (input: Endpoint4_19Input) => Effect.Effect export interface SessionApi { readonly list: SessionListOperation @@ -204,126 +213,126 @@ export interface SessionApi { readonly message: SessionMessageOperation } -type Endpoint4_0Request = Parameters[0] -export type Endpoint4_0Input = { - readonly sessionID: Endpoint4_0Request["params"]["sessionID"] - readonly limit?: Endpoint4_0Request["query"]["limit"] - readonly order?: Endpoint4_0Request["query"]["order"] - readonly cursor?: Endpoint4_0Request["query"]["cursor"] +type Endpoint5_0Request = Parameters[0] +export type Endpoint5_0Input = { + readonly sessionID: Endpoint5_0Request["params"]["sessionID"] + readonly limit?: Endpoint5_0Request["query"]["limit"] + readonly order?: Endpoint5_0Request["query"]["order"] + readonly cursor?: Endpoint5_0Request["query"]["cursor"] } -export type Endpoint4_0Output = EffectValue> -export type MessageListOperation = (input: Endpoint4_0Input) => Effect.Effect +export type Endpoint5_0Output = EffectValue> +export type MessageListOperation = (input: Endpoint5_0Input) => Effect.Effect export interface MessageApi { readonly list: MessageListOperation } -type Endpoint5_0Request = Parameters[0] -export type Endpoint5_0Input = { readonly location?: Endpoint5_0Request["query"]["location"] } -export type Endpoint5_0Output = EffectValue> -export type ModelListOperation = (input?: Endpoint5_0Input) => Effect.Effect +type Endpoint6_0Request = Parameters[0] +export type Endpoint6_0Input = { readonly location?: Endpoint6_0Request["query"]["location"] } +export type Endpoint6_0Output = EffectValue> +export type ModelListOperation = (input?: Endpoint6_0Input) => Effect.Effect export interface ModelApi { readonly list: ModelListOperation } -type Endpoint6_0Request = Parameters[0] -export type Endpoint6_0Input = { - readonly location?: Endpoint6_0Request["query"]["location"] - readonly prompt: Endpoint6_0Request["payload"]["prompt"] - readonly model?: Endpoint6_0Request["payload"]["model"] +type Endpoint7_0Request = Parameters[0] +export type Endpoint7_0Input = { + readonly location?: Endpoint7_0Request["query"]["location"] + readonly prompt: Endpoint7_0Request["payload"]["prompt"] + readonly model?: Endpoint7_0Request["payload"]["model"] } -export type Endpoint6_0Output = EffectValue>["data"] -export type GenerateTextOperation = (input: Endpoint6_0Input) => Effect.Effect +export type Endpoint7_0Output = EffectValue>["data"] +export type GenerateTextOperation = (input: Endpoint7_0Input) => Effect.Effect export interface GenerateApi { readonly text: GenerateTextOperation } -type Endpoint7_0Request = Parameters[0] -export type Endpoint7_0Input = { readonly location?: Endpoint7_0Request["query"]["location"] } -export type Endpoint7_0Output = EffectValue> -export type ProviderListOperation = (input?: Endpoint7_0Input) => Effect.Effect +type Endpoint8_0Request = Parameters[0] +export type Endpoint8_0Input = { readonly location?: Endpoint8_0Request["query"]["location"] } +export type Endpoint8_0Output = EffectValue> +export type ProviderListOperation = (input?: Endpoint8_0Input) => Effect.Effect -type Endpoint7_1Request = Parameters[0] -export type Endpoint7_1Input = { - readonly providerID: Endpoint7_1Request["params"]["providerID"] - readonly location?: Endpoint7_1Request["query"]["location"] +type Endpoint8_1Request = Parameters[0] +export type Endpoint8_1Input = { + readonly providerID: Endpoint8_1Request["params"]["providerID"] + readonly location?: Endpoint8_1Request["query"]["location"] } -export type Endpoint7_1Output = EffectValue> -export type ProviderGetOperation = (input: Endpoint7_1Input) => Effect.Effect +export type Endpoint8_1Output = EffectValue> +export type ProviderGetOperation = (input: Endpoint8_1Input) => Effect.Effect export interface ProviderApi { readonly list: ProviderListOperation readonly get: ProviderGetOperation } -type Endpoint8_0Request = Parameters[0] -export type Endpoint8_0Input = { readonly location?: Endpoint8_0Request["query"]["location"] } -export type Endpoint8_0Output = EffectValue> -export type IntegrationListOperation = (input?: Endpoint8_0Input) => Effect.Effect +type Endpoint9_0Request = Parameters[0] +export type Endpoint9_0Input = { readonly location?: Endpoint9_0Request["query"]["location"] } +export type Endpoint9_0Output = EffectValue> +export type IntegrationListOperation = (input?: Endpoint9_0Input) => Effect.Effect -type Endpoint8_1Request = Parameters[0] -export type Endpoint8_1Input = { - readonly integrationID: Endpoint8_1Request["params"]["integrationID"] - readonly location?: Endpoint8_1Request["query"]["location"] +type Endpoint9_1Request = Parameters[0] +export type Endpoint9_1Input = { + readonly integrationID: Endpoint9_1Request["params"]["integrationID"] + readonly location?: Endpoint9_1Request["query"]["location"] } -export type Endpoint8_1Output = EffectValue> -export type IntegrationGetOperation = (input: Endpoint8_1Input) => Effect.Effect +export type Endpoint9_1Output = EffectValue> +export type IntegrationGetOperation = (input: Endpoint9_1Input) => Effect.Effect -type Endpoint8_2Request = Parameters[0] -export type Endpoint8_2Input = { - readonly integrationID: Endpoint8_2Request["params"]["integrationID"] - readonly location?: Endpoint8_2Request["query"]["location"] - readonly key: Endpoint8_2Request["payload"]["key"] - readonly label?: Endpoint8_2Request["payload"]["label"] +type Endpoint9_2Request = Parameters[0] +export type Endpoint9_2Input = { + readonly integrationID: Endpoint9_2Request["params"]["integrationID"] + readonly location?: Endpoint9_2Request["query"]["location"] + readonly key: Endpoint9_2Request["payload"]["key"] + readonly label?: Endpoint9_2Request["payload"]["label"] } -export type Endpoint8_2Output = EffectValue> -export type IntegrationConnectKeyOperation = (input: Endpoint8_2Input) => Effect.Effect +export type Endpoint9_2Output = EffectValue> +export type IntegrationConnectKeyOperation = (input: Endpoint9_2Input) => Effect.Effect -type Endpoint8_3Request = Parameters[0] -export type Endpoint8_3Input = { - readonly integrationID: Endpoint8_3Request["params"]["integrationID"] - readonly location?: Endpoint8_3Request["query"]["location"] - readonly methodID: Endpoint8_3Request["payload"]["methodID"] - readonly inputs: Endpoint8_3Request["payload"]["inputs"] - readonly label?: Endpoint8_3Request["payload"]["label"] +type Endpoint9_3Request = Parameters[0] +export type Endpoint9_3Input = { + readonly integrationID: Endpoint9_3Request["params"]["integrationID"] + readonly location?: Endpoint9_3Request["query"]["location"] + readonly methodID: Endpoint9_3Request["payload"]["methodID"] + readonly inputs: Endpoint9_3Request["payload"]["inputs"] + readonly label?: Endpoint9_3Request["payload"]["label"] } -export type Endpoint8_3Output = EffectValue> +export type Endpoint9_3Output = EffectValue> export type IntegrationConnectOauthOperation = ( - input: Endpoint8_3Input, -) => Effect.Effect + input: Endpoint9_3Input, +) => Effect.Effect -type Endpoint8_4Request = Parameters[0] -export type Endpoint8_4Input = { - readonly attemptID: Endpoint8_4Request["params"]["attemptID"] - readonly location?: Endpoint8_4Request["query"]["location"] +type Endpoint9_4Request = Parameters[0] +export type Endpoint9_4Input = { + readonly attemptID: Endpoint9_4Request["params"]["attemptID"] + readonly location?: Endpoint9_4Request["query"]["location"] } -export type Endpoint8_4Output = EffectValue> +export type Endpoint9_4Output = EffectValue> export type IntegrationAttemptStatusOperation = ( - input: Endpoint8_4Input, -) => Effect.Effect + input: Endpoint9_4Input, +) => Effect.Effect -type Endpoint8_5Request = Parameters[0] -export type Endpoint8_5Input = { - readonly attemptID: Endpoint8_5Request["params"]["attemptID"] - readonly location?: Endpoint8_5Request["query"]["location"] - readonly code?: Endpoint8_5Request["payload"]["code"] +type Endpoint9_5Request = Parameters[0] +export type Endpoint9_5Input = { + readonly attemptID: Endpoint9_5Request["params"]["attemptID"] + readonly location?: Endpoint9_5Request["query"]["location"] + readonly code?: Endpoint9_5Request["payload"]["code"] } -export type Endpoint8_5Output = EffectValue> +export type Endpoint9_5Output = EffectValue> export type IntegrationAttemptCompleteOperation = ( - input: Endpoint8_5Input, -) => Effect.Effect + input: Endpoint9_5Input, +) => Effect.Effect -type Endpoint8_6Request = Parameters[0] -export type Endpoint8_6Input = { - readonly attemptID: Endpoint8_6Request["params"]["attemptID"] - readonly location?: Endpoint8_6Request["query"]["location"] +type Endpoint9_6Request = Parameters[0] +export type Endpoint9_6Input = { + readonly attemptID: Endpoint9_6Request["params"]["attemptID"] + readonly location?: Endpoint9_6Request["query"]["location"] } -export type Endpoint8_6Output = EffectValue> +export type Endpoint9_6Output = EffectValue> export type IntegrationAttemptCancelOperation = ( - input: Endpoint8_6Input, -) => Effect.Effect + input: Endpoint9_6Input, +) => Effect.Effect export interface IntegrationApi { readonly list: IntegrationListOperation @@ -335,111 +344,120 @@ export interface IntegrationApi { readonly attemptCancel: IntegrationAttemptCancelOperation } -type Endpoint9_0Request = Parameters[0] -export type Endpoint9_0Input = { - readonly credentialID: Endpoint9_0Request["params"]["credentialID"] - readonly location?: Endpoint9_0Request["query"]["location"] - readonly label: Endpoint9_0Request["payload"]["label"] -} -export type Endpoint9_0Output = EffectValue> -export type CredentialUpdateOperation = (input: Endpoint9_0Input) => Effect.Effect +type Endpoint10_0Request = Parameters[0] +export type Endpoint10_0Input = { readonly location?: Endpoint10_0Request["query"]["location"] } +export type Endpoint10_0Output = EffectValue> +export type ServerMcpListOperation = (input?: Endpoint10_0Input) => Effect.Effect -type Endpoint9_1Request = Parameters[0] -export type Endpoint9_1Input = { - readonly credentialID: Endpoint9_1Request["params"]["credentialID"] - readonly location?: Endpoint9_1Request["query"]["location"] +export interface ServerMcpApi { + readonly list: ServerMcpListOperation } -export type Endpoint9_1Output = EffectValue> -export type CredentialRemoveOperation = (input: Endpoint9_1Input) => Effect.Effect + +type Endpoint11_0Request = Parameters[0] +export type Endpoint11_0Input = { + readonly credentialID: Endpoint11_0Request["params"]["credentialID"] + readonly location?: Endpoint11_0Request["query"]["location"] + readonly label: Endpoint11_0Request["payload"]["label"] +} +export type Endpoint11_0Output = EffectValue> +export type CredentialUpdateOperation = (input: Endpoint11_0Input) => Effect.Effect + +type Endpoint11_1Request = Parameters[0] +export type Endpoint11_1Input = { + readonly credentialID: Endpoint11_1Request["params"]["credentialID"] + readonly location?: Endpoint11_1Request["query"]["location"] +} +export type Endpoint11_1Output = EffectValue> +export type CredentialRemoveOperation = (input: Endpoint11_1Input) => Effect.Effect export interface CredentialApi { readonly update: CredentialUpdateOperation readonly remove: CredentialRemoveOperation } -type Endpoint10_0Request = Parameters[0] -export type Endpoint10_0Input = { readonly location?: Endpoint10_0Request["query"]["location"] } -export type Endpoint10_0Output = EffectValue> -export type ProjectCurrentOperation = (input?: Endpoint10_0Input) => Effect.Effect +type Endpoint12_0Request = Parameters[0] +export type Endpoint12_0Input = { readonly location?: Endpoint12_0Request["query"]["location"] } +export type Endpoint12_0Output = EffectValue> +export type ProjectCurrentOperation = (input?: Endpoint12_0Input) => Effect.Effect -type Endpoint10_1Request = Parameters[0] -export type Endpoint10_1Input = { - readonly projectID: Endpoint10_1Request["params"]["projectID"] - readonly location?: Endpoint10_1Request["query"]["location"] +type Endpoint12_1Request = Parameters[0] +export type Endpoint12_1Input = { + readonly projectID: Endpoint12_1Request["params"]["projectID"] + readonly location?: Endpoint12_1Request["query"]["location"] } -export type Endpoint10_1Output = EffectValue> -export type ProjectDirectoriesOperation = (input: Endpoint10_1Input) => Effect.Effect +export type Endpoint12_1Output = EffectValue> +export type ProjectDirectoriesOperation = (input: Endpoint12_1Input) => Effect.Effect export interface ProjectApi { readonly current: ProjectCurrentOperation readonly directories: ProjectDirectoriesOperation } -type Endpoint11_0Request = Parameters[0] -export type Endpoint11_0Input = { readonly location?: Endpoint11_0Request["query"]["location"] } -export type Endpoint11_0Output = EffectValue> +type Endpoint13_0Request = Parameters[0] +export type Endpoint13_0Input = { readonly location?: Endpoint13_0Request["query"]["location"] } +export type Endpoint13_0Output = EffectValue> export type PermissionListRequestsOperation = ( - input?: Endpoint11_0Input, -) => Effect.Effect + input?: Endpoint13_0Input, +) => Effect.Effect -type Endpoint11_1Request = Parameters[0] -export type Endpoint11_1Input = { readonly projectID?: Endpoint11_1Request["query"]["projectID"] } -export type Endpoint11_1Output = EffectValue< +type Endpoint13_1Request = Parameters[0] +export type Endpoint13_1Input = { readonly projectID?: Endpoint13_1Request["query"]["projectID"] } +export type Endpoint13_1Output = EffectValue< ReturnType >["data"] export type PermissionListSavedOperation = ( - input?: Endpoint11_1Input, -) => Effect.Effect + input?: Endpoint13_1Input, +) => Effect.Effect -type Endpoint11_2Request = Parameters[0] -export type Endpoint11_2Input = { readonly id: Endpoint11_2Request["params"]["id"] } -export type Endpoint11_2Output = EffectValue> +type Endpoint13_2Request = Parameters[0] +export type Endpoint13_2Input = { readonly id: Endpoint13_2Request["params"]["id"] } +export type Endpoint13_2Output = EffectValue> export type PermissionRemoveSavedOperation = ( - input: Endpoint11_2Input, -) => Effect.Effect + input: Endpoint13_2Input, +) => Effect.Effect -type Endpoint11_3Request = Parameters[0] -export type Endpoint11_3Input = { - readonly sessionID: Endpoint11_3Request["params"]["sessionID"] - readonly id?: Endpoint11_3Request["payload"]["id"] - readonly action: Endpoint11_3Request["payload"]["action"] - readonly resources: Endpoint11_3Request["payload"]["resources"] - readonly save?: Endpoint11_3Request["payload"]["save"] - readonly metadata?: Endpoint11_3Request["payload"]["metadata"] - readonly source?: Endpoint11_3Request["payload"]["source"] - readonly agent?: Endpoint11_3Request["payload"]["agent"] +type Endpoint13_3Request = Parameters[0] +export type Endpoint13_3Input = { + readonly sessionID: Endpoint13_3Request["params"]["sessionID"] + readonly id?: Endpoint13_3Request["payload"]["id"] + readonly action: Endpoint13_3Request["payload"]["action"] + readonly resources: Endpoint13_3Request["payload"]["resources"] + readonly save?: Endpoint13_3Request["payload"]["save"] + readonly metadata?: Endpoint13_3Request["payload"]["metadata"] + readonly source?: Endpoint13_3Request["payload"]["source"] + readonly agent?: Endpoint13_3Request["payload"]["agent"] } -export type Endpoint11_3Output = EffectValue< +export type Endpoint13_3Output = EffectValue< ReturnType >["data"] -export type PermissionCreateOperation = (input: Endpoint11_3Input) => Effect.Effect +export type PermissionCreateOperation = (input: Endpoint13_3Input) => Effect.Effect -type Endpoint11_4Request = Parameters[0] -export type Endpoint11_4Input = { readonly sessionID: Endpoint11_4Request["params"]["sessionID"] } -export type Endpoint11_4Output = EffectValue< +type Endpoint13_4Request = Parameters[0] +export type Endpoint13_4Input = { readonly sessionID: Endpoint13_4Request["params"]["sessionID"] } +export type Endpoint13_4Output = EffectValue< ReturnType >["data"] -export type PermissionListOperation = (input: Endpoint11_4Input) => Effect.Effect +export type PermissionListOperation = (input: Endpoint13_4Input) => Effect.Effect -type Endpoint11_5Request = Parameters[0] -export type Endpoint11_5Input = { - readonly sessionID: Endpoint11_5Request["params"]["sessionID"] - readonly requestID: Endpoint11_5Request["params"]["requestID"] +type Endpoint13_5Request = Parameters[0] +export type Endpoint13_5Input = { + readonly sessionID: Endpoint13_5Request["params"]["sessionID"] + readonly requestID: Endpoint13_5Request["params"]["requestID"] } -export type Endpoint11_5Output = EffectValue< +export type Endpoint13_5Output = EffectValue< ReturnType >["data"] -export type PermissionGetOperation = (input: Endpoint11_5Input) => Effect.Effect +export type PermissionGetOperation = (input: Endpoint13_5Input) => Effect.Effect -type Endpoint11_6Request = Parameters[0] -export type Endpoint11_6Input = { - readonly sessionID: Endpoint11_6Request["params"]["sessionID"] - readonly requestID: Endpoint11_6Request["params"]["requestID"] - readonly reply: Endpoint11_6Request["payload"]["reply"] - readonly message?: Endpoint11_6Request["payload"]["message"] +type Endpoint13_6Request = Parameters[0] +export type Endpoint13_6Input = { + readonly sessionID: Endpoint13_6Request["params"]["sessionID"] + readonly requestID: Endpoint13_6Request["params"]["requestID"] + readonly reply: Endpoint13_6Request["payload"]["reply"] + readonly message?: Endpoint13_6Request["payload"]["message"] } -export type Endpoint11_6Output = EffectValue> -export type PermissionReplyOperation = (input: Endpoint11_6Input) => Effect.Effect +export type Endpoint13_6Output = EffectValue> +export type PermissionReplyOperation = (input: Endpoint13_6Input) => Effect.Effect export interface PermissionApi { readonly listRequests: PermissionListRequestsOperation @@ -451,96 +469,96 @@ export interface PermissionApi { readonly reply: PermissionReplyOperation } -type Endpoint12_0Request = Parameters[0] -export type Endpoint12_0Input = { - readonly location?: Endpoint12_0Request["query"]["location"] - readonly path?: Endpoint12_0Request["query"]["path"] +type Endpoint14_0Request = Parameters[0] +export type Endpoint14_0Input = { + readonly location?: Endpoint14_0Request["query"]["location"] + readonly path?: Endpoint14_0Request["query"]["path"] } -export type Endpoint12_0Output = EffectValue> -export type FileListOperation = (input?: Endpoint12_0Input) => Effect.Effect +export type Endpoint14_0Output = EffectValue> +export type FileListOperation = (input?: Endpoint14_0Input) => Effect.Effect -type Endpoint12_1Request = Parameters[0] -export type Endpoint12_1Input = { - readonly location?: Endpoint12_1Request["query"]["location"] - readonly query: Endpoint12_1Request["query"]["query"] - readonly type?: Endpoint12_1Request["query"]["type"] - readonly limit?: Endpoint12_1Request["query"]["limit"] +type Endpoint14_1Request = Parameters[0] +export type Endpoint14_1Input = { + readonly location?: Endpoint14_1Request["query"]["location"] + readonly query: Endpoint14_1Request["query"]["query"] + readonly type?: Endpoint14_1Request["query"]["type"] + readonly limit?: Endpoint14_1Request["query"]["limit"] } -export type Endpoint12_1Output = EffectValue> -export type FileFindOperation = (input: Endpoint12_1Input) => Effect.Effect +export type Endpoint14_1Output = EffectValue> +export type FileFindOperation = (input: Endpoint14_1Input) => Effect.Effect export interface FileApi { readonly list: FileListOperation readonly find: FileFindOperation } -type Endpoint13_0Request = Parameters[0] -export type Endpoint13_0Input = { readonly location?: Endpoint13_0Request["query"]["location"] } -export type Endpoint13_0Output = EffectValue> -export type CommandListOperation = (input?: Endpoint13_0Input) => Effect.Effect +type Endpoint15_0Request = Parameters[0] +export type Endpoint15_0Input = { readonly location?: Endpoint15_0Request["query"]["location"] } +export type Endpoint15_0Output = EffectValue> +export type CommandListOperation = (input?: Endpoint15_0Input) => Effect.Effect export interface CommandApi { readonly list: CommandListOperation } -type Endpoint14_0Request = Parameters[0] -export type Endpoint14_0Input = { readonly location?: Endpoint14_0Request["query"]["location"] } -export type Endpoint14_0Output = EffectValue> -export type SkillListOperation = (input?: Endpoint14_0Input) => Effect.Effect +type Endpoint16_0Request = Parameters[0] +export type Endpoint16_0Input = { readonly location?: Endpoint16_0Request["query"]["location"] } +export type Endpoint16_0Output = EffectValue> +export type SkillListOperation = (input?: Endpoint16_0Input) => Effect.Effect export interface SkillApi { readonly list: SkillListOperation } -export type Endpoint15_0Output = StreamValue>> -export type EventSubscribeOperation = () => Stream.Stream +export type Endpoint17_0Output = StreamValue>> +export type EventSubscribeOperation = () => Stream.Stream export interface EventApi { readonly subscribe: EventSubscribeOperation } -type Endpoint16_0Request = Parameters[0] -export type Endpoint16_0Input = { readonly location?: Endpoint16_0Request["query"]["location"] } -export type Endpoint16_0Output = EffectValue> -export type PtyListOperation = (input?: Endpoint16_0Input) => Effect.Effect +type Endpoint18_0Request = Parameters[0] +export type Endpoint18_0Input = { readonly location?: Endpoint18_0Request["query"]["location"] } +export type Endpoint18_0Output = EffectValue> +export type PtyListOperation = (input?: Endpoint18_0Input) => Effect.Effect -type Endpoint16_1Request = Parameters[0] -export type Endpoint16_1Input = { - readonly location?: Endpoint16_1Request["query"]["location"] - readonly command?: Endpoint16_1Request["payload"]["command"] - readonly args?: Endpoint16_1Request["payload"]["args"] - readonly cwd?: Endpoint16_1Request["payload"]["cwd"] - readonly title?: Endpoint16_1Request["payload"]["title"] - readonly env?: Endpoint16_1Request["payload"]["env"] +type Endpoint18_1Request = Parameters[0] +export type Endpoint18_1Input = { + readonly location?: Endpoint18_1Request["query"]["location"] + readonly command?: Endpoint18_1Request["payload"]["command"] + readonly args?: Endpoint18_1Request["payload"]["args"] + readonly cwd?: Endpoint18_1Request["payload"]["cwd"] + readonly title?: Endpoint18_1Request["payload"]["title"] + readonly env?: Endpoint18_1Request["payload"]["env"] } -export type Endpoint16_1Output = EffectValue> -export type PtyCreateOperation = (input?: Endpoint16_1Input) => Effect.Effect +export type Endpoint18_1Output = EffectValue> +export type PtyCreateOperation = (input?: Endpoint18_1Input) => Effect.Effect -type Endpoint16_2Request = Parameters[0] -export type Endpoint16_2Input = { - readonly ptyID: Endpoint16_2Request["params"]["ptyID"] - readonly location?: Endpoint16_2Request["query"]["location"] +type Endpoint18_2Request = Parameters[0] +export type Endpoint18_2Input = { + readonly ptyID: Endpoint18_2Request["params"]["ptyID"] + readonly location?: Endpoint18_2Request["query"]["location"] } -export type Endpoint16_2Output = EffectValue> -export type PtyGetOperation = (input: Endpoint16_2Input) => Effect.Effect +export type Endpoint18_2Output = EffectValue> +export type PtyGetOperation = (input: Endpoint18_2Input) => Effect.Effect -type Endpoint16_3Request = Parameters[0] -export type Endpoint16_3Input = { - readonly ptyID: Endpoint16_3Request["params"]["ptyID"] - readonly location?: Endpoint16_3Request["query"]["location"] - readonly title?: Endpoint16_3Request["payload"]["title"] - readonly size?: Endpoint16_3Request["payload"]["size"] +type Endpoint18_3Request = Parameters[0] +export type Endpoint18_3Input = { + readonly ptyID: Endpoint18_3Request["params"]["ptyID"] + readonly location?: Endpoint18_3Request["query"]["location"] + readonly title?: Endpoint18_3Request["payload"]["title"] + readonly size?: Endpoint18_3Request["payload"]["size"] } -export type Endpoint16_3Output = EffectValue> -export type PtyUpdateOperation = (input: Endpoint16_3Input) => Effect.Effect +export type Endpoint18_3Output = EffectValue> +export type PtyUpdateOperation = (input: Endpoint18_3Input) => Effect.Effect -type Endpoint16_4Request = Parameters[0] -export type Endpoint16_4Input = { - readonly ptyID: Endpoint16_4Request["params"]["ptyID"] - readonly location?: Endpoint16_4Request["query"]["location"] +type Endpoint18_4Request = Parameters[0] +export type Endpoint18_4Input = { + readonly ptyID: Endpoint18_4Request["params"]["ptyID"] + readonly location?: Endpoint18_4Request["query"]["location"] } -export type Endpoint16_4Output = EffectValue> -export type PtyRemoveOperation = (input: Endpoint16_4Input) => Effect.Effect +export type Endpoint18_4Output = EffectValue> +export type PtyRemoveOperation = (input: Endpoint18_4Input) => Effect.Effect export interface PtyApi { readonly list: PtyListOperation @@ -550,47 +568,47 @@ export interface PtyApi { readonly remove: PtyRemoveOperation } -type Endpoint17_0Request = Parameters[0] -export type Endpoint17_0Input = { readonly location?: Endpoint17_0Request["query"]["location"] } -export type Endpoint17_0Output = EffectValue> -export type ShellListOperation = (input?: Endpoint17_0Input) => Effect.Effect +type Endpoint19_0Request = Parameters[0] +export type Endpoint19_0Input = { readonly location?: Endpoint19_0Request["query"]["location"] } +export type Endpoint19_0Output = EffectValue> +export type ShellListOperation = (input?: Endpoint19_0Input) => Effect.Effect -type Endpoint17_1Request = Parameters[0] -export type Endpoint17_1Input = { - readonly location?: Endpoint17_1Request["query"]["location"] - readonly command: Endpoint17_1Request["payload"]["command"] - readonly cwd?: Endpoint17_1Request["payload"]["cwd"] - readonly timeout?: Endpoint17_1Request["payload"]["timeout"] - readonly metadata?: Endpoint17_1Request["payload"]["metadata"] +type Endpoint19_1Request = Parameters[0] +export type Endpoint19_1Input = { + readonly location?: Endpoint19_1Request["query"]["location"] + readonly command: Endpoint19_1Request["payload"]["command"] + readonly cwd?: Endpoint19_1Request["payload"]["cwd"] + readonly timeout?: Endpoint19_1Request["payload"]["timeout"] + readonly metadata?: Endpoint19_1Request["payload"]["metadata"] } -export type Endpoint17_1Output = EffectValue> -export type ShellCreateOperation = (input: Endpoint17_1Input) => Effect.Effect +export type Endpoint19_1Output = EffectValue> +export type ShellCreateOperation = (input: Endpoint19_1Input) => Effect.Effect -type Endpoint17_2Request = Parameters[0] -export type Endpoint17_2Input = { - readonly id: Endpoint17_2Request["params"]["id"] - readonly location?: Endpoint17_2Request["query"]["location"] +type Endpoint19_2Request = Parameters[0] +export type Endpoint19_2Input = { + readonly id: Endpoint19_2Request["params"]["id"] + readonly location?: Endpoint19_2Request["query"]["location"] } -export type Endpoint17_2Output = EffectValue> -export type ShellGetOperation = (input: Endpoint17_2Input) => Effect.Effect +export type Endpoint19_2Output = EffectValue> +export type ShellGetOperation = (input: Endpoint19_2Input) => Effect.Effect -type Endpoint17_3Request = Parameters[0] -export type Endpoint17_3Input = { - readonly id: Endpoint17_3Request["params"]["id"] - readonly location?: Endpoint17_3Request["query"]["location"] - readonly cursor?: Endpoint17_3Request["query"]["cursor"] - readonly limit?: Endpoint17_3Request["query"]["limit"] +type Endpoint19_3Request = Parameters[0] +export type Endpoint19_3Input = { + readonly id: Endpoint19_3Request["params"]["id"] + readonly location?: Endpoint19_3Request["query"]["location"] + readonly cursor?: Endpoint19_3Request["query"]["cursor"] + readonly limit?: Endpoint19_3Request["query"]["limit"] } -export type Endpoint17_3Output = EffectValue> -export type ShellOutputOperation = (input: Endpoint17_3Input) => Effect.Effect +export type Endpoint19_3Output = EffectValue> +export type ShellOutputOperation = (input: Endpoint19_3Input) => Effect.Effect -type Endpoint17_4Request = Parameters[0] -export type Endpoint17_4Input = { - readonly id: Endpoint17_4Request["params"]["id"] - readonly location?: Endpoint17_4Request["query"]["location"] +type Endpoint19_4Request = Parameters[0] +export type Endpoint19_4Input = { + readonly id: Endpoint19_4Request["params"]["id"] + readonly location?: Endpoint19_4Request["query"]["location"] } -export type Endpoint17_4Output = EffectValue> -export type ShellRemoveOperation = (input: Endpoint17_4Input) => Effect.Effect +export type Endpoint19_4Output = EffectValue> +export type ShellRemoveOperation = (input: Endpoint19_4Input) => Effect.Effect export interface ShellApi { readonly list: ShellListOperation @@ -600,34 +618,34 @@ export interface ShellApi { readonly remove: ShellRemoveOperation } -type Endpoint18_0Request = Parameters[0] -export type Endpoint18_0Input = { readonly location?: Endpoint18_0Request["query"]["location"] } -export type Endpoint18_0Output = EffectValue> +type Endpoint20_0Request = Parameters[0] +export type Endpoint20_0Input = { readonly location?: Endpoint20_0Request["query"]["location"] } +export type Endpoint20_0Output = EffectValue> export type QuestionListRequestsOperation = ( - input?: Endpoint18_0Input, -) => Effect.Effect + input?: Endpoint20_0Input, +) => Effect.Effect -type Endpoint18_1Request = Parameters[0] -export type Endpoint18_1Input = { readonly sessionID: Endpoint18_1Request["params"]["sessionID"] } -export type Endpoint18_1Output = EffectValue>["data"] -export type QuestionListOperation = (input: Endpoint18_1Input) => Effect.Effect +type Endpoint20_1Request = Parameters[0] +export type Endpoint20_1Input = { readonly sessionID: Endpoint20_1Request["params"]["sessionID"] } +export type Endpoint20_1Output = EffectValue>["data"] +export type QuestionListOperation = (input: Endpoint20_1Input) => Effect.Effect -type Endpoint18_2Request = Parameters[0] -export type Endpoint18_2Input = { - readonly sessionID: Endpoint18_2Request["params"]["sessionID"] - readonly requestID: Endpoint18_2Request["params"]["requestID"] - readonly answers: Endpoint18_2Request["payload"]["answers"] +type Endpoint20_2Request = Parameters[0] +export type Endpoint20_2Input = { + readonly sessionID: Endpoint20_2Request["params"]["sessionID"] + readonly requestID: Endpoint20_2Request["params"]["requestID"] + readonly answers: Endpoint20_2Request["payload"]["answers"] } -export type Endpoint18_2Output = EffectValue> -export type QuestionReplyOperation = (input: Endpoint18_2Input) => Effect.Effect +export type Endpoint20_2Output = EffectValue> +export type QuestionReplyOperation = (input: Endpoint20_2Input) => Effect.Effect -type Endpoint18_3Request = Parameters[0] -export type Endpoint18_3Input = { - readonly sessionID: Endpoint18_3Request["params"]["sessionID"] - readonly requestID: Endpoint18_3Request["params"]["requestID"] +type Endpoint20_3Request = Parameters[0] +export type Endpoint20_3Input = { + readonly sessionID: Endpoint20_3Request["params"]["sessionID"] + readonly requestID: Endpoint20_3Request["params"]["requestID"] } -export type Endpoint18_3Output = EffectValue> -export type QuestionRejectOperation = (input: Endpoint18_3Input) => Effect.Effect +export type Endpoint20_3Output = EffectValue> +export type QuestionRejectOperation = (input: Endpoint20_3Input) => Effect.Effect export interface QuestionApi { readonly listRequests: QuestionListRequestsOperation @@ -636,43 +654,43 @@ export interface QuestionApi { readonly reject: QuestionRejectOperation } -type Endpoint19_0Request = Parameters[0] -export type Endpoint19_0Input = { readonly location?: Endpoint19_0Request["query"]["location"] } -export type Endpoint19_0Output = EffectValue> -export type ReferenceListOperation = (input?: Endpoint19_0Input) => Effect.Effect +type Endpoint21_0Request = Parameters[0] +export type Endpoint21_0Input = { readonly location?: Endpoint21_0Request["query"]["location"] } +export type Endpoint21_0Output = EffectValue> +export type ReferenceListOperation = (input?: Endpoint21_0Input) => Effect.Effect export interface ReferenceApi { readonly list: ReferenceListOperation } -type Endpoint20_0Request = Parameters[0] -export type Endpoint20_0Input = { - readonly projectID: Endpoint20_0Request["params"]["projectID"] - readonly location?: Endpoint20_0Request["query"]["location"] - readonly strategy: Endpoint20_0Request["payload"]["strategy"] - readonly directory: Endpoint20_0Request["payload"]["directory"] - readonly name?: Endpoint20_0Request["payload"]["name"] +type Endpoint22_0Request = Parameters[0] +export type Endpoint22_0Input = { + readonly projectID: Endpoint22_0Request["params"]["projectID"] + readonly location?: Endpoint22_0Request["query"]["location"] + readonly strategy: Endpoint22_0Request["payload"]["strategy"] + readonly directory: Endpoint22_0Request["payload"]["directory"] + readonly name?: Endpoint22_0Request["payload"]["name"] } -export type Endpoint20_0Output = EffectValue> -export type ProjectCopyCreateOperation = (input: Endpoint20_0Input) => Effect.Effect +export type Endpoint22_0Output = EffectValue> +export type ProjectCopyCreateOperation = (input: Endpoint22_0Input) => Effect.Effect -type Endpoint20_1Request = Parameters[0] -export type Endpoint20_1Input = { - readonly projectID: Endpoint20_1Request["params"]["projectID"] - readonly location?: Endpoint20_1Request["query"]["location"] - readonly directory: Endpoint20_1Request["payload"]["directory"] - readonly force: Endpoint20_1Request["payload"]["force"] +type Endpoint22_1Request = Parameters[0] +export type Endpoint22_1Input = { + readonly projectID: Endpoint22_1Request["params"]["projectID"] + readonly location?: Endpoint22_1Request["query"]["location"] + readonly directory: Endpoint22_1Request["payload"]["directory"] + readonly force: Endpoint22_1Request["payload"]["force"] } -export type Endpoint20_1Output = EffectValue> -export type ProjectCopyRemoveOperation = (input: Endpoint20_1Input) => Effect.Effect +export type Endpoint22_1Output = EffectValue> +export type ProjectCopyRemoveOperation = (input: Endpoint22_1Input) => Effect.Effect -type Endpoint20_2Request = Parameters[0] -export type Endpoint20_2Input = { - readonly projectID: Endpoint20_2Request["params"]["projectID"] - readonly location?: Endpoint20_2Request["query"]["location"] +type Endpoint22_2Request = Parameters[0] +export type Endpoint22_2Input = { + readonly projectID: Endpoint22_2Request["params"]["projectID"] + readonly location?: Endpoint22_2Request["query"]["location"] } -export type Endpoint20_2Output = EffectValue> -export type ProjectCopyRefreshOperation = (input: Endpoint20_2Input) => Effect.Effect +export type Endpoint22_2Output = EffectValue> +export type ProjectCopyRefreshOperation = (input: Endpoint22_2Input) => Effect.Effect export interface ProjectCopyApi { readonly create: ProjectCopyCreateOperation @@ -684,12 +702,14 @@ export interface AppApi { readonly health: HealthApi readonly location: LocationApi readonly agent: AgentApi + readonly plugin: PluginApi readonly session: SessionApi readonly message: MessageApi readonly model: ModelApi readonly generate: GenerateApi readonly provider: ProviderApi readonly integration: IntegrationApi + readonly "server.mcp": ServerMcpApi readonly credential: CredentialApi readonly project: ProjectApi readonly permission: PermissionApi diff --git a/packages/protocol/src/api.ts b/packages/protocol/src/api.ts index 03129d3618..b8583c8520 100644 --- a/packages/protocol/src/api.ts +++ b/packages/protocol/src/api.ts @@ -13,6 +13,7 @@ import { SkillGroup } from "./groups/skill" import { EventGroup, makeEventGroup } from "./groups/event" import type { Definition } from "@opencode-ai/schema/event" import { AgentGroup } from "./groups/agent" +import { PluginGroup } from "./groups/plugin" import { HealthGroup } from "./groups/health" import { PtyGroup } from "./groups/pty" import { ShellGroup } from "./groups/shell" @@ -42,6 +43,7 @@ const makeApiFromGroup = < .add(HealthGroup) .add(LocationGroup.middleware(locationMiddleware)) .add(AgentGroup.middleware(locationMiddleware)) + .add(PluginGroup.middleware(locationMiddleware)) .add(makeSessionGroup(sessionLocationMiddleware)) .add(MessageGroup.middleware(sessionLocationMiddleware)) .add(ModelGroup.middleware(locationMiddleware)) diff --git a/packages/protocol/src/client.ts b/packages/protocol/src/client.ts index f71ef465cf..aa7c45a0ae 100644 --- a/packages/protocol/src/client.ts +++ b/packages/protocol/src/client.ts @@ -20,6 +20,7 @@ export const groupNames = { "server.health": "health", "server.location": "location", "server.agent": "agent", + "server.plugin": "plugin", "server.session": "session", "server.message": "message", "server.model": "model", diff --git a/packages/protocol/src/groups/plugin.ts b/packages/protocol/src/groups/plugin.ts new file mode 100644 index 0000000000..9522354f84 --- /dev/null +++ b/packages/protocol/src/groups/plugin.ts @@ -0,0 +1,27 @@ +import { Location } from "@opencode-ai/schema/location" +import { Plugin } from "@opencode-ai/schema/plugin" +import { Schema } from "effect" +import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi" +import { LocationQuery, locationQueryOpenApi } from "./location" + +export const PluginGroup = HttpApiGroup.make("server.plugin") + .add( + HttpApiEndpoint.get("plugin.list", "/api/plugin", { + query: LocationQuery, + success: Location.response(Schema.Array(Plugin.Info)), + }) + .annotateMerge(locationQueryOpenApi) + .annotateMerge( + OpenApi.annotations({ + identifier: "v2.plugin.list", + summary: "List plugins", + description: "Retrieve currently loaded plugins.", + }), + ), + ) + .annotateMerge( + OpenApi.annotations({ + title: "plugins", + description: "Experimental plugin routes.", + }), + ) diff --git a/packages/schema/src/plugin.ts b/packages/schema/src/plugin.ts index c23f79582e..458408fd5b 100644 --- a/packages/schema/src/plugin.ts +++ b/packages/schema/src/plugin.ts @@ -6,6 +6,11 @@ import { define, inventory } from "./event" export const ID = Schema.String.pipe(Schema.brand("Plugin.ID")) export type ID = typeof ID.Type +export interface Info extends Schema.Schema.Type {} +export const Info = Schema.Struct({ + id: ID, +}).annotate({ identifier: "Plugin.Info" }) + const Added = define({ type: "plugin.added", schema: { id: ID }, diff --git a/packages/sdk-next/src/opencode.ts b/packages/sdk-next/src/opencode.ts index d4c3ad8fdc..6c072f4605 100644 --- a/packages/sdk-next/src/opencode.ts +++ b/packages/sdk-next/src/opencode.ts @@ -44,7 +44,7 @@ export const create = Effect.fn("OpenCode.create")(function* () { // `PluginContext`, so `ctx.agent.transform` and every other hook behave exactly // as they do for a config-discovered plugin. Define agent profiles here at // startup, then select one per Session with `sessions.create({ agent })`. - plugin: plugins.register, + plugin: Object.assign(plugins.register, client.plugin), } }) diff --git a/packages/server/src/handlers.ts b/packages/server/src/handlers.ts index acb16fb8e4..5ce5970a7a 100644 --- a/packages/server/src/handlers.ts +++ b/packages/server/src/handlers.ts @@ -10,6 +10,7 @@ import { CommandHandler } from "./handlers/command" import { SkillHandler } from "./handlers/skill" import { EventHandler } from "./handlers/event" import { AgentHandler } from "./handlers/agent" +import { PluginHandler } from "./handlers/plugin" import { HealthHandler } from "./handlers/health" import { PtyHandler } from "./handlers/pty" import { ShellHandler } from "./handlers/shell" @@ -26,6 +27,7 @@ export const handlers = Layer.mergeAll( HealthHandler, LocationHandler, AgentHandler, + PluginHandler, SessionHandler, MessageHandler, ModelHandler, diff --git a/packages/server/src/handlers/plugin.ts b/packages/server/src/handlers/plugin.ts new file mode 100644 index 0000000000..dd8da6a3d9 --- /dev/null +++ b/packages/server/src/handlers/plugin.ts @@ -0,0 +1,13 @@ +import { PluginV2 } from "@opencode-ai/core/plugin" +import { Effect } from "effect" +import { HttpApiBuilder } from "effect/unstable/httpapi" +import { Api } from "../api" +import { response } from "../location" + +export const PluginHandler = HttpApiBuilder.group(Api, "server.plugin", (handlers) => + handlers.handle("plugin.list", () => + Effect.gen(function* () { + return yield* response(PluginV2.Service.use((plugin) => plugin.list())) + }), + ), +)