44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
// <SwarmPage> — what belongs to the swarm as a whole rather than to one agent:
|
|
// the hive roster, the swarm-wide egress allow list and the notification router.
|
|
// Each is a card that starts folded and reads nothing until it is opened.
|
|
//
|
|
// The notification router is marked beta: its card says so beside the title and
|
|
// carries a warning banner inside.
|
|
import { Badge } from "@hive/shared/badge.js";
|
|
import { LazyDisclosure } from "../../ui/disclosure/LazyDisclosure.js";
|
|
import { NotificationRouter } from "../notifications/NotificationsPage.js";
|
|
import { EgressCard } from "./EgressCard.js";
|
|
import { HivesCard } from "./HivesCard.js";
|
|
import "./SwarmPage.css";
|
|
|
|
export function SwarmPage() {
|
|
return (
|
|
<>
|
|
<div class="ui-swarm-card">
|
|
<HivesCard />
|
|
</div>
|
|
<div class="ui-swarm-card">
|
|
<EgressCard />
|
|
</div>
|
|
<div class="ui-swarm-card">
|
|
<LazyDisclosure
|
|
title="notification router"
|
|
icon="🔔"
|
|
hint={
|
|
<>
|
|
<Badge tone="warning" value="beta" /> forge events routed to
|
|
agents, as flows
|
|
</>
|
|
}
|
|
>
|
|
<p class="ui-swarm-beta" role="note">
|
|
<strong>beta:</strong> the notification router is still changing.
|
|
Flows, their wording and what they match may change, and a flow you
|
|
wrote may need rewriting after an update.
|
|
</p>
|
|
<NotificationRouter />
|
|
</LazyDisclosure>
|
|
</div>
|
|
</>
|
|
);
|
|
}
|