Skip to main content

things_mcp/core/applescript/
mod.rs

1//! AppleScript path for tag-admin operations (`create`/`rename`/`merge`/
2//! `delete`/`move_under`). Things' JSON URL has no global tag-admin verbs,
3//! so these go through `osascript -e <script>` and trust the synchronous
4//! exit code as verification.
5//!
6//! Symmetric to `core/writer/` for the JSON URL path: a driver trait
7//! (`AppleScriptDriver`) with a production impl (`OsascriptDriver`) and a
8//! recording test impl (`RecordingAppleScript`), pure `render_*` helpers
9//! in `script.rs`, and a facade (`TagAdmin`) in `admin.rs` that owns
10//! the safety gate and result composition.
11
12pub mod admin;
13pub mod driver;
14pub mod script;
15
16pub use admin::{TagAdmin, TagOutcome};
17pub use driver::{AppleScriptDriver, OsascriptDriver, RecordingAppleScript};