mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-08-10 21:20:27 +02:00
Add files via upload
This commit is contained in:
@@ -13,6 +13,7 @@ import (
|
|||||||
"cyberstrike-ai/internal/audit"
|
"cyberstrike-ai/internal/audit"
|
||||||
"cyberstrike-ai/internal/authctx"
|
"cyberstrike-ai/internal/authctx"
|
||||||
"cyberstrike-ai/internal/config"
|
"cyberstrike-ai/internal/config"
|
||||||
|
"cyberstrike-ai/internal/database"
|
||||||
"cyberstrike-ai/internal/mcp"
|
"cyberstrike-ai/internal/mcp"
|
||||||
"cyberstrike-ai/internal/multiagent"
|
"cyberstrike-ai/internal/multiagent"
|
||||||
|
|
||||||
@@ -118,8 +119,7 @@ func (h *AgentHandler) executeOneBatchSubTask(queueID string, queue *BatchTaskQu
|
|||||||
}
|
}
|
||||||
principal := authctx.NewPrincipalWithScopes(access.User.ID, access.User.Username, access.Scope, access.Permissions, access.PermissionScopes)
|
principal := authctx.NewPrincipalWithScopes(access.User.ID, access.User.Username, access.Scope, access.Permissions, access.PermissionScopes)
|
||||||
title := safeTruncateString(task.Message, 50)
|
title := safeTruncateString(task.Message, 50)
|
||||||
batchMeta := audit.ConversationCreateMeta("batch_task")
|
batchMeta := batchSubTaskConversationMeta(h.config, queue)
|
||||||
batchMeta.ProjectID = effectiveProjectID(h.config, queue.ProjectID)
|
|
||||||
conv, err := h.db.CreateConversation(title, batchMeta)
|
conv, err := h.db.CreateConversation(title, batchMeta)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
h.logger.Error("创建对话失败", zap.String("queueId", queueID), zap.String("taskId", task.ID), zap.Error(err))
|
h.logger.Error("创建对话失败", zap.String("queueId", queueID), zap.String("taskId", task.ID), zap.Error(err))
|
||||||
@@ -321,6 +321,17 @@ func (h *AgentHandler) executeOneBatchSubTask(queueID string, queue *BatchTaskQu
|
|||||||
h.batchTaskManager.UpdateTaskStatusWithConversationID(queueID, task.ID, BatchTaskStatusCompleted, resText, "", conversationID)
|
h.batchTaskManager.UpdateTaskStatusWithConversationID(queueID, task.ID, BatchTaskStatusCompleted, resText, "", conversationID)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func batchSubTaskConversationMeta(cfg *config.Config, queue *BatchTaskQueue) database.ConversationCreateMeta {
|
||||||
|
meta := audit.ConversationCreateMeta("batch_task")
|
||||||
|
if queue == nil {
|
||||||
|
meta.ProjectID = effectiveProjectID(cfg, "")
|
||||||
|
return meta
|
||||||
|
}
|
||||||
|
meta.ProjectID = effectiveProjectID(cfg, queue.ProjectID)
|
||||||
|
meta.RoleName = strings.TrimSpace(queue.Role)
|
||||||
|
return meta
|
||||||
|
}
|
||||||
|
|
||||||
func (h *AgentHandler) handleBatchSubTaskRunError(
|
func (h *AgentHandler) handleBatchSubTaskRunError(
|
||||||
queueID string,
|
queueID string,
|
||||||
task *BatchTask,
|
task *BatchTask,
|
||||||
|
|||||||
@@ -61,6 +61,18 @@ func TestBatchQueueExecutionShouldStop(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestBatchSubTaskConversationMetaKeepsQueueRole(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
meta := batchSubTaskConversationMeta(nil, &BatchTaskQueue{Role: " 渗透测试 "})
|
||||||
|
if meta.Source != "batch_task" {
|
||||||
|
t.Fatalf("expected batch_task source, got %q", meta.Source)
|
||||||
|
}
|
||||||
|
if meta.RoleName != "渗透测试" {
|
||||||
|
t.Fatalf("expected queue role to be stored on child conversation, got %q", meta.RoleName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestDeleteQueueBlockedWhileExecutorActive(t *testing.T) {
|
func TestDeleteQueueBlockedWhileExecutorActive(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
m := NewBatchTaskManager(zap.NewNop())
|
m := NewBatchTaskManager(zap.NewNop())
|
||||||
|
|||||||
Reference in New Issue
Block a user