2026-04-14 13:22:29 +08:00
|
|
|
pub mod command;
|
|
|
|
|
pub mod common;
|
|
|
|
|
pub mod governance;
|
|
|
|
|
pub mod query;
|
|
|
|
|
pub mod tool;
|
|
|
|
|
|
|
|
|
|
pub use command::{
|
|
|
|
|
CommandEnvelope, CreatePage, CreateWorkspace, DeleteBlock, InsertBlock, MoveBlock,
|
2026-04-15 03:34:52 +08:00
|
|
|
PatchPageBlock, ReplaceMediaAssetStorage, SavePageContent, UpdateBlock, UpdatePageOptions,
|
|
|
|
|
UpdatePageStats, UpdatePageTitle,
|
2026-04-14 13:22:29 +08:00
|
|
|
};
|
|
|
|
|
pub use common::{
|
|
|
|
|
ActorPayload, AffectedObject, ErrorDetail, ErrorPayload, OkPayload, RequestMeta, ResponseMeta,
|
|
|
|
|
SourcePayload, TargetRef,
|
|
|
|
|
};
|
2026-04-15 03:06:29 +08:00
|
|
|
pub use query::{
|
|
|
|
|
GetPage, GetPageContent, GetPageMeta, ListPageBlocks, ListSidebarDataset, QueryEnvelope,
|
|
|
|
|
SearchBlocks, SearchPages,
|
|
|
|
|
};
|
2026-04-14 13:22:29 +08:00
|
|
|
pub use tool::{InvocationKind, ToolInvocation};
|
|
|
|
|
|
|
|
|
|
#[cfg(test)]
|
|
|
|
|
mod tests {
|
|
|
|
|
use super::*;
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn command_envelope_keeps_validate_only_flag() {
|
|
|
|
|
let envelope = CommandEnvelope::<CreateWorkspace> {
|
|
|
|
|
name: "create_workspace".into(),
|
|
|
|
|
command_id: "cmd_1".into(),
|
|
|
|
|
idempotency_key: Some("idem_1".into()),
|
|
|
|
|
actor: ActorPayload {
|
|
|
|
|
actor_type: "human".into(),
|
|
|
|
|
actor_id: "user_1".into(),
|
|
|
|
|
session_id: Some("session_1".into()),
|
|
|
|
|
},
|
|
|
|
|
source: SourcePayload {
|
|
|
|
|
channel: "cli".into(),
|
|
|
|
|
client: "mnote-cli".into(),
|
|
|
|
|
},
|
|
|
|
|
target: None,
|
|
|
|
|
payload: CreateWorkspace {
|
|
|
|
|
name: "demo".into(),
|
|
|
|
|
slug: Some("demo".into()),
|
|
|
|
|
},
|
|
|
|
|
reason: Some("初始化工作区".into()),
|
|
|
|
|
refs: vec![],
|
|
|
|
|
dry_run: false,
|
|
|
|
|
validate_only: true,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
assert!(envelope.validate_only);
|
|
|
|
|
}
|
|
|
|
|
}
|