diff --git a/.apm/skills/sml-installation/SKILL.md b/.apm/skills/aml-installation/SKILL.md
similarity index 73%
rename from .apm/skills/sml-installation/SKILL.md
rename to .apm/skills/aml-installation/SKILL.md
index de3fb9e..c207716 100644
--- a/.apm/skills/sml-installation/SKILL.md
+++ b/.apm/skills/aml-installation/SKILL.md
@@ -1,16 +1,16 @@
---
-name: sml-installation
-description: Install the SML runtime (Rust parser with Python bindings) so that agents can parse and execute SML tags programmatically.
+name: aml-installation
+description: Install the AML runtime (Rust parser with Python bindings) so that agents can parse and execute AML tags programmatically.
---
-# SML Installation Guide
+# AML Installation Guide
-Use this guide when you need to install the SML runtime for programmatic parsing and execution.
+Use this guide when you need to install the AML runtime for programmatic parsing and execution.
## Quick Install (Python)
```bash
-pip install sml
+pip install aml
```
This installs pre-built wheels with the Rust parser compiled for your platform.
@@ -23,23 +23,23 @@ Requirements:
- maturin (`pip install maturin`)
```bash
-git clone https://github.com/sergio-sisternes-epam/aslm.git
-cd aslm
+git clone https://github.com/sergio-sisternes-epam/aml.git
+cd aml
maturin develop --release
```
## Verify Installation
```python
-from sml import parse, execute, SmlRegistry
+from aml import parse, execute, AmlRegistry
-# Parse SML from a prompt
+# Parse AML from a prompt
doc = parse('Run tests')
print(doc.node_count) # 1
print(doc.invocations()) # ['testing']
# Set up a registry
-registry = SmlRegistry()
+registry = AmlRegistry()
registry.register_interface("testing", "Run automated tests")
registry.register_implementation(
"pytest-impl", "testing",
@@ -67,11 +67,11 @@ Add to your `Cargo.toml`:
```toml
[dependencies]
-sml-core = "0.1"
+aml-core = "0.1"
```
```rust
-use sml_core::{parse, SkillRegistry, ExecutionContext};
+use aml_core::{parse, SkillRegistry, ExecutionContext};
let doc = parse(r#"content"#).unwrap();
let registry = SkillRegistry::new();
diff --git a/.apm/skills/sml-usage-guide/SKILL.md b/.apm/skills/aml-usage-guide/SKILL.md
similarity index 93%
rename from .apm/skills/sml-usage-guide/SKILL.md
rename to .apm/skills/aml-usage-guide/SKILL.md
index 920277d..86e8646 100644
--- a/.apm/skills/sml-usage-guide/SKILL.md
+++ b/.apm/skills/aml-usage-guide/SKILL.md
@@ -1,15 +1,15 @@
---
-name: sml-usage-guide
-description: Teach an agent how to emit valid SML (Skill Markup Language) tags for declarative skill invocation inside prompts, including interface definitions, implementation bindings, scoping, nesting, params, and execution policies.
+name: aml-usage-guide
+description: Teach an agent how to emit valid AML (Agent Markup Language) tags for declarative skill invocation inside prompts, including interface definitions, implementation bindings, scoping, nesting, params, and execution policies.
---
-# SML Usage Guide
+# AML Usage Guide
-Use this guide when you need to invoke skills declaratively inside a prompt using SML syntax.
+Use this guide when you need to invoke skills declaratively inside a prompt using AML syntax.
## Core Syntax
-SML uses XML-like `` tags embedded in natural text:
+AML uses XML-like `` tags embedded in natural text:
```xml
@@ -123,12 +123,12 @@ Here `fetch-url` runs first, its output becomes the scope for `summarise`.
1. **Never nest definitions inside invocations** — definitions are top-level only
2. **One resolution target per invocation** — use `interface` OR `impl` OR `name`
-3. **Results are escaped** — skill output is never re-parsed as SML
+3. **Results are escaped** — skill output is never re-parsed as AML
4. **Content is the scope** — everything between open/close tags is what the skill sees
5. **Definitions don't execute** — they only register capabilities
-## When NOT to use SML
+## When NOT to use AML
- Simple function calls with no scoping → use tool_call syntax instead
- One-shot queries with no composition → plain text is fine
-- Highly dynamic dispatch → use agentic reasoning, then emit SML for the chosen skill
+- Highly dynamic dispatch → use agentic reasoning, then emit AML for the chosen skill
diff --git a/.apm/skills/sml-usage-guide/references/system-prompts.md b/.apm/skills/aml-usage-guide/references/system-prompts.md
similarity index 89%
rename from .apm/skills/sml-usage-guide/references/system-prompts.md
rename to .apm/skills/aml-usage-guide/references/system-prompts.md
index 1cb4d56..0e52d42 100644
--- a/.apm/skills/sml-usage-guide/references/system-prompts.md
+++ b/.apm/skills/aml-usage-guide/references/system-prompts.md
@@ -1,11 +1,11 @@
# System Prompt Examples
-## ReAct + SML
+## ReAct + AML
```
-You are an AI agent that uses ReAct (Reason + Act) with SML for structured skill invocation.
+You are an AI agent that uses ReAct (Reason + Act) with AML for structured skill invocation.
-When you need to invoke a skill, emit an SML tag:
+When you need to invoke a skill, emit an AML tag:
Think: I need to run tests on the auth module.
Act:
@@ -23,10 +23,10 @@ Act:
```
-## Plan-and-Execute + SML
+## Plan-and-Execute + AML
```
-You are an AI agent that plans before executing. Use SML to invoke skills.
+You are an AI agent that plans before executing. Use AML to invoke skills.
Plan:
1. Fetch the requirements document
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 63c2cc7..753c5af 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -24,7 +24,7 @@ labels: bug
## Environment
-- SML version:
+- AML version:
- Rust version (`rustc --version`):
- Python version (if applicable):
- OS:
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 26215db..372f38a 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,7 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: Ask a Question
- url: https://github.com/sergio-sisternes-epam/aslm/discussions
+ url: https://github.com/sergio-sisternes-epam/aml/discussions
about: Use GitHub Discussions for questions and general help.
- name: Security Vulnerability
url: mailto:sergio_sisternes@epam.com
diff --git a/AUTHORS b/AUTHORS
index e7551f7..ba6b8f7 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,5 +1,5 @@
# Authors
-SML is maintained by the following contributors:
+AML is maintained by the following contributors:
Sergio Sisternes
diff --git a/CHANGELOG.md b/CHANGELOG.md
index dc24790..a77a717 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
-- Initial Rust parser and executor (`sml-core`)
-- Python bindings via PyO3 (`sml-python`)
-- SML language specification in `docs/spec/`
+- Initial Rust parser and executor (`aml-core`)
+- Python bindings via PyO3 (`aml-python`)
+- AML language specification in `docs/spec/`
- Conformance test suite in `tests/conformance/`
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 66b545a..395b383 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,4 +1,4 @@
-# Contributing to SML
+# Contributing to AML
Thank you for your interest in contributing! This document explains how to get involved.
@@ -10,11 +10,11 @@ Please be respectful and constructive in all interactions. See [CODE_OF_CONDUCT.
### Reporting Bugs
-Open a [bug report](https://github.com/sergio-sisternes-epam/aslm/issues/new?template=bug_report.md) with a clear description and a minimal reproduction case.
+Open a [bug report](https://github.com/sergio-sisternes-epam/aml/issues/new?template=bug_report.md) with a clear description and a minimal reproduction case.
### Suggesting Features
-Open a [feature request](https://github.com/sergio-sisternes-epam/aslm/issues/new?template=feature_request.md) describing the problem you want to solve and your proposed solution.
+Open a [feature request](https://github.com/sergio-sisternes-epam/aml/issues/new?template=feature_request.md) describing the problem you want to solve and your proposed solution.
### Submitting Changes
@@ -43,7 +43,7 @@ cargo build
# Build the Python extension (development mode)
pip install maturin
-maturin develop --manifest-path crates/sml-python/Cargo.toml
+maturin develop --manifest-path crates/aml-python/Cargo.toml
```
### Running Tests
diff --git a/Cargo.lock b/Cargo.lock
index e610e52..f967056 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2,6 +2,21 @@
# It is not intended for manual editing.
version = 4
+[[package]]
+name = "aml-core"
+version = "0.1.0"
+dependencies = [
+ "insta",
+]
+
+[[package]]
+name = "aml-python"
+version = "0.1.0"
+dependencies = [
+ "aml-core",
+ "pyo3",
+]
+
[[package]]
name = "anyhow"
version = "1.0.102"
@@ -371,21 +386,6 @@ version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa"
-[[package]]
-name = "sml-core"
-version = "0.1.0"
-dependencies = [
- "insta",
-]
-
-[[package]]
-name = "sml-python"
-version = "0.1.0"
-dependencies = [
- "pyo3",
- "sml-core",
-]
-
[[package]]
name = "syn"
version = "2.0.117"
diff --git a/Cargo.toml b/Cargo.toml
index 2648f92..e9bee96 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,12 +1,12 @@
[workspace]
-members = ["crates/sml-core", "crates/sml-python"]
+members = ["crates/aml-core", "crates/aml-python"]
resolver = "2"
[workspace.package]
version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
-repository = "https://github.com/sergio-sisternes-epam/aslm"
+repository = "https://github.com/sergio-sisternes-epam/aml"
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
diff --git a/README.md b/README.md
index 80cbfbb..44e0f24 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
-# SML — Skill Markup Language
+# AML — Agent Markup Language
A lightweight, XML-inspired markup language that enables agents to declaratively invoke modular, scoped, and nestable skills directly inside prompts.
## Overview
-SML provides two independent layers:
+AML provides two independent layers:
- **Runtime Layer**: A high-performance parser and executor implemented in Rust + PyO3
- **Distribution & Knowledge Layer**: An APM package for agent tooling ecosystems
@@ -12,11 +12,11 @@ SML provides two independent layers:
## Quick Start
```bash
-pip install sml
+pip install aml
```
```python
-from sml import parse, execute, SmlRegistry
+from aml import parse, execute, AmlRegistry
doc = parse("""
@@ -25,7 +25,7 @@ doc = parse("""
""")
-registry = SmlRegistry()
+registry = AmlRegistry()
registry.register_interface("code-review", "Review code for issues")
registry.register_implementation(
"python-review", "code-review",
@@ -35,7 +35,7 @@ registry.register_implementation(
result = execute(doc, registry)
```
-## SML Syntax
+## AML Syntax
```xml
@@ -67,14 +67,14 @@ result = execute(doc, registry)
- [Language Specification](docs/spec/)
- [Conformance Suite](tests/conformance/)
-- [API Reference (Rust)](crates/sml-core/)
-- [API Reference (Python)](crates/sml-python/)
+- [API Reference (Rust)](crates/aml-core/)
+- [API Reference (Python)](crates/aml-python/)
## Architecture
```
┌─────────────────────────────────────────┐
-│ Agent Prompt (contains SML tags) │
+│ Agent Prompt (contains AML tags) │
└─────────────┬───────────────────────────┘
│ parse()
▼
@@ -89,7 +89,7 @@ result = execute(doc, registry)
│ result injection
▼
┌─────────────────────────────────────────┐
-│ Output (SML tags replaced by results) │
+│ Output (AML tags replaced by results) │
└─────────────────────────────────────────┘
```
diff --git a/SUPPORT.md b/SUPPORT.md
index 20e86bf..a1748da 100644
--- a/SUPPORT.md
+++ b/SUPPORT.md
@@ -5,20 +5,20 @@
Start with the project documentation:
- [Language Specification](docs/spec/)
-- [API Reference (Rust)](crates/sml-core/)
-- [API Reference (Python)](crates/sml-python/)
+- [API Reference (Rust)](crates/aml-core/)
+- [API Reference (Python)](crates/aml-python/)
## Asking Questions
-Use **[GitHub Discussions](https://github.com/sergio-sisternes-epam/aslm/discussions)** for:
+Use **[GitHub Discussions](https://github.com/sergio-sisternes-epam/aml/discussions)** for:
-- Questions about using SML
+- Questions about using AML
- Ideas and general discussion
- Sharing what you've built
## Reporting Bugs
-Use **[GitHub Issues](https://github.com/sergio-sisternes-epam/aslm/issues)** for confirmed bugs. Please search existing issues before opening a new one.
+Use **[GitHub Issues](https://github.com/sergio-sisternes-epam/aml/issues)** for confirmed bugs. Please search existing issues before opening a new one.
## Security Issues
diff --git a/apm.yml b/apm.yml
index 8b52bc9..bda0abf 100644
--- a/apm.yml
+++ b/apm.yml
@@ -1,5 +1,5 @@
-name: sml
+name: aml
version: 0.1.0
-description: "Skill Markup Language — declarative skill invocation for agent prompts"
+description: "Agent Markup Language — declarative skill invocation for agent prompts"
license: MIT
target: [copilot, claude, cursor, codex, opencode]
diff --git a/crates/sml-core/Cargo.toml b/crates/aml-core/Cargo.toml
similarity index 66%
rename from crates/sml-core/Cargo.toml
rename to crates/aml-core/Cargo.toml
index d62de5f..214f1ed 100644
--- a/crates/sml-core/Cargo.toml
+++ b/crates/aml-core/Cargo.toml
@@ -1,10 +1,10 @@
[package]
-name = "sml-core"
+name = "aml-core"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
-description = "SML (Skill Markup Language) parser and executor"
+description = "AML (Agent Markup Language) parser and executor"
[dependencies]
diff --git a/crates/sml-core/src/ast.rs b/crates/aml-core/src/ast.rs
similarity index 98%
rename from crates/sml-core/src/ast.rs
rename to crates/aml-core/src/ast.rs
index 2bb7dfc..6cb010d 100644
--- a/crates/sml-core/src/ast.rs
+++ b/crates/aml-core/src/ast.rs
@@ -132,7 +132,7 @@ pub struct Param {
pub span: Span,
}
-/// A node in the SML AST.
+/// A node in the AML AST.
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Node {
/// A skill tag (invocation or definition).
@@ -191,7 +191,7 @@ impl Node {
}
}
-/// The root of an SML document.
+/// The root of an AML document.
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Document {
pub nodes: Vec,
diff --git a/crates/sml-core/src/executor.rs b/crates/aml-core/src/executor.rs
similarity index 100%
rename from crates/sml-core/src/executor.rs
rename to crates/aml-core/src/executor.rs
diff --git a/crates/sml-core/src/lib.rs b/crates/aml-core/src/lib.rs
similarity index 100%
rename from crates/sml-core/src/lib.rs
rename to crates/aml-core/src/lib.rs
diff --git a/crates/sml-core/src/parser.rs b/crates/aml-core/src/parser.rs
similarity index 99%
rename from crates/sml-core/src/parser.rs
rename to crates/aml-core/src/parser.rs
index 528b3e1..b70bd07 100644
--- a/crates/sml-core/src/parser.rs
+++ b/crates/aml-core/src/parser.rs
@@ -21,7 +21,7 @@ impl std::fmt::Display for ParseError {
impl std::error::Error for ParseError {}
-/// Parse an SML document from a string.
+/// Parse an AML document from a string.
///
/// The parser is embedded-tolerant: it extracts `` and `` tags
/// from arbitrary text, treating everything else as literal `Text` nodes.
diff --git a/crates/sml-core/src/registry.rs b/crates/aml-core/src/registry.rs
similarity index 100%
rename from crates/sml-core/src/registry.rs
rename to crates/aml-core/src/registry.rs
diff --git a/crates/sml-core/src/resolver.rs b/crates/aml-core/src/resolver.rs
similarity index 100%
rename from crates/sml-core/src/resolver.rs
rename to crates/aml-core/src/resolver.rs
diff --git a/crates/sml-core/src/validator.rs b/crates/aml-core/src/validator.rs
similarity index 100%
rename from crates/sml-core/src/validator.rs
rename to crates/aml-core/src/validator.rs
diff --git a/crates/sml-python/Cargo.toml b/crates/aml-python/Cargo.toml
similarity index 63%
rename from crates/sml-python/Cargo.toml
rename to crates/aml-python/Cargo.toml
index 55c49c4..7eb65cf 100644
--- a/crates/sml-python/Cargo.toml
+++ b/crates/aml-python/Cargo.toml
@@ -1,15 +1,15 @@
[package]
-name = "sml-python"
+name = "aml-python"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
-description = "Python bindings for SML parser and executor"
+description = "Python bindings for AML parser and executor"
[lib]
-name = "sml"
+name = "aml"
crate-type = ["cdylib"]
[dependencies]
-sml-core = { path = "../sml-core" }
+aml-core = { path = "../aml-core" }
pyo3 = { version = "0.22", features = ["extension-module"] }
diff --git a/crates/sml-python/src/lib.rs b/crates/aml-python/src/lib.rs
similarity index 89%
rename from crates/sml-python/src/lib.rs
rename to crates/aml-python/src/lib.rs
index 093f01e..c4b896c 100644
--- a/crates/sml-python/src/lib.rs
+++ b/crates/aml-python/src/lib.rs
@@ -5,15 +5,15 @@
use pyo3::exceptions::PyValueError;
use pyo3::prelude::*;
-use sml_core::ast::{Node, NodeKind};
-use sml_core::executor::ExecutionContext;
-use sml_core::registry::SkillRegistry as RustRegistry;
+use aml_core::ast::{Node, NodeKind};
+use aml_core::executor::ExecutionContext;
+use aml_core::registry::SkillRegistry as RustRegistry;
-/// Python wrapper for a parsed SML document.
+/// Python wrapper for a parsed AML document.
#[pyclass]
#[derive(Clone)]
struct Document {
- inner: sml_core::Document,
+ inner: aml_core::Document,
}
#[pymethods]
@@ -78,12 +78,12 @@ impl Document {
/// Python wrapper for the skill registry.
#[pyclass]
#[derive(Clone)]
-struct SmlRegistry {
+struct AmlRegistry {
inner: RustRegistry,
}
#[pymethods]
-impl SmlRegistry {
+impl AmlRegistry {
#[new]
fn new() -> Self {
Self {
@@ -137,10 +137,10 @@ impl SmlRegistry {
}
}
-/// Parse an SML document from a string.
+/// Parse an AML document from a string.
#[pyfunction]
fn parse(input: &str) -> PyResult {
- match sml_core::parse(input) {
+ match aml_core::parse(input) {
Ok(doc) => Ok(Document { inner: doc }),
Err(e) => Err(PyValueError::new_err(e.to_string())),
}
@@ -148,18 +148,18 @@ fn parse(input: &str) -> PyResult {
/// Execute a document with a registry (pass-through mode — no custom handlers).
#[pyfunction]
-fn execute(doc: &Document, registry: &SmlRegistry) -> PyResult {
+fn execute(doc: &Document, registry: &AmlRegistry) -> PyResult {
let ctx = ExecutionContext::new(registry.inner.clone());
ctx.execute(&doc.inner)
.map_err(|e| PyValueError::new_err(e.to_string()))
}
-/// The SML Python module.
+/// The AML Python module.
#[pymodule]
-fn sml(m: &Bound<'_, PyModule>) -> PyResult<()> {
+fn aml(m: &Bound<'_, PyModule>) -> PyResult<()> {
m.add_function(wrap_pyfunction!(parse, m)?)?;
m.add_function(wrap_pyfunction!(execute, m)?)?;
m.add_class::()?;
- m.add_class::()?;
+ m.add_class::()?;
Ok(())
}
diff --git a/dev/evals/evals.json b/dev/evals/evals.json
index 8a17416..3dd08ea 100644
--- a/dev/evals/evals.json
+++ b/dev/evals/evals.json
@@ -1,100 +1,100 @@
{
- "description": "SML content and trigger evaluations",
+ "description": "AML content and trigger evaluations",
"evals": [
{
"type": "trigger",
"input": "I need to run tests on my Python code",
- "expected_skill": "sml-usage-guide",
+ "expected_skill": "aml-usage-guide",
"should_trigger": true
},
{
"type": "trigger",
- "input": "How do I write SML tags?",
- "expected_skill": "sml-usage-guide",
+ "input": "How do I write AML tags?",
+ "expected_skill": "aml-usage-guide",
"should_trigger": true
},
{
"type": "trigger",
"input": "Show me how to nest skills in a prompt",
- "expected_skill": "sml-usage-guide",
+ "expected_skill": "aml-usage-guide",
"should_trigger": true
},
{
"type": "trigger",
- "input": "What is the SML syntax for interfaces?",
- "expected_skill": "sml-usage-guide",
+ "input": "What is the AML syntax for interfaces?",
+ "expected_skill": "aml-usage-guide",
"should_trigger": true
},
{
"type": "trigger",
"input": "How do I define a skill implementation?",
- "expected_skill": "sml-usage-guide",
+ "expected_skill": "aml-usage-guide",
"should_trigger": true
},
{
"type": "trigger",
- "input": "Install the SML parser on my machine",
- "expected_skill": "sml-installation",
+ "input": "Install the AML parser on my machine",
+ "expected_skill": "aml-installation",
"should_trigger": true
},
{
"type": "trigger",
- "input": "How do I pip install sml?",
- "expected_skill": "sml-installation",
+ "input": "How do I pip install aml?",
+ "expected_skill": "aml-installation",
"should_trigger": true
},
{
"type": "trigger",
- "input": "Build SML from source with maturin",
- "expected_skill": "sml-installation",
+ "input": "Build AML from source with maturin",
+ "expected_skill": "aml-installation",
"should_trigger": true
},
{
"type": "trigger",
- "input": "What platforms does SML support?",
- "expected_skill": "sml-installation",
+ "input": "What platforms does AML support?",
+ "expected_skill": "aml-installation",
"should_trigger": true
},
{
"type": "trigger",
- "input": "How do I use SML in a ReAct agent?",
- "expected_skill": "sml-usage-guide",
+ "input": "How do I use AML in a ReAct agent?",
+ "expected_skill": "aml-usage-guide",
"should_trigger": true
},
{
"type": "trigger",
"input": "What is the weather like today?",
- "expected_skill": "sml-usage-guide",
+ "expected_skill": "aml-usage-guide",
"should_trigger": false
},
{
"type": "trigger",
"input": "Write a Python function to sort a list",
- "expected_skill": "sml-usage-guide",
+ "expected_skill": "aml-usage-guide",
"should_trigger": false
},
{
"type": "trigger",
"input": "Explain how Docker networking works",
- "expected_skill": "sml-usage-guide",
+ "expected_skill": "aml-usage-guide",
"should_trigger": false
},
{
"type": "trigger",
"input": "Help me debug this TypeScript error",
- "expected_skill": "sml-usage-guide",
+ "expected_skill": "aml-usage-guide",
"should_trigger": false
},
{
"type": "trigger",
"input": "What is Kubernetes?",
- "expected_skill": "sml-installation",
+ "expected_skill": "aml-installation",
"should_trigger": false
},
{
"type": "trigger",
"input": "Set up a React project",
- "expected_skill": "sml-installation",
+ "expected_skill": "aml-installation",
"should_trigger": false
},
{
diff --git a/docs/adrs/README.md b/docs/adrs/README.md
index 27f5066..c72dbb7 100644
--- a/docs/adrs/README.md
+++ b/docs/adrs/README.md
@@ -1,6 +1,6 @@
# Architecture Decision Records
-This directory contains the Architecture Decision Records (ADRs) for the SML project.
+This directory contains the Architecture Decision Records (ADRs) for the AML project.
## Index
@@ -10,8 +10,8 @@ This directory contains the Architecture Decision Records (ADRs) for the SML pro
| [ADR-002](adr-002-explicit-scoping.md) | Support explicit scoping | Accepted |
| [ADR-003](adr-003-nesting-bottom-up.md) | Full nesting with bottom-up execution | Accepted |
| [ADR-004](adr-004-interface-impl-model.md) | Interface vs Implementation model | Accepted |
-| [ADR-005](adr-005-pure-sml-definitions.md) | Definitions purely in SML syntax | Accepted |
+| [ADR-005](adr-005-pure-aml-definitions.md) | Definitions purely in AML syntax | Accepted |
| [ADR-006](adr-006-apm-versioning.md) | Versioning managed by APM | Accepted |
-| [ADR-007](adr-007-independent-harness.md) | APM harness independent from SML | Accepted |
+| [ADR-007](adr-007-independent-harness.md) | APM harness independent from AML | Accepted |
| [ADR-008](adr-008-rust-pyo3.md) | Core runtime in Rust + PyO3 | Accepted |
-| [ADR-009](adr-009-usage-guide-skill.md) | Teach SML via usage guide skill | Accepted |
+| [ADR-009](adr-009-usage-guide-skill.md) | Teach AML via usage guide skill | Accepted |
diff --git a/docs/adrs/adr-001-xml-syntax.md b/docs/adrs/adr-001-xml-syntax.md
index 22244e7..774d085 100644
--- a/docs/adrs/adr-001-xml-syntax.md
+++ b/docs/adrs/adr-001-xml-syntax.md
@@ -4,7 +4,7 @@
Accepted
## Context
-SML needs a syntax for structured skill invocation within agent prompts. Options considered:
+AML needs a syntax for structured skill invocation within agent prompts. Options considered:
- JSON blocks
- YAML blocks
- Custom DSL
@@ -22,5 +22,5 @@ Use XML-like `` tags with attributes and content.
## Consequences
- Must handle entity escaping (`<`, `&`, etc.)
-- Parser must be tolerant of non-SML `<` characters in prompt text
+- Parser must be tolerant of non-AML `<` characters in prompt text
- Cannot use self-closing tags for skills with content
diff --git a/docs/adrs/adr-005-pure-sml-definitions.md b/docs/adrs/adr-005-pure-aml-definitions.md
similarity index 71%
rename from docs/adrs/adr-005-pure-sml-definitions.md
rename to docs/adrs/adr-005-pure-aml-definitions.md
index ace8aec..6bd6d74 100644
--- a/docs/adrs/adr-005-pure-sml-definitions.md
+++ b/docs/adrs/adr-005-pure-aml-definitions.md
@@ -1,4 +1,4 @@
-# ADR-005: Definitions Purely in SML Syntax
+# ADR-005: Definitions Purely in AML Syntax
## Status
Accepted
@@ -7,16 +7,16 @@ Accepted
Interfaces and implementations need to be defined somewhere. Options:
- In APM manifest (apm.yml)
- In separate config files
-- In SML syntax itself
+- In AML syntax itself
## Decision
-Interface and implementation definitions are expressed purely through SML syntax using the `define` attribute.
+Interface and implementation definitions are expressed purely through AML syntax using the `define` attribute.
## Rationale
-- Self-contained: SML documents carry their own definitions
+- Self-contained: AML documents carry their own definitions
- No dependency on APM manifest for runtime semantics
- Definitions can be embedded in system prompts alongside invocations
-- Keeps SML independent from any specific packaging system
+- Keeps AML independent from any specific packaging system
## Consequences
- Parser must distinguish definition nodes from invocation nodes
diff --git a/docs/adrs/adr-006-apm-versioning.md b/docs/adrs/adr-006-apm-versioning.md
index 2dc1e92..3e78410 100644
--- a/docs/adrs/adr-006-apm-versioning.md
+++ b/docs/adrs/adr-006-apm-versioning.md
@@ -4,18 +4,18 @@
Accepted
## Context
-SML tags could include a `version` attribute for skill versioning. However, this mixes runtime concerns with packaging concerns.
+AML tags could include a `version` attribute for skill versioning. However, this mixes runtime concerns with packaging concerns.
## Decision
-No version attribute in SML syntax. Versioning is managed exclusively by APM.
+No version attribute in AML syntax. Versioning is managed exclusively by APM.
## Rationale
-- Keeps SML syntax lightweight and focused on invocation
+- Keeps AML syntax lightweight and focused on invocation
- Version resolution is a packaging concern, not a runtime concern
- APM already handles dependency resolution and version management
-- Avoids version conflicts between SML tags and installed packages
+- Avoids version conflicts between AML tags and installed packages
## Consequences
-- SML runtime does not need version comparison logic
+- AML runtime does not need version comparison logic
- Users must use APM to manage which versions are available
-- Reproducibility comes from APM lock files, not SML content
+- Reproducibility comes from APM lock files, not AML content
diff --git a/docs/adrs/adr-007-independent-harness.md b/docs/adrs/adr-007-independent-harness.md
index 9708466..e6eeb7d 100644
--- a/docs/adrs/adr-007-independent-harness.md
+++ b/docs/adrs/adr-007-independent-harness.md
@@ -1,24 +1,24 @@
-# ADR-007: APM Harness Independent from SML
+# ADR-007: APM Harness Independent from AML
## Status
Accepted
## Context
-SML needs a distribution mechanism. APM (Agent Package Manager) provides this, but coupling them would limit SML's applicability.
+AML needs a distribution mechanism. APM (Agent Package Manager) provides this, but coupling them would limit AML's applicability.
## Decision
-SML and APM are independent layers:
-- SML only parses and executes skill tags
+AML and APM are independent layers:
+- AML only parses and executes skill tags
- APM handles package discovery, installation, and versioning
- Neither depends on the other's internals
## Rationale
-- SML can be used without APM (embedded in any system)
-- APM can distribute non-SML content
+- AML can be used without APM (embedded in any system)
+- APM can distribute non-AML content
- Clear separation of concerns
- Easier testing and development of each layer
## Consequences
-- No `import` or `require` statements in SML
+- No `import` or `require` statements in AML
- Runtime must receive skill implementations through its registry API
- APM integration is a wrapper/adapter, not core functionality
diff --git a/docs/adrs/adr-008-rust-pyo3.md b/docs/adrs/adr-008-rust-pyo3.md
index 7d8f5f3..053a8ff 100644
--- a/docs/adrs/adr-008-rust-pyo3.md
+++ b/docs/adrs/adr-008-rust-pyo3.md
@@ -4,7 +4,7 @@
Accepted
## Context
-The SML runtime needs to be fast, safe, and accessible from Python (the dominant AI/ML ecosystem language).
+The AML runtime needs to be fast, safe, and accessible from Python (the dominant AI/ML ecosystem language).
## Decision
Implement the core runtime in Rust with Python bindings via PyO3.
diff --git a/docs/adrs/adr-009-usage-guide-skill.md b/docs/adrs/adr-009-usage-guide-skill.md
index a1d2876..11d4790 100644
--- a/docs/adrs/adr-009-usage-guide-skill.md
+++ b/docs/adrs/adr-009-usage-guide-skill.md
@@ -1,23 +1,23 @@
-# ADR-009: Teach SML via Usage Guide Skill
+# ADR-009: Teach AML via Usage Guide Skill
## Status
Accepted
## Context
-Agents need to learn how to use SML correctly. Options:
+Agents need to learn how to use AML correctly. Options:
- Hardcode instructions in system prompts
- Distribute as documentation
- Deliver as an APM skill (self-contained, versionable)
## Decision
-Deliver SML usage instructions as an APM skill (`sml-usage-guide`) that agents can load.
+Deliver AML usage instructions as an APM skill (`aml-usage-guide`) that agents can load.
## Rationale
-- Self-contained: the skill carries everything needed to use SML
+- Self-contained: the skill carries everything needed to use AML
- Versionable: updates to instructions are delivered via APM
- Composable: can be loaded alongside other skills
- Testable: trigger and content evals validate effectiveness
-- Consistent with "eat your own dog food" — SML knowledge delivered via APM
+- Consistent with "eat your own dog food" — AML knowledge delivered via APM
## Consequences
- Must follow SKILL.md format (≤500 lines, ≤5000 tokens, ≤1024 char description)
diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs
index 3559e3d..cb525cb 100644
--- a/docs/astro.config.mjs
+++ b/docs/astro.config.mjs
@@ -4,12 +4,12 @@ import starlightLinksValidator from 'starlight-links-validator';
export default defineConfig({
site: 'https://sergio-sisternes-epam.github.io',
- base: '/aslm',
+ base: '/aml',
integrations: [
starlight({
- title: 'SML — Skill Markup Language',
+ title: 'AML — Agent Markup Language',
social: {
- github: 'https://github.com/sergio-sisternes-epam/aslm',
+ github: 'https://github.com/sergio-sisternes-epam/aml',
},
sidebar: [
{
diff --git a/docs/package-lock.json b/docs/package-lock.json
index 2148277..b996fae 100644
--- a/docs/package-lock.json
+++ b/docs/package-lock.json
@@ -1,11 +1,11 @@
{
- "name": "sml-docs",
+ "name": "aml-docs",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "name": "sml-docs",
+ "name": "aml-docs",
"version": "0.1.0",
"dependencies": {
"@astrojs/starlight": "^0.32",
diff --git a/docs/package.json b/docs/package.json
index 6cbc0fa..406ee54 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -1,5 +1,5 @@
{
- "name": "sml-docs",
+ "name": "aml-docs",
"type": "module",
"version": "0.1.0",
"scripts": {
diff --git a/docs/spec/attributes.md b/docs/spec/attributes.md
index 67c6a4e..8bd64ba 100644
--- a/docs/spec/attributes.md
+++ b/docs/spec/attributes.md
@@ -1,8 +1,8 @@
-# SML Attribute Reference
+# AML Attribute Reference
## Overview
-Every attribute in SML has a defined type, allowed values, and validity scope.
+Every attribute in AML has a defined type, allowed values, and validity scope.
This document is the canonical reference for attribute semantics.
## Attribute Table
@@ -95,7 +95,7 @@ Maximum timeout: `1h`. Values exceeding this are clamped with a warning.
## Forward Compatibility
-Unknown attributes are treated as **warnings**, not errors. This allows SML
+Unknown attributes are treated as **warnings**, not errors. This allows AML
documents written for newer versions to be parsed by older runtimes with
graceful degradation. The unknown attributes are:
- Preserved in the AST (for round-tripping).
diff --git a/docs/spec/error-model.md b/docs/spec/error-model.md
index 388c5b3..fc91187 100644
--- a/docs/spec/error-model.md
+++ b/docs/spec/error-model.md
@@ -1,15 +1,15 @@
-# SML Error Model
+# AML Error Model
## Overview
-SML defines a structured error model covering parsing, validation, resolution,
+AML defines a structured error model covering parsing, validation, resolution,
and execution. All errors include source spans for precise tooling integration.
## Error Categories
### Parse Errors
-Raised during Phase 1 (Parse). These indicate syntactically invalid SML.
+Raised during Phase 1 (Parse). These indicate syntactically invalid AML.
| Error | Cause | Span points to |
|---|---|---|
@@ -23,7 +23,7 @@ Parse errors are **unrecoverable** — the document cannot proceed past Phase 1.
### Validation Errors
Raised during Phase 2 (Validate). These indicate well-formed but semantically
-invalid SML.
+invalid AML.
| Error | Cause | Span points to |
|---|---|---|
@@ -113,7 +113,7 @@ Errors are formatted with source context:
```
error[E0301]: no implementation found for interface 'unit-testing-coverage'
- --> prompt.sml:15:3
+ --> prompt.aml:15:3
|
15 |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -127,7 +127,7 @@ error[E0301]: no implementation found for interface 'unit-testing-coverage'
The Python API exposes structured error objects:
```python
-from sml import parse, SmlError, ErrorKind
+from aml import parse, SmlError, ErrorKind
try:
tree = parse(prompt)
diff --git a/docs/spec/execution.md b/docs/spec/execution.md
index b3c43b8..c7f14ad 100644
--- a/docs/spec/execution.md
+++ b/docs/spec/execution.md
@@ -1,4 +1,4 @@
-# SML Execution Model
+# AML Execution Model
## Overview
@@ -188,7 +188,7 @@ struct ExecutionContext {
### Depth limit
-To prevent infinite recursion (e.g. a skill that emits SML which gets re-parsed),
+To prevent infinite recursion (e.g. a skill that emits AML which gets re-parsed),
a hard depth limit is enforced:
- Default: 16 levels of nesting.
- Configurable per-registry.
diff --git a/docs/spec/grammar.ebnf b/docs/spec/grammar.ebnf
index 91a1b60..b44695d 100644
--- a/docs/spec/grammar.ebnf
+++ b/docs/spec/grammar.ebnf
@@ -1,4 +1,4 @@
-# SML Formal Grammar (EBNF)
+# AML Formal Grammar (EBNF)
# A document is arbitrary text interspersed with skill tags.
Document ::= (Text | SkillNode)*
@@ -91,7 +91,7 @@ Text ::= [^<]+ # any content that is not a ta
# Leading/trailing whitespace in attribute values is trimmed.
# --- COMMENTS ---
-# SML supports XML-style comments:
+# AML supports XML-style comments:
Comment ::= ''
CommentContent ::= [^-]* | '-' [^-]+ # no '--' inside comments
# Comments are stripped during parsing and do not appear in the AST.
diff --git a/docs/spec/lifecycle.md b/docs/spec/lifecycle.md
index d5a0ef5..862e1a6 100644
--- a/docs/spec/lifecycle.md
+++ b/docs/spec/lifecycle.md
@@ -1,8 +1,8 @@
-# SML Execution Lifecycle
+# AML Execution Lifecycle
## Overview
-SML processing follows a strict 6-phase pipeline. Each phase has well-defined
+AML processing follows a strict 6-phase pipeline. Each phase has well-defined
inputs, outputs, and error conditions. Phases execute sequentially; no phase
may be skipped.
@@ -12,13 +12,13 @@ Input Prompt → Parse → Validate → Register Definitions → Resolve → Exe
## Phase 1: Parse
-**Input**: Raw text string (the prompt or document containing SML tags).
+**Input**: Raw text string (the prompt or document containing AML tags).
**Output**: Unvalidated AST (`Document` node containing `SkillNode` and `Text` nodes).
**Behaviour**:
-- The parser tokenises SML tags within arbitrary prompt text.
-- Non-SML text is preserved as `Text` nodes.
+- The parser tokenises AML tags within arbitrary prompt text.
+- Non-AML text is preserved as `Text` nodes.
- Nested `` tags produce nested `SkillNode` children.
- `` tags within a `` are attached to the parent node.
- XML comments (``) are stripped.
@@ -31,8 +31,8 @@ Input Prompt → Parse → Validate → Register Definitions → Resolve → Exe
- All errors include source spans for precise error reporting.
**Tolerance policy**: The parser is **embedded-tolerant** — it operates within
-arbitrary prompt text. Any `<` that does not begin a recognised SML tag is
-treated as literal text. The parser does NOT attempt to parse non-SML XML/HTML.
+arbitrary prompt text. Any `<` that does not begin a recognised AML tag is
+treated as literal text. The parser does NOT attempt to parse non-AML XML/HTML.
## Phase 2: Validate
@@ -161,6 +161,6 @@ document, resolution always produces the same binding (or the same error).
1. **Definitions never execute.** A `define=` node's body is descriptive text, never invoked.
2. **Execution is bottom-up.** Inner skills complete before outer skills see their scope.
-3. **Results are escaped.** Injected text is NOT re-parsed for new SML tags.
+3. **Results are escaped.** Injected text is NOT re-parsed for new AML tags.
4. **Resolution is deterministic.** Same inputs → same outputs (or same errors).
5. **Errors include spans.** Every error references the source location for tooling.
diff --git a/docs/spec/resolution.md b/docs/spec/resolution.md
index 69ba9f5..e2aa97f 100644
--- a/docs/spec/resolution.md
+++ b/docs/spec/resolution.md
@@ -1,4 +1,4 @@
-# SML Interface Resolution
+# AML Interface Resolution
## Overview
@@ -133,7 +133,7 @@ Implementation and interface names occupy **separate namespaces**:
- In Lookup Mode, implementation is checked first, then interface.
Names within each namespace are **package-scoped** when multiple packages are
-installed. The fully-qualified form is `/` (e.g. `sml-stdlib/unit-testing-coverage`).
+installed. The fully-qualified form is `/` (e.g. `aml-stdlib/unit-testing-coverage`).
Short names (without package prefix) resolve within the current package first,
then search all packages.
diff --git a/docs/spec/security.md b/docs/spec/security.md
index b370e75..5a97c60 100644
--- a/docs/spec/security.md
+++ b/docs/spec/security.md
@@ -1,10 +1,10 @@
-# SML Security Model
+# AML Security Model
## Overview
-SML invokes executable skills, which may have side effects on real systems.
+AML invokes executable skills, which may have side effects on real systems.
A security model is essential to prevent unintended or malicious behaviour.
-SML adopts a **deny-by-default** execution policy with explicit capability grants.
+AML adopts a **deny-by-default** execution policy with explicit capability grants.
## Trust Boundaries
@@ -16,7 +16,7 @@ SML adopts a **deny-by-default** execution policy with explicit capability grant
| **Semi-trusted** | User-provided prompts in controlled environments | Execute skills within declared capability set |
| **Untrusted** | External input, user-generated content, RAG results | Parse only; do NOT execute without explicit approval |
-The trust level is set by the **caller** (the system integrating SML), not by
+The trust level is set by the **caller** (the system integrating AML), not by
the document itself. A document cannot escalate its own trust level.
## Capability Declarations
@@ -160,7 +160,7 @@ This enables post-hoc security review and compliance auditing.
| Threat | Mitigation |
|---|---|
-| Malicious SML in user input | Trust levels + deny-by-default |
+| Malicious AML in user input | Trust levels + deny-by-default |
| Skill escalates privileges | Capability declarations + pre-execution check |
| Injected results trigger execution | Results are never re-parsed |
| Compromised package | Registry trust + package provenance |
diff --git a/docs/src/content/docs/api/python-api.mdx b/docs/src/content/docs/api/python-api.mdx
index 9902bcc..27e5011 100644
--- a/docs/src/content/docs/api/python-api.mdx
+++ b/docs/src/content/docs/api/python-api.mdx
@@ -1,31 +1,31 @@
---
title: Python API
-description: Python API reference for the SML runtime.
+description: Python API reference for the AML runtime.
---
-## Module: `sml`
+## Module: `aml`
### `parse(input: str) -> Document`
-Parse an SML document from a string. Returns a `Document` object.
+Parse an AML document from a string. Returns a `Document` object.
```python
-from sml import parse
+from aml import parse
doc = parse('Run tests')
```
-Raises `ValueError` if the input contains malformed SML.
+Raises `ValueError` if the input contains malformed AML.
-### `execute(doc: Document, registry: SmlRegistry) -> str`
+### `execute(doc: Document, registry: AmlRegistry) -> str`
Execute a parsed document with the given registry. Returns the final text output.
```python
-from sml import execute, parse, SmlRegistry
+from aml import execute, parse, AmlRegistry
doc = parse(prompt)
-registry = SmlRegistry()
+registry = AmlRegistry()
result = execute(doc, registry)
```
@@ -37,11 +37,11 @@ result = execute(doc, registry)
| `definitions()` | List of definition names (e.g. `["interface:testing", "impl:pytest"]`) |
| `invocations()` | List of invocation targets (e.g. `["testing", "code-review"]`) |
-### `SmlRegistry`
+### `AmlRegistry`
| Method | Description |
|--------|-------------|
-| `SmlRegistry()` | Create empty registry |
+| `AmlRegistry()` | Create empty registry |
| `register_interface(name, description=None)` | Register an interface |
| `register_implementation(name, implements, language=None, framework=None, description=None, priority=0)` | Register an implementation |
| `register_from_document(doc)` | Register all definitions from a parsed document |
diff --git a/docs/src/content/docs/api/rust-api.mdx b/docs/src/content/docs/api/rust-api.mdx
index 21d46ff..7424874 100644
--- a/docs/src/content/docs/api/rust-api.mdx
+++ b/docs/src/content/docs/api/rust-api.mdx
@@ -1,16 +1,16 @@
---
title: Rust API
-description: Rust API reference for sml-core.
+description: Rust API reference for aml-core.
---
-## Crate: `sml-core`
+## Crate: `aml-core`
The Rust API is documented via `cargo doc`. Key types:
### Parsing
```rust
-use sml_core::parse;
+use aml_core::parse;
let doc = parse(r#"Run tests"#).unwrap();
```
@@ -18,7 +18,7 @@ let doc = parse(r#"Run tests"#).unwrap();
### Registry
```rust
-use sml_core::SkillRegistry;
+use aml_core::SkillRegistry;
let mut registry = SkillRegistry::new();
registry.register_interface("testing".into(), Some("Run tests".into())).unwrap();
@@ -33,7 +33,7 @@ registry.register_implementation(
### Execution
```rust
-use sml_core::{ExecutionContext, SkillRegistry, parse};
+use aml_core::{ExecutionContext, SkillRegistry, parse};
let registry = SkillRegistry::new();
let ctx = ExecutionContext::new(registry);
@@ -64,5 +64,5 @@ let result = ctx.execute(&doc).unwrap();
## Building Documentation
```bash
-cargo doc --open -p sml-core
+cargo doc --open -p aml-core
```
diff --git a/docs/src/content/docs/guide/error-handling.mdx b/docs/src/content/docs/guide/error-handling.mdx
index 1864d77..3447063 100644
--- a/docs/src/content/docs/guide/error-handling.mdx
+++ b/docs/src/content/docs/guide/error-handling.mdx
@@ -1,6 +1,6 @@
---
title: Error Handling
-description: How SML handles failures during execution.
+description: How AML handles failures during execution.
---
## Failure Modes
diff --git a/docs/src/content/docs/guide/getting-started.mdx b/docs/src/content/docs/guide/getting-started.mdx
index abb5dfb..40aba24 100644
--- a/docs/src/content/docs/guide/getting-started.mdx
+++ b/docs/src/content/docs/guide/getting-started.mdx
@@ -1,17 +1,17 @@
---
title: Getting Started
-description: Quick start guide for using SML in your agent prompts.
+description: Quick start guide for using AML in your agent prompts.
---
## Installation
```bash
-pip install sml
+pip install aml
```
-## Your First SML Tag
+## Your First AML Tag
-SML tags are embedded directly in agent prompts:
+AML tags are embedded directly in agent prompts:
```xml
@@ -37,13 +37,13 @@ Before invoking, define your interfaces and implementations:
## Using the Python API
```python
-from sml import parse, execute, SmlRegistry
+from aml import parse, execute, AmlRegistry
-# Parse the SML document
+# Parse the AML document
doc = parse(prompt_text)
# Register definitions
-registry = SmlRegistry()
+registry = AmlRegistry()
registry.register_from_document(doc)
# Execute
diff --git a/docs/src/content/docs/guide/interfaces-and-implementations.mdx b/docs/src/content/docs/guide/interfaces-and-implementations.mdx
index 7ea0730..46b9382 100644
--- a/docs/src/content/docs/guide/interfaces-and-implementations.mdx
+++ b/docs/src/content/docs/guide/interfaces-and-implementations.mdx
@@ -1,6 +1,6 @@
---
title: Interfaces & Implementations
-description: The SML resolution model.
+description: The AML resolution model.
---
## Concepts
@@ -47,4 +47,4 @@ The runtime resolves `unit-testing` + `language="python"` → `pytest-runner`.
## Handling Ambiguity
-If multiple implementations match with equal priority, resolution **fails explicitly** with an `Ambiguous` error. This is intentional — SML never silently picks a random implementation.
+If multiple implementations match with equal priority, resolution **fails explicitly** with an `Ambiguous` error. This is intentional — AML never silently picks a random implementation.
diff --git a/docs/src/content/docs/guide/nesting-and-scoping.mdx b/docs/src/content/docs/guide/nesting-and-scoping.mdx
index 107fdb6..6eebe15 100644
--- a/docs/src/content/docs/guide/nesting-and-scoping.mdx
+++ b/docs/src/content/docs/guide/nesting-and-scoping.mdx
@@ -1,6 +1,6 @@
---
title: Nesting & Scoping
-description: Composition patterns with nested SML skills.
+description: Composition patterns with nested AML skills.
---
## Scoping
diff --git a/docs/src/content/docs/guide/syntax.mdx b/docs/src/content/docs/guide/syntax.mdx
index 8befe18..28f5e41 100644
--- a/docs/src/content/docs/guide/syntax.mdx
+++ b/docs/src/content/docs/guide/syntax.mdx
@@ -1,6 +1,6 @@
---
title: Syntax Reference
-description: Complete SML syntax guide.
+description: Complete AML syntax guide.
---
## Tag Structure
diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx
index 3bbf61d..9816424 100644
--- a/docs/src/content/docs/index.mdx
+++ b/docs/src/content/docs/index.mdx
@@ -1,21 +1,21 @@
---
-title: SML — Skill Markup Language
+title: AML — Agent Markup Language
description: A lightweight markup language for declarative skill invocation in agent prompts.
template: splash
hero:
tagline: Declarative, composable, nestable skill invocation for AI agents.
actions:
- text: Get Started
- link: /aslm/guide/getting-started/
+ link: /aml/guide/getting-started/
icon: right-arrow
- text: Language Spec
- link: /aslm/specification/
+ link: /aml/specification/
variant: minimal
---
-## What is SML?
+## What is AML?
-SML (Skill Markup Language) is a lightweight, XML-inspired markup language that enables agents to declaratively invoke modular, scoped, and nestable skills directly inside prompts.
+AML (Agent Markup Language) is a lightweight, XML-inspired markup language that enables agents to declaratively invoke modular, scoped, and nestable skills directly inside prompts.
```xml
diff --git a/docs/src/content/docs/installation/apm-package.mdx b/docs/src/content/docs/installation/apm-package.mdx
index 3cbd2e7..2d478ff 100644
--- a/docs/src/content/docs/installation/apm-package.mdx
+++ b/docs/src/content/docs/installation/apm-package.mdx
@@ -1,22 +1,22 @@
---
title: APM Package
-description: Install SML via Agent Package Manager.
+description: Install AML via Agent Package Manager.
---
## Install via APM
```bash
-apm install sml
+apm install aml
```
-This installs the SML knowledge package which includes:
-- `sml-usage-guide` — How to write SML tags correctly
-- `sml-installation` — How to install the runtime
+This installs the AML knowledge package which includes:
+- `aml-usage-guide` — How to write AML tags correctly
+- `aml-installation` — How to install the runtime
## What You Get
-After installation, agents loading the `sml-usage-guide` skill will know how to:
-- Write correct SML syntax
+After installation, agents loading the `aml-usage-guide` skill will know how to:
+- Write correct AML syntax
- Define interfaces and implementations
- Use nesting and scoping patterns
- Handle errors and retries
@@ -26,18 +26,18 @@ After installation, agents loading the `sml-usage-guide` skill will know how to:
```
.apm/skills/
-├── sml-usage-guide/
+├── aml-usage-guide/
│ ├── SKILL.md # Core syntax rules and patterns
│ └── references/
│ └── system-prompts.md # ReAct and Plan-and-Execute examples
-└── sml-installation/
+└── aml-installation/
└── SKILL.md # Runtime installation instructions
```
## APM vs pip
-| Concern | APM (`apm install sml`) | pip (`pip install sml`) |
+| Concern | APM (`apm install aml`) | pip (`pip install aml`) |
|---------|------------------------|------------------------|
| What | Knowledge (skills) | Runtime (parser + executor) |
-| For | Agents learning SML syntax | Applications executing SML |
+| For | Agents learning AML syntax | Applications executing AML |
| Delivers | SKILL.md files | Compiled Rust + Python bindings |
diff --git a/docs/src/content/docs/installation/pip-install.mdx b/docs/src/content/docs/installation/pip-install.mdx
index 718ae87..45b86e3 100644
--- a/docs/src/content/docs/installation/pip-install.mdx
+++ b/docs/src/content/docs/installation/pip-install.mdx
@@ -1,12 +1,12 @@
---
title: pip install
-description: Install SML from PyPI.
+description: Install AML from PyPI.
---
## Quick Install
```bash
-pip install sml
+pip install aml
```
## Requirements
@@ -26,16 +26,16 @@ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
pip install maturin
# Clone and build
-git clone https://github.com/sergio-sisternes-epam/aslm.git
-cd aslm
+git clone https://github.com/sergio-sisternes-epam/aml.git
+cd aml
maturin develop --release
```
## Verify
```python
-from sml import parse
+from aml import parse
doc = parse('hello')
assert doc.node_count == 1
-print("SML installed successfully!")
+print("AML installed successfully!")
```
diff --git a/docs/src/content/docs/specification/attributes.mdx b/docs/src/content/docs/specification/attributes.mdx
index f14705b..ade375a 100644
--- a/docs/src/content/docs/specification/attributes.mdx
+++ b/docs/src/content/docs/specification/attributes.mdx
@@ -1,6 +1,6 @@
---
title: Attribute Reference
-description: Complete reference for all SML attributes.
+description: Complete reference for all AML attributes.
---
## Attributes by Node Type
diff --git a/docs/src/content/docs/specification/execution.mdx b/docs/src/content/docs/specification/execution.mdx
index ef78e33..06fba2c 100644
--- a/docs/src/content/docs/specification/execution.mdx
+++ b/docs/src/content/docs/specification/execution.mdx
@@ -1,6 +1,6 @@
---
title: Execution Model
-description: How SML executes skills with policies and failure handling.
+description: How AML executes skills with policies and failure handling.
---
## Execution Policies
@@ -20,7 +20,7 @@ Input: "Please long text here thanks"
Output: "Please [summary result] thanks"
```
-Results are **escaped by default** — they are never re-parsed as SML.
+Results are **escaped by default** — they are never re-parsed as AML.
## Failure Modes
diff --git a/docs/src/content/docs/specification/grammar.mdx b/docs/src/content/docs/specification/grammar.mdx
index a7d66fa..d512f3a 100644
--- a/docs/src/content/docs/specification/grammar.mdx
+++ b/docs/src/content/docs/specification/grammar.mdx
@@ -1,11 +1,11 @@
---
title: Formal Grammar
-description: EBNF grammar for the SML language.
+description: EBNF grammar for the AML language.
---
## Overview
-SML uses XML-like `` tags embedded in arbitrary text. The grammar defines three mutually exclusive node types determined by the presence of the `define` attribute.
+AML uses XML-like `` tags embedded in arbitrary text. The grammar defines three mutually exclusive node types determined by the presence of the `define` attribute.
## Node Types
diff --git a/docs/src/content/docs/specification/index.mdx b/docs/src/content/docs/specification/index.mdx
index 835dcd9..1e24385 100644
--- a/docs/src/content/docs/specification/index.mdx
+++ b/docs/src/content/docs/specification/index.mdx
@@ -1,8 +1,8 @@
---
title: Language Specification
-description: Formal specification of the SML language.
+description: Formal specification of the AML language.
---
-The SML language specification defines the grammar, lifecycle, resolution algorithm, execution model, and security constraints.
+The AML language specification defines the grammar, lifecycle, resolution algorithm, execution model, and security constraints.
Browse the specification documents using the sidebar navigation.
diff --git a/docs/src/content/docs/specification/lifecycle.mdx b/docs/src/content/docs/specification/lifecycle.mdx
index a730da5..253ec15 100644
--- a/docs/src/content/docs/specification/lifecycle.mdx
+++ b/docs/src/content/docs/specification/lifecycle.mdx
@@ -1,11 +1,11 @@
---
title: Execution Lifecycle
-description: The six phases of SML processing.
+description: The six phases of AML processing.
---
## Pipeline
-SML processing follows a strict six-phase pipeline:
+AML processing follows a strict six-phase pipeline:
1. **Parse** — Extract `` tags from input text, build AST
2. **Validate** — Check attribute combinations, required fields
diff --git a/docs/src/content/docs/specification/resolution.mdx b/docs/src/content/docs/specification/resolution.mdx
index 72ed6c5..b16d184 100644
--- a/docs/src/content/docs/specification/resolution.mdx
+++ b/docs/src/content/docs/specification/resolution.mdx
@@ -1,6 +1,6 @@
---
title: Interface Resolution
-description: How SML resolves interfaces to implementations.
+description: How AML resolves interfaces to implementations.
---
## Resolution Algorithm
diff --git a/docs/src/content/docs/specification/security.mdx b/docs/src/content/docs/specification/security.mdx
index cb341b6..1694226 100644
--- a/docs/src/content/docs/specification/security.mdx
+++ b/docs/src/content/docs/specification/security.mdx
@@ -1,12 +1,12 @@
---
title: Security Model
-description: Trust boundaries and security constraints in SML.
+description: Trust boundaries and security constraints in AML.
---
## Principles
1. **Deny by default** — Skills have no capabilities unless explicitly granted
-2. **Results are escaped** — Skill output is never re-parsed as SML (prevents injection)
+2. **Results are escaped** — Skill output is never re-parsed as AML (prevents injection)
3. **Scoped execution** — Skills only see their declared scope (tag content)
## Trust Boundaries
@@ -14,7 +14,7 @@ description: Trust boundaries and security constraints in SML.
| Source | Trust Level | Description |
|--------|------------|-------------|
| System prompt definitions | Trusted | Installed by operator |
-| User-provided SML | Untrusted | Must be validated |
+| User-provided AML | Untrusted | Must be validated |
| Skill results | Escaped | Never re-parsed |
## Capability Model
diff --git a/docs/src/styles/custom.css b/docs/src/styles/custom.css
index b75838b..b23d0bd 100644
--- a/docs/src/styles/custom.css
+++ b/docs/src/styles/custom.css
@@ -1,4 +1,4 @@
-/* Custom styles for the SML docs site */
+/* Custom styles for the AML docs site */
:root {
--sl-color-accent-low: #1a1a2e;
--sl-color-accent: #4a90d9;
diff --git a/examples/full_pipeline.py b/examples/full_pipeline.py
index b7b581f..e989cf0 100644
--- a/examples/full_pipeline.py
+++ b/examples/full_pipeline.py
@@ -1,16 +1,16 @@
"""
-End-to-end example: Parse, register, resolve, and execute SML.
+End-to-end example: Parse, register, resolve, and execute AML.
-This example demonstrates the full SML pipeline using the Python API.
+This example demonstrates the full AML pipeline using the Python API.
"""
def main():
- # Note: This example requires the sml package to be installed
- # pip install sml (or: maturin develop --release)
- from sml import SmlRegistry, execute, parse
+ # Note: This example requires the aml package to be installed
+ # pip install aml (or: maturin develop --release)
+ from aml import AmlRegistry, execute, parse
- # 1. Define interfaces and implementations in SML
+ # 1. Define interfaces and implementations in AML
definitions = """
Analyse code for bugs, style issues, and security vulnerabilities.
@@ -27,7 +27,7 @@ def main():
# 2. Parse and register definitions
def_doc = parse(definitions)
- registry = SmlRegistry()
+ registry = AmlRegistry()
registry.register_from_document(def_doc)
# 3. Parse an invocation
diff --git a/examples/nested_execution.py b/examples/nested_execution.py
index 7ead58f..8254fe0 100644
--- a/examples/nested_execution.py
+++ b/examples/nested_execution.py
@@ -6,16 +6,16 @@
def main():
- from sml import SmlRegistry, execute, parse
+ from aml import AmlRegistry, execute, parse
# Set up registry
- registry = SmlRegistry()
+ registry = AmlRegistry()
registry.register_interface("fetch", "Fetch content from a URL")
registry.register_interface("summarise", "Summarise text content")
registry.register_implementation("http-fetch", "fetch")
registry.register_implementation("gpt-summarise", "summarise")
- # Nested SML: fetch runs first, then summarise operates on the result
+ # Nested AML: fetch runs first, then summarise operates on the result
prompt = """
diff --git a/pyproject.toml b/pyproject.toml
index 3fa7dfe..39aca6f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -3,9 +3,9 @@ requires = ["maturin>=1.5,<2.0"]
build-backend = "maturin"
[project]
-name = "sml"
+name = "aml"
version = "0.1.0"
-description = "SML (Skill Markup Language) — declarative skill invocation for agent prompts"
+description = "AML (Agent Markup Language) — declarative skill invocation for agent prompts"
readme = "README.md"
license = { text = "MIT" }
requires-python = ">=3.9"
@@ -17,8 +17,8 @@ classifiers = [
]
[tool.maturin]
-manifest-path = "crates/sml-python/Cargo.toml"
-module-name = "sml"
+manifest-path = "crates/aml-python/Cargo.toml"
+module-name = "aml"
python-source = "python"
features = ["pyo3/extension-module"]
diff --git a/tests/conformance/execution/01-bottom-up-nesting.md b/tests/conformance/execution/01-bottom-up-nesting.md
index f8140b8..bae6569 100644
--- a/tests/conformance/execution/01-bottom-up-nesting.md
+++ b/tests/conformance/execution/01-bottom-up-nesting.md
@@ -2,7 +2,7 @@
## Input
-```sml
+```aml
hello world
needs summarising.
diff --git a/tests/conformance/execution/02-wrapper-policy.md b/tests/conformance/execution/02-wrapper-policy.md
index c56a107..c795f3e 100644
--- a/tests/conformance/execution/02-wrapper-policy.md
+++ b/tests/conformance/execution/02-wrapper-policy.md
@@ -2,7 +2,7 @@
## Input
-```sml
+```aml
Write secret.txt with contents "password123"
diff --git a/tests/conformance/execution/03-failed-skip.md b/tests/conformance/execution/03-failed-skip.md
index 6583836..48e98d3 100644
--- a/tests/conformance/execution/03-failed-skip.md
+++ b/tests/conformance/execution/03-failed-skip.md
@@ -2,7 +2,7 @@
## Input
-```sml
+```aml
Introduction paragraph.
diff --git a/tests/conformance/execution/04-failed-halt.md b/tests/conformance/execution/04-failed-halt.md
index a614144..f73db39 100644
--- a/tests/conformance/execution/04-failed-halt.md
+++ b/tests/conformance/execution/04-failed-halt.md
@@ -2,7 +2,7 @@
## Input
-```sml
+```aml
fetch critical metrics
diff --git a/tests/conformance/execution/05-no-reparsing.md b/tests/conformance/execution/05-no-reparsing.md
index 2b87833..5024f16 100644
--- a/tests/conformance/execution/05-no-reparsing.md
+++ b/tests/conformance/execution/05-no-reparsing.md
@@ -2,7 +2,7 @@
## Input
-```sml
+```aml
return this text
diff --git a/tests/conformance/execution/06-resolution-with-hints.md b/tests/conformance/execution/06-resolution-with-hints.md
index a62dff3..1a28532 100644
--- a/tests/conformance/execution/06-resolution-with-hints.md
+++ b/tests/conformance/execution/06-resolution-with-hints.md
@@ -2,7 +2,7 @@
## Input
-```sml
+```aml
Test the auth module.
diff --git a/tests/conformance/execution/07-ambiguous-resolution.md b/tests/conformance/execution/07-ambiguous-resolution.md
index 385f969..8940659 100644
--- a/tests/conformance/execution/07-ambiguous-resolution.md
+++ b/tests/conformance/execution/07-ambiguous-resolution.md
@@ -2,7 +2,7 @@
## Input
-```sml
+```aml
Test the auth module.