summaryrefslogtreecommitdiff
path: root/makima/src/server/openapi.rs
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/server/openapi.rs')
-rw-r--r--makima/src/server/openapi.rs96
1 files changed, 94 insertions, 2 deletions
diff --git a/makima/src/server/openapi.rs b/makima/src/server/openapi.rs
index b946ff3..425c466 100644
--- a/makima/src/server/openapi.rs
+++ b/makima/src/server/openapi.rs
@@ -3,9 +3,19 @@
use utoipa::OpenApi;
use crate::db::models::{
- CreateFileRequest, File, FileListResponse, FileSummary, TranscriptEntry, UpdateFileRequest,
+ BranchInfo, BranchListResponse, CreateFileRequest, CreateTaskRequest, Daemon,
+ DaemonDirectoriesResponse, DaemonDirectory, DaemonListResponse, File, FileListResponse,
+ FileSummary, MergeCommitRequest, MergeCompleteCheckResponse, MergeResolveRequest,
+ MergeResultResponse, MergeSkipRequest, MergeStartRequest, MergeStatusResponse,
+ MeshChatConversation, MeshChatHistoryResponse, MeshChatMessageRecord, SendMessageRequest,
+ Task, TaskEventListResponse, TaskListResponse, TaskSummary, TaskWithSubtasks, TranscriptEntry,
+ UpdateFileRequest, UpdateTaskRequest,
};
-use crate::server::handlers::{files, listen};
+use crate::server::auth::{
+ ApiKey, ApiKeyInfoResponse, CreateApiKeyRequest, CreateApiKeyResponse,
+ RefreshApiKeyRequest, RefreshApiKeyResponse, RevokeApiKeyResponse,
+};
+use crate::server::handlers::{api_keys, files, listen, mesh, mesh_chat, mesh_merge, users};
use crate::server::messages::{ApiError, AudioEncoding, StartMessage, StopMessage, TranscriptMessage};
#[derive(OpenApi)]
@@ -23,6 +33,44 @@ use crate::server::messages::{ApiError, AudioEncoding, StartMessage, StopMessage
files::create_file,
files::update_file,
files::delete_file,
+ // Mesh endpoints
+ mesh::list_tasks,
+ mesh::get_task,
+ mesh::create_task,
+ mesh::update_task,
+ mesh::delete_task,
+ mesh::list_subtasks,
+ mesh::list_task_events,
+ mesh::get_task_output,
+ mesh::start_task,
+ mesh::stop_task,
+ mesh::send_message,
+ mesh::retry_completion_action,
+ mesh::list_daemons,
+ mesh::get_daemon,
+ mesh::get_daemon_directories,
+ mesh::clone_worktree,
+ mesh::check_target_exists,
+ mesh_chat::get_chat_history,
+ mesh_chat::clear_chat_history,
+ // Merge endpoints
+ mesh_merge::list_branches,
+ mesh_merge::merge_start,
+ mesh_merge::merge_status,
+ mesh_merge::merge_resolve,
+ mesh_merge::merge_commit,
+ mesh_merge::merge_abort,
+ mesh_merge::merge_skip,
+ mesh_merge::merge_check,
+ // API key endpoints
+ api_keys::create_api_key_handler,
+ api_keys::get_api_key_handler,
+ api_keys::refresh_api_key_handler,
+ api_keys::revoke_api_key_handler,
+ // User account management endpoints
+ users::change_password_handler,
+ users::change_email_handler,
+ users::delete_account_handler,
),
components(
schemas(
@@ -38,11 +86,55 @@ use crate::server::messages::{ApiError, AudioEncoding, StartMessage, StopMessage
CreateFileRequest,
UpdateFileRequest,
TranscriptEntry,
+ // Mesh/Task schemas
+ Task,
+ TaskSummary,
+ TaskListResponse,
+ TaskWithSubtasks,
+ CreateTaskRequest,
+ UpdateTaskRequest,
+ SendMessageRequest,
+ TaskEventListResponse,
+ Daemon,
+ DaemonListResponse,
+ DaemonDirectoriesResponse,
+ DaemonDirectory,
+ MeshChatConversation,
+ MeshChatMessageRecord,
+ MeshChatHistoryResponse,
+ // Merge schemas
+ BranchInfo,
+ BranchListResponse,
+ MergeStartRequest,
+ MergeStatusResponse,
+ MergeResolveRequest,
+ MergeCommitRequest,
+ MergeSkipRequest,
+ MergeResultResponse,
+ MergeCompleteCheckResponse,
+ // API key schemas
+ ApiKey,
+ ApiKeyInfoResponse,
+ CreateApiKeyRequest,
+ CreateApiKeyResponse,
+ RefreshApiKeyRequest,
+ RefreshApiKeyResponse,
+ RevokeApiKeyResponse,
+ // User account management schemas
+ users::ChangePasswordRequest,
+ users::ChangePasswordResponse,
+ users::ChangeEmailRequest,
+ users::ChangeEmailResponse,
+ users::DeleteAccountRequest,
+ users::DeleteAccountResponse,
)
),
tags(
(name = "Listen", description = "Speech-to-text streaming endpoints"),
(name = "Files", description = "Transcript file management"),
+ (name = "Mesh", description = "Task orchestration for Claude Code instances"),
+ (name = "API Keys", description = "API key management for programmatic access"),
+ (name = "Users", description = "User account management"),
)
)]
pub struct ApiDoc;