caxton 0.1.4

A secure WebAssembly runtime for multi-agent systems
Documentation
---
layout: default
---

<div class="adr-page-layout">
    <!-- ADR Sidebar -->
    <aside class="adr-page-sidebar">
        <div class="adr-sidebar-header">
            <h3>All ADRs</h3>
            <div class="adr-search">
                <input type="search" id="adr-page-search" placeholder="Search ADRs..." aria-label="Search ADRs">
            </div>
        </div>

        <!-- ADR List -->
        <div class="adr-nav-list">
            {% assign sorted_adrs = site.adrs | sort: 'date' | reverse %}
            {% for adr in sorted_adrs %}
                <a href="{{ adr.url | relative_url }}"
                   class="adr-nav-item {% if page.url == adr.url %}current{% endif %}"
                   data-title="{{ adr.title | downcase | escape }}">
                    <div class="adr-nav-header">
                        {% assign adr_num = adr.title | split: '.' | first | split: ' ' | last %}
                        <span class="adr-nav-number">ADR {{ adr_num }}</span>
                        {% if adr.status %}
                            <span class="adr-nav-status status-{{ adr.status | downcase }}">
                                {{ adr.status }}
                            </span>
                        {% endif %}
                    </div>
                    <div class="adr-nav-title">{{ adr.title | split: '. ' | last | truncate: 60 }}</div>
                    {% if adr.date %}
                        <time class="adr-nav-date" datetime="{{ adr.date | date_to_xmlschema }}">
                            {{ adr.date | date: "%b %d, %Y" }}
                        </time>
                    {% endif %}
                </a>
            {% endfor %}
        </div>
    </aside>

    <!-- Main Content -->
    <main class="adr-page-main">
        <div class="adr-page-content">
            <header class="adr-page-header">
                <h1>{{ page.title }}</h1>
                <div class="adr-metadata">
                    {% if page.status %}
                        <div class="adr-meta-item">
                            <span class="adr-meta-label">Status:</span>
                            <span class="adr-status {{ page.status | downcase }}">{{ page.status | capitalize }}</span>
                        </div>
                    {% endif %}
                    {% if page.date %}
                        <div class="adr-meta-item">
                            <span class="adr-meta-label">Date:</span>
                            <time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: "%B %d, %Y" }}</time>
                        </div>
                    {% endif %}
                    {% if page.author %}
                        <div class="adr-meta-item">
                            <span class="adr-meta-label">Author:</span>
                            <span>{{ page.author }}</span>
                        </div>
                    {% endif %}
                    {% if page.categories %}
                        <div class="adr-meta-item">
                            <span class="adr-meta-label">Categories:</span>
                            <div class="adr-categories">
                                {% for category in page.categories %}
                                    <span class="category">{{ category }}</span>
                                {% endfor %}
                            </div>
                        </div>
                    {% endif %}
                </div>
            </header>

            <div class="adr-content">
                {{ content }}
            </div>

            <!-- Navigation between ADRs -->
            <nav class="adr-navigation">
                {% assign sorted_adrs = site.adrs | sort: 'date' %}
                {% assign current_index = 0 %}
                {% for adr in sorted_adrs %}
                    {% if adr.url == page.url %}
                        {% assign current_index = forloop.index0 %}
                    {% endif %}
                {% endfor %}

                {% if current_index > 0 %}
                    {% assign prev_index = current_index | minus: 1 %}
                    {% assign prev_adr = sorted_adrs[prev_index] %}
                    <a href="{{ prev_adr.url | relative_url }}" class="adr-nav-link prev">
                        <span class="adr-nav-label">Previous</span>
                        <span class="adr-nav-title">{{ prev_adr.title | split: '. ' | last | truncate: 40 }}</span>
                    </a>
                {% else %}
                    <div></div>
                {% endif %}

                {% assign next_index = current_index | plus: 1 %}
                {% if next_index < sorted_adrs.size %}
                    {% assign next_adr = sorted_adrs[next_index] %}
                    <a href="{{ next_adr.url | relative_url }}" class="adr-nav-link next">
                        <span class="adr-nav-label">Next</span>
                        <span class="adr-nav-title">{{ next_adr.title | split: '. ' | last | truncate: 40 }}</span>
                    </a>
                {% endif %}
            </nav>
        </div>
    </main>
</div>

<!-- JavaScript for search and anchor links -->
<script src="{{ '/assets/js/anchor-links.js' | relative_url }}"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
    const searchInput = document.getElementById('adr-page-search');
    const navItems = document.querySelectorAll('.adr-nav-item');

    if (searchInput) {
        searchInput.addEventListener('input', function() {
            const query = this.value.toLowerCase();

            navItems.forEach(item => {
                const title = item.dataset.title || '';
                if (title.includes(query) || query === '') {
                    item.style.display = 'block';
                } else {
                    item.style.display = 'none';
                }
            });
        });
    }
});
</script>