ai-ip-plugin
Version:
AI-IP Plugin for MCP Workflow Management with SSE streaming and event handling
165 lines • 4.55 kB
JavaScript
;
/**
* Agent related utility functions
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.AgentNameMap = void 0;
exports.getAgentName = getAgentName;
exports.createAgentTemplate = createAgentTemplate;
exports.isToolAgent = isToolAgent;
exports.isPolisherAgent = isPolisherAgent;
exports.isContentAgent = isContentAgent;
/** Agent Name Mapping */
exports.AgentNameMap = {
planner: '规划师',
rag: 'RAG专家',
persona: '人设专家',
websearch: '搜索专家',
writer: '文案撰写师',
headliner: '标题专家',
architecter: '结构师',
outroist: '结尾专家',
hookmaster: '开头专家',
viewist: '观点专家',
introer: '介绍专家',
topic: '选题专家',
commenter: '评论专家',
polisher: '润色专家',
audio_engineer: '音频工程师',
audio_wait_for_user_feedback: '音频反馈',
workflow_interrupted: '工作流中断',
error: '错误'
};
/**
* Get agent display name
*/
function getAgentName(agentType) {
return exports.AgentNameMap[agentType] || agentType;
}
/**
* Create agent template based on agent type
*/
function createAgentTemplate(agentName) {
const baseTemplate = {
content: '',
additional_kwargs: {},
response_metadata: {},
type: 'ai',
name: getAgentName(agentName),
agent_type: agentName,
id: '',
example: false,
tool_calls: [],
invalid_tool_calls: [],
usage_metadata: null,
uuid: '',
event: 'workflow_created',
finished: false,
session_id: ''
};
// Planner agent template
if (['planner'].includes(agentName)) {
return {
...baseTemplate,
event: 'workflow_created'
};
}
// Tool-based agents (RAG, Persona, WebSearch, Audio Engineer)
if (['rag', 'persona', 'websearch', 'audio_engineer'].includes(agentName)) {
return {
...baseTemplate,
additional_kwargs: {
tool_calls: [{
index: 0,
id: '',
function: {
arguments: '',
name: 'rag_tool'
},
type: ''
}]
},
response_metadata: {
finish_reason: 'tool_calls',
model_name: '',
system_fingerprint: ''
},
event: 'workflow_created'
};
}
// Content generation agents
if ([
'writer', 'headliner', 'architecter', 'outroist',
'hookmaster', 'viewist', 'introer', 'topic', 'commenter'
].includes(agentName)) {
return {
...baseTemplate,
response_metadata: {
finish_reason: '',
model_name: '',
system_fingerprint: ''
},
event: 'start_of_agent'
};
}
// Polisher agent (with reasoning)
if (['polisher'].includes(agentName)) {
return {
...baseTemplate,
reasoning: '',
response_metadata: {
finish_reason: '',
model_name: '',
system_fingerprint: ''
},
event: 'start_of_agent'
};
}
// Error agent
if (['error'].includes(agentName)) {
return {
...baseTemplate,
reasoning: '',
event: 'error'
};
}
// Workflow interrupted
if (['workflow_interrupted'].includes(agentName)) {
return {
...baseTemplate,
reasoning: '',
type: 'human',
agent_type: 'user',
event: 'workflow_interrupted'
};
}
// Default template
return {
...baseTemplate,
reasoning: '',
event: 'workflow_created'
};
}
/**
* Check if agent is a tool-based agent
*/
function isToolAgent(agentType) {
return ['persona', 'rag', 'websearch'].includes(agentType);
}
/**
* Check if agent is a polisher agent
*/
function isPolisherAgent(agentType) {
return ['polisher'].includes(agentType);
}
/**
* Check if agent is a content generation agent
*/
function isContentAgent(agentType) {
return [
'writer', 'headliner', 'architecter', 'outroist',
'hookmaster', 'viewist', 'introer', 'planner',
'topic', 'commenter'
].includes(agentType);
}
//# sourceMappingURL=agent.js.map