feat: drawer guest add/remove + render
This commit is contained in:
@@ -43,6 +43,101 @@
|
||||
{% endfor %}
|
||||
</section>
|
||||
|
||||
{% if guest_bot %}
|
||||
<section class="drawer-section">
|
||||
<h3>Guest</h3>
|
||||
<p><strong>{{ guest_bot.name }}</strong></p>
|
||||
{% if guest_activity %}
|
||||
<p>{{ guest_activity.posture or "—" }} / {{ (guest_activity.action or {}).verb or "—" }}</p>
|
||||
{% if guest_activity.attention %}<p class="muted">attention: {{ guest_activity.attention }}</p>{% endif %}
|
||||
{% if guest_activity.holding %}<p class="muted">holding: {{ guest_activity.holding|join(", ") }}</p>{% endif %}
|
||||
{% else %}
|
||||
<p class="muted">No activity recorded.</p>
|
||||
{% endif %}
|
||||
|
||||
{% if edge_h2g %}
|
||||
<div class="edge-row">
|
||||
<strong>{{ host_bot.name }} → {{ guest_bot.name }}</strong>
|
||||
<p>Affinity: {{ edge_h2g.affinity }}/100 · Trust: {{ edge_h2g.trust }}/100</p>
|
||||
{% if edge_h2g.knowledge %}
|
||||
<details><summary>Knowledge ({{ edge_h2g.knowledge|length }})</summary>
|
||||
<ul>{% for fact in edge_h2g.knowledge %}<li>{{ fact }}</li>{% endfor %}</ul>
|
||||
</details>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if edge_g2h %}
|
||||
<div class="edge-row">
|
||||
<strong>{{ guest_bot.name }} → {{ host_bot.name }}</strong>
|
||||
<p>Affinity: {{ edge_g2h.affinity }}/100 · Trust: {{ edge_g2h.trust }}/100</p>
|
||||
{% if edge_g2h.knowledge %}
|
||||
<details><summary>Knowledge ({{ edge_g2h.knowledge|length }})</summary>
|
||||
<ul>{% for fact in edge_g2h.knowledge %}<li>{{ fact }}</li>{% endfor %}</ul>
|
||||
</details>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if edge_y2g %}
|
||||
<div class="edge-row">
|
||||
<strong>you → {{ guest_bot.name }}</strong>
|
||||
<p>Affinity: {{ edge_y2g.affinity }}/100 · Trust: {{ edge_y2g.trust }}/100</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if edge_g2y %}
|
||||
<div class="edge-row">
|
||||
<strong>{{ guest_bot.name }} → you</strong>
|
||||
<p>Affinity: {{ edge_g2y.affinity }}/100 · Trust: {{ edge_g2y.trust }}/100</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<form class="inline-edit"
|
||||
hx-post="/chats/{{ chat.id }}/drawer/guest/remove"
|
||||
hx-target="#drawer" hx-swap="innerHTML">
|
||||
<button type="submit">Remove guest</button>
|
||||
</form>
|
||||
</section>
|
||||
{% else %}
|
||||
<section class="drawer-section">
|
||||
<h3>Add guest</h3>
|
||||
{% if available_guests %}
|
||||
<form class="inline-edit"
|
||||
hx-post="/chats/{{ chat.id }}/drawer/guest/add"
|
||||
hx-target="#drawer" hx-swap="innerHTML">
|
||||
<label>
|
||||
Bot:
|
||||
<select name="guest_bot_id" required>
|
||||
{% for b in available_guests %}
|
||||
<option value="{{ b.id }}">{{ b.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Have they met before? Describe how (leave blank if not):
|
||||
<textarea name="relationship_prose" rows="3"
|
||||
placeholder="e.g. Old college friends who studied physics together."></textarea>
|
||||
</label>
|
||||
<button type="submit">Add guest</button>
|
||||
</form>
|
||||
{% else %}
|
||||
<p class="muted">No other bots authored yet.</p>
|
||||
{% endif %}
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
{% if group_node %}
|
||||
<section class="drawer-section">
|
||||
<h3>Group</h3>
|
||||
{% if group_node.summary %}
|
||||
<p>{{ group_node.summary }}</p>
|
||||
{% else %}
|
||||
<p class="muted">No group summary yet.</p>
|
||||
{% endif %}
|
||||
{% if group_node.dynamic %}
|
||||
<p class="muted">Dynamic: {{ group_node.dynamic }}</p>
|
||||
{% endif %}
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
<section class="drawer-section">
|
||||
<h3>Edges</h3>
|
||||
{% if edge_b2y %}
|
||||
|
||||
Reference in New Issue
Block a user