File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -8,6 +8,7 @@ mod doctor;
88mod harness;
99mod init;
1010mod mcp;
11+ mod mcp_sanitize;
1112mod release;
1213mod session;
1314mod skills;
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ use std::path::PathBuf;
44use anyhow:: { anyhow, Context } ;
55use serde_json:: Value ;
66
7+ use super :: mcp_sanitize:: sanitize_mcp_config;
78use crate :: { cli:: McpCommand , runtime_env} ;
89
910pub ( super ) async fn run ( command : McpCommand ) -> anyhow:: Result < ( ) > {
@@ -185,36 +186,6 @@ fn list_remote_tool_names(tools: &rexos::tools::Toolset) -> Vec<String> {
185186 names
186187}
187188
188- fn sanitize_mcp_config ( value : & Value ) -> Value {
189- match value {
190- Value :: Object ( map) => {
191- let mut out = serde_json:: Map :: new ( ) ;
192- for ( k, v) in map {
193- if k == "env" {
194- match v. as_object ( ) {
195- Some ( env) => {
196- let mut redacted = serde_json:: Map :: new ( ) ;
197- for ( ek, _ev) in env {
198- redacted
199- . insert ( ek. clone ( ) , Value :: String ( "[redacted]" . to_string ( ) ) ) ;
200- }
201- out. insert ( k. clone ( ) , Value :: Object ( redacted) ) ;
202- }
203- None => {
204- out. insert ( k. clone ( ) , Value :: String ( "[redacted]" . to_string ( ) ) ) ;
205- }
206- }
207- continue ;
208- }
209- out. insert ( k. clone ( ) , sanitize_mcp_config ( v) ) ;
210- }
211- Value :: Object ( out)
212- }
213- Value :: Array ( values) => Value :: Array ( values. iter ( ) . map ( sanitize_mcp_config) . collect ( ) ) ,
214- other => other. clone ( ) ,
215- }
216- }
217-
218189#[ cfg( test) ]
219190mod tests {
220191 use super :: * ;
Original file line number Diff line number Diff line change 1+ use serde_json:: Value ;
2+
3+ pub ( crate ) fn sanitize_mcp_config ( value : & Value ) -> Value {
4+ match value {
5+ Value :: Object ( map) => {
6+ let mut out = serde_json:: Map :: new ( ) ;
7+ for ( k, v) in map {
8+ if k == "env" {
9+ match v. as_object ( ) {
10+ Some ( env) => {
11+ let mut redacted = serde_json:: Map :: new ( ) ;
12+ for ( ek, _ev) in env {
13+ redacted
14+ . insert ( ek. clone ( ) , Value :: String ( "[redacted]" . to_string ( ) ) ) ;
15+ }
16+ out. insert ( k. clone ( ) , Value :: Object ( redacted) ) ;
17+ }
18+ None => {
19+ out. insert ( k. clone ( ) , Value :: String ( "[redacted]" . to_string ( ) ) ) ;
20+ }
21+ }
22+ continue ;
23+ }
24+ out. insert ( k. clone ( ) , sanitize_mcp_config ( v) ) ;
25+ }
26+ Value :: Object ( out)
27+ }
28+ Value :: Array ( values) => Value :: Array ( values. iter ( ) . map ( sanitize_mcp_config) . collect ( ) ) ,
29+ other => other. clone ( ) ,
30+ }
31+ }
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ use std::collections::BTreeMap;
33use anyhow:: Context ;
44use serde_json:: Value ;
55
6+ use super :: mcp_sanitize:: sanitize_mcp_config;
67use crate :: { cli:: SessionCommand , runtime_env} ;
78
89pub ( super ) async fn run ( command : SessionCommand ) -> anyhow:: Result < ( ) > {
@@ -167,36 +168,6 @@ fn summarize_mcp_config(
167168 ( servers, sanitized, None )
168169}
169170
170- fn sanitize_mcp_config ( value : & Value ) -> Value {
171- match value {
172- Value :: Object ( map) => {
173- let mut out = serde_json:: Map :: new ( ) ;
174- for ( k, v) in map {
175- if k == "env" {
176- match v. as_object ( ) {
177- Some ( env) => {
178- let mut redacted = serde_json:: Map :: new ( ) ;
179- for ( ek, _ev) in env {
180- redacted
181- . insert ( ek. clone ( ) , Value :: String ( "[redacted]" . to_string ( ) ) ) ;
182- }
183- out. insert ( k. clone ( ) , Value :: Object ( redacted) ) ;
184- }
185- None => {
186- out. insert ( k. clone ( ) , Value :: String ( "[redacted]" . to_string ( ) ) ) ;
187- }
188- }
189- continue ;
190- }
191- out. insert ( k. clone ( ) , sanitize_mcp_config ( v) ) ;
192- }
193- Value :: Object ( out)
194- }
195- Value :: Array ( values) => Value :: Array ( values. iter ( ) . map ( sanitize_mcp_config) . collect ( ) ) ,
196- other => other. clone ( ) ,
197- }
198- }
199-
200171#[ cfg( test) ]
201172mod tests {
202173 use super :: * ;
You can’t perform that action at this time.
0 commit comments