( ctx context.Context, scope toolspkg.Scope, req toolspkg.CallRequest, )
| 2929 | } |
| 2930 | |
| 2931 | func (n *daemonNativeTools) taskRecover( |
| 2932 | ctx context.Context, |
| 2933 | scope toolspkg.Scope, |
| 2934 | req toolspkg.CallRequest, |
| 2935 | ) (toolspkg.ToolResult, error) { |
| 2936 | var input taskRecoverInput |
| 2937 | if err := decodeNativeInput(req, &input); err != nil { |
| 2938 | return toolspkg.ToolResult{}, err |
| 2939 | } |
| 2940 | if strings.TrimSpace(scope.SessionID) != "" && !scope.Operator { |
| 2941 | return toolspkg.ToolResult{}, nativeSessionTaskRecoverDenied(req.ToolID) |
| 2942 | } |
| 2943 | actor, err := nativeOperatorActorContext(scope) |
| 2944 | if err != nil { |
| 2945 | return toolspkg.ToolResult{}, err |
| 2946 | } |
| 2947 | recovered, err := n.deps.Tasks.RecoverTask( |
| 2948 | ctx, |
| 2949 | strings.TrimSpace(input.TaskID), |
| 2950 | strings.TrimSpace(input.Note), |
| 2951 | actor, |
| 2952 | ) |
| 2953 | if err != nil { |
| 2954 | return toolspkg.ToolResult{}, nativeTaskToolError(req.ToolID, err) |
| 2955 | } |
| 2956 | return structuredResult( |
| 2957 | map[string]any{nativeToolsTaskKey: core.TaskPayloadFromTask(recovered)}, |
| 2958 | fmt.Sprintf("recovered %s", recovered.ID), |
| 2959 | ) |
| 2960 | } |
| 2961 | |
| 2962 | func (n *daemonNativeTools) taskRunList( |
| 2963 | ctx context.Context, |
nothing calls this directly
no test coverage detected