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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
//! Trait abstractions for decoupling bridge crate from CLI-specific types
//!
//! These traits allow the bridge crate to be used as a standalone framework
//! library, with CLI-specific implementations injected at runtime.
use Result;
use async_trait;
use PathBuf;
use Zeroizing;
use crateAgentMetadata;
// ============================================================================
// 1. Path Resolution (replaces PlatformPaths static methods)
// ============================================================================
/// Provides platform-specific directory paths for IPC sessions and data storage.
///
/// CLI implements this wrapping `PlatformPaths` static methods.
// ============================================================================
// 2. Secure Key Storage (replaces keyring module coupling)
// ============================================================================
/// Trait for secure credential storage (system keyring, encrypted file, etc).
///
/// CLI implements this with the `keyring` crate (GNOME Keyring, macOS Keychain,
/// Windows Credential Manager).
// ============================================================================
// 3. Backend URL Configuration (replaces config::constants)
// ============================================================================
/// Provides authentication endpoint configuration.
///
/// CLI implements this reading from `config::constants`.
// ============================================================================
// 4. Agent Process Creation (replaces spawn_agent_process_with_options)
// ============================================================================
/// Trait for spawning new agent processes.
///
/// CLI implements this wrapping `spawn_agent_process_with_options`.
// ============================================================================
// 5. Agent Discovery (replaces IPC socket statics bound to PlatformPaths)
// ============================================================================
/// Trait for discovering and managing running agents.
///
/// CLI implements this by delegating to the bridge's discovery module
/// with `PlatformPaths::sessions_dir()` injected.
// ============================================================================
// 6. Remote Bridge Configuration (replaces ConfigManager + SessionManager coupling)
// ============================================================================
/// Configuration for the remote bridge (extracted from CLI's RemoteSettings + BridgeConfig)
/// Provides remote bridge configuration and API key access.
///
/// CLI implements this using `ConfigManager` + `SessionManager`.