perspt_sdk/search/
context.rs1use serde::{Deserialize, Serialize};
7
8use crate::capability::{ActorId, Capability, EffectKind};
9
10#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
12pub struct ProjectMap {
13 pub languages: Vec<String>,
14 pub package_roots: Vec<String>,
15 pub build_systems: Vec<String>,
16 pub entry_points: Vec<String>,
17 pub risk_hotspots: Vec<String>,
18}
19
20pub fn exploration_capability(actor: ActorId) -> Capability {
24 Capability::new(
25 actor,
26 vec![
27 EffectKind::ReadFile,
28 EffectKind::Search,
29 EffectKind::List,
30 EffectKind::LspQuery,
31 EffectKind::GitRead,
32 ],
33 )
34 .with_paths(vec!["*"])
35}
36
37pub fn is_read_only_capability(cap: &Capability) -> bool {
39 cap.effects.iter().all(|e| e.is_read_only())
40}