refactor(core): consolidate tool architecture

This commit is contained in:
Dax Raad 2026-07-26 20:08:55 -04:00
commit 8db7487c89
466 changed files with 9405 additions and 11071 deletions

View file

@ -62,6 +62,15 @@ export class ProviderNotFoundError extends Schema.TaggedErrorClass<ProviderNotFo
{ httpApiStatus: 404 },
) {}
export class AgentNotFoundError extends Schema.TaggedErrorClass<AgentNotFoundError>()(
"AgentNotFoundError",
{
agentID: Schema.String,
message: Schema.String,
},
{ httpApiStatus: 404 },
) {}
export class SessionNotFoundError extends Schema.TaggedErrorClass<SessionNotFoundError>()(
"SessionNotFoundError",
{

View file

@ -3,6 +3,7 @@ import { Location } from "@opencode-ai/schema/location"
import { Schema } from "effect"
import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"
import { LocationQuery, locationQueryOpenApi } from "./location.js"
import { AgentNotFoundError } from "../errors.js"
export const AgentGroup = HttpApiGroup.make("server.agent")
.add(
@ -19,4 +20,20 @@ export const AgentGroup = HttpApiGroup.make("server.agent")
}),
),
)
.add(
HttpApiEndpoint.get("agent.get", "/api/agent/:agentID", {
params: { agentID: Agent.ID },
query: LocationQuery,
success: Location.response(Agent.Info),
error: AgentNotFoundError,
})
.annotateMerge(locationQueryOpenApi)
.annotateMerge(
OpenApi.annotations({
identifier: "v2.agent.get",
summary: "Get agent",
description: "Retrieve a single currently registered agent.",
}),
),
)
.annotateMerge(OpenApi.annotations({ title: "agent" }))