|
|
@@ -14,7 +14,11 @@ import { Schema, SchemaGetter, Struct } from "effect"
|
|
|
import { HttpApi, HttpApiEndpoint, HttpApiError, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi"
|
|
|
import { Authorization } from "../middleware/authorization"
|
|
|
import { InstanceContextMiddleware } from "../middleware/instance-context"
|
|
|
-import { WorkspaceRoutingMiddleware, WorkspaceRoutingQueryFields } from "../middleware/workspace-routing"
|
|
|
+import {
|
|
|
+ WorkspaceRoutingMiddleware,
|
|
|
+ WorkspaceRoutingQuery,
|
|
|
+ WorkspaceRoutingQueryFields,
|
|
|
+} from "../middleware/workspace-routing"
|
|
|
import { ApiNotFoundError } from "../errors"
|
|
|
import { described } from "./metadata"
|
|
|
|
|
|
@@ -116,6 +120,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
}),
|
|
|
),
|
|
|
HttpApiEndpoint.get("status", SessionPaths.status, {
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(StatusMap, "Get session status"),
|
|
|
error: HttpApiError.BadRequest,
|
|
|
}).annotateMerge(
|
|
|
@@ -127,6 +132,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.get("get", SessionPaths.get, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(Session.Info, "Get session"),
|
|
|
error: [HttpApiError.BadRequest, ApiNotFoundError],
|
|
|
}).annotateMerge(
|
|
|
@@ -138,6 +144,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.get("children", SessionPaths.children, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(Schema.Array(Session.Info), "List of children"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
}).annotateMerge(
|
|
|
@@ -149,6 +156,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.get("todo", SessionPaths.todo, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(Schema.Array(Todo.Info), "Todo list"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
}).annotateMerge(
|
|
|
@@ -183,6 +191,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.get("message", SessionPaths.message, {
|
|
|
params: { sessionID: SessionID, messageID: MessageID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(MessageV2.WithParts, "Message"),
|
|
|
error: [HttpApiError.BadRequest, ApiNotFoundError],
|
|
|
}).annotateMerge(
|
|
|
@@ -193,6 +202,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
}),
|
|
|
),
|
|
|
HttpApiEndpoint.post("create", SessionPaths.create, {
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: [HttpApiSchema.NoContent, Session.CreateInput],
|
|
|
success: described(Session.Info, "Successfully created session"),
|
|
|
error: HttpApiError.BadRequest,
|
|
|
@@ -205,6 +215,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.delete("remove", SessionPaths.remove, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(Schema.Boolean, "Successfully deleted session"),
|
|
|
error: [HttpApiError.BadRequest, ApiNotFoundError],
|
|
|
}).annotateMerge(
|
|
|
@@ -216,6 +227,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.patch("update", SessionPaths.update, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: UpdatePayload,
|
|
|
success: described(Session.Info, "Successfully updated session"),
|
|
|
error: [HttpApiError.BadRequest, ApiNotFoundError],
|
|
|
@@ -228,6 +240,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("fork", SessionPaths.fork, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: ForkPayload,
|
|
|
success: described(Session.Info, "200"),
|
|
|
error: ApiNotFoundError,
|
|
|
@@ -240,6 +253,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("abort", SessionPaths.abort, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(Schema.Boolean, "Aborted session"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
}).annotateMerge(
|
|
|
@@ -251,6 +265,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("init", SessionPaths.init, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: InitPayload,
|
|
|
success: described(Schema.Boolean, "200"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
@@ -264,6 +279,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("share", SessionPaths.share, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(Session.Info, "Successfully shared session"),
|
|
|
error: [HttpApiError.InternalServerError, ApiNotFoundError],
|
|
|
}).annotateMerge(
|
|
|
@@ -275,6 +291,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.delete("unshare", SessionPaths.share, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(Session.Info, "Successfully unshared session"),
|
|
|
error: [HttpApiError.InternalServerError, ApiNotFoundError],
|
|
|
}).annotateMerge(
|
|
|
@@ -286,6 +303,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("summarize", SessionPaths.summarize, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: SummarizePayload,
|
|
|
success: described(Schema.Boolean, "Summarized session"),
|
|
|
error: [HttpApiError.BadRequest, ApiNotFoundError],
|
|
|
@@ -298,6 +316,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("prompt", SessionPaths.prompt, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: PromptPayload,
|
|
|
success: described(MessageV2.WithParts, "Created message"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
@@ -310,6 +329,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("promptAsync", SessionPaths.promptAsync, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: PromptPayload,
|
|
|
success: described(HttpApiSchema.NoContent, "Prompt accepted"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
@@ -323,6 +343,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("command", SessionPaths.command, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: CommandPayload,
|
|
|
success: described(MessageV2.WithParts, "Created message"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
@@ -335,6 +356,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("shell", SessionPaths.shell, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: ShellPayload,
|
|
|
success: described(MessageV2.WithParts, "Created message"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
@@ -347,6 +369,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("revert", SessionPaths.revert, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: RevertPayload,
|
|
|
success: described(Session.Info, "Updated session"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
@@ -360,6 +383,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("unrevert", SessionPaths.unrevert, {
|
|
|
params: { sessionID: SessionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(Session.Info, "Updated session"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
}).annotateMerge(
|
|
|
@@ -371,6 +395,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.post("permissionRespond", SessionPaths.permissions, {
|
|
|
params: { sessionID: SessionID, permissionID: PermissionID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: PermissionResponsePayload,
|
|
|
success: described(Schema.Boolean, "Permission processed successfully"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
@@ -384,6 +409,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.delete("deleteMessage", SessionPaths.deleteMessage, {
|
|
|
params: { sessionID: SessionID, messageID: MessageID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(Schema.Boolean, "Successfully deleted message"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
}).annotateMerge(
|
|
|
@@ -396,6 +422,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.delete("deletePart", SessionPaths.deletePart, {
|
|
|
params: { sessionID: SessionID, messageID: MessageID, partID: PartID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
success: described(Schema.Boolean, "Successfully deleted part"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|
|
|
}).annotateMerge(
|
|
|
@@ -406,6 +433,7 @@ export const SessionApi = HttpApi.make("session")
|
|
|
),
|
|
|
HttpApiEndpoint.patch("updatePart", SessionPaths.updatePart, {
|
|
|
params: { sessionID: SessionID, messageID: MessageID, partID: PartID },
|
|
|
+ query: WorkspaceRoutingQuery,
|
|
|
payload: MessageV2.Part,
|
|
|
success: described(MessageV2.Part, "Successfully updated part"),
|
|
|
error: [HttpApiError.BadRequest, HttpApiError.NotFound],
|