( ctx context.Context, scope toolspkg.Scope, req toolspkg.CallRequest, )
| 2841 | } |
| 2842 | |
| 2843 | func (n *daemonNativeTools) taskBlock( |
| 2844 | ctx context.Context, |
| 2845 | scope toolspkg.Scope, |
| 2846 | req toolspkg.CallRequest, |
| 2847 | ) (toolspkg.ToolResult, error) { |
| 2848 | var input taskBlockInput |
| 2849 | if err := decodeNativeInput(req, &input); err != nil { |
| 2850 | return toolspkg.ToolResult{}, err |
| 2851 | } |
| 2852 | actor, runID, claimToken, err := n.nativeTaskBlockActor(ctx, req.ToolID, scope, input.TaskID, input.RunID) |
| 2853 | if err != nil { |
| 2854 | return toolspkg.ToolResult{}, err |
| 2855 | } |
| 2856 | block, err := n.deps.Tasks.BlockTask(ctx, taskpkg.BlockRequest{ |
| 2857 | TaskID: strings.TrimSpace(input.TaskID), |
| 2858 | Kind: taskpkg.BlockKind(strings.TrimSpace(input.Kind)), |
| 2859 | Reason: strings.TrimSpace(input.Reason), |
| 2860 | Details: cloneJSON(input.Details), |
| 2861 | ExpiresAt: nativeTaskBlockExpiresAt(input.ExpiresAt), |
| 2862 | RunID: runID, |
| 2863 | ClaimToken: claimToken, |
| 2864 | }, actor) |
| 2865 | if err != nil { |
| 2866 | return toolspkg.ToolResult{}, nativeTaskToolError(req.ToolID, err) |
| 2867 | } |
| 2868 | return structuredResult( |
| 2869 | map[string]any{daemonBlockKey: core.TaskBlockPayloadFromBlock(block)}, |
| 2870 | fmt.Sprintf("blocked %s", block.TaskID), |
| 2871 | ) |
| 2872 | } |
| 2873 | |
| 2874 | func (n *daemonNativeTools) taskUnblock( |
| 2875 | ctx context.Context, |
nothing calls this directly
no test coverage detected