@yeaft/webchat-agent 0.1.437 → 0.1.438
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/connection/message-router.js +7 -0
- package/conversation.js +4 -1
- package/expert-roles.js +36 -0
- package/package.json +1 -1
|
@@ -332,5 +332,12 @@ export async function handleMessage(msg) {
|
|
|
332
332
|
case 'unify_reset':
|
|
333
333
|
await resetUnifySession();
|
|
334
334
|
break;
|
|
335
|
+
|
|
336
|
+
// Expert roles definition (for ExpertPanel detail view)
|
|
337
|
+
case 'get_expert_roles': {
|
|
338
|
+
const { getExpertRolesDefinition } = await import('../expert-roles.js');
|
|
339
|
+
sendToServer({ type: 'expert_roles_list', roles: getExpertRolesDefinition() });
|
|
340
|
+
break;
|
|
341
|
+
}
|
|
335
342
|
}
|
|
336
343
|
}
|
package/conversation.js
CHANGED
|
@@ -719,7 +719,10 @@ export async function handleUserInput(msg) {
|
|
|
719
719
|
|
|
720
720
|
// ★ Expert Panel: construct expert message if selections provided
|
|
721
721
|
const expertSelections = msg.expertSelections;
|
|
722
|
-
if (
|
|
722
|
+
if (msg.expertMessage) {
|
|
723
|
+
// Custom expert role: frontend already built the full prompt
|
|
724
|
+
effectivePrompt = msg.expertMessage;
|
|
725
|
+
} else if (expertSelections?.length > 0) {
|
|
723
726
|
const { buildExpertMessage } = await import('./expert-roles.js');
|
|
724
727
|
const expertResult = buildExpertMessage(expertSelections, effectivePrompt, msg.language || 'zh-CN');
|
|
725
728
|
effectivePrompt = expertResult.effectivePrompt;
|
package/expert-roles.js
CHANGED
|
@@ -877,4 +877,40 @@ export function buildExpertMessage(selections, userText, language = 'zh-CN') {
|
|
|
877
877
|
return buildMultiExpertMessage(selections, userText, isZh);
|
|
878
878
|
}
|
|
879
879
|
|
|
880
|
+
/**
|
|
881
|
+
* Return the full EXPERT_ROLES definition (including prompt content)
|
|
882
|
+
* for the web debug/admin panel.
|
|
883
|
+
*
|
|
884
|
+
* Format per role:
|
|
885
|
+
* {
|
|
886
|
+
* name, messagePrefix, messagePrefixEn,
|
|
887
|
+
* actions: { [actionId]: { name, nameEn, messageTemplate, messageTemplateEn, defaultMessage, defaultMessageEn } }
|
|
888
|
+
* }
|
|
889
|
+
*
|
|
890
|
+
* @returns {Object.<string, object>}
|
|
891
|
+
*/
|
|
892
|
+
export function getExpertRolesDefinition() {
|
|
893
|
+
const result = {};
|
|
894
|
+
for (const [roleId, roleDef] of Object.entries(EXPERT_ROLES)) {
|
|
895
|
+
const actions = {};
|
|
896
|
+
for (const [actionId, actionDef] of Object.entries(roleDef.actions)) {
|
|
897
|
+
actions[actionId] = {
|
|
898
|
+
name: actionDef.name,
|
|
899
|
+
nameEn: actionDef.nameEn,
|
|
900
|
+
messageTemplate: actionDef.messageTemplate,
|
|
901
|
+
messageTemplateEn: actionDef.messageTemplateEn,
|
|
902
|
+
defaultMessage: actionDef.defaultMessage,
|
|
903
|
+
defaultMessageEn: actionDef.defaultMessageEn,
|
|
904
|
+
};
|
|
905
|
+
}
|
|
906
|
+
result[roleId] = {
|
|
907
|
+
name: roleDef.name,
|
|
908
|
+
messagePrefix: roleDef.messagePrefix,
|
|
909
|
+
messagePrefixEn: roleDef.messagePrefixEn,
|
|
910
|
+
actions,
|
|
911
|
+
};
|
|
912
|
+
}
|
|
913
|
+
return result;
|
|
914
|
+
}
|
|
915
|
+
|
|
880
916
|
export { EXPERT_ROLES };
|