Add files via upload

This commit is contained in:
公明
2026-07-14 15:11:50 +08:00
committed by GitHub
parent a496bd7aee
commit 2924d6636c
8 changed files with 44 additions and 44 deletions
+7 -7
View File
@@ -97,7 +97,7 @@
"agentsManagement": "Agent management",
"roles": "Roles",
"rolesManagement": "Roles Management",
"workflows": "Graph Orchestration",
"workflows": "Workflows",
"settings": "System settings",
"hitl": "Human-in-the-loop",
"c2": "C2",
@@ -3101,8 +3101,8 @@
"roleFilterOnBanner": "These tools are checked and linked to this role (independent of MCP-wide enable).",
"roleFilterOffBanner": "These tools are unchecked and not linked to this role.",
"checkboxLinkTitle": "Check to link this tool to this role",
"bindWorkflow": "Bind graph workflow",
"bindWorkflowHint": "When a workflow is selected, conversations with this role automatically run the bound graph; workflow fields are configured freely in the graph JSON.",
"bindWorkflow": "Bind workflow",
"bindWorkflowHint": "When a workflow is selected, conversations with this role run it automatically; workflow fields are configured freely in the graph JSON.",
"workflowPolicy": "Workflow trigger policy",
"workflowPolicyAuto": "Auto trigger",
"workflowPolicyOff": "Off",
@@ -3110,11 +3110,11 @@
"workflowDisabledSuffix": " (disabled)"
},
"workflows": {
"title": "Graph Orchestration",
"newGraph": "New graph",
"processLibrary": "Process library",
"title": "Workflows",
"newGraph": "New workflow",
"processLibrary": "Workflows",
"nodeLibrary": "Node library",
"emptyList": "No graph workflows yet",
"emptyList": "No workflows yet",
"statusEnabled": "Enabled",
"statusDisabled": "Disabled",
"metaId": "ID",
+14 -14
View File
@@ -97,7 +97,7 @@
"agentsManagement": "Agent管理",
"roles": "角色",
"rolesManagement": "角色管理",
"workflows": "图编排",
"workflows": "工作流",
"settings": "系统设置",
"hitl": "人机协同",
"c2": "C2",
@@ -3089,20 +3089,20 @@
"roleFilterOnBanner": "以下为「已勾选、关联到本角色」的工具(与 MCP 管理里全局开/关无关)。",
"roleFilterOffBanner": "以下为「未勾选、未关联到本角色」的工具。",
"checkboxLinkTitle": "勾选表示本角色关联使用该工具",
"bindWorkflow": "绑定图编排流程",
"bindWorkflowHint": "选中流后,对话页使用该角色会自动触发绑定图;流程字段由图定义 JSON 自由配置。",
"workflowPolicy": "流触发策略",
"bindWorkflow": "绑定工作流",
"bindWorkflowHint": "选中工作流后,对话页使用该角色会自动触发;工作流字段由图定义 JSON 自由配置。",
"workflowPolicy": "工作流触发策略",
"workflowPolicyAuto": "自动触发",
"workflowPolicyOff": "关闭",
"noWorkflowBind": "不绑定流",
"noWorkflowBind": "不绑定工作流",
"workflowDisabledSuffix": "(已禁用)"
},
"workflows": {
"title": "图编排",
"newGraph": "新建",
"processLibrary": "流程库",
"title": "工作流",
"newGraph": "新建工作流",
"processLibrary": "工作流列表",
"nodeLibrary": "节点库",
"emptyList": "暂无图编排流程",
"emptyList": "暂无工作流",
"statusEnabled": "启用",
"statusDisabled": "禁用",
"metaId": "ID",
@@ -3110,19 +3110,19 @@
"metaDescription": "描述",
"metaEnabled": "启用",
"metaIdHint": "创建后不可修改,用于 API 与角色绑定",
"metaModalTitle": "流信息",
"metaModalTitle": "工作流信息",
"editMeta": "编辑",
"untitled": "未命名流",
"untitled": "未命名工作流",
"toggleEnabled": "启用/禁用",
"metaEnabledHint": "禁用后无法被角色自动触发",
"enabledUpdated": "启用状态已更新",
"enabledUpdateFailed": "更新启用状态失败",
"namePlaceholder": "基础 Web 扫描",
"descriptionPlaceholder": "可选",
"toolbarLabel": "流编辑工具",
"toolbarLabel": "工作流编辑工具",
"canvasTools": "画布工具",
"moreActions": "更多",
"deleteWorkflow": "删除流",
"deleteWorkflow": "删除工作流",
"package": {
"importLocal": "导入本地包",
"export": "导出",
@@ -3155,7 +3155,7 @@
"overwriteCheck": "我已确认覆盖当前本地工作流",
"overwriteConfirm": "确认覆盖并导入",
"errors": {
"fileRequired": "请选择本地图编排包后再预检。",
"fileRequired": "请选择本地工作流包后再预检。",
"fileTooLarge": "文件超过 10 MiB 限制,请选择更小的本地包。",
"invalidArchive": "本地包不是有效的 Zip 文件,无法完成预检。",
"unsupportedFormat": "本地包格式或版本不受支持。",
+2 -2
View File
@@ -332,7 +332,7 @@ const responseStreamStateByProgressId = new Map();
// 主通道当前迭代轮次缓存:progressId -> { iteration, orchestration }
const mainIterationStateByProgressId = new Map();
/** 图编排多 Agent 节点切换时清空流式聚合,避免推理/输出条目覆盖上一节点内容 */
/** 工作流多 Agent 节点切换时清空流式聚合,避免推理/输出条目覆盖上一节点内容 */
function clearTimelineStreamStates(progressId) {
responseStreamStateByProgressId.delete(progressId);
thinkingStreamStateByProgressId.delete(progressId);
@@ -1886,7 +1886,7 @@ function handleStreamEvent(event, progressElement, progressId,
workflowNodeId: curNode,
einoAgent: curAgent
});
// 主通道进入新轮次或图编排切换到新 Agent 节点后,不复用上一段的流式时间线条目
// 主通道进入新轮次或工作流切换到新 Agent 节点后,不复用上一段的流式时间线条目
if (prevN != null && (n < prevN || prevN !== n || (curNode && prevNode && curNode !== prevNode))) {
clearTimelineStreamStates(progressId);
}
+1 -1
View File
@@ -76,7 +76,7 @@
}
async function createInspection(apiFetch, file) {
if (!file) throw new WorkflowPackageError('WFPKG_FILE_REQUIRED', '请选择本地图编排包');
if (!file) throw new WorkflowPackageError('WFPKG_FILE_REQUIRED', '请选择本地工作流包');
const body = new FormData();
body.append('file', file, file.name || 'workflow.csapkg.zip');
const response = await apiFetch('/api/workflow-package-inspections', { method: 'POST', body: body });
+2 -2
View File
@@ -2,11 +2,11 @@ const fs = require('node:fs');
const test = require('node:test');
const assert = require('node:assert/strict');
test('图编排提供导入、导出和覆盖确认容器', () => {
test('工作流提供导入、导出和覆盖确认容器', () => {
const html = fs.readFileSync('web/templates/index.html', 'utf8');
const zh = JSON.parse(fs.readFileSync('web/static/i18n/zh-CN.json', 'utf8'));
assert.match(html, /onclick="openWorkflowPackageImportModal\(\)"/);
assert.match(html, /onclick="exportCurrentWorkflowPackage\(\)"/);
assert.match(html, /onclick="[^"]*exportCurrentWorkflowPackage\(\)"/);
assert.match(html, /id="workflow-package-import-modal"/);
assert.match(html, /id="workflow-package-overwrite-modal"/);
assert.equal(zh.workflows.package.importLocal, '导入本地包');