Skip to main content

max / goingson

1.1 KB · 29 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 TASK_CREATE: &str = "go.task.create";
10 pub const TASK_BULK_IMPORT: &str = "go.task.bulk_import";
11 pub const TASK_UPDATE: &str = "go.task.update";
12 pub const TASK_COMPLETE: &str = "go.task.complete";
13
14 pub fn project_create() -> WriteCapability {
15 WriteCapability::new(PROJECT_CREATE, "create a project")
16 }
17 pub fn task_create() -> WriteCapability {
18 WriteCapability::new(TASK_CREATE, "create one task")
19 }
20 pub fn task_bulk_import() -> WriteCapability {
21 WriteCapability::new(TASK_BULK_IMPORT, "create many tasks in one call")
22 }
23 pub fn task_update() -> WriteCapability {
24 WriteCapability::new(TASK_UPDATE, "update an existing task")
25 }
26 pub fn task_complete() -> WriteCapability {
27 WriteCapability::new(TASK_COMPLETE, "mark a task complete")
28 }
29