server 侧窄端口适配 projectworkflow,消除 chat→projectworkflow 边界违规;记录单测与 arch-check 证据,PI 全链路待补证。
37 lines
979 B
Go
37 lines
979 B
Go
package server
|
|
|
|
import (
|
|
"context"
|
|
|
|
"chat-agent-system/internal/chat"
|
|
"chat-agent-system/internal/projectworkflow"
|
|
)
|
|
|
|
// chatWorkflowAdapter adapts projectworkflow.Service to chat.WorkflowRunner
|
|
// without letting the chat package import projectworkflow (module boundary).
|
|
type chatWorkflowAdapter struct {
|
|
svc *projectworkflow.Service
|
|
}
|
|
|
|
func adaptChatWorkflow(svc *projectworkflow.Service) chat.WorkflowRunner {
|
|
if svc == nil {
|
|
return nil
|
|
}
|
|
return chatWorkflowAdapter{svc: svc}
|
|
}
|
|
|
|
func (a chatWorkflowAdapter) CreateWorkflowRun(ctx context.Context, req chat.WorkflowStartRequest) (*chat.WorkflowStartResult, error) {
|
|
startedBy := req.StartedBy
|
|
created, err := a.svc.CreateWorkflowRun(ctx, &projectworkflow.WorkflowRun{
|
|
RunID: req.RunID,
|
|
ProjectID: req.ProjectID,
|
|
WorkflowKey: req.WorkflowKey,
|
|
StartedBy: &startedBy,
|
|
Status: req.Status,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &chat.WorkflowStartResult{RunID: created.RunID}, nil
|
|
}
|