Watch
0
0
Fork
You've already forked hyperhive
0
hyperhive/frontend/packages/swarm-ui/src/pages/agents
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas ae9ca4331e swarm: keep an agent's terminal rows and replay them on attach
swarm-controller now creates `term-main-<agent>` for every live agent, in
the same one-minute pass and with the same config style as
`term-sub-<agent>` (#4897): subjects `$SWARM.term.<agent>` only, max_age
24h, max_bytes 64 MiB, discard Old, max_message_size from the queue's
max_payload. An existing stream is opened as it is. The agent keeps its
plain publish on `$SWARM.term.<agent>` and gets no JetStream subject.

`GET /api/agents/{name}/term/stream` creates an ephemeral push consumer on
that stream starting 100 rows back, so a swarm-ui terminal opens with
recent history and then follows new rows, in order, from one
subscription. Each SSE event carries the row's stream sequence as its id,
and a reconnect's Last-Event-ID resumes after it. Without the stream the
route falls back to the live core subscription it used before.

The stream is `term-main-<agent>`, not `term-<agent>`: an agent may be
named `sub-x`, whose `term-<agent>` would be agent `x`'s subagent stream.
Its one literal subject cannot match `$SWARM.term.<agent>.sub.>`, which
needs more tokens, so the two streams never overlap.

The reader gains `$JS.API.CONSUMER.CREATE.*.*.$SWARM.term.*`, the
extended create form whose last tokens are the consumer's filter. Checked
against nats-server 2.14.4, the trailing `*` also admits a literal `*` or
`>` filter, so a consumer under it reaches any terminal row, main or
subagent; those are rows the reader already subscribes to and reads with
`STREAM.MSG.GET.*`.

Closes #4826
2026-10-11 12:35:31 +02:00
..
AgentCard.css swarm-ui: show each agent's icon on its card 2026-09-28 13:47:37 +02:00
AgentCard.tsx swarm-ui: show each agent's icon on its card 2026-09-28 13:47:37 +02:00
AgentInference.css swarm-ui: per-agent inference panel and editor on the agents page 2026-10-10 18:51:55 +02:00
AgentInference.tsx swarm-ui: per-agent inference panel and editor on the agents page 2026-10-10 18:51:55 +02:00
AgentInputForm.css swarm UI: send a message to an agent, without its hive 2026-10-04 03:02:14 +02:00
AgentInputForm.tsx swarm UI: send a message to an agent, without its hive 2026-10-04 03:02:14 +02:00
AgentsPage.css swarm-ui/agents: move the split-out agent-page files into pages/agents/ 2026-09-11 22:35:44 +02:00
AgentsPage.tsx swarm-ui: per-agent inference panel and editor on the agents page 2026-10-10 18:51:55 +02:00
AgentTerminalPage.css swarm-ui: terminal tab fills the viewport below the header 2026-10-04 16:15:06 +02:00
AgentTerminalPage.tsx swarm UI: send a message to an agent, without its hive 2026-10-04 03:02:14 +02:00
AgentTermPreview.css swarm-ui: size every preview badge like the expand trigger, make room for two rows 2026-10-04 17:29:48 +02:00
AgentTermPreview.tsx swarm-ui: size every preview badge like the expand trigger, make room for two rows 2026-10-04 17:29:48 +02:00
AgentTypes.ts swarm-ui/agents: move the split-out agent-page files into pages/agents/ 2026-09-11 22:35:44 +02:00
LinkAccountMenu.tsx swarm-ui: one link-account menu, and no subagents section without subagents 2026-10-04 16:35:06 +02:00
LinkedAccounts.css swarm UI: show the accounts linked to each agent 2026-10-02 21:20:40 +02:00
LinkedAccounts.tsx swarm UI: delete linked accounts — R2 fixes 2026-10-03 00:56:39 +02:00
SubagentTerms.css swarm-ui: show how recent each subagent is in the details panel 2026-10-04 17:24:25 +02:00
SubagentTerms.tsx swarm-ui: show how recent each subagent is in the details panel 2026-10-04 17:24:25 +02:00
useSwarmAgentStateStream.ts hive-agent: re-send the turn-state header once a minute 2026-10-10 17:37:23 +02:00
useSwarmTermStream.ts swarm: keep an agent's terminal rows and replay them on attach 2026-10-11 12:35:31 +02:00
WantedMenu.tsx docs, comments: drop references to the removed model/effort picker 2026-10-11 01:54:23 +02:00