Skip to main content

tycode_core/steering/
communication.rs

1use std::sync::Arc;
2
3use crate::module::{PromptComponent, PromptComponentId};
4use crate::settings::config::Settings;
5use crate::steering::{Builtin, SteeringDocuments};
6
7pub const ID: PromptComponentId = PromptComponentId("communication");
8
9/// Provides communication guidelines from steering documents.
10pub struct CommunicationComponent {
11    steering: Arc<SteeringDocuments>,
12}
13
14impl CommunicationComponent {
15    pub fn new(steering: Arc<SteeringDocuments>) -> Self {
16        Self { steering }
17    }
18}
19
20impl PromptComponent for CommunicationComponent {
21    fn id(&self) -> PromptComponentId {
22        ID
23    }
24
25    fn build_prompt_section(&self, _settings: &Settings) -> Option<String> {
26        Some(self.steering.get_builtin(Builtin::CommunicationGuidelines))
27    }
28}