feat: added skill hint prompt injection and configuration
CI / All (ubuntu-latest) (push) Failing after 24s
CI / All (macos-latest) (push) Has been cancelled
CI / All (windows-latest) (push) Has been cancelled

This commit is contained in:
2026-06-05 14:48:54 -06:00
parent b6be2229cf
commit ac3eb40195
17 changed files with 618 additions and 48 deletions
+24
View File
@@ -79,6 +79,10 @@ pub struct Role {
inject_todo_instructions: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
continuation_prompt: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
inject_skill_instructions: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
skill_instructions: Option<String>,
#[serde(skip)]
model: Model,
@@ -124,6 +128,10 @@ impl Role {
"continuation_prompt" => {
role.continuation_prompt = value.as_str().map(|v| v.to_string())
}
"inject_skill_instructions" => role.inject_skill_instructions = value.as_bool(),
"skill_instructions" => {
role.skill_instructions = value.as_str().map(|v| v.to_string())
}
_ => (),
}
}
@@ -189,6 +197,14 @@ impl Role {
if let Some(continuation_prompt) = &self.continuation_prompt {
metadata.push(format!("continuation_prompt: {continuation_prompt}"));
}
if let Some(inject_skill_instructions) = self.inject_skill_instructions {
metadata.push(format!(
"inject_skill_instructions: {inject_skill_instructions}"
));
}
if let Some(skill_instructions) = &self.skill_instructions {
metadata.push(format!("skill_instructions: {skill_instructions}"));
}
if metadata.is_empty() {
format!("{}\n", self.prompt)
} else if self.prompt.is_empty() {
@@ -299,6 +315,14 @@ impl Role {
self.continuation_prompt.as_deref()
}
pub fn inject_skill_instructions(&self) -> Option<bool> {
self.inject_skill_instructions
}
pub fn skill_instructions(&self) -> Option<&str> {
self.skill_instructions.as_deref()
}
pub fn skills_enabled(&self) -> Option<bool> {
self.skills_enabled
}