{% extends "admin/base.html" %} {% block title %}Bots — cmdop admin{% endblock %} {% block content %} {# Plan 42 decomposition — this page used to be ~650 lines of HTML+JS in one file. Partials live under admin/components/bots/, the Alpine component is in static/admin/bots/bots.js. Each {% include %} is a leaf — no nested includes — so the layout is obvious from this file. #} {% from 'admin/components/ui.html' import page_header %}
{{ page_header( 'Bots', 'Channel adapters (Telegram / Discord / Slack) bridging to Jarvis via /api/bot/chat.', help_anchor='bots', actions=[ {'label': 'Connect channel', 'kind': 'primary', 'icon': 'plus', 'href': '/admin/wizards/chat-bot'}, {'label': 'Refresh', 'kind': 'secondary', 'icon': 'refresh-cw', 'attrs': '@click="load()"'}, ] ) }} {% include 'admin/components/bots/_password_banner.html' %} {% include 'admin/components/bots/_toast.html' %} {% include 'admin/components/bots/_password_modal.html' %} {% include 'admin/components/bots/_adapters_pane.html' %} {% include 'admin/components/bots/_users_pane.html' %} {% include 'admin/components/bots/_activity_pane.html' %} {% include 'admin/components/bots/_conversation_drawer.html' %} {% include 'admin/components/bots/_activity_drawer.html' %}
{% endblock %}