aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-ai/src/fsm/events.rs
diff options
context:
space:
mode:
authorMichelle Tilley <michelle@michelletilley.net>2026-04-23 13:43:01 -0700
committerGitHub <noreply@github.com>2026-04-23 13:43:01 -0700
commit461ef4c43589c6ca68176c180fd04f2755c9f036 (patch)
treec646ea272d6016533c4941592f9a22baa2a54488 /crates/atuin-ai/src/fsm/events.rs
parentfeat: Send user-defined context with `TERMINAL.md` (#3443) (diff)
downloadatuin-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/fsm/events.rs')
-rw-r--r--crates/atuin-ai/src/fsm/events.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/crates/atuin-ai/src/fsm/events.rs b/crates/atuin-ai/src/fsm/events.rs
index 6fecda08..e591db41 100644
--- a/crates/atuin-ai/src/fsm/events.rs
+++ b/crates/atuin-ai/src/fsm/events.rs
@@ -92,6 +92,23 @@ pub(crate) enum Event {
/// The driver resolves known commands (like /help) and passes the
/// rendered content; the FSM just pushes an OOB event.
SlashCommand { command: String, content: String },
+
+ // ─── Skills ────────────────────────────────────────────────
+ /// User invoked a skill via /skill-name. FSM emits a LoadSkill
+ /// effect; the driver loads the content asynchronously and sends
+ /// SkillLoaded when ready.
+ RequestSkillLoad {
+ name: String,
+ arguments: Option<String>,
+ },
+ /// A skill's content has been loaded and interpolated.
+ /// Pushes skill content as OOB context and starts a turn so the
+ /// LLM sees the skill and acts on it.
+ SkillLoaded {
+ name: String,
+ arguments: Option<String>,
+ content: String,
+ },
}
/// Result of the permission resolver check.