{activeTab.title}
{activeTab.context.project} 中的 248 个 Session · 4 个实时更新
- 已提交 {task.state !== "PENDING" &&
- {taskLabels[task.state] ?? task.state} }
{task.capability_id}
{task.task_id}- 持续时间
- {taskDuration(task)}
- 固定上下文
- {task.server_id} / {task.project_id} / {task.session_id}
{JSON.stringify(task.result, null, 2)}}确认取消任务?
断开连接不会取消任务;只有此次明确确认才会发送取消请求。
- Teamserver
- {task.server_id}
- Project
- {task.project_id}
- Session
- {task.session_id}
- Task
- {task.task_id}
{error}
}{event.type}
- 事件 ID
- {event.event_id}
- 序号 / 游标
- {event.sequence ?? "—"} / {event.cursor}
- 上下文
- {event.context.server_id} / {event.context.project_id ?? "—"} / {event.context.session_id ?? "—"}
{JSON.stringify(event.payload, null, 2)}连接中心
{records.length} 个内存配置 · Mock adapter
{record.config.address}连接诊断
仅检查 mock 配置结构,不向地址发送请求。
删除“{record.config.name}”?
仅移除当前进程中的 mock 配置,不会联系 Teamserver。
导入预览
{notice}}
+ {deleting && 正在加载…
; + if (state === "empty") return暂无记录
; + if (state === "error") return加载失败:{error ?? "未知错误"}
; + return null; +} + +export function ArtifactList({ artifacts, state = "ready", error, selectedId, onSelect }: { artifacts: ArtifactRecord[]; state?: LoadState; error?: string; selectedId?: string; onSelect: (artifact: ArtifactRecord) => void }) { + if (state !== "ready") return- 文件名
- {artifact.name}
- 类型
- {artifact.mimeType}
- 大小
- {formatBytes(artifact.size)}
- SHA-256
- {artifact.sha256}
- 创建时间
- {artifact.createdAt}
文件过大,无法预览(上限 {formatBytes(maxBytes)})。可显式导出后使用受信任工具查看。
; + if (kind === "unsupported") return不支持安全内嵌预览此格式。内容不会执行,可显式导出。
; + if (!content) return尚未加载预览内容
; + if (kind === "image") { + return imageUrl ?正在准备图片…
; + } + return无法读取文本预览
; + return text === undefined ?正在解码文本…
:{text};
+}
+
+export function ExportArtifactDialog({ artifact, content, adapter, onClose }: { artifact: ArtifactRecord; content: Blob; adapter: ArtifactSaveAdapter; onClose: () => void }) {
+ const [path, setPath] = useState(artifact.name);
+ const [overwrite, setOverwrite] = useState(false);
+ const [status, setStatus] = useState<"idle" | "saving" | "error">("idle");
+ const save = async () => { setStatus("saving"); try { await adapter.save(artifact, content, { path, overwrite }); onClose(); } catch { setStatus("error"); } };
+ return 导出 Artifact
仅此确认操作会将内存内容写入磁盘。
导出失败,未确认文件已写入。
}{JSON.stringify(shown, null, 2)}{allowReveal && !revealed && }| 时间 | 操作者 | 目标 | 操作 | 结果 | Request ID |
|---|---|---|---|---|---|
| {record.timestamp} | {record.actor} | {record.target} | {record.operation} | {record.result} |
审计详情
- 操作者
- {record.actor}
- 目标
- {record.target}
- 操作
- {record.operation}
- 结果
- {record.result}
- Request ID
- 时间
- {record.timestamp}