{% import "agents/macros.html" as m with context %} {% set short = ref(row.kept.agent.id) %} {% set offered = {"channel": providers.channel, "harness": providers.harness} %} {# the draft travels with every change and comes back drawn again: an item edited, removed or moved; saving sends it to the computer in one edit #}

{{ t.text("agents.config.basics") }}

{{ t.text("agents.config.mode") }}
{% for one in ("session", "dangerous_individual") %}{% endfor %}
{# a personal assistant runs outside the sandbox: its column stays, fixed at full access #}
{{ t.text("agents.config.sandbox") }}
{% for one in ("workspace-write", "danger-full-access") %}{% endfor %}
{% for one in ("workspace-write", "danger-full-access") %}{{ t.text("agents.sandbox." ~ one) }}{% endfor %}
{% for label in ("channel", "harness") %}

{{ t.text("agents.config.title_" ~ label) }}{{ t.text("agents.config.hint_" ~ label) }}

{# adding one: a kind the computer can run, its fields in the drawer #}
{% for one in offered[label] %}{% else %}{{ t.text("agents.config.none_offered", {"computer": row.computer.name}) }}{% endfor %}
{% for item in drafted[label] %} {% set found = offered[label] | selectattr("kind", "equalto", item.kind) | first | default(none) %}
{% if label == "harness" %}{{ loop.index }}{% endif %} {{ m.logo(item.kind) }}{{ m.headline(row, label, item) }} {{ m.summary(found.json_schema if found else {}, item) }}
{% else %}

{{ t.text("agents.config.empty_" ~ label) }}

{% endfor %} {% if label == "harness" %}{% endif %}
{% endfor %}
{% if failed is not none %}{{ t.text("agents.config.failed", {"computer": row.computer.name, "error": failed or t.text("agents.remove.unanswered")}) }} {% else %}{{ t.text("agents.config.dirty") }}{% endif %} {{ t.text("agents.cancel") }}
{% if saved %}{% include "agents/side.html" %}{% endif %}