Files
boss/src/app/me/master-agent/page.tsx

60 lines
2.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { RealtimeRefresh } from "@/components/app-runtime";
import { AppShell, PageNav, StatusBar } from "@/components/app-ui";
import { MasterAgentPromptMemoryClient } from "@/components/master-agent-prompt-memory-client";
import { requirePageSession } from "@/lib/boss-auth";
import { MASTER_AGENT_CHAT_PAGE_ANCHORS } from "@/lib/master-agent-chat-menu";
import { getClawBackendAvailability } from "@/lib/execution/backends/claw-config";
import { getHermesBackendAvailability } from "@/lib/execution/backends/hermes-config";
import {
getMasterAgentPromptPolicy,
getProjectAgentControls,
getUserMasterPrompt,
listUserMasterMemories,
} from "@/lib/boss-data";
export const dynamic = "force-dynamic";
export default async function MasterAgentPromptMemoryPage() {
const session = await requirePageSession();
const [promptPolicy, userPrompt, projectControls, globalMemories, projectMemories, clawAvailability, hermesAvailability] =
await Promise.all([
getMasterAgentPromptPolicy(),
getUserMasterPrompt(session.account),
getProjectAgentControls("master-agent", session.account),
listUserMasterMemories(session.account, { includeArchived: false, scope: "global" }),
listUserMasterMemories(session.account, { includeArchived: false, scope: "project" }),
getClawBackendAvailability(),
getHermesBackendAvailability(),
]);
return (
<AppShell bottomNav={false}>
<RealtimeRefresh events={["master_agent.settings.updated"]} />
<StatusBar />
<PageNav title="主 Agent 提示词 / 记忆" backHref="/me" />
<div className="px-[18px] pb-3">
<div className="rounded-2xl border border-[#E5E5EA] bg-white px-4 py-4 text-[13px] leading-6 text-[#57606A]">
<span className="font-semibold text-[#111111]">{session.account}</span>
<br />
{session.role === "highest_admin"
? "你是管理员,可以编辑全局主提示词;当前对话设置和记忆按当前账号隔离。"
: "你可以编辑自己的提示词、当前对话设置和记忆;管理员全局主提示词只读。"}
</div>
</div>
<MasterAgentPromptMemoryClient
key={`${promptPolicy?.updatedAt ?? "none"}:${userPrompt?.updatedAt ?? "none"}:${projectControls?.updatedAt ?? "none"}:${globalMemories.length}:${projectMemories.length}`}
isAdmin={session.role === "highest_admin"}
promptPolicy={promptPolicy}
userPrompt={userPrompt}
projectControls={projectControls}
clawAvailability={clawAvailability}
hermesAvailability={hermesAvailability}
globalMemories={globalMemories}
projectMemories={projectMemories}
anchors={MASTER_AGENT_CHAT_PAGE_ANCHORS}
/>
</AppShell>
);
}