diff options
| author | Michelle Tilley <michelle@michelletilley.net> | 2026-04-23 13:43:01 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-23 13:43:01 -0700 |
| commit | 461ef4c43589c6ca68176c180fd04f2755c9f036 (patch) | |
| tree | c646ea272d6016533c4941592f9a22baa2a54488 /crates/atuin-ai/src/tui/view/turn.rs | |
| parent | feat: Send user-defined context with `TERMINAL.md` (#3443) (diff) | |
| download | atuin-461ef4c43589c6ca68176c180fd04f2755c9f036.zip | |
feat: Add skill discovery, loading, and invocation (#3444)
Adds a skills system that lets users define reusable LLM instructions as `SKILL.md` files with YAML frontmatter.
Diffstat (limited to 'crates/atuin-ai/src/tui/view/turn.rs')
| -rw-r--r-- | crates/atuin-ai/src/tui/view/turn.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/crates/atuin-ai/src/tui/view/turn.rs b/crates/atuin-ai/src/tui/view/turn.rs index 98ae5eff..9f4460eb 100644 --- a/crates/atuin-ai/src/tui/view/turn.rs +++ b/crates/atuin-ai/src/tui/view/turn.rs @@ -151,6 +151,8 @@ pub(crate) enum ToolRenderData { query: String, filter_modes: Vec<HistorySearchFilterMode>, }, + /// Skill loading — read-only, auto-approved. + SkillLoad { _name: String }, /// Server-side tool — no client rendering data available. Remote, } @@ -257,6 +259,15 @@ impl<'a> TurnBuilder<'a> { ConversationEvent::SystemContext { .. } => { // Not rendered in the TUI — only sent to the API } + ConversationEvent::SkillInvocation { + name, arguments, .. + } => { + let display = match arguments { + Some(args) => format!("/{name} {args}"), + None => format!("/{name}"), + }; + self.add_user_message(&display); + } } } @@ -459,6 +470,9 @@ impl<'a> TurnBuilder<'a> { query: history.query.clone(), filter_modes: history.filter_modes.clone(), }, + ClientToolCall::LoadSkill(skill) => ToolRenderData::SkillLoad { + _name: skill.name.clone(), + }, } } else { // Not in tracker → server-side tool |
