| 86 | } |
| 87 | |
| 88 | fn session_routes() -> Router<Arc<ServerState>> { |
| 89 | Router::new() |
| 90 | .route("/", get(list_sessions).post(create_session)) |
| 91 | .route("/status", get(session_status)) |
| 92 | .route( |
| 93 | "/{id}", |
| 94 | get(get_session) |
| 95 | .patch(update_session) |
| 96 | .delete(delete_session), |
| 97 | ) |
| 98 | .route("/{id}/children", get(get_session_children)) |
| 99 | .route("/{id}/todo", get(get_session_todos)) |
| 100 | .route("/{id}/fork", post(fork_session)) |
| 101 | .route("/{id}/abort", post(abort_session)) |
| 102 | .route("/{id}/share", post(share_session).delete(unshare_session)) |
| 103 | .route("/{id}/archive", post(archive_session)) |
| 104 | .route("/{id}/title", patch(set_session_title)) |
| 105 | .route("/{id}/permission", patch(set_session_permission)) |
| 106 | .route( |
| 107 | "/{id}/summary", |
| 108 | get(get_session_summary).patch(set_session_summary), |
| 109 | ) |
| 110 | .route( |
| 111 | "/{id}/revert", |
| 112 | post(session_revert).delete(clear_session_revert), |
| 113 | ) |
| 114 | .route("/{id}/unrevert", post(session_unrevert)) |
| 115 | .route("/{id}/compaction", post(start_compaction)) |
| 116 | .route("/{id}/summarize", post(summarize_session)) |
| 117 | .route("/{id}/init", post(init_session)) |
| 118 | .route("/{id}/command", post(execute_command)) |
| 119 | .route("/{id}/shell", post(execute_shell)) |
| 120 | .route("/{id}/message", post(send_message).get(list_messages)) |
| 121 | .route( |
| 122 | "/{id}/message/{msgID}", |
| 123 | get(get_message).delete(delete_message), |
| 124 | ) |
| 125 | .route("/{id}/message/{msgID}/part", post(add_message_part)) |
| 126 | .route( |
| 127 | "/{id}/message/{msgID}/part/{partID}", |
| 128 | delete(delete_part).patch(update_part), |
| 129 | ) |
| 130 | .route("/{id}/stream", post(stream_message)) |
| 131 | .route("/{id}/prompt", post(session_prompt)) |
| 132 | .route("/{id}/prompt/abort", post(abort_prompt)) |
| 133 | .route("/{id}/prompt_async", post(prompt_async)) |
| 134 | .route("/{id}/diff", get(get_session_diff)) |
| 135 | } |
| 136 | |
| 137 | #[derive(Debug, Deserialize)] |
| 138 | pub struct ListSessionsQuery { |