60 lines
2.9 KiB
TypeScript
60 lines
2.9 KiB
TypeScript
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>
|
||
);
|
||
}
|