1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! Project registry: models, on-disk persistence, lifecycle management, and
//! NL-to-project resolver (WI-5, #1517).
//!
//! Why: the project registry tracks known repositories so operators and driver
//! skills can reference projects by name rather than supplying a full URL on
//! every session spawn. It seeds from `config.yaml`, auto-registers projects
//! from session history at boot, exposes typed MCP tools, and now provides a
//! natural-language resolver that maps free-text queries to registered projects.
//! What: re-exports [`Project`], [`ProjectRegistry`], [`derive_name_from_url`],
//! and the error types from the four submodules:
//! - `record` — the [`Project`] struct and `derive_name_from_url`.
//! - `store` — [`ProjectStore`] on-disk JSON persistence.
//! - `registry` — [`ProjectRegistry`] lifecycle manager.
//! - `resolver` — NL→project resolver, session↔project binding, fleet grouping.
//! - `worktree_adoption` — adopting a project's PRE-EXISTING worktrees at
//! registration time (#7357), so a repo that had agent activity before it was
//! registered is still surveyed and reclaimable.
//! - `worktree_policy` — the `worktree` opt-out decision, shared by the daemon
//! and the out-of-process `tm` CLI (#3455, #4300). Since #5207 a project's
//! own committed `.trusty-mpm.toml` outranks the machine-global registry;
//! see [`worktree_enabled_for_project`]. The separate `agent_worktree` key
//! (#5814) answers a different question — whether a DISPATCHED AGENT gets a
//! worktree — through [`dispatched_agent_worktree_enabled`].
//! Test: each submodule carries inline unit tests; run with
//! `cargo test -p trusty-mpm`.
//!
//! [`Project`]: crate::project::Project
//! [`ProjectRegistry`]: crate::project::ProjectRegistry
//! [`derive_name_from_url`]: crate::project::derive_name_from_url
//! [`ProjectStore`]: crate::project::store::ProjectStore
//! [`worktree_enabled_for_project`]: crate::project::worktree_enabled_for_project
//! [`dispatched_agent_worktree_enabled`]: crate::project::dispatched_agent_worktree_enabled
pub use ;
pub use ProjectRegistry;
pub use ;
pub use ProjectStoreError;
pub use ;
pub use ;