MCPcopy Create free account
hub / github.com/compozy/agh / createTaskSpecFromRequest

Method createTaskSpecFromRequest

internal/extension/host_api_tasks.go:664–700  ·  view source on GitHub ↗
(
	ctx context.Context,
	req apicontract.CreateTaskRequest,
)

Source from the content-addressed store, hash-verified

662}
663
664func (h *HostAPIHandler) createTaskSpecFromRequest(
665 ctx context.Context,
666 req apicontract.CreateTaskRequest,
667) (taskpkg.CreateTask, error) {
668 scope := req.Scope.Normalize()
669 if err := scope.Validate("create_task.scope"); err != nil {
670 return taskpkg.CreateTask{}, invalidParamsRPCError(err)
671 }
672 workspaceID, err := h.resolveTaskWorkspaceBinding(ctx, scope, strings.TrimSpace(req.Workspace), "create_task")
673 if err != nil {
674 return taskpkg.CreateTask{}, err
675 }
676 if err := validateTaskChannel("create_task.network_channel", req.NetworkChannel); err != nil {
677 return taskpkg.CreateTask{}, err
678 }
679
680 spec := taskpkg.CreateTask{
681 ID: strings.TrimSpace(req.ID),
682 Identifier: strings.TrimSpace(req.Identifier),
683 Scope: scope,
684 WorkspaceID: workspaceID,
685 NetworkChannel: strings.TrimSpace(req.NetworkChannel),
686 Title: strings.TrimSpace(req.Title),
687 Description: strings.TrimSpace(req.Description),
688 Priority: req.Priority.Normalize(),
689 MaxAttempts: req.MaxAttempts,
690 AutoEnqueueOnReady: req.AutoEnqueueOnReady,
691 Draft: req.Draft,
692 ApprovalPolicy: req.ApprovalPolicy.Normalize(),
693 Owner: cloneOwnership(req.Owner),
694 Metadata: cloneRawMessage(req.Metadata),
695 }
696 if err := spec.Validate("create_task"); err != nil {
697 return taskpkg.CreateTask{}, invalidParamsRPCError(err)
698 }
699 return spec, nil
700}
701
702func taskPatchFromRequest(req apicontract.UpdateTaskRequest) (taskpkg.Patch, error) {
703 if req.NetworkChannel != nil {

Callers 1

handleTasksCreateMethod · 0.95

Calls 8

ValidateMethod · 0.95
invalidParamsRPCErrorFunction · 0.85
validateTaskChannelFunction · 0.70
cloneOwnershipFunction · 0.70
cloneRawMessageFunction · 0.70
ValidateMethod · 0.65
NormalizeMethod · 0.45

Tested by

no test coverage detected