feat: add message source context enhancement

This commit is contained in:
xmanrui 2026-08-29 10:46:06 +08:00
parent 5928b33057
commit 0cb79f74e9
69 changed files with 6217 additions and 597 deletions

View file

@ -16,6 +16,7 @@ import {
} from "./api.js";
import { useAnimationFrameScheduler } from "../../lifecycle.js";
import { WorkspaceEditor } from "../../workspace-editor.js";
import { ContextEnhancementEditor } from "../../context-enhancement.js";
import {
AgentPresetCatalogContext,
AgentPresetEditor,
@ -553,6 +554,7 @@ export function BotCard({
onRepairCallback,
onWorkspaceSave,
onAgentPresetSave,
onContextEnhancementSave,
onGroupResponseModeSave,
onGroupMessagePermissionAuthorize,
onRequestRemove,
@ -611,6 +613,11 @@ export function BotCard({
disabled: Boolean(busy),
onSave: onAgentPresetSave,
}),
h(ContextEnhancementEditor, {
config: connection.contextEnhancement,
disabled: Boolean(busy),
onSave: onContextEnhancementSave,
}),
h(GroupResponseModeEditor, {
value: connection.groupResponseMode,
permissionGranted: connection.groupMessagePermissionGranted,
@ -708,6 +715,7 @@ function BotList(props) {
onRepairCallback: () => props.onRepairCallback(bot),
onWorkspaceSave: (workspace) => props.onWorkspaceSave(bot, workspace),
onAgentPresetSave: (agentPreset) => props.onAgentPresetSave(bot, agentPreset),
onContextEnhancementSave: (config) => props.onContextEnhancementSave(bot, config),
onGroupResponseModeSave: (groupResponseMode) => props.onGroupResponseModeSave(bot, groupResponseMode),
onGroupMessagePermissionAuthorize: () => props.onGroupMessagePermissionAuthorize(bot),
onRequestRemove: () => props.onRequestRemove(bot),
@ -1296,15 +1304,15 @@ export function FeishuSettingsTab({ rpcCall }) {
}
}, [invoke, loadStatus, mergeSnapshot, setBotBusy, setBotError, workspaceFence]);
const saveAgentPreset = React.useCallback(async (connection, agentPreset) => {
const saveBotSetting = React.useCallback(async (connection, operation, endpoint, payload) => {
const { botId } = connection;
const snapshotVersion = workspaceFence.beginMutation();
setBotBusy(botId, "preset");
setBotBusy(botId, operation);
setBotError(botId, null);
try {
const snapshot = normalizeBotsSnapshot(await invoke(
FEISHU_ENDPOINTS.setAgentPreset,
{ botId, agentPreset },
endpoint,
{ botId, ...payload },
));
if (mountedRef.current && workspaceFence.canCommitMutation(snapshotVersion)) {
mergeSnapshot(snapshot);
@ -1521,7 +1529,12 @@ export function FeishuSettingsTab({ rpcCall }) {
onReconnect: (bot) => void reconnectOneBot(bot),
onRepairCallback: repairCallback,
onWorkspaceSave: saveWorkspace,
onAgentPresetSave: saveAgentPreset,
onAgentPresetSave: (connection, agentPreset) => saveBotSetting(
connection, "preset", FEISHU_ENDPOINTS.setAgentPreset, { agentPreset },
),
onContextEnhancementSave: (connection, config) => saveBotSetting(
connection, "context-enhancement", FEISHU_ENDPOINTS.setContextEnhancement, { config },
),
onGroupResponseModeSave: saveGroupResponseMode,
onGroupMessagePermissionAuthorize: authorizeGroupMessages,
onRequestRemove: requestRemove,