Skip to main content

max / goingson

1.2 KB · 33 lines History Blame Raw
1 //! Stable write-capability ids (public contract; never silently reassigned).
2 //!
3 //! Each mutating tool is gated on one of these. A driving session must hold the
4 //! id in its granted set or kberg refuses the call. See the go-mcp design doc.
5
6 use kberg::WriteCapability;
7
8 pub const PROJECT_CREATE: &str = "go.project.create";
9 pub const PROJECT_UPDATE: &str = "go.project.update";
10 pub const TASK_CREATE: &str = "go.task.create";
11 pub const TASK_BULK_IMPORT: &str = "go.task.bulk_import";
12 pub const TASK_UPDATE: &str = "go.task.update";
13 pub const TASK_COMPLETE: &str = "go.task.complete";
14
15 pub fn project_create() -> WriteCapability {
16 WriteCapability::new(PROJECT_CREATE, "create a project")
17 }
18 pub fn project_update() -> WriteCapability {
19 WriteCapability::new(PROJECT_UPDATE, "update an existing project")
20 }
21 pub fn task_create() -> WriteCapability {
22 WriteCapability::new(TASK_CREATE, "create one task")
23 }
24 pub fn task_bulk_import() -> WriteCapability {
25 WriteCapability::new(TASK_BULK_IMPORT, "create many tasks in one call")
26 }
27 pub fn task_update() -> WriteCapability {
28 WriteCapability::new(TASK_UPDATE, "update an existing task")
29 }
30 pub fn task_complete() -> WriteCapability {
31 WriteCapability::new(TASK_COMPLETE, "mark a task complete")
32 }
33