Files
proxy-manager/web/panels.ts
T
pastilhasandClaude Opus 5 23f6d06632 the chat panel gets the header and the history it should have had
ChatPanelWrapper, not EmbeddableChat — one level up, and the session
persistence, the agent identity bar, the spawned-by bar and resume-the-newest
all come with it. mounting the composer directly meant reimplementing those or
going without.

and a header: the conversation picker, scoped to this plugin's own directory,
with new chat, inline rename and delete. none of it is new — it is what a
dashboard's chat panel has always had, pointed at a context instead of a path.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
2026-08-25 18:30:55 +00:00

34 lines
1.4 KiB
TypeScript

import { MessageSquare, Route, ShieldCheck } from 'lucide-react';
import type { AppRegistryMeta } from 'officerdev';
import { HostsPanel } from './HostsPanel';
import { CertificatesPanel } from './CertificatesPanel';
import { ChatPanel, ChatPanelHeader } from './ChatPanel';
// Three panels. Hosts is what the plugin is for; certificates is the thing that quietly breaks and is
// worth seeing beside it rather than a click away; chat is where you ask about either of them.
//
// The chat panel has to be OURS even though the chat inside it is the platform's — `PluginScreen` pins the
// layout to `allowed = panels.map(p => p.key)`, so naming `officerdev/chat` in layout.ts renders the
// fallback instead. See ChatPanel.tsx.
//
// `availableOnPanel: false` — these belong to this plugin's screen, not to the generic panel picker.
export const appRegistryMetas: AppRegistryMeta[] = [
{ key: 'proxy-manager-hosts', name: 'Hosts', icon: Route, component: HostsPanel, availableOnPanel: false },
{
key: 'proxy-manager-certificates',
name: 'Certificates',
icon: ShieldCheck,
component: CertificatesPanel,
availableOnPanel: false,
},
{
key: 'proxy-manager-chat',
name: 'Chat',
icon: MessageSquare,
component: ChatPanel,
// The conversation picker, scoped to this plugin's own chat directory.
header: ChatPanelHeader,
availableOnPanel: false,
},
];