buildDirectorySkillInjections function
Future<DirectorySkillInjections>
buildDirectorySkillInjections(
- List<
DirectorySkillMetadata> mentionedSkills
Implementation
Future<DirectorySkillInjections> buildDirectorySkillInjections(
List<DirectorySkillMetadata> mentionedSkills,
) async {
if (mentionedSkills.isEmpty) {
return DirectorySkillInjections(items: const [], warnings: const []);
}
final items = <UserMessage>[];
final warnings = <String>[];
for (final skill in mentionedSkills) {
try {
final content = await File(skill.pathToSkillMd).readAsString();
final payload =
"<skill>\n"
"<name>${skill.name}</name>\n"
"<path>${skill.pathToSkillMd}</path>\n"
"$content\n"
"</skill>";
items.add(
UserMessage.text(
payload,
metadata: {
"type": "skill_instructions",
"skill_name": skill.name,
"skill_path": skill.pathToSkillMd,
},
),
);
} catch (e) {
warnings.add(
"Failed to load skill ${skill.name} at ${skill.pathToSkillMd}: $e",
);
}
}
return DirectorySkillInjections(items: items, warnings: warnings);
}