MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / add_file_part

Method add_file_part

crates/opencode-session/src/prompt.rs:263–298  ·  view source on GitHub ↗
(
        &self,
        msg: &mut SessionMessage,
        raw_url: &str,
        filename: Option<&str>,
        mime: Option<&str>,
        project_root: &str,
    )

Source from the content-addressed store, hash-verified

261 }
262
263 async fn add_file_part(
264 &self,
265 msg: &mut SessionMessage,
266 raw_url: &str,
267 filename: Option<&str>,
268 mime: Option<&str>,
269 project_root: &str,
270 ) {
271 let filename = filename
272 .filter(|name| !name.is_empty())
273 .map(ToString::to_string)
274 .unwrap_or_else(|| Self::filename_from_url(raw_url));
275 let mime = mime
276 .filter(|m| !m.is_empty())
277 .unwrap_or("application/octet-stream")
278 .to_string();
279
280 if raw_url.starts_with("mcp://") {
281 self.add_mcp_resource_part(msg, raw_url, &filename, &mime)
282 .await;
283 return;
284 }
285
286 if raw_url.starts_with("data:") {
287 self.add_data_url_part(msg, raw_url, &filename, &mime).await;
288 return;
289 }
290
291 if raw_url.starts_with("file://") {
292 self.add_file_url_part(msg, raw_url, &filename, &mime, project_root)
293 .await;
294 return;
295 }
296
297 msg.add_file(raw_url.to_string(), filename, mime);
298 }
299
300 async fn add_mcp_resource_part(
301 &self,

Callers 1

create_user_messageMethod · 0.80

Calls 6

is_emptyMethod · 0.80
add_mcp_resource_partMethod · 0.80
add_data_url_partMethod · 0.80
add_file_url_partMethod · 0.80
add_fileMethod · 0.80
filterMethod · 0.45

Tested by

no test coverage detected